From 4086a6a183c5b5e7cd293f19f69d5df0c00e38ce Mon Sep 17 00:00:00 2001 From: Klas Segeljakt Date: Wed, 16 Aug 2023 14:57:49 +0200 Subject: [PATCH] Update Arc-Lang to version 1 --- .github/Dockerfile | 26 + .github/continuous-integration.sh | 8 +- .github/workflows/arc-mlir-broken-links.yml | 2 +- .github/workflows/gh-pages.yml | 108 +- .github/workflows/release.yml | 4 +- .github/workflows/test.yml | 19 +- .gitignore | 6 + .gitmodules | 6 +- README.md | 58 +- arc-docs/.gitignore | 1 - arc-docs/Makefile | 7 - arc-docs/arc-preprocessor/Cargo.lock | 1881 - arc-docs/arc-preprocessor/Cargo.toml | 12 - arc-docs/arc-preprocessor/src/main.rs | 191 - arc-docs/book.toml | 50 - arc-docs/fonts/Fira_Code_v6.2/README.txt | 563 - .../Fira_Code_v6.2/SIL Open Font License.txt | 55 - arc-docs/fonts/Fira_Code_v6.2/fira_code.css | 42 - arc-docs/fonts/Fira_Code_v6.2/specimen.html | 95 - .../Fira_Code_v6.2/woff2/FiraCode-Bold.woff2 | Bin 107788 -> 0 bytes .../Fira_Code_v6.2/woff2/FiraCode-Light.woff2 | Bin 102924 -> 0 bytes .../woff2/FiraCode-Medium.woff2 | Bin 102384 -> 0 bytes .../woff2/FiraCode-Regular.woff2 | Bin 103240 -> 0 bytes .../woff2/FiraCode-SemiBold.woff2 | Bin 106992 -> 0 bytes .../Fira_Code_v6.2/woff2/FiraCode-VF.woff2 | Bin 113088 -> 0 bytes .../computer-modern/SIL Open Font License.txt | 55 - arc-docs/fonts/computer-modern/cmunbi.woff2 | Bin 108340 -> 0 bytes arc-docs/fonts/computer-modern/cmunbl.woff2 | Bin 93468 -> 0 bytes arc-docs/fonts/computer-modern/cmunbmo.woff2 | Bin 64596 -> 0 bytes arc-docs/fonts/computer-modern/cmunbmr.woff2 | Bin 54076 -> 0 bytes arc-docs/fonts/computer-modern/cmunbso.woff2 | Bin 64688 -> 0 bytes arc-docs/fonts/computer-modern/cmunbsr.woff2 | Bin 54824 -> 0 bytes arc-docs/fonts/computer-modern/cmunbtl.woff2 | Bin 79732 -> 0 bytes arc-docs/fonts/computer-modern/cmunbto.woff2 | Bin 87332 -> 0 bytes arc-docs/fonts/computer-modern/cmunbx.woff2 | Bin 84992 -> 0 bytes arc-docs/fonts/computer-modern/cmunci.woff2 | Bin 113728 -> 0 bytes arc-docs/fonts/computer-modern/cmunit.woff2 | Bin 97400 -> 0 bytes arc-docs/fonts/computer-modern/cmunobi.woff2 | Bin 103672 -> 0 bytes arc-docs/fonts/computer-modern/cmunobx.woff2 | Bin 75980 -> 0 bytes arc-docs/fonts/computer-modern/cmunorm.woff2 | Bin 76632 -> 0 bytes arc-docs/fonts/computer-modern/cmunoti.woff2 | Bin 100620 -> 0 bytes arc-docs/fonts/computer-modern/cmunrm.woff2 | Bin 86236 -> 0 bytes arc-docs/fonts/computer-modern/cmunsi.woff2 | Bin 65128 -> 0 bytes arc-docs/fonts/computer-modern/cmunsl.woff2 | Bin 95080 -> 0 bytes arc-docs/fonts/computer-modern/cmunso.woff2 | Bin 90540 -> 0 bytes arc-docs/fonts/computer-modern/cmunss.woff2 | Bin 55716 -> 0 bytes arc-docs/fonts/computer-modern/cmunssdc.woff2 | Bin 77712 -> 0 bytes arc-docs/fonts/computer-modern/cmunsx.woff2 | Bin 83044 -> 0 bytes arc-docs/fonts/computer-modern/cmuntb.woff2 | Bin 88128 -> 0 bytes arc-docs/fonts/computer-modern/cmunti.woff2 | Bin 113456 -> 0 bytes arc-docs/fonts/computer-modern/cmuntt.woff2 | Bin 83268 -> 0 bytes arc-docs/fonts/computer-modern/cmuntx.woff2 | Bin 101200 -> 0 bytes arc-docs/fonts/computer-modern/cmunui.woff2 | Bin 92324 -> 0 bytes arc-docs/fonts/computer-modern/cmunvi.woff2 | Bin 85376 -> 0 bytes arc-docs/fonts/computer-modern/cmunvt.woff2 | Bin 68852 -> 0 bytes arc-docs/src/SUMMARY.md | 56 - arc-docs/src/arc-lang/Annots.md | 15 - arc-docs/src/arc-lang/Assign.md | 15 - arc-docs/src/arc-lang/Block.md | 13 - arc-docs/src/arc-lang/Body.md | 15 - arc-docs/src/arc-lang/Def.md | 27 - arc-docs/src/arc-lang/Enum.md | 15 - arc-docs/src/arc-lang/Expr.md | 160 - arc-docs/src/arc-lang/ExternDef.md | 13 - arc-docs/src/arc-lang/ExternType.md | 15 - arc-docs/src/arc-lang/Generics.md | 25 - arc-docs/src/arc-lang/Global.md | 15 - arc-docs/src/arc-lang/Instance.md | 13 - arc-docs/src/arc-lang/Item.md | 16 - arc-docs/src/arc-lang/Module.md | 27 - arc-docs/src/arc-lang/Name.md | 13 - arc-docs/src/arc-lang/Params.md | 15 - arc-docs/src/arc-lang/Path.md | 20 - arc-docs/src/arc-lang/Pattern.md | 40 - arc-docs/src/arc-lang/Program.md | 15 - arc-docs/src/arc-lang/Query.md | 11 - arc-docs/src/arc-lang/Stmt.md | 10 - arc-docs/src/arc-lang/Task.md | 29 - arc-docs/src/arc-lang/Type.md | 32 - arc-docs/src/arc-lang/TypeAlias.md | 15 - arc-docs/src/arc-lang/TypeClass.md | 15 - arc-docs/src/arc-lang/Use.md | 16 - arc-docs/src/arc-lang/Value.md | 47 - arc-docs/src/arc-lang/mod.md | 26 - arc-docs/src/command-line-interface.md | 1 - arc-docs/src/dev/arc-mlir/Block.md | 7 - arc-docs/src/dev/arc-mlir/Func.md | 5 - arc-docs/src/dev/arc-mlir/Item.md | 6 - arc-docs/src/dev/arc-mlir/Name.md | 7 - arc-docs/src/dev/arc-mlir/Operation.md | 80 - arc-docs/src/dev/arc-mlir/Params.md | 7 - arc-docs/src/dev/arc-mlir/Program.md | 5 - arc-docs/src/dev/arc-mlir/Type.md | 21 - arc-docs/src/dev/arc-mlir/Value.md | 5 - arc-docs/src/dev/arc-mlir/mod.md | 3 - arc-docs/src/dev/arc-runtime/data-model.md | 26 - .../src/dev/arc-runtime/execution-model.md | 3 - arc-docs/src/dev/arc-runtime/mod.md | 7 - arc-docs/src/dev/ci.md | 93 - arc-docs/src/dev/mod.md | 1 - arc-docs/src/examples/mod.md | 3 - arc-docs/src/examples/oltp.md | 1 - arc-docs/src/examples/pulse-detection.md | 79 - .../src/examples/sensor-data-aggregation.md | 1 - arc-docs/src/examples/tf-idf.md | 15 - arc-docs/src/examples/word-count.md | 7 - arc-docs/src/getting-started.md | 59 - arc-docs/src/history/tasks.md | 17 - arc-docs/src/images/DSL-Hierarchy.jpg | Bin 527222 -> 0 bytes arc-docs/src/introduction.md | 38 - arc-docs/src/references.bib | 0 arc-docs/src/tour/basics.md | 61 - arc-docs/src/tour/mod.md | 3 - arc-docs/src/tour/queries.md | 232 - arc-docs/src/tour/tasks.md | 150 - arc-docs/theme/book.js | 679 - arc-docs/theme/css/chrome.css | 495 - arc-docs/theme/css/general.css | 270 - arc-docs/theme/css/print.css | 54 - arc-docs/theme/css/variables.css | 253 - arc-docs/theme/favicon.png | Bin 5679 -> 0 bytes arc-docs/theme/favicon.svg | 22 - arc-docs/theme/highlight.css | 83 - arc-docs/theme/highlight.js | 6 - arc-docs/theme/index.hbs | 314 - arc-lang/Cargo.lock | 5484 + arc-lang/Cargo.toml | 224 + arc-lang/arc_lang.opam | 0 arc-lang/crates/cloud/api/Cargo.toml | 9 + arc-lang/crates/cloud/api/src/lib.rs | 139 + arc-lang/crates/cloud/client/Cargo.toml | 22 + .../cloud/client/src/coordinator_connector.rs | 68 + .../crates/cloud/client/src/coordinator_rx.rs | 41 + .../crates/cloud/client/src/coordinator_tx.rs | 45 + arc-lang/crates/cloud/client/src/driver_rx.rs | 41 + arc-lang/crates/cloud/client/src/driver_tx.rs | 53 + arc-lang/crates/cloud/client/src/main.rs | 29 + arc-lang/crates/cloud/client/src/rest.rs | 34 + arc-lang/crates/cloud/client/src/server.rs | 100 + arc-lang/crates/cloud/coordinator/Cargo.lock | 1190 + arc-lang/crates/cloud/coordinator/Cargo.toml | 29 + arc-lang/crates/cloud/coordinator/build.rs | 38 + .../cloud/coordinator/src/client_listener.rs | 69 + .../crates/cloud/coordinator/src/client_rx.rs | 1 + .../crates/cloud/coordinator/src/client_tx.rs | 1 + arc-lang/crates/cloud/coordinator/src/main.rs | 45 + .../cloud/coordinator/src/rest_listener.rs | 49 + .../crates/cloud/coordinator/src/server.rs | 196 + arc-lang/crates/cloud/coordinator/src/tls.rs | 69 + .../cloud/coordinator/src/worker_listener.rs | 74 + .../crates/cloud/coordinator/src/worker_rx.rs | 53 + .../crates/cloud/coordinator/src/worker_tx.rs | 58 + arc-lang/crates/cloud/io/Cargo.toml | 18 + arc-lang/crates/cloud/io/src/config.rs | 9 + arc-lang/crates/cloud/io/src/lib.rs | 7 + arc-lang/crates/cloud/io/src/socket.rs | 7 + arc-lang/crates/cloud/io/src/tcp.rs | 11 + arc-lang/crates/cloud/io/src/term.rs | 10 + arc-lang/crates/cloud/io/src/tracing.rs | 28 + .../crates/cloud/query-compiler/Cargo.toml | 17 + .../crates/cloud/query-compiler/src/lib.rs | 129 + .../cloud/query-compiler/src/lowering1.rs | 133 + .../cloud/query-compiler/src/lowering2.rs | 156 + .../cloud/query-compiler/src/lowering3.rs | 114 + .../cloud/query-compiler/src/lowering4.rs | 95 + .../cloud/query-compiler/src/lowering5.rs | 96 + .../cloud/query-compiler/src/lowering6.rs | 269 + .../cloud/query-compiler/src/lowering7.rs | 99 + arc-lang/crates/cloud/worker/Cargo.toml | 20 + arc-lang/crates/cloud/worker/build.rs | 9 + .../cloud/worker/src/coordinator_connector.rs | 74 + .../crates/cloud/worker/src/coordinator_rx.rs | 49 + .../crates/cloud/worker/src/coordinator_tx.rs | 45 + arc-lang/crates/cloud/worker/src/main.rs | 30 + .../crates/cloud/worker/src/runtime_rx.rs | 46 + .../crates/cloud/worker/src/runtime_tx.rs | 45 + arc-lang/crates/cloud/worker/src/server.rs | 111 + arc-lang/crates/colors/Cargo.toml | 11 + arc-lang/crates/colors/src/lib.rs | 26 + arc-lang/crates/compiler/Cargo.toml | 42 + .../compiler/codegen/write-ast/Cargo.toml | 12 + .../compiler/codegen/write-ast/src/lib.rs | 863 + .../compiler/codegen/write-flink}/Cargo.toml | 4 +- .../compiler/codegen/write-flink/src/lib.rs | 14 + .../compiler/codegen/write-hir/Cargo.toml | 10 + .../compiler/codegen/write-hir/src/lib.rs | 543 + .../compiler/codegen/write-mlir/Cargo.toml | 15 + .../compiler/codegen/write-mlir/src/lib.rs | 353 + .../compiler/codegen/write-rust/Cargo.toml | 13 + .../codegen/write-rust/src/context.rs | 112 + .../compiler/codegen/write-rust/src/lib.rs | 574 + .../compiler/codegen/write-value/Cargo.toml | 12 + .../compiler/codegen/write-value/src/lib.rs | 470 + .../crates/compiler/infra/build/Cargo.toml | 13 + .../compiler/infra/build/src/context.rs | 119 + .../crates/compiler/infra/build/src/lib.rs | 77 + .../crates/compiler/infra/codegen/Cargo.toml | 9 + .../crates/compiler/infra/codegen/src/lib.rs | 447 + .../compiler/infra/diagnostics/Cargo.toml | 12 + .../compiler/infra/diagnostics/src/builder.rs | 52 + .../compiler/infra/diagnostics/src/lib.rs | 769 + .../crates/compiler/infra/info/Cargo.toml | 7 + .../crates/compiler/infra/info/src/lib.rs | 65 + .../crates/compiler/infra/kafka/Cargo.toml | 9 + .../compiler/infra/kafka/src/context.rs | 58 + .../crates/compiler/infra/kafka/src/lib.rs | 1 + .../crates/compiler/infra/name-gen/Cargo.toml | 6 + .../crates/compiler/infra/name-gen/src/lib.rs | 21 + .../crates/compiler/infra/sources/Cargo.toml | 9 + .../crates/compiler/infra/sources/src/lib.rs | 51 + .../crates/compiler/infra/stack/Cargo.toml | 8 + .../crates/compiler/infra/stack/src/lib.rs | 108 + .../crates/compiler/infra/utils/Cargo.toml | 7 + .../crates/compiler/infra/utils/src/lib.rs | 209 + arc-lang/crates/compiler/irs/ast/Cargo.toml | 11 + arc-lang/crates/compiler/irs/ast/src/lib.rs | 362 + arc-lang/crates/compiler/irs/ast/src/ops.rs | 56 + arc-lang/crates/compiler/irs/flink/Cargo.toml | 8 + arc-lang/crates/compiler/irs/flink/src/lib.rs | 1 + arc-lang/crates/compiler/irs/hir/Cargo.toml | 10 + arc-lang/crates/compiler/irs/hir/src/lib.rs | 574 + arc-lang/crates/compiler/irs/mlir/Cargo.toml | 10 + arc-lang/crates/compiler/irs/mlir/src/lib.rs | 132 + arc-lang/crates/compiler/irs/rust/Cargo.toml | 9 + arc-lang/crates/compiler/irs/rust/src/lib.rs | 129 + arc-lang/crates/compiler/irs/value/Cargo.toml | 15 + .../crates/compiler/irs/value/rustfmt.toml | 2 + .../crates/compiler/irs/value/src/conv.rs | 96 + arc-lang/crates/compiler/irs/value/src/de.rs | 317 + .../crates/compiler/irs/value/src/dynamic.rs | 199 + arc-lang/crates/compiler/irs/value/src/eq.rs | 67 + .../crates/compiler/irs/value/src/hash.rs | 42 + arc-lang/crates/compiler/irs/value/src/lib.rs | 359 + arc-lang/crates/compiler/irs/value/src/ord.rs | 97 + arc-lang/crates/compiler/irs/value/src/ser.rs | 56 + .../compiler/passes/ast-prelude/Cargo.toml | 10 + .../compiler/passes/ast-prelude/rustfmt.toml | 2 + .../src/declarations/aggregator.rs | 25 + .../ast-prelude/src/declarations/array.rs | 21 + .../ast-prelude/src/declarations/blob.rs | 12 + .../ast-prelude/src/declarations/bool.rs | 18 + .../ast-prelude/src/declarations/char.rs | 12 + .../ast-prelude/src/declarations/dataflow.rs | 19 + .../ast-prelude/src/declarations/dict.rs | 21 + .../src/declarations/discretizer.rs | 23 + .../ast-prelude/src/declarations/duration.rs | 25 + .../ast-prelude/src/declarations/encoding.rs | 16 + .../ast-prelude/src/declarations/f32.rs | 16 + .../ast-prelude/src/declarations/f64.rs | 15 + .../ast-prelude/src/declarations/file.rs | 21 + .../ast-prelude/src/declarations/function.rs | 9 + .../ast-prelude/src/declarations/i128.rs | 11 + .../ast-prelude/src/declarations/i16.rs | 12 + .../ast-prelude/src/declarations/i32.rs | 34 + .../ast-prelude/src/declarations/i64.rs | 11 + .../passes/ast-prelude/src/declarations/i8.rs | 13 + .../ast-prelude/src/declarations/instance.rs | 19 + .../src/declarations/keyed_stream.rs | 35 + .../ast-prelude/src/declarations/matrix.rs | 20 + .../ast-prelude/src/declarations/mod.rs | 196 + .../ast-prelude/src/declarations/model.rs | 19 + .../ast-prelude/src/declarations/never.rs | 19 + .../ast-prelude/src/declarations/option.rs | 20 + .../ast-prelude/src/declarations/path.rs | 16 + .../ast-prelude/src/declarations/reader.rs | 23 + .../ast-prelude/src/declarations/record.rs | 1 + .../ast-prelude/src/declarations/result.rs | 21 + .../ast-prelude/src/declarations/socket.rs | 15 + .../ast-prelude/src/declarations/stream.rs | 32 + .../ast-prelude/src/declarations/string.rs | 32 + .../ast-prelude/src/declarations/time.rs | 24 + .../src/declarations/time_source.rs | 18 + .../ast-prelude/src/declarations/tuple.rs | 10 + .../ast-prelude/src/declarations/u128.rs | 13 + .../ast-prelude/src/declarations/u16.rs | 12 + .../ast-prelude/src/declarations/u32.rs | 12 + .../ast-prelude/src/declarations/u64.rs | 12 + .../passes/ast-prelude/src/declarations/u8.rs | 12 + .../ast-prelude/src/declarations/unit.rs | 23 + .../ast-prelude/src/declarations/url.rs | 16 + .../ast-prelude/src/declarations/usize.rs | 12 + .../ast-prelude/src/declarations/variant.rs | 1 + .../ast-prelude/src/declarations/vec.rs | 27 + .../ast-prelude/src/declarations/writer.rs | 22 + .../compiler/passes/ast-prelude/src/lib.rs | 11 + .../passes/ast-prelude/src/prelude.mlir} | 0 .../compiler/passes/ast-to-hir/Cargo.toml | 19 + .../compiler/passes/ast-to-hir/src/context.rs | 197 + .../compiler/passes/ast-to-hir/src/lib.rs | 1002 + .../passes/hir-interpreter/Cargo.toml | 32 + .../passes/hir-interpreter/src/context.rs | 78 + .../src/definitions/aggregator.rs | 30 + .../hir-interpreter/src/definitions/array.rs | 30 + .../hir-interpreter/src/definitions/blob.rs | 6 + .../hir-interpreter/src/definitions/bool.rs | 26 + .../hir-interpreter/src/definitions/char.rs | 7 + .../src/definitions/dataflow.rs | 88 + .../src/definitions/discretizer.rs | 33 + .../src/definitions/duration.rs | 45 + .../src/definitions/encoding.rs | 16 + .../hir-interpreter/src/definitions/f32.rs | 23 + .../hir-interpreter/src/definitions/f64.rs | 18 + .../hir-interpreter/src/definitions/file.rs | 25 + .../src/definitions/function.rs | 5 + .../hir-interpreter/src/definitions/i16.rs | 1 + .../hir-interpreter/src/definitions/i32.rs | 78 + .../hir-interpreter/src/definitions/i64.rs | 1 + .../hir-interpreter/src/definitions/i8.rs | 1 + .../src/definitions/instance.rs | 19 + .../src/definitions/keyed_stream.rs | 56 + .../hir-interpreter/src/definitions/matrix.rs | 33 + .../hir-interpreter/src/definitions/mod.rs | 139 + .../hir-interpreter/src/definitions/model.rs | 44 + .../hir-interpreter/src/definitions/never.rs | 17 + .../hir-interpreter/src/definitions/option.rs | 27 + .../hir-interpreter/src/definitions/path.rs | 19 + .../hir-interpreter/src/definitions/reader.rs | 29 + .../hir-interpreter/src/definitions/record.rs | 7 + .../hir-interpreter/src/definitions/result.rs | 34 + .../hir-interpreter/src/definitions/socket.rs | 14 + .../hir-interpreter/src/definitions/stream.rs | 78 + .../hir-interpreter/src/definitions/string.rs | 80 + .../hir-interpreter/src/definitions/time.rs | 44 + .../src/definitions/time_source.rs | 29 + .../hir-interpreter/src/definitions/tuple.rs | 6 + .../hir-interpreter/src/definitions/u16.rs | 1 + .../hir-interpreter/src/definitions/u32.rs | 1 + .../hir-interpreter/src/definitions/u64.rs | 1 + .../hir-interpreter/src/definitions/u8.rs | 1 + .../hir-interpreter/src/definitions/unit.rs | 55 + .../hir-interpreter/src/definitions/url.rs | 13 + .../hir-interpreter/src/definitions/usize.rs | 7 + .../src/definitions/variant.rs | 6 + .../hir-interpreter/src/definitions/vec.rs | 49 + .../hir-interpreter/src/definitions/writer.rs | 26 + .../passes/hir-interpreter/src/lib.rs | 265 + .../passes/hir-lambda-lift/Cargo.toml | 16 + .../passes/hir-lambda-lift/src/context.rs | 76 + .../passes/hir-lambda-lift/src/lib.rs | 274 + .../passes/hir-monomorphise/Cargo.toml | 12 + .../passes/hir-monomorphise/src/context.rs | 55 + .../passes/hir-monomorphise/src/lib.rs | 340 + .../compiler/passes/hir-patcomp/Cargo.toml | 13 + .../passes/hir-patcomp/src/context.rs | 70 + .../compiler/passes/hir-patcomp/src/lib.rs | 544 + .../compiler/passes/hir-reachable/Cargo.toml | 14 + .../passes/hir-reachable/src/context.rs | 46 + .../compiler/passes/hir-reachable/src/lib.rs | 262 + .../compiler/passes/hir-to-flink/Cargo.toml | 8 + .../compiler/passes/hir-to-flink/src/lib.rs | 14 + .../compiler/passes/hir-to-mlir/Cargo.toml | 19 + .../passes/hir-to-mlir/src/context.rs | 65 + .../compiler/passes/hir-to-mlir/src/lib.rs | 329 + .../compiler/passes/hir-to-rust/Cargo.toml | 16 + .../passes/hir-to-rust/src/context.rs | 67 + .../compiler/passes/hir-to-rust/src/lib.rs | 294 + .../passes/hir-type-inference/Cargo.toml | 16 + .../passes/hir-type-inference/src/context.rs | 110 + .../passes/hir-type-inference/src/lib.rs | 821 + .../crates/compiler/passes/lexer/Cargo.toml | 12 + .../crates/compiler/passes/lexer/src/lib.rs | 65 + .../compiler/passes/lexer/src/tokens.rs | 279 + .../compiler/passes/ll-parser/Cargo.toml | 17 + .../compiler/passes/ll-parser/src/main.rs | 129 + .../crates/compiler/passes/parser/Cargo.toml | 18 + .../crates/compiler/passes/parser/build.rs | 12 + .../compiler/passes/parser/src/context.rs | 21 + .../compiler/passes/parser/src/error.rs | 37 + .../passes/parser/src/grammar.lalrpop | 489 + .../crates/compiler/passes/parser/src/lib.rs | 53 + arc-lang/crates/compiler/src/lib.rs | 242 + arc-lang/crates/config/Cargo.toml | 7 + arc-lang/crates/config/src/lib.rs | 85 + arc-lang/crates/logging/Cargo.toml | 12 + arc-lang/crates/logging/src/lib.rs | 62 + arc-lang/crates/manager/Cargo.toml | 6 + arc-lang/crates/manager/src/lib.rs | 13 + arc-lang/crates/repl/Cargo.toml | 24 + arc-lang/crates/repl/completer/Cargo.toml | 9 + arc-lang/crates/repl/completer/src/lib.rs | 48 + arc-lang/crates/repl/highlighter/Cargo.toml | 12 + arc-lang/crates/repl/highlighter/src/lib.rs | 83 + arc-lang/crates/repl/src/context.rs | 102 + arc-lang/crates/repl/src/helper/hinter.rs | 5 + arc-lang/crates/repl/src/helper/mod.rs | 148 + arc-lang/crates/repl/src/lib.rs | 81 + arc-lang/crates/repl/validator/Cargo.toml | 8 + arc-lang/crates/repl/validator/src/lib.rs | 72 + arc-lang/crates/runtime/Cargo.toml | 16 + .../crates/runtime/builtins/.cargo/config | 8 + arc-lang/crates/runtime/builtins/Cargo.toml | 28 + .../crates/runtime/builtins/src/aggregator.rs | 31 + arc-lang/crates/runtime/builtins/src/array.rs | 89 + arc-lang/crates/runtime/builtins/src/blob.rs | 14 + arc-lang/crates/runtime/builtins/src/cow.rs | 95 + .../crates/runtime/builtins/src/dataflow.rs | 13 + .../crates/runtime/builtins/src/dataframe.rs | 13 + arc-lang/crates/runtime/builtins/src/dict.rs | 69 + .../runtime/builtins/src/discretizer.rs | 36 + .../crates/runtime/builtins/src/duration.rs | 30 + .../crates/runtime/builtins/src/encoding.rs | 18 + arc-lang/crates/runtime/builtins/src/file.rs | 55 + arc-lang/crates/runtime/builtins/src/image.rs | 174 + .../crates/runtime/builtins/src/iterator.rs | 35 + .../runtime/builtins/src/keyed_stream.rs | 326 + arc-lang/crates/runtime/builtins/src/lib.rs | 30 + .../crates/runtime/builtins/src/matrix.rs | 83 + arc-lang/crates/runtime/builtins/src/model.rs | 87 + .../crates/runtime/builtins/src/option.rs | 50 + arc-lang/crates/runtime/builtins/src/path.rs | 24 + .../crates/runtime/builtins/src/reader.rs | 41 + .../crates/runtime/builtins/src/result.rs | 61 + arc-lang/crates/runtime/builtins/src/set.rs | 54 + .../crates/runtime/builtins/src/socket.rs | 24 + .../crates/runtime/builtins/src/stream.rs | 561 + .../crates/runtime/builtins/src/string.rs | 174 + arc-lang/crates/runtime/builtins/src/time.rs | 92 + .../runtime/builtins/src/time_source.rs | 35 + .../crates/runtime/builtins/src/traits.rs | 83 + arc-lang/crates/runtime/builtins/src/url.rs | 22 + arc-lang/crates/runtime/builtins/src/vec.rs | 112 + .../crates/runtime/builtins/src/writer.rs | 38 + arc-lang/crates/runtime/formats/Cargo.toml | 14 + arc-lang/crates/runtime/formats/src/csv/de.rs | 467 + .../crates/runtime/formats/src/csv/ser.rs | 443 + .../crates/runtime/formats/src/json/de.rs | 25 + .../crates/runtime/formats/src/json/ser.rs | 26 + arc-lang/crates/runtime/formats/src/lib.rs | 27 + .../crates/runtime}/macros/Cargo.lock | 0 arc-lang/crates/runtime/macros/Cargo.toml | 12 + arc-lang/crates/runtime/macros/src/lib.rs | 37 + .../runtime/macros/src/proc_macro_attrs.rs | 12 + .../src/proc_macro_attrs/export/functions.rs | 33 + .../src/proc_macro_attrs/export/impls.rs | 67 + .../src/proc_macro_attrs/rewrite/enums.rs | 25 + .../src/proc_macro_attrs/rewrite/externs.rs | 19 + .../src/proc_macro_attrs/rewrite/functions.rs | 10 + .../src/proc_macro_attrs/rewrite/main.rs | 5 + .../src/proc_macro_attrs/rewrite/structs.rs | 51 + .../runtime/macros/src/proc_macro_derives.rs | 90 + .../crates/runtime/macros/src/proc_macros.rs | 8 + arc-lang/crates/runtime/macros/src/utils.rs | 12 + arc-lang/crates/runtime/runner/Cargo.toml | 18 + arc-lang/crates/runtime/runner/src/lib.rs | 86 + arc-lang/crates/runtime/src/lib.rs | 45 + arc-lang/crates/runtime/state/Cargo.toml | 18 + arc-lang/crates/runtime/state/src/lib.rs | 111 + arc-lang/crates/runtime/timer/Cargo.toml | 10 + arc-lang/crates/runtime/timer/src/lib.rs | 71 + arc-lang/crates/tree-sitter/.gitignore | 2 + arc-lang/crates/tree-sitter/Cargo.lock | 170 + arc-lang/crates/tree-sitter/Cargo.toml | 28 + arc-lang/crates/tree-sitter/binding.gyp | 19 + .../tree-sitter/bindings/node/binding.cc | 28 + .../crates/tree-sitter/bindings/node/index.js | 19 + .../crates/tree-sitter/bindings/rust/build.rs | 15 + .../crates/tree-sitter/bindings/rust/lib.rs | 93 + arc-lang/crates/tree-sitter/build/Makefile | 342 + .../bindings/node/binding.o.d | 65 + .../src/parser.o.d | 5 + .../tree_sitter_arclang_binding.node.d | 1 + .../bindings/node/binding.o | Bin 0 -> 257192 bytes .../tree_sitter_arclang_binding/src/parser.o | Bin 0 -> 283416 bytes .../Release/tree_sitter_arclang_binding.node | Bin 0 -> 304989 bytes .../crates/tree-sitter/build/binding.Makefile | 6 + arc-lang/crates/tree-sitter/build/config.gypi | 388 + .../crates/tree-sitter/build/gyp-mac-tool | 772 + .../tree-sitter/build/node_gyp_bins/python3 | 1 + .../tree_sitter_arclang_binding.target.mk | 198 + arc-lang/crates/tree-sitter/grammar.js | 316 + arc-lang/crates/tree-sitter/package.json | 17 + arc-lang/crates/tree-sitter/parser/arclang.so | Bin 0 -> 132983 bytes .../queries/arc_lang/highlights.scm | 57 + .../queries/arc_lang/injections.scm | 2 + .../tree-sitter/queries/arc_lang/locals.scm | 17 + .../tree-sitter/queries/arc_lang/tags.scm | 0 arc-lang/crates/tree-sitter/src/grammar.json | 3389 + .../crates/tree-sitter/src/node-types.json | 7771 ++ arc-lang/crates/tree-sitter/src/parser.c | 84605 ++++++++++++++++ .../tree-sitter/src/tree_sitter/parser.h | 224 + arc-lang/crates/version/Cargo.toml | 14 + arc-lang/crates/version/build.rs | 3 + arc-lang/crates/version/src/lib.rs | 11 + arc-lang/crates/website/config.toml | 25 + arc-lang/crates/website/content/_index.md | 45 + arc-lang/crates/website/content/about.md | 25 + arc-lang/crates/website/content/changelog.md | 43 + .../website/content/exclude_from_nav.md | 9 + arc-lang/crates/website/content/favicon.ico | Bin 0 -> 15406 bytes .../crates/website/content/hero/_index.md | 23 + arc-lang/crates/website/content/juice.svg | 48 + arc-lang/crates/website/content/showcases.md | 127 + arc-lang/crates/website/sass/_ultility.scss | 3 + .../crates/website/templates/_variables.html | 24 + arc-lang/crates/website/templates/index.html | 120 + arc-lang/crates/website/themes/juice | 1 + arc-lang/dune-project | 4 - arc-lang/dune-wrapper | 4 - arc-lang/editor/vim/ftdetect/arc.vim | 1 - arc-lang/editor/vim/ftplugin/arc.vim | 11 - arc-lang/editor/vim/syntax/arc.vim | 92 - arc-lang/etc/Cargo.toml.template | 14 - arc-lang/examples/assign.arc | 10 - arc-lang/examples/assign.arc.rust-tests | 4 - arc-lang/examples/basic.arc | 10 - arc-lang/examples/basic.arc.rust-tests | 4 - arc-lang/examples/binopref.arc | 11 - arc-lang/examples/binopref.arc.rust-tests | 4 - arc-lang/examples/binops.arc | 34 - arc-lang/examples/binops.arc.rust-tests | 4 - arc-lang/examples/blocks.arc | 12 - arc-lang/examples/blocks.arc.rust-tests | 4 - arc-lang/examples/body.arc | 12 - arc-lang/examples/body.arc.rust-tests | 4 - arc-lang/examples/comprehensions.arc | 11 - .../examples/comprehensions.arc.rust-tests | 4 - arc-lang/examples/empty.arc | 4 - arc-lang/examples/empty.arc.rust-tests | 4 - arc-lang/examples/enum-patterns.arc | 16 - .../examples/enum-patterns.arc.rust-tests | 4 - arc-lang/examples/enum.arc | 13 - arc-lang/examples/enum.arc.rust-tests | 4 - arc-lang/examples/even-odd.arc | 16 - arc-lang/examples/even-odd.arc.rust-tests | 4 - arc-lang/examples/fail-task-map.arc | 15 - .../examples/fail-task-map.arc.rust-tests | 4 - arc-lang/examples/fib-functional.arc | 17 - .../examples/fib-functional.arc.rust-tests | 4 - arc-lang/examples/fib-imperative.arc | 21 - .../examples/fib-imperative.arc.rust-tests | 4 - arc-lang/examples/file-to-file.arc | 12 + arc-lang/examples/filter-orders.arc | 16 + arc-lang/examples/generic-enum.arc | 25 - arc-lang/examples/generic-enum.arc.rust-tests | 4 - arc-lang/examples/generic-function.arc | 13 - .../examples/generic-function.arc.rust-tests | 4 - arc-lang/examples/global.arc | 11 - arc-lang/examples/global.arc.rust-tests | 4 - arc-lang/examples/identity-function.arc | 11 - .../examples/identity-function.arc.rust-tests | 4 - arc-lang/examples/inferred.arc | 11 - arc-lang/examples/inferred.arc.rust-tests | 4 - arc-lang/examples/input/generated/numbers.csv | 100 + arc-lang/examples/input/generated/orders.csv | 64800 ++++++++++++ arc-lang/examples/input/generated/output.csv | 9 + arc-lang/examples/input/generated/prices.csv | 6760 ++ arc-lang/examples/input/random.sh | 3 + arc-lang/examples/interpolate.arc | 13 - arc-lang/examples/interpolate.arc.rust-tests | 4 - arc-lang/examples/interpreter.arc | 22 - arc-lang/examples/interpreter.arc.rust-tests | 4 - arc-lang/examples/lambda.arc | 21 - arc-lang/examples/lambda.arc.rust-tests | 4 - arc-lang/examples/lvalues.arc | 22 - arc-lang/examples/lvalues.arc.rust-tests | 4 - arc-lang/examples/manual.rs | 234 + arc-lang/examples/models/download-imagenet.py | 18 + arc-lang/examples/models/download-resnet18.py | 16 + arc-lang/examples/models/download-yolov8.py | 4 + arc-lang/examples/modules.arc | 15 - arc-lang/examples/modules.arc.rust-tests | 4 - arc-lang/examples/monoid.arc | 15 - arc-lang/examples/monoid.arc.rust-tests | 4 - arc-lang/examples/names.arc | 10 - arc-lang/examples/names.arc.rust-tests | 4 - arc-lang/examples/open-records.arc | 11 - arc-lang/examples/open-records.arc.rust-tests | 4 - arc-lang/examples/output/numbers-plus-one.csv | 100 + arc-lang/examples/overload-plus.arc | 10 - .../examples/overload-plus.arc.rust-tests | 4 - arc-lang/examples/parallelism.arc | 39 - arc-lang/examples/parallelism.arc.rust-tests | 4 - arc-lang/examples/params.arc | 8 - arc-lang/examples/params.arc.rust-tests | 4 - arc-lang/examples/paths.arc | 20 - arc-lang/examples/paths.arc.rust-tests | 4 - arc-lang/examples/placeholder.arc | 11 - arc-lang/examples/placeholder.arc.rust-tests | 4 - arc-lang/examples/pre-declaration.arc | 11 - .../examples/pre-declaration.arc.rust-tests | 4 - arc-lang/examples/predict.rs | 29 + arc-lang/examples/program.arc | 8 - arc-lang/examples/program.arc.rust-tests | 4 - arc-lang/examples/query.arc | 27 - arc-lang/examples/query.arc.rust-tests | 4 - arc-lang/examples/record-patterns.arc | 14 - .../examples/record-patterns.arc.rust-tests | 4 - arc-lang/examples/row-polymorphism-shape.arc | 17 - .../row-polymorphism-shape.arc.rust-tests | 4 - arc-lang/examples/row-polymorphism.arc | 14 - .../examples/row-polymorphism.arc.rust-tests | 4 - arc-lang/examples/shapes.arc | 20 - arc-lang/examples/shapes.arc.rust-tests | 4 - arc-lang/examples/socket-to-stdout.arc | 13 + arc-lang/examples/stdin-to-socket.arc | 13 + arc-lang/examples/stdin-to-stdout.arc | 13 + arc-lang/examples/stdio-stream.arc | 6 + arc-lang/examples/strings.arc | 33 - arc-lang/examples/strings.arc.rust-tests | 4 - .../examples/task-exception-at-consumer.arc | 27 - .../task-exception-at-consumer.arc.rust-tests | 4 - .../examples/task-exception-at-producer.arc | 30 - .../task-exception-at-producer.arc.rust-tests | 4 - arc-lang/examples/task-flow-control.arc | 23 - .../examples/task-flow-control.arc.rust-tests | 4 - arc-lang/examples/task-identity.arc | 13 - .../examples/task-identity.arc.rust-tests | 4 - arc-lang/examples/task-lambda.arc | 13 - arc-lang/examples/task-lambda.arc.rust-tests | 4 - arc-lang/examples/task-map-for.arc | 13 - arc-lang/examples/task-map-for.arc.rust-tests | 4 - arc-lang/examples/task-map.arc | 37 - arc-lang/examples/task-map.arc.rust-tests | 4 - arc-lang/examples/task-merge.arc | 18 - arc-lang/examples/task-merge.arc.rust-tests | 4 - arc-lang/examples/task-split.arc | 20 - arc-lang/examples/task-split.arc.rust-tests | 4 - arc-lang/examples/task-state.arc | 19 - arc-lang/examples/task-state.arc.rust-tests | 4 - arc-lang/examples/task-union.arc | 20 - arc-lang/examples/task-union.arc.rust-tests | 4 - arc-lang/examples/todo/operators.arc | 52 + arc-lang/examples/todo/predict.arc | 22 + arc-lang/examples/todo/scoping.arc | 29 + arc-lang/examples/todo/wordcount.arc | 13 + arc-lang/examples/tuple-patterns.arc | 11 - .../examples/tuple-patterns.arc.rust-tests | 4 - arc-lang/examples/type-alias.arc | 24 - arc-lang/examples/type-alias.arc.rust-tests | 4 - arc-lang/examples/type-class.arc | 15 - arc-lang/examples/type-class.arc.rust-tests | 4 - arc-lang/examples/types.arc | 25 - arc-lang/examples/types.arc.rust-tests | 4 - arc-lang/examples/uses.arc | 14 - arc-lang/examples/uses.arc.rust-tests | 4 - arc-lang/examples/values.arc | 20 - arc-lang/examples/values.arc.rust-tests | 4 - arc-lang/examples/vector-patterns.arc | 16 - .../examples/vector-patterns.arc.rust-tests | 4 - arc-lang/examples/vectors.arc | 52 - arc-lang/examples/vectors.arc.rust-tests | 4 - arc-lang/examples/wordcount.arc | 22 - arc-lang/lib/dune | 2 - arc-lang/src/ast.ml | 220 - arc-lang/src/ast_to_hir.ml | 1153 - arc-lang/src/debug.ml | 4 - arc-lang/src/declare.ml | 64 - arc-lang/src/dune | 9 - arc-lang/src/gen.ml | 12 - arc-lang/src/hir.ml | 224 - arc-lang/src/hir_to_mir.ml | 205 - arc-lang/src/infer.ml | 640 - arc-lang/src/lexer.mll | 184 - arc-lang/src/main.ml | 106 - arc-lang/src/main.rs | 79 + arc-lang/src/mir.ml | 78 - arc-lang/src/mir_to_mlir.ml | 335 - arc-lang/src/mir_to_rust.ml | 221 - arc-lang/src/mlir.ml | 79 - arc-lang/src/parser.mly | 406 - arc-lang/src/pretty.ml | 134 - arc-lang/src/pretty_ast.ml | 532 - arc-lang/src/pretty_hir.ml | 258 - arc-lang/src/pretty_mir.ml | 216 - arc-lang/src/pretty_mlir.ml | 300 - arc-lang/src/pretty_table.ml | 29 - arc-lang/src/table.ml | 27 - arc-lang/src/token.ml | 115 - arc-lang/src/tokens.mly | 103 - arc-lang/src/utils.ml | 104 - arc-lang/stdlib/stdlib.arc | 354 - arc-lang/test/arc_script_prototyping.ml | 0 arc-lang/test/basic.ml | 4 - arc-lang/test/dune | 2 - arc-lang/tests/verify_builtins.rs | 22 + arc-mlir/src/CMakeLists.txt | 29 +- arc-mlir/src/include/Arc/CMakeLists.txt | 4 +- arc-mlir/src/include/Arc/Types.h | 5 +- arc-mlir/src/include/Rust/Rust.h | 6 - arc-mlir/src/include/Rust/Rust.td | 21 - arc-mlir/src/include/Rust/RustPrinterStream.h | 52 +- arc-mlir/src/include/Rust/Types.h | 3 +- arc-mlir/src/lib/Arc/Dialect.cpp | 42 +- arc-mlir/src/lib/Arc/LowerToRust.cpp | 4 +- arc-mlir/src/lib/Arc/ToSCF.cpp | 3 +- arc-mlir/src/lib/Rust/Dialect.cpp | 154 +- arc-mlir/src/tests/CMakeLists.txt | 7 +- arc-mlir/src/tests/arc-to-rust/adt.mlir | 25 +- .../src/tests/arc-to-rust/adt.mlir.rust-tests | 34 +- arc-mlir/src/tests/arc-to-rust/arc-cmpf.mlir | 97 +- .../arc-to-rust/arc-cmpf.mlir.rust-tests | 1712 +- arc-mlir/src/tests/arc-to-rust/arc-cmpi.mlir | 479 +- .../arc-to-rust/arc-cmpi.mlir.rust-tests | 15106 ++- arc-mlir/src/tests/arc-to-rust/bool-ops.mlir | 4 +- .../arc-to-rust/bool-ops.mlir.rust-tests | 39 +- .../src/tests/arc-to-rust/calls-streams.mlir | 17 - .../arc-to-rust/calls-streams.mlir.rust-tests | 17 - arc-mlir/src/tests/arc-to-rust/calls.mlir | 83 +- .../tests/arc-to-rust/calls.mlir.rust-tests | 34 +- .../tests/arc-to-rust/enums.mlir.rust-tests | 39 +- .../float-tensor-arith.mlir.rust-tests | 59 - .../arc-to-rust/foreign-calls.mlir.rust-tests | 14 +- .../func-arguments.mlir.rust-tests | 15 +- .../src/tests/arc-to-rust/ifs.mlir.rust-tests | 27 +- arc-mlir/src/tests/arc-to-rust/int-arith.mlir | 399 +- .../arc-to-rust/int-arith.mlir.rust-tests | 7105 +- .../arc-to-rust/int-bitops.mlir.rust-tests | 6105 +- .../int-tensor-arith.mlir.rust-tests | 209 - arc-mlir/src/tests/arc-to-rust/loops.mlir | 10 +- .../tests/arc-to-rust/loops.mlir.rust-tests | 22 +- arc-mlir/src/tests/arc-to-rust/panic.mlir | 1 - .../tests/arc-to-rust/select.mlir.rust-tests | 13 +- arc-mlir/src/tests/arc-to-rust/simple.mlir | 8 - .../tests/arc-to-rust/simple.mlir.rust-tests | 34 +- arc-mlir/src/tests/arc-to-rust/spawn.mlir | 32 - arc-mlir/src/tests/arc-to-rust/structs.mlir | 14 - .../tests/arc-to-rust/structs.mlir.rust-tests | 21 +- .../tests/arc-to-rust/tensors.mlir.rust-tests | 46 - arc-mlir/src/tests/arc-to-rust/unary-ops.mlir | 239 +- .../arc-to-rust/unary-ops.mlir.rust-tests | 368 +- arc-mlir/src/tests/lit.cfg.py | 2 +- arc-mlir/src/tests/lit.site.cfg.py.in | 4 +- arc-mlir/src/tests/types/bad-structs.mlir | 11 - arc-mlir/src/tests/types/structs.mlir | 9 - arc-mlir/src/tools/CMakeLists.txt | 10 +- arc-mlir/src/tools/arc-mlir-rust-test.in | 22 +- arc-mlir/src/tools/arc.in | 26 +- arc-python/README.md | 0 arc-python/arclib/__init__.py | 0 arc-python/arclib/codegen.py | 94 - arc-python/arclib/context.py | 10 - arc-python/arclib/operator.py | 192 - arc-python/arclib/pipeline.py | 13 - arc-python/arclib/stream.py | 41 - arc-python/arclib/types.py | 88 - arc-python/arclib/utils.py | 80 - arc-python/setup.py | 14 - arc-python/tests/__init__.py | 0 arc-python/tests/test_stream.py | 20 - arc-report/.gitignore | 1 - arc-report/Makefile | 2 - arc-report/bibliography/references.bib | 29 - arc-report/main.tex | 100 - arc-report/sections/abstract.tex | 14 - arc-report/sections/arc-lang.tex | 36 - arc-report/sections/arc-mlir.tex | 82 - arc-report/sections/arc-runtime.tex | 1 - arc-report/sections/conclusion.tex | 1 - arc-report/sections/introduction.tex | 87 - arc-report/sections/related-work.tex | 1 - arc-runtime/.gitignore | 1 - arc-runtime/Cargo.lock | 3370 - arc-runtime/Cargo.toml | 44 - arc-runtime/examples/consensus/Cargo.toml | 13 - arc-runtime/examples/consensus/omnipaxos.conf | 6 - arc-runtime/examples/consensus/src/ble.rs | 132 - arc-runtime/examples/consensus/src/config.rs | 33 - arc-runtime/examples/consensus/src/main.rs | 64 - arc-runtime/examples/consensus/src/omni.rs | 129 - arc-runtime/examples/consensus/src/port.rs | 39 - arc-runtime/examples/consensus/src/state.rs | 14 - arc-runtime/examples/consensus/src/system.rs | 173 - arc-runtime/examples/remote/application.conf | 9 - arc-runtime/examples/remote/src/main.rs | 128 - arc-runtime/macros/Cargo.toml | 13 - arc-runtime/macros/src/lib.rs | 317 - .../src/proc_macro_attrs/rewrite/driver.rs | 49 - .../src/proc_macro_attrs/rewrite/enums.rs | 160 - .../src/proc_macro_attrs/rewrite/externs.rs | 21 - .../src/proc_macro_attrs/rewrite/functions.rs | 208 - .../src/proc_macro_attrs/rewrite/impls.rs | 48 - .../rewrite/nonpersistent_tasks.rs | 168 - .../rewrite/persistent_tasks.rs | 232 - .../src/proc_macro_attrs/rewrite/structs.rs | 152 - arc-runtime/macros/src/proc_macro_derives.rs | 158 - arc-runtime/macros/src/proc_macros.rs | 285 - arc-runtime/src/context.rs | 59 - arc-runtime/src/control.rs | 29 - arc-runtime/src/data/cells.rs | 43 - arc-runtime/src/data/channels/datagen.rs | 47 - .../src/data/channels/local/multicast.rs | 60 - .../src/data/channels/local/parallel.rs | 68 - arc-runtime/src/data/channels/local/window.rs | 2 - arc-runtime/src/data/channels/mod.rs | 44 - .../src/data/channels/remote/broadcast.rs | 161 - .../src/data/channels/remote/data_parallel.rs | 0 .../src/data/channels/remote/task_parallel.rs | 139 - .../src/data/channels/remote/window.rs | 0 arc-runtime/src/data/dataframe.rs | 48 - arc-runtime/src/data/functions.rs | 100 - arc-runtime/src/data/garbage.rs | 52 - arc-runtime/src/data/mod.rs | 68 - arc-runtime/src/data/primitives.rs | 78 - arc-runtime/src/data/series.rs | 0 arc-runtime/src/data/strings.rs | 115 - arc-runtime/src/data/vectors.rs | 145 - arc-runtime/src/lib.rs | 219 - arc-runtime/src/macros.rs | 97 - arc-runtime/src/operators.rs | 96 - arc-runtime/src/runtime.rs | 21 - arc-runtime/src/task/message.rs | 4 - arc-runtime/src/task/mod.rs | 1 - arc-runtime/tests/allocation.rs | 49 - arc-runtime/tests/basic.rs | 75 - arc-runtime/tests/closures.rs | 26 - arc-runtime/tests/context.rs | 76 - arc-runtime/tests/externs.rs | 17 - arc-runtime/tests/functions.rs | 57 - arc-runtime/tests/future.rs | 130 - arc-runtime/tests/generic_enum_rewrite.rs | 16 - arc-runtime/tests/generic_struct_rewrite.rs | 16 - arc-runtime/tests/nonpersistent_task.rs | 43 - arc-runtime/tests/persistent_task.rs | 114 - arc-runtime/tests/prost.rs | 169 - arc-runtime/tests/source_map_log.rs | 235 - arc-runtime/tests/types.rs | 106 - arc-website/Makefile | 8 - arc-website/config.toml | 34 - arc-website/content/_index.md | 54 - arc-website/content/authors/_index.md | 12 - arc-website/content/authors/segeljakt.md | 11 - arc-website/content/blog/1-introduction.md | 62 - arc-website/content/blog/_index.md | 7 - arc-website/content/privacy-policy/_index.md | 27 - arc-website/themes/adidoks | 1 - 825 files changed, 219575 insertions(+), 40579 deletions(-) create mode 100644 .github/Dockerfile delete mode 100644 arc-docs/.gitignore delete mode 100644 arc-docs/Makefile delete mode 100644 arc-docs/arc-preprocessor/Cargo.lock delete mode 100644 arc-docs/arc-preprocessor/Cargo.toml delete mode 100644 arc-docs/arc-preprocessor/src/main.rs delete mode 100644 arc-docs/book.toml delete mode 100644 arc-docs/fonts/Fira_Code_v6.2/README.txt delete mode 100644 arc-docs/fonts/Fira_Code_v6.2/SIL Open Font License.txt delete mode 100644 arc-docs/fonts/Fira_Code_v6.2/fira_code.css delete mode 100644 arc-docs/fonts/Fira_Code_v6.2/specimen.html delete mode 100644 arc-docs/fonts/Fira_Code_v6.2/woff2/FiraCode-Bold.woff2 delete mode 100644 arc-docs/fonts/Fira_Code_v6.2/woff2/FiraCode-Light.woff2 delete mode 100644 arc-docs/fonts/Fira_Code_v6.2/woff2/FiraCode-Medium.woff2 delete mode 100644 arc-docs/fonts/Fira_Code_v6.2/woff2/FiraCode-Regular.woff2 delete mode 100644 arc-docs/fonts/Fira_Code_v6.2/woff2/FiraCode-SemiBold.woff2 delete mode 100644 arc-docs/fonts/Fira_Code_v6.2/woff2/FiraCode-VF.woff2 delete mode 100644 arc-docs/fonts/computer-modern/SIL Open Font License.txt delete mode 100644 arc-docs/fonts/computer-modern/cmunbi.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmunbl.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmunbmo.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmunbmr.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmunbso.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmunbsr.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmunbtl.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmunbto.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmunbx.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmunci.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmunit.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmunobi.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmunobx.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmunorm.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmunoti.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmunrm.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmunsi.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmunsl.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmunso.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmunss.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmunssdc.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmunsx.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmuntb.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmunti.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmuntt.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmuntx.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmunui.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmunvi.woff2 delete mode 100644 arc-docs/fonts/computer-modern/cmunvt.woff2 delete mode 100644 arc-docs/src/SUMMARY.md delete mode 100644 arc-docs/src/arc-lang/Annots.md delete mode 100644 arc-docs/src/arc-lang/Assign.md delete mode 100644 arc-docs/src/arc-lang/Block.md delete mode 100644 arc-docs/src/arc-lang/Body.md delete mode 100644 arc-docs/src/arc-lang/Def.md delete mode 100644 arc-docs/src/arc-lang/Enum.md delete mode 100644 arc-docs/src/arc-lang/Expr.md delete mode 100644 arc-docs/src/arc-lang/ExternDef.md delete mode 100644 arc-docs/src/arc-lang/ExternType.md delete mode 100644 arc-docs/src/arc-lang/Generics.md delete mode 100644 arc-docs/src/arc-lang/Global.md delete mode 100644 arc-docs/src/arc-lang/Instance.md delete mode 100644 arc-docs/src/arc-lang/Item.md delete mode 100644 arc-docs/src/arc-lang/Module.md delete mode 100644 arc-docs/src/arc-lang/Name.md delete mode 100644 arc-docs/src/arc-lang/Params.md delete mode 100644 arc-docs/src/arc-lang/Path.md delete mode 100644 arc-docs/src/arc-lang/Pattern.md delete mode 100644 arc-docs/src/arc-lang/Program.md delete mode 100644 arc-docs/src/arc-lang/Query.md delete mode 100644 arc-docs/src/arc-lang/Stmt.md delete mode 100644 arc-docs/src/arc-lang/Task.md delete mode 100644 arc-docs/src/arc-lang/Type.md delete mode 100644 arc-docs/src/arc-lang/TypeAlias.md delete mode 100644 arc-docs/src/arc-lang/TypeClass.md delete mode 100644 arc-docs/src/arc-lang/Use.md delete mode 100644 arc-docs/src/arc-lang/Value.md delete mode 100644 arc-docs/src/arc-lang/mod.md delete mode 100644 arc-docs/src/command-line-interface.md delete mode 100644 arc-docs/src/dev/arc-mlir/Block.md delete mode 100644 arc-docs/src/dev/arc-mlir/Func.md delete mode 100644 arc-docs/src/dev/arc-mlir/Item.md delete mode 100644 arc-docs/src/dev/arc-mlir/Name.md delete mode 100644 arc-docs/src/dev/arc-mlir/Operation.md delete mode 100644 arc-docs/src/dev/arc-mlir/Params.md delete mode 100644 arc-docs/src/dev/arc-mlir/Program.md delete mode 100644 arc-docs/src/dev/arc-mlir/Type.md delete mode 100644 arc-docs/src/dev/arc-mlir/Value.md delete mode 100644 arc-docs/src/dev/arc-mlir/mod.md delete mode 100644 arc-docs/src/dev/arc-runtime/data-model.md delete mode 100644 arc-docs/src/dev/arc-runtime/execution-model.md delete mode 100644 arc-docs/src/dev/arc-runtime/mod.md delete mode 100644 arc-docs/src/dev/ci.md delete mode 100644 arc-docs/src/dev/mod.md delete mode 100644 arc-docs/src/examples/mod.md delete mode 100644 arc-docs/src/examples/oltp.md delete mode 100644 arc-docs/src/examples/pulse-detection.md delete mode 100644 arc-docs/src/examples/sensor-data-aggregation.md delete mode 100644 arc-docs/src/examples/tf-idf.md delete mode 100644 arc-docs/src/examples/word-count.md delete mode 100644 arc-docs/src/getting-started.md delete mode 100644 arc-docs/src/history/tasks.md delete mode 100644 arc-docs/src/images/DSL-Hierarchy.jpg delete mode 100644 arc-docs/src/introduction.md delete mode 100644 arc-docs/src/references.bib delete mode 100644 arc-docs/src/tour/basics.md delete mode 100644 arc-docs/src/tour/mod.md delete mode 100644 arc-docs/src/tour/queries.md delete mode 100644 arc-docs/src/tour/tasks.md delete mode 100644 arc-docs/theme/book.js delete mode 100644 arc-docs/theme/css/chrome.css delete mode 100644 arc-docs/theme/css/general.css delete mode 100644 arc-docs/theme/css/print.css delete mode 100644 arc-docs/theme/css/variables.css delete mode 100644 arc-docs/theme/favicon.png delete mode 100644 arc-docs/theme/favicon.svg delete mode 100644 arc-docs/theme/highlight.css delete mode 100644 arc-docs/theme/highlight.js delete mode 100644 arc-docs/theme/index.hbs create mode 100644 arc-lang/Cargo.lock create mode 100644 arc-lang/Cargo.toml delete mode 100644 arc-lang/arc_lang.opam create mode 100644 arc-lang/crates/cloud/api/Cargo.toml create mode 100644 arc-lang/crates/cloud/api/src/lib.rs create mode 100644 arc-lang/crates/cloud/client/Cargo.toml create mode 100644 arc-lang/crates/cloud/client/src/coordinator_connector.rs create mode 100644 arc-lang/crates/cloud/client/src/coordinator_rx.rs create mode 100644 arc-lang/crates/cloud/client/src/coordinator_tx.rs create mode 100644 arc-lang/crates/cloud/client/src/driver_rx.rs create mode 100644 arc-lang/crates/cloud/client/src/driver_tx.rs create mode 100644 arc-lang/crates/cloud/client/src/main.rs create mode 100644 arc-lang/crates/cloud/client/src/rest.rs create mode 100644 arc-lang/crates/cloud/client/src/server.rs create mode 100644 arc-lang/crates/cloud/coordinator/Cargo.lock create mode 100644 arc-lang/crates/cloud/coordinator/Cargo.toml create mode 100644 arc-lang/crates/cloud/coordinator/build.rs create mode 100644 arc-lang/crates/cloud/coordinator/src/client_listener.rs create mode 100644 arc-lang/crates/cloud/coordinator/src/client_rx.rs create mode 100644 arc-lang/crates/cloud/coordinator/src/client_tx.rs create mode 100644 arc-lang/crates/cloud/coordinator/src/main.rs create mode 100644 arc-lang/crates/cloud/coordinator/src/rest_listener.rs create mode 100644 arc-lang/crates/cloud/coordinator/src/server.rs create mode 100644 arc-lang/crates/cloud/coordinator/src/tls.rs create mode 100644 arc-lang/crates/cloud/coordinator/src/worker_listener.rs create mode 100644 arc-lang/crates/cloud/coordinator/src/worker_rx.rs create mode 100644 arc-lang/crates/cloud/coordinator/src/worker_tx.rs create mode 100644 arc-lang/crates/cloud/io/Cargo.toml create mode 100644 arc-lang/crates/cloud/io/src/config.rs create mode 100644 arc-lang/crates/cloud/io/src/lib.rs create mode 100644 arc-lang/crates/cloud/io/src/socket.rs create mode 100644 arc-lang/crates/cloud/io/src/tcp.rs create mode 100644 arc-lang/crates/cloud/io/src/term.rs create mode 100644 arc-lang/crates/cloud/io/src/tracing.rs create mode 100644 arc-lang/crates/cloud/query-compiler/Cargo.toml create mode 100644 arc-lang/crates/cloud/query-compiler/src/lib.rs create mode 100644 arc-lang/crates/cloud/query-compiler/src/lowering1.rs create mode 100644 arc-lang/crates/cloud/query-compiler/src/lowering2.rs create mode 100644 arc-lang/crates/cloud/query-compiler/src/lowering3.rs create mode 100644 arc-lang/crates/cloud/query-compiler/src/lowering4.rs create mode 100644 arc-lang/crates/cloud/query-compiler/src/lowering5.rs create mode 100644 arc-lang/crates/cloud/query-compiler/src/lowering6.rs create mode 100644 arc-lang/crates/cloud/query-compiler/src/lowering7.rs create mode 100644 arc-lang/crates/cloud/worker/Cargo.toml create mode 100644 arc-lang/crates/cloud/worker/build.rs create mode 100644 arc-lang/crates/cloud/worker/src/coordinator_connector.rs create mode 100644 arc-lang/crates/cloud/worker/src/coordinator_rx.rs create mode 100644 arc-lang/crates/cloud/worker/src/coordinator_tx.rs create mode 100644 arc-lang/crates/cloud/worker/src/main.rs create mode 100644 arc-lang/crates/cloud/worker/src/runtime_rx.rs create mode 100644 arc-lang/crates/cloud/worker/src/runtime_tx.rs create mode 100644 arc-lang/crates/cloud/worker/src/server.rs create mode 100644 arc-lang/crates/colors/Cargo.toml create mode 100644 arc-lang/crates/colors/src/lib.rs create mode 100644 arc-lang/crates/compiler/Cargo.toml create mode 100644 arc-lang/crates/compiler/codegen/write-ast/Cargo.toml create mode 100644 arc-lang/crates/compiler/codegen/write-ast/src/lib.rs rename {arc-runtime/examples/remote => arc-lang/crates/compiler/codegen/write-flink}/Cargo.toml (60%) create mode 100644 arc-lang/crates/compiler/codegen/write-flink/src/lib.rs create mode 100644 arc-lang/crates/compiler/codegen/write-hir/Cargo.toml create mode 100644 arc-lang/crates/compiler/codegen/write-hir/src/lib.rs create mode 100644 arc-lang/crates/compiler/codegen/write-mlir/Cargo.toml create mode 100644 arc-lang/crates/compiler/codegen/write-mlir/src/lib.rs create mode 100644 arc-lang/crates/compiler/codegen/write-rust/Cargo.toml create mode 100644 arc-lang/crates/compiler/codegen/write-rust/src/context.rs create mode 100644 arc-lang/crates/compiler/codegen/write-rust/src/lib.rs create mode 100644 arc-lang/crates/compiler/codegen/write-value/Cargo.toml create mode 100644 arc-lang/crates/compiler/codegen/write-value/src/lib.rs create mode 100644 arc-lang/crates/compiler/infra/build/Cargo.toml create mode 100644 arc-lang/crates/compiler/infra/build/src/context.rs create mode 100644 arc-lang/crates/compiler/infra/build/src/lib.rs create mode 100644 arc-lang/crates/compiler/infra/codegen/Cargo.toml create mode 100644 arc-lang/crates/compiler/infra/codegen/src/lib.rs create mode 100644 arc-lang/crates/compiler/infra/diagnostics/Cargo.toml create mode 100644 arc-lang/crates/compiler/infra/diagnostics/src/builder.rs create mode 100644 arc-lang/crates/compiler/infra/diagnostics/src/lib.rs create mode 100644 arc-lang/crates/compiler/infra/info/Cargo.toml create mode 100644 arc-lang/crates/compiler/infra/info/src/lib.rs create mode 100644 arc-lang/crates/compiler/infra/kafka/Cargo.toml create mode 100644 arc-lang/crates/compiler/infra/kafka/src/context.rs create mode 100644 arc-lang/crates/compiler/infra/kafka/src/lib.rs create mode 100644 arc-lang/crates/compiler/infra/name-gen/Cargo.toml create mode 100644 arc-lang/crates/compiler/infra/name-gen/src/lib.rs create mode 100644 arc-lang/crates/compiler/infra/sources/Cargo.toml create mode 100644 arc-lang/crates/compiler/infra/sources/src/lib.rs create mode 100644 arc-lang/crates/compiler/infra/stack/Cargo.toml create mode 100644 arc-lang/crates/compiler/infra/stack/src/lib.rs create mode 100644 arc-lang/crates/compiler/infra/utils/Cargo.toml create mode 100644 arc-lang/crates/compiler/infra/utils/src/lib.rs create mode 100644 arc-lang/crates/compiler/irs/ast/Cargo.toml create mode 100644 arc-lang/crates/compiler/irs/ast/src/lib.rs create mode 100644 arc-lang/crates/compiler/irs/ast/src/ops.rs create mode 100644 arc-lang/crates/compiler/irs/flink/Cargo.toml create mode 100644 arc-lang/crates/compiler/irs/flink/src/lib.rs create mode 100644 arc-lang/crates/compiler/irs/hir/Cargo.toml create mode 100644 arc-lang/crates/compiler/irs/hir/src/lib.rs create mode 100644 arc-lang/crates/compiler/irs/mlir/Cargo.toml create mode 100644 arc-lang/crates/compiler/irs/mlir/src/lib.rs create mode 100644 arc-lang/crates/compiler/irs/rust/Cargo.toml create mode 100644 arc-lang/crates/compiler/irs/rust/src/lib.rs create mode 100644 arc-lang/crates/compiler/irs/value/Cargo.toml create mode 100644 arc-lang/crates/compiler/irs/value/rustfmt.toml create mode 100644 arc-lang/crates/compiler/irs/value/src/conv.rs create mode 100644 arc-lang/crates/compiler/irs/value/src/de.rs create mode 100644 arc-lang/crates/compiler/irs/value/src/dynamic.rs create mode 100644 arc-lang/crates/compiler/irs/value/src/eq.rs create mode 100644 arc-lang/crates/compiler/irs/value/src/hash.rs create mode 100644 arc-lang/crates/compiler/irs/value/src/lib.rs create mode 100644 arc-lang/crates/compiler/irs/value/src/ord.rs create mode 100644 arc-lang/crates/compiler/irs/value/src/ser.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/Cargo.toml create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/rustfmt.toml create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/aggregator.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/array.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/blob.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/bool.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/char.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/dataflow.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/dict.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/discretizer.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/duration.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/encoding.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/f32.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/f64.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/file.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/function.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/i128.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/i16.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/i32.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/i64.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/i8.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/instance.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/keyed_stream.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/matrix.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/mod.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/model.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/never.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/option.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/path.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/reader.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/record.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/result.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/socket.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/stream.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/string.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/time.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/time_source.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/tuple.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/u128.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/u16.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/u32.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/u64.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/u8.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/unit.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/url.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/usize.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/variant.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/vec.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/declarations/writer.rs create mode 100644 arc-lang/crates/compiler/passes/ast-prelude/src/lib.rs rename arc-lang/{stdlib/stdlib.mlir => crates/compiler/passes/ast-prelude/src/prelude.mlir} (100%) create mode 100644 arc-lang/crates/compiler/passes/ast-to-hir/Cargo.toml create mode 100644 arc-lang/crates/compiler/passes/ast-to-hir/src/context.rs create mode 100644 arc-lang/crates/compiler/passes/ast-to-hir/src/lib.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/Cargo.toml create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/context.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/aggregator.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/array.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/blob.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/bool.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/char.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/dataflow.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/discretizer.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/duration.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/encoding.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/f32.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/f64.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/file.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/function.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/i16.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/i32.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/i64.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/i8.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/instance.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/keyed_stream.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/matrix.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/mod.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/model.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/never.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/option.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/path.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/reader.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/record.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/result.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/socket.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/stream.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/string.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/time.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/time_source.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/tuple.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/u16.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/u32.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/u64.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/u8.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/unit.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/url.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/usize.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/variant.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/vec.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/writer.rs create mode 100644 arc-lang/crates/compiler/passes/hir-interpreter/src/lib.rs create mode 100644 arc-lang/crates/compiler/passes/hir-lambda-lift/Cargo.toml create mode 100644 arc-lang/crates/compiler/passes/hir-lambda-lift/src/context.rs create mode 100644 arc-lang/crates/compiler/passes/hir-lambda-lift/src/lib.rs create mode 100644 arc-lang/crates/compiler/passes/hir-monomorphise/Cargo.toml create mode 100644 arc-lang/crates/compiler/passes/hir-monomorphise/src/context.rs create mode 100644 arc-lang/crates/compiler/passes/hir-monomorphise/src/lib.rs create mode 100644 arc-lang/crates/compiler/passes/hir-patcomp/Cargo.toml create mode 100644 arc-lang/crates/compiler/passes/hir-patcomp/src/context.rs create mode 100644 arc-lang/crates/compiler/passes/hir-patcomp/src/lib.rs create mode 100644 arc-lang/crates/compiler/passes/hir-reachable/Cargo.toml create mode 100644 arc-lang/crates/compiler/passes/hir-reachable/src/context.rs create mode 100644 arc-lang/crates/compiler/passes/hir-reachable/src/lib.rs create mode 100644 arc-lang/crates/compiler/passes/hir-to-flink/Cargo.toml create mode 100644 arc-lang/crates/compiler/passes/hir-to-flink/src/lib.rs create mode 100644 arc-lang/crates/compiler/passes/hir-to-mlir/Cargo.toml create mode 100644 arc-lang/crates/compiler/passes/hir-to-mlir/src/context.rs create mode 100644 arc-lang/crates/compiler/passes/hir-to-mlir/src/lib.rs create mode 100644 arc-lang/crates/compiler/passes/hir-to-rust/Cargo.toml create mode 100644 arc-lang/crates/compiler/passes/hir-to-rust/src/context.rs create mode 100644 arc-lang/crates/compiler/passes/hir-to-rust/src/lib.rs create mode 100644 arc-lang/crates/compiler/passes/hir-type-inference/Cargo.toml create mode 100644 arc-lang/crates/compiler/passes/hir-type-inference/src/context.rs create mode 100644 arc-lang/crates/compiler/passes/hir-type-inference/src/lib.rs create mode 100644 arc-lang/crates/compiler/passes/lexer/Cargo.toml create mode 100644 arc-lang/crates/compiler/passes/lexer/src/lib.rs create mode 100644 arc-lang/crates/compiler/passes/lexer/src/tokens.rs create mode 100644 arc-lang/crates/compiler/passes/ll-parser/Cargo.toml create mode 100644 arc-lang/crates/compiler/passes/ll-parser/src/main.rs create mode 100644 arc-lang/crates/compiler/passes/parser/Cargo.toml create mode 100644 arc-lang/crates/compiler/passes/parser/build.rs create mode 100644 arc-lang/crates/compiler/passes/parser/src/context.rs create mode 100644 arc-lang/crates/compiler/passes/parser/src/error.rs create mode 100644 arc-lang/crates/compiler/passes/parser/src/grammar.lalrpop create mode 100644 arc-lang/crates/compiler/passes/parser/src/lib.rs create mode 100644 arc-lang/crates/compiler/src/lib.rs create mode 100644 arc-lang/crates/config/Cargo.toml create mode 100644 arc-lang/crates/config/src/lib.rs create mode 100644 arc-lang/crates/logging/Cargo.toml create mode 100644 arc-lang/crates/logging/src/lib.rs create mode 100644 arc-lang/crates/manager/Cargo.toml create mode 100644 arc-lang/crates/manager/src/lib.rs create mode 100644 arc-lang/crates/repl/Cargo.toml create mode 100644 arc-lang/crates/repl/completer/Cargo.toml create mode 100644 arc-lang/crates/repl/completer/src/lib.rs create mode 100644 arc-lang/crates/repl/highlighter/Cargo.toml create mode 100644 arc-lang/crates/repl/highlighter/src/lib.rs create mode 100644 arc-lang/crates/repl/src/context.rs create mode 100644 arc-lang/crates/repl/src/helper/hinter.rs create mode 100644 arc-lang/crates/repl/src/helper/mod.rs create mode 100644 arc-lang/crates/repl/src/lib.rs create mode 100644 arc-lang/crates/repl/validator/Cargo.toml create mode 100644 arc-lang/crates/repl/validator/src/lib.rs create mode 100644 arc-lang/crates/runtime/Cargo.toml create mode 100644 arc-lang/crates/runtime/builtins/.cargo/config create mode 100644 arc-lang/crates/runtime/builtins/Cargo.toml create mode 100644 arc-lang/crates/runtime/builtins/src/aggregator.rs create mode 100644 arc-lang/crates/runtime/builtins/src/array.rs create mode 100644 arc-lang/crates/runtime/builtins/src/blob.rs create mode 100644 arc-lang/crates/runtime/builtins/src/cow.rs create mode 100644 arc-lang/crates/runtime/builtins/src/dataflow.rs create mode 100644 arc-lang/crates/runtime/builtins/src/dataframe.rs create mode 100644 arc-lang/crates/runtime/builtins/src/dict.rs create mode 100644 arc-lang/crates/runtime/builtins/src/discretizer.rs create mode 100644 arc-lang/crates/runtime/builtins/src/duration.rs create mode 100644 arc-lang/crates/runtime/builtins/src/encoding.rs create mode 100644 arc-lang/crates/runtime/builtins/src/file.rs create mode 100644 arc-lang/crates/runtime/builtins/src/image.rs create mode 100644 arc-lang/crates/runtime/builtins/src/iterator.rs create mode 100644 arc-lang/crates/runtime/builtins/src/keyed_stream.rs create mode 100644 arc-lang/crates/runtime/builtins/src/lib.rs create mode 100644 arc-lang/crates/runtime/builtins/src/matrix.rs create mode 100644 arc-lang/crates/runtime/builtins/src/model.rs create mode 100644 arc-lang/crates/runtime/builtins/src/option.rs create mode 100644 arc-lang/crates/runtime/builtins/src/path.rs create mode 100644 arc-lang/crates/runtime/builtins/src/reader.rs create mode 100644 arc-lang/crates/runtime/builtins/src/result.rs create mode 100644 arc-lang/crates/runtime/builtins/src/set.rs create mode 100644 arc-lang/crates/runtime/builtins/src/socket.rs create mode 100644 arc-lang/crates/runtime/builtins/src/stream.rs create mode 100644 arc-lang/crates/runtime/builtins/src/string.rs create mode 100644 arc-lang/crates/runtime/builtins/src/time.rs create mode 100644 arc-lang/crates/runtime/builtins/src/time_source.rs create mode 100644 arc-lang/crates/runtime/builtins/src/traits.rs create mode 100644 arc-lang/crates/runtime/builtins/src/url.rs create mode 100644 arc-lang/crates/runtime/builtins/src/vec.rs create mode 100644 arc-lang/crates/runtime/builtins/src/writer.rs create mode 100644 arc-lang/crates/runtime/formats/Cargo.toml create mode 100644 arc-lang/crates/runtime/formats/src/csv/de.rs create mode 100644 arc-lang/crates/runtime/formats/src/csv/ser.rs create mode 100644 arc-lang/crates/runtime/formats/src/json/de.rs create mode 100644 arc-lang/crates/runtime/formats/src/json/ser.rs create mode 100644 arc-lang/crates/runtime/formats/src/lib.rs rename {arc-runtime => arc-lang/crates/runtime}/macros/Cargo.lock (100%) create mode 100644 arc-lang/crates/runtime/macros/Cargo.toml create mode 100644 arc-lang/crates/runtime/macros/src/lib.rs create mode 100644 arc-lang/crates/runtime/macros/src/proc_macro_attrs.rs create mode 100644 arc-lang/crates/runtime/macros/src/proc_macro_attrs/export/functions.rs create mode 100644 arc-lang/crates/runtime/macros/src/proc_macro_attrs/export/impls.rs create mode 100644 arc-lang/crates/runtime/macros/src/proc_macro_attrs/rewrite/enums.rs create mode 100644 arc-lang/crates/runtime/macros/src/proc_macro_attrs/rewrite/externs.rs create mode 100644 arc-lang/crates/runtime/macros/src/proc_macro_attrs/rewrite/functions.rs create mode 100644 arc-lang/crates/runtime/macros/src/proc_macro_attrs/rewrite/main.rs create mode 100644 arc-lang/crates/runtime/macros/src/proc_macro_attrs/rewrite/structs.rs create mode 100644 arc-lang/crates/runtime/macros/src/proc_macro_derives.rs create mode 100644 arc-lang/crates/runtime/macros/src/proc_macros.rs create mode 100644 arc-lang/crates/runtime/macros/src/utils.rs create mode 100644 arc-lang/crates/runtime/runner/Cargo.toml create mode 100644 arc-lang/crates/runtime/runner/src/lib.rs create mode 100644 arc-lang/crates/runtime/src/lib.rs create mode 100644 arc-lang/crates/runtime/state/Cargo.toml create mode 100644 arc-lang/crates/runtime/state/src/lib.rs create mode 100644 arc-lang/crates/runtime/timer/Cargo.toml create mode 100644 arc-lang/crates/runtime/timer/src/lib.rs create mode 100644 arc-lang/crates/tree-sitter/.gitignore create mode 100644 arc-lang/crates/tree-sitter/Cargo.lock create mode 100644 arc-lang/crates/tree-sitter/Cargo.toml create mode 100644 arc-lang/crates/tree-sitter/binding.gyp create mode 100644 arc-lang/crates/tree-sitter/bindings/node/binding.cc create mode 100644 arc-lang/crates/tree-sitter/bindings/node/index.js create mode 100644 arc-lang/crates/tree-sitter/bindings/rust/build.rs create mode 100644 arc-lang/crates/tree-sitter/bindings/rust/lib.rs create mode 100644 arc-lang/crates/tree-sitter/build/Makefile create mode 100644 arc-lang/crates/tree-sitter/build/Release/.deps/Release/obj.target/tree_sitter_arclang_binding/bindings/node/binding.o.d create mode 100644 arc-lang/crates/tree-sitter/build/Release/.deps/Release/obj.target/tree_sitter_arclang_binding/src/parser.o.d create mode 100644 arc-lang/crates/tree-sitter/build/Release/.deps/Release/tree_sitter_arclang_binding.node.d create mode 100644 arc-lang/crates/tree-sitter/build/Release/obj.target/tree_sitter_arclang_binding/bindings/node/binding.o create mode 100644 arc-lang/crates/tree-sitter/build/Release/obj.target/tree_sitter_arclang_binding/src/parser.o create mode 100755 arc-lang/crates/tree-sitter/build/Release/tree_sitter_arclang_binding.node create mode 100644 arc-lang/crates/tree-sitter/build/binding.Makefile create mode 100644 arc-lang/crates/tree-sitter/build/config.gypi create mode 100755 arc-lang/crates/tree-sitter/build/gyp-mac-tool create mode 120000 arc-lang/crates/tree-sitter/build/node_gyp_bins/python3 create mode 100644 arc-lang/crates/tree-sitter/build/tree_sitter_arclang_binding.target.mk create mode 100644 arc-lang/crates/tree-sitter/grammar.js create mode 100644 arc-lang/crates/tree-sitter/package.json create mode 100755 arc-lang/crates/tree-sitter/parser/arclang.so create mode 100644 arc-lang/crates/tree-sitter/queries/arc_lang/highlights.scm create mode 100644 arc-lang/crates/tree-sitter/queries/arc_lang/injections.scm create mode 100644 arc-lang/crates/tree-sitter/queries/arc_lang/locals.scm rename arc-docs/src/history/mod.md => arc-lang/crates/tree-sitter/queries/arc_lang/tags.scm (100%) create mode 100644 arc-lang/crates/tree-sitter/src/grammar.json create mode 100644 arc-lang/crates/tree-sitter/src/node-types.json create mode 100644 arc-lang/crates/tree-sitter/src/parser.c create mode 100644 arc-lang/crates/tree-sitter/src/tree_sitter/parser.h create mode 100644 arc-lang/crates/version/Cargo.toml create mode 100644 arc-lang/crates/version/build.rs create mode 100644 arc-lang/crates/version/src/lib.rs create mode 100644 arc-lang/crates/website/config.toml create mode 100644 arc-lang/crates/website/content/_index.md create mode 100644 arc-lang/crates/website/content/about.md create mode 100644 arc-lang/crates/website/content/changelog.md create mode 100644 arc-lang/crates/website/content/exclude_from_nav.md create mode 100644 arc-lang/crates/website/content/favicon.ico create mode 100644 arc-lang/crates/website/content/hero/_index.md create mode 100644 arc-lang/crates/website/content/juice.svg create mode 100644 arc-lang/crates/website/content/showcases.md create mode 100644 arc-lang/crates/website/sass/_ultility.scss create mode 100644 arc-lang/crates/website/templates/_variables.html create mode 100644 arc-lang/crates/website/templates/index.html create mode 160000 arc-lang/crates/website/themes/juice delete mode 100644 arc-lang/dune-project delete mode 100755 arc-lang/dune-wrapper delete mode 100644 arc-lang/editor/vim/ftdetect/arc.vim delete mode 100644 arc-lang/editor/vim/ftplugin/arc.vim delete mode 100644 arc-lang/editor/vim/syntax/arc.vim delete mode 100644 arc-lang/etc/Cargo.toml.template delete mode 100644 arc-lang/examples/assign.arc delete mode 100644 arc-lang/examples/assign.arc.rust-tests delete mode 100644 arc-lang/examples/basic.arc delete mode 100644 arc-lang/examples/basic.arc.rust-tests delete mode 100644 arc-lang/examples/binopref.arc delete mode 100644 arc-lang/examples/binopref.arc.rust-tests delete mode 100644 arc-lang/examples/binops.arc delete mode 100644 arc-lang/examples/binops.arc.rust-tests delete mode 100644 arc-lang/examples/blocks.arc delete mode 100644 arc-lang/examples/blocks.arc.rust-tests delete mode 100644 arc-lang/examples/body.arc delete mode 100644 arc-lang/examples/body.arc.rust-tests delete mode 100644 arc-lang/examples/comprehensions.arc delete mode 100644 arc-lang/examples/comprehensions.arc.rust-tests delete mode 100644 arc-lang/examples/empty.arc delete mode 100644 arc-lang/examples/empty.arc.rust-tests delete mode 100644 arc-lang/examples/enum-patterns.arc delete mode 100644 arc-lang/examples/enum-patterns.arc.rust-tests delete mode 100644 arc-lang/examples/enum.arc delete mode 100644 arc-lang/examples/enum.arc.rust-tests delete mode 100644 arc-lang/examples/even-odd.arc delete mode 100644 arc-lang/examples/even-odd.arc.rust-tests delete mode 100644 arc-lang/examples/fail-task-map.arc delete mode 100644 arc-lang/examples/fail-task-map.arc.rust-tests delete mode 100644 arc-lang/examples/fib-functional.arc delete mode 100644 arc-lang/examples/fib-functional.arc.rust-tests delete mode 100644 arc-lang/examples/fib-imperative.arc delete mode 100644 arc-lang/examples/fib-imperative.arc.rust-tests create mode 100644 arc-lang/examples/file-to-file.arc create mode 100644 arc-lang/examples/filter-orders.arc delete mode 100644 arc-lang/examples/generic-enum.arc delete mode 100644 arc-lang/examples/generic-enum.arc.rust-tests delete mode 100644 arc-lang/examples/generic-function.arc delete mode 100644 arc-lang/examples/generic-function.arc.rust-tests delete mode 100644 arc-lang/examples/global.arc delete mode 100644 arc-lang/examples/global.arc.rust-tests delete mode 100644 arc-lang/examples/identity-function.arc delete mode 100644 arc-lang/examples/identity-function.arc.rust-tests delete mode 100644 arc-lang/examples/inferred.arc delete mode 100644 arc-lang/examples/inferred.arc.rust-tests create mode 100644 arc-lang/examples/input/generated/numbers.csv create mode 100644 arc-lang/examples/input/generated/orders.csv create mode 100644 arc-lang/examples/input/generated/output.csv create mode 100644 arc-lang/examples/input/generated/prices.csv create mode 100755 arc-lang/examples/input/random.sh delete mode 100644 arc-lang/examples/interpolate.arc delete mode 100644 arc-lang/examples/interpolate.arc.rust-tests delete mode 100644 arc-lang/examples/interpreter.arc delete mode 100644 arc-lang/examples/interpreter.arc.rust-tests delete mode 100644 arc-lang/examples/lambda.arc delete mode 100644 arc-lang/examples/lambda.arc.rust-tests delete mode 100644 arc-lang/examples/lvalues.arc delete mode 100644 arc-lang/examples/lvalues.arc.rust-tests create mode 100644 arc-lang/examples/manual.rs create mode 100644 arc-lang/examples/models/download-imagenet.py create mode 100644 arc-lang/examples/models/download-resnet18.py create mode 100644 arc-lang/examples/models/download-yolov8.py delete mode 100644 arc-lang/examples/modules.arc delete mode 100644 arc-lang/examples/modules.arc.rust-tests delete mode 100644 arc-lang/examples/monoid.arc delete mode 100644 arc-lang/examples/monoid.arc.rust-tests delete mode 100644 arc-lang/examples/names.arc delete mode 100644 arc-lang/examples/names.arc.rust-tests delete mode 100644 arc-lang/examples/open-records.arc delete mode 100644 arc-lang/examples/open-records.arc.rust-tests create mode 100644 arc-lang/examples/output/numbers-plus-one.csv delete mode 100644 arc-lang/examples/overload-plus.arc delete mode 100644 arc-lang/examples/overload-plus.arc.rust-tests delete mode 100644 arc-lang/examples/parallelism.arc delete mode 100644 arc-lang/examples/parallelism.arc.rust-tests delete mode 100644 arc-lang/examples/params.arc delete mode 100644 arc-lang/examples/params.arc.rust-tests delete mode 100644 arc-lang/examples/paths.arc delete mode 100644 arc-lang/examples/paths.arc.rust-tests delete mode 100644 arc-lang/examples/placeholder.arc delete mode 100644 arc-lang/examples/placeholder.arc.rust-tests delete mode 100644 arc-lang/examples/pre-declaration.arc delete mode 100644 arc-lang/examples/pre-declaration.arc.rust-tests create mode 100644 arc-lang/examples/predict.rs delete mode 100644 arc-lang/examples/program.arc delete mode 100644 arc-lang/examples/program.arc.rust-tests delete mode 100644 arc-lang/examples/query.arc delete mode 100644 arc-lang/examples/query.arc.rust-tests delete mode 100644 arc-lang/examples/record-patterns.arc delete mode 100644 arc-lang/examples/record-patterns.arc.rust-tests delete mode 100644 arc-lang/examples/row-polymorphism-shape.arc delete mode 100644 arc-lang/examples/row-polymorphism-shape.arc.rust-tests delete mode 100644 arc-lang/examples/row-polymorphism.arc delete mode 100644 arc-lang/examples/row-polymorphism.arc.rust-tests delete mode 100644 arc-lang/examples/shapes.arc delete mode 100644 arc-lang/examples/shapes.arc.rust-tests create mode 100644 arc-lang/examples/socket-to-stdout.arc create mode 100644 arc-lang/examples/stdin-to-socket.arc create mode 100644 arc-lang/examples/stdin-to-stdout.arc create mode 100644 arc-lang/examples/stdio-stream.arc delete mode 100644 arc-lang/examples/strings.arc delete mode 100644 arc-lang/examples/strings.arc.rust-tests delete mode 100644 arc-lang/examples/task-exception-at-consumer.arc delete mode 100644 arc-lang/examples/task-exception-at-consumer.arc.rust-tests delete mode 100644 arc-lang/examples/task-exception-at-producer.arc delete mode 100644 arc-lang/examples/task-exception-at-producer.arc.rust-tests delete mode 100644 arc-lang/examples/task-flow-control.arc delete mode 100644 arc-lang/examples/task-flow-control.arc.rust-tests delete mode 100644 arc-lang/examples/task-identity.arc delete mode 100644 arc-lang/examples/task-identity.arc.rust-tests delete mode 100644 arc-lang/examples/task-lambda.arc delete mode 100644 arc-lang/examples/task-lambda.arc.rust-tests delete mode 100644 arc-lang/examples/task-map-for.arc delete mode 100644 arc-lang/examples/task-map-for.arc.rust-tests delete mode 100644 arc-lang/examples/task-map.arc delete mode 100644 arc-lang/examples/task-map.arc.rust-tests delete mode 100644 arc-lang/examples/task-merge.arc delete mode 100644 arc-lang/examples/task-merge.arc.rust-tests delete mode 100644 arc-lang/examples/task-split.arc delete mode 100644 arc-lang/examples/task-split.arc.rust-tests delete mode 100644 arc-lang/examples/task-state.arc delete mode 100644 arc-lang/examples/task-state.arc.rust-tests delete mode 100644 arc-lang/examples/task-union.arc delete mode 100644 arc-lang/examples/task-union.arc.rust-tests create mode 100644 arc-lang/examples/todo/operators.arc create mode 100644 arc-lang/examples/todo/predict.arc create mode 100644 arc-lang/examples/todo/scoping.arc create mode 100644 arc-lang/examples/todo/wordcount.arc delete mode 100644 arc-lang/examples/tuple-patterns.arc delete mode 100644 arc-lang/examples/tuple-patterns.arc.rust-tests delete mode 100644 arc-lang/examples/type-alias.arc delete mode 100644 arc-lang/examples/type-alias.arc.rust-tests delete mode 100644 arc-lang/examples/type-class.arc delete mode 100644 arc-lang/examples/type-class.arc.rust-tests delete mode 100644 arc-lang/examples/types.arc delete mode 100644 arc-lang/examples/types.arc.rust-tests delete mode 100644 arc-lang/examples/uses.arc delete mode 100644 arc-lang/examples/uses.arc.rust-tests delete mode 100644 arc-lang/examples/values.arc delete mode 100644 arc-lang/examples/values.arc.rust-tests delete mode 100644 arc-lang/examples/vector-patterns.arc delete mode 100644 arc-lang/examples/vector-patterns.arc.rust-tests delete mode 100644 arc-lang/examples/vectors.arc delete mode 100644 arc-lang/examples/vectors.arc.rust-tests delete mode 100644 arc-lang/examples/wordcount.arc delete mode 100644 arc-lang/lib/dune delete mode 100644 arc-lang/src/ast.ml delete mode 100644 arc-lang/src/ast_to_hir.ml delete mode 100644 arc-lang/src/debug.ml delete mode 100644 arc-lang/src/declare.ml delete mode 100644 arc-lang/src/dune delete mode 100644 arc-lang/src/gen.ml delete mode 100644 arc-lang/src/hir.ml delete mode 100644 arc-lang/src/hir_to_mir.ml delete mode 100644 arc-lang/src/infer.ml delete mode 100644 arc-lang/src/lexer.mll delete mode 100644 arc-lang/src/main.ml create mode 100644 arc-lang/src/main.rs delete mode 100644 arc-lang/src/mir.ml delete mode 100644 arc-lang/src/mir_to_mlir.ml delete mode 100644 arc-lang/src/mir_to_rust.ml delete mode 100644 arc-lang/src/mlir.ml delete mode 100644 arc-lang/src/parser.mly delete mode 100644 arc-lang/src/pretty.ml delete mode 100644 arc-lang/src/pretty_ast.ml delete mode 100644 arc-lang/src/pretty_hir.ml delete mode 100644 arc-lang/src/pretty_mir.ml delete mode 100644 arc-lang/src/pretty_mlir.ml delete mode 100644 arc-lang/src/pretty_table.ml delete mode 100644 arc-lang/src/table.ml delete mode 100644 arc-lang/src/token.ml delete mode 100644 arc-lang/src/tokens.mly delete mode 100644 arc-lang/src/utils.ml delete mode 100644 arc-lang/stdlib/stdlib.arc delete mode 100644 arc-lang/test/arc_script_prototyping.ml delete mode 100644 arc-lang/test/basic.ml delete mode 100644 arc-lang/test/dune create mode 100644 arc-lang/tests/verify_builtins.rs delete mode 100644 arc-mlir/src/tests/arc-to-rust/calls-streams.mlir delete mode 100644 arc-mlir/src/tests/arc-to-rust/calls-streams.mlir.rust-tests delete mode 100644 arc-mlir/src/tests/arc-to-rust/float-tensor-arith.mlir.rust-tests delete mode 100644 arc-mlir/src/tests/arc-to-rust/int-tensor-arith.mlir.rust-tests delete mode 100644 arc-mlir/src/tests/arc-to-rust/spawn.mlir delete mode 100644 arc-mlir/src/tests/arc-to-rust/tensors.mlir.rust-tests delete mode 100644 arc-python/README.md delete mode 100644 arc-python/arclib/__init__.py delete mode 100644 arc-python/arclib/codegen.py delete mode 100644 arc-python/arclib/context.py delete mode 100644 arc-python/arclib/operator.py delete mode 100644 arc-python/arclib/pipeline.py delete mode 100644 arc-python/arclib/stream.py delete mode 100644 arc-python/arclib/types.py delete mode 100644 arc-python/arclib/utils.py delete mode 100644 arc-python/setup.py delete mode 100644 arc-python/tests/__init__.py delete mode 100644 arc-python/tests/test_stream.py delete mode 100644 arc-report/.gitignore delete mode 100644 arc-report/Makefile delete mode 100644 arc-report/bibliography/references.bib delete mode 100644 arc-report/main.tex delete mode 100644 arc-report/sections/abstract.tex delete mode 100644 arc-report/sections/arc-lang.tex delete mode 100644 arc-report/sections/arc-mlir.tex delete mode 100644 arc-report/sections/arc-runtime.tex delete mode 100644 arc-report/sections/conclusion.tex delete mode 100644 arc-report/sections/introduction.tex delete mode 100644 arc-report/sections/related-work.tex delete mode 100644 arc-runtime/.gitignore delete mode 100644 arc-runtime/Cargo.lock delete mode 100644 arc-runtime/Cargo.toml delete mode 100644 arc-runtime/examples/consensus/Cargo.toml delete mode 100644 arc-runtime/examples/consensus/omnipaxos.conf delete mode 100644 arc-runtime/examples/consensus/src/ble.rs delete mode 100644 arc-runtime/examples/consensus/src/config.rs delete mode 100644 arc-runtime/examples/consensus/src/main.rs delete mode 100644 arc-runtime/examples/consensus/src/omni.rs delete mode 100644 arc-runtime/examples/consensus/src/port.rs delete mode 100644 arc-runtime/examples/consensus/src/state.rs delete mode 100644 arc-runtime/examples/consensus/src/system.rs delete mode 100644 arc-runtime/examples/remote/application.conf delete mode 100644 arc-runtime/examples/remote/src/main.rs delete mode 100644 arc-runtime/macros/Cargo.toml delete mode 100644 arc-runtime/macros/src/lib.rs delete mode 100644 arc-runtime/macros/src/proc_macro_attrs/rewrite/driver.rs delete mode 100644 arc-runtime/macros/src/proc_macro_attrs/rewrite/enums.rs delete mode 100644 arc-runtime/macros/src/proc_macro_attrs/rewrite/externs.rs delete mode 100644 arc-runtime/macros/src/proc_macro_attrs/rewrite/functions.rs delete mode 100644 arc-runtime/macros/src/proc_macro_attrs/rewrite/impls.rs delete mode 100644 arc-runtime/macros/src/proc_macro_attrs/rewrite/nonpersistent_tasks.rs delete mode 100644 arc-runtime/macros/src/proc_macro_attrs/rewrite/persistent_tasks.rs delete mode 100644 arc-runtime/macros/src/proc_macro_attrs/rewrite/structs.rs delete mode 100644 arc-runtime/macros/src/proc_macro_derives.rs delete mode 100644 arc-runtime/macros/src/proc_macros.rs delete mode 100644 arc-runtime/src/context.rs delete mode 100644 arc-runtime/src/control.rs delete mode 100644 arc-runtime/src/data/cells.rs delete mode 100644 arc-runtime/src/data/channels/datagen.rs delete mode 100644 arc-runtime/src/data/channels/local/multicast.rs delete mode 100644 arc-runtime/src/data/channels/local/parallel.rs delete mode 100644 arc-runtime/src/data/channels/local/window.rs delete mode 100644 arc-runtime/src/data/channels/mod.rs delete mode 100644 arc-runtime/src/data/channels/remote/broadcast.rs delete mode 100644 arc-runtime/src/data/channels/remote/data_parallel.rs delete mode 100644 arc-runtime/src/data/channels/remote/task_parallel.rs delete mode 100644 arc-runtime/src/data/channels/remote/window.rs delete mode 100644 arc-runtime/src/data/dataframe.rs delete mode 100644 arc-runtime/src/data/functions.rs delete mode 100644 arc-runtime/src/data/garbage.rs delete mode 100644 arc-runtime/src/data/mod.rs delete mode 100644 arc-runtime/src/data/primitives.rs delete mode 100644 arc-runtime/src/data/series.rs delete mode 100644 arc-runtime/src/data/strings.rs delete mode 100644 arc-runtime/src/data/vectors.rs delete mode 100644 arc-runtime/src/lib.rs delete mode 100644 arc-runtime/src/macros.rs delete mode 100644 arc-runtime/src/operators.rs delete mode 100644 arc-runtime/src/runtime.rs delete mode 100644 arc-runtime/src/task/message.rs delete mode 100644 arc-runtime/src/task/mod.rs delete mode 100644 arc-runtime/tests/allocation.rs delete mode 100644 arc-runtime/tests/basic.rs delete mode 100644 arc-runtime/tests/closures.rs delete mode 100644 arc-runtime/tests/context.rs delete mode 100644 arc-runtime/tests/externs.rs delete mode 100644 arc-runtime/tests/functions.rs delete mode 100644 arc-runtime/tests/future.rs delete mode 100644 arc-runtime/tests/generic_enum_rewrite.rs delete mode 100644 arc-runtime/tests/generic_struct_rewrite.rs delete mode 100644 arc-runtime/tests/nonpersistent_task.rs delete mode 100644 arc-runtime/tests/persistent_task.rs delete mode 100644 arc-runtime/tests/prost.rs delete mode 100644 arc-runtime/tests/source_map_log.rs delete mode 100644 arc-runtime/tests/types.rs delete mode 100644 arc-website/Makefile delete mode 100644 arc-website/config.toml delete mode 100644 arc-website/content/_index.md delete mode 100644 arc-website/content/authors/_index.md delete mode 100644 arc-website/content/authors/segeljakt.md delete mode 100644 arc-website/content/blog/1-introduction.md delete mode 100644 arc-website/content/blog/_index.md delete mode 100644 arc-website/content/privacy-policy/_index.md delete mode 160000 arc-website/themes/adidoks diff --git a/.github/Dockerfile b/.github/Dockerfile new file mode 100644 index 000000000..d628a1af5 --- /dev/null +++ b/.github/Dockerfile @@ -0,0 +1,26 @@ +FROM ubuntu:18.04 + +# Add repos +RUN sudo apt update +RUN sudo apt install software-properties-common +RUN add-apt-repository ppa:avsm/ppa + +RUN sudo apt update +RUN sudo apt install -y clang libssl-dev ninja-build wget make curl opam + +# Install OCaml +RUN opam init -y --disable-sandboxing +RUN eval $(opam config env) +RUN opam install -y dune core menhir + +# Install CMAKE +RUN wget https://github.com/Kitware/CMake/releases/download/v3.23.1/cmake-3.23.1.tar.gz +RUN tar -xf cmake-3.23.1.tar.gz +RUN cd cmake-3.23.1 +RUN ./configure +RUN make +RUN make install + +# Install Rust +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | \ + sh -s -- --default-toolchain nightly -y diff --git a/.github/continuous-integration.sh b/.github/continuous-integration.sh index 8a25baf5e..58a7f4fdb 100755 --- a/.github/continuous-integration.sh +++ b/.github/continuous-integration.sh @@ -58,8 +58,8 @@ function run-mlir-tests { run-step ninja -C $ARC_MLIR_BUILD/llvm-build/ check-arc-mlir } -function run-runtime-tests { - cd arc-runtime +function run-lang-tests { + cd arc-lang run-step arc-cargo "$@" } @@ -123,8 +123,8 @@ case $1 in ;; cargo) - # We assume this is a arc-runtime cargo command line + # We assume this is a arc-sys cargo command line shift - run-runtime-tests "$@" + run-sys-tests "$@" ;; esac diff --git a/.github/workflows/arc-mlir-broken-links.yml b/.github/workflows/arc-mlir-broken-links.yml index 32910510e..7074f9c1f 100644 --- a/.github/workflows/arc-mlir-broken-links.yml +++ b/.github/workflows/arc-mlir-broken-links.yml @@ -11,7 +11,7 @@ jobs: steps: - name: Checkout source - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Update submodule run: git submodule update --force --init --recursive diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 6c02d4ba3..523b22d7e 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -15,11 +15,11 @@ env: jobs: build-deploy: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: Checkout source - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Update apt index run: sudo apt-get update @@ -29,44 +29,66 @@ jobs: - name: Install Cargo nightly uses: actions-rs/toolchain@v1 with: - toolchain: nightly + toolchain: stable override: true - - name: Cache arc-preprocessor - id: cache-arc-preprocessor - uses: actions/cache@v2 + - name: Cache mdbook-arc-lang + id: cache-mdbook-arc-lang + uses: actions/cache@v3 with: - path: arc-docs/arc-preprocessor/target - key: ${{ runner.os }}-cargo-${{ hashFiles('arc-docs/arc-preprocessor/**') }} + path: ~/.cargo/bin/mdbook-arc-lang + key: ${{ runner.os }}-${{ hashFiles('arc-lang/crates/book/mdbook-arc-lang/**') }} + + - name: Cache mdbook-grammar + id: cache-mdbook-grammar + uses: actions/cache@v3 + with: + path: ~/.cargo/bin/mdbook-grammar + key: ${{ runner.os }}-${{ hashFiles('arc-lang/crates/book/mdbook-grammar/**') }} + + - name: Cache mdbook-exec + id: cache-mdbook-exec + uses: actions/cache@v3 + with: + path: ~/.cargo/bin/mdbook-exec + key: ${{ runner.os }}-${{ hashFiles('arc-lang/crates/book/mdbook-exec/**') }} - name: Cache mdbook-bib id: cache-mdbook-bib - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.cargo/bin/mdbook-bib - key: ${{ runner.os }}-cargo-${{ env.MDBOOK_BIB_VERSION }} + key: ${{ runner.os }}-${{ env.MDBOOK_BIB_VERSION }} - name: Cache mdbook-linkcheck id: cache-mdbook-linkcheck - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.cargo/bin/mdbook-linkcheck - key: ${{ runner.os }}-cargo-${{ env.MDBOOK_LINKCHECK_VERSION }} + key: ${{ runner.os }}-${{ env.MDBOOK_LINKCHECK_VERSION }} - name: Cache zola id: cache-zola - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.cargo/bin/zola - key: ${{ runner.os }}-cargo-${{ env.ZOLA_VERSION }} + key: ${{ runner.os }}-${{ env.ZOLA_VERSION }} - - name: Build arc-preprocessor - if: steps.cache-arc-preprocessor.outputs.cache-hit != 'true' - run: cargo build --manifest-path arc-docs/arc-preprocessor/Cargo.toml + - name: Build mdbook-arc-lang + if: steps.cache-mdbook-arc-lang.outputs.cache-hit != 'true' + run: cargo install --path arc-lang/crates/book/mdbook-arc-lang + + - name: Build mdbook-grammar + if: steps.cache-mdbook-grammar.outputs.cache-hit != 'true' + run: cargo install --path arc-lang/crates/book/mdbook-grammar + + - name: Build mdbook-exec + if: steps.cache-mdbook-exec.outputs.cache-hit != 'true' + run: cargo install --path arc-lang/crates/book/mdbook-exec - name: Build mdbook-bib if: steps.cache-mdbook-bib.outputs.cache-hit != 'true' - run: cargo install mdbook-bib --version=${{ env.MDBOOK_BIB_VERSION }} + run: cargo install mdbook-bib --version=${{ env.MDBOOK_BIB_VERSION }} --features="log/max_level_warn" - name: Build mdbook-linkcheck if: steps.cache-mdbook-linkcheck.outputs.cache-hit != 'true' @@ -74,46 +96,26 @@ jobs: - name: Build zola if: steps.cache-zola.outputs.cache-hit != 'true' - run: | - git clone https://github.com/getzola/zola.git - git -C zola checkout ad6c83412391dd748d4a9d8f3a0568687e73a447 - cargo install --path=zola --version=${{ env.ZOLA_VERSION }} zola - - # ---- arc-report ---- - - - name: Install LaTeX dependencies - run: sudo apt-get install texlive-xetex latexmk texlive-bibtex-extra biber - - - name: Build arc-report - run: make -C arc-report - - # ---- arc-docs ---- - - - name: Setup mdbook - uses: peaceiris/actions-mdbook@v1 - with: - mdbook-version: '0.4.15' - - - name: Build arc-docs - run: make -C arc-docs build + run: cargo install --git https://github.com/getzola/zola.git \ + --rev ad6c83412391dd748d4a9d8f3a0568687e73a447 \ + --version=${{ env.ZOLA_VERSION }} - # ---- arc-website ---- + # ---- website ---- - - name: Move artifacts to arc-website + - name: Move book to website run: | - mkdir arc-website/static - mv arc-report/target/main.pdf arc-website/static/Arc-Report.pdf - mv arc-docs/target/html arc-website/static/docs + mkdir -p arc-lang/crates/website/zola/static + mv arc-lang/target/mdbook/target/html arc-lang/crates/website/zola/static/book - - name: Update arc-website theme submodule + - name: Update website theme submodule run: | - git submodule update --init arc-website/themes/adidoks - mkdir -p arc-website/templates - cp arc-website/themes/adidoks/templates/blog/page.html \ - arc-website/templates/blog.html + git submodule update --init arc-lang/crates/website/zola/themes/adidoks + mkdir -p arc-lang/crates/website/zola/templates + cp arc-lang/crates/website/zola/themes/adidoks/templates/blog/page.html \ + arc-lang/crates/website/zola/templates/blog.html - - name: Build arc-website - run: make -C arc-website build + - name: Build website + run: cargo run --manifest-path arc-lang/Cargo.toml --package=website - name: Deploy to gh-pages uses: peaceiris/actions-gh-pages@v3 @@ -123,5 +125,5 @@ jobs: github.ref == 'refs/heads/master' with: deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }} - publish_dir: arc-website/target + publish_dir: arc-lang/target/website force_orphan: true diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6d13bcc9e..ad44b73af 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,7 +20,7 @@ jobs: # target: x86_64-apple-darwin steps: - name: Checkout source - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: submodules: 'recursive' @@ -44,7 +44,7 @@ jobs: mv README.md "$package" mv arc-mlir/build/llvm-build/bin/{arc,arc-lang,arc-mlir} "$package/bin" - mv {arc-runtime,arc-lang/stdlib} "$package/share" + mv {arc-lang/stdlib} "$package/share" tar cvf "$package.tar" "$package" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 725a9f613..6a158a04b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -5,8 +5,6 @@ on: paths: - "arc-lang/**" - "arc-mlir/**" - - "arc-runtime/**" - - "arc-python/**" - "build" - ".github/workflows/test.yml" branches: @@ -25,7 +23,7 @@ jobs: # Checkout branch which we want to test - name: Checkout source - uses: actions/checkout@v2 + uses: actions/checkout@v3 # Update LLVM dependency - name: Update submodule @@ -41,29 +39,14 @@ jobs: env: ARC_MLIR_BUILD: ${{ format('{0}/build', runner.temp) }} - - name: Pre-build arc-runtime - run: ./.github/continuous-integration.sh cargo test - env: - ARC_MLIR_BUILD: ${{ format('{0}/build', runner.temp) }} - - name: Run MLIR tests run: ./.github/continuous-integration.sh run-mlir-tests env: ARC_MLIR_BUILD: ${{ format('{0}/build', runner.temp) }} - - name: "Run arc-runtime test: clippy" - run: ./.github/continuous-integration.sh cargo clippy - env: - ARC_MLIR_BUILD: ${{ format('{0}/build', runner.temp) }} - - name: "Ccache/Sccache statistics" run: ./.github/continuous-integration.sh check-ccache -# - name: "Run arc-runtime test: fmt -- -v --check" -# run: ./.github/continuous-integration.sh cargo fmt -- -v --check -# env: -# ARC_MLIR_BUILD: ${{ format('{0}/build', runner.temp) }} - - name: Check for dirty tree run: ./check-for-dirty-tree diff --git a/.gitignore b/.gitignore index 51900d951..922652e9f 100644 --- a/.gitignore +++ b/.gitignore @@ -163,3 +163,9 @@ book/ # zola static/ + +# JavaScript +node_modules/ + +arc-lang/examples/input/csv +arc-lang/examples/input/jpg diff --git a/.gitmodules b/.gitmodules index 3b14c27ef..1601a64e0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,6 +7,6 @@ [submodule "arc-mlir/corrosion"] path = arc-mlir/src/corrosion url = https://github.com/AndrewGaspar/corrosion.git -[submodule "arc-website/themes/adidoks"] - path = arc-website/themes/adidoks - url = https://github.com/aaranxu/adidoks.git +[submodule "arc-lang/crates/website/themes/juice"] + path = arc-lang/crates/website/themes/juice + url = https://github.com/huhu/juice.git diff --git a/README.md b/README.md index 9d192728e..0f66769d1 100644 --- a/README.md +++ b/README.md @@ -11,47 +11,23 @@ OCaml (and dune), Rust (and cargo), and C++ (and CMake and Ninja). ## Examples -A basic streaming word-count application can be written in functional-style as follows: -``` -val wordcounts = lines - .flatmap(_.split(" ")) - .keyby(_) - .window( - length = 10min, - stride = 3min - ) - .count() -``` - -The same code can also be written using a more declarative, relational-style, syntax. This concept is borrowed from [Morel](https://github.com/julianhyde/morel) and applied to streaming data. +A streaming word-count application can be implemented in Arc-Lang as follows. ``` -val wordcounts = - from - line in lines, - word in line.split(" ") - keyby word - window - length = 10min - stride = 3min - reduce count - identity 1; +def main() = + from line: String in source(topic: "text"), + word in line.split(" ") { + group word + window count as w { + length 10min + step 3min + compute count + } + select {word, w.count} + into sink(topic: "wordcount") + } ``` -## Feature highlights - -* Statically typed with global type inference. -* Parametric polymorphism (generics and rows) and ad-hoc polymorphism (type classes). -* Mix of functional syntax, imperative control-flow/mutation, and relational operators. -* Algebraic data types. -* First-class data streams. -* Complex event processing using tasks. -* Window-based computation. -* Low-level compilation and distributed execution. -* Command-line interface for data ingestion. - -Note: All features have not yet been implemented :) - ## Installation ```bash @@ -71,13 +47,7 @@ git submodule update --init --recursive * [`arc-lang`](https://github.com/cda-group/arc/tree/master/arc-lang) - A compiler for Arc-Lang. * [`arc-mlir`](https://github.com/cda-group/arc/tree/master/arc-mlir) - An optimizer for Arc-Lang. -* [`arc-runtime`](https://github.com/cda-group/arc/tree/master/arc-runtime) - A local runtime which supports the execution of Arc-Lang programs. -* [`arc-python`](https://github.com/cda-group/arc/tree/master/arc-python) - A Python library for writing Arc-Lang applications. - -## Related Projects - -* [`arcon`](https://github.com/cda-group/arcon) - A distributed runtime which will support execution of Arc-Lang. -* [`kompact`](https://github.com/kompics/kompact) - A component-actor middleware which Arc-Runtime and Arcon are both implemented in. +* [`arc-sys`](https://github.com/cda-group/arc/tree/master/arc-sys) - A distributed system for executing Arc-Lang programs. ## Other diff --git a/arc-docs/.gitignore b/arc-docs/.gitignore deleted file mode 100644 index 2f7896d1d..000000000 --- a/arc-docs/.gitignore +++ /dev/null @@ -1 +0,0 @@ -target/ diff --git a/arc-docs/Makefile b/arc-docs/Makefile deleted file mode 100644 index 3c36d173c..000000000 --- a/arc-docs/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -all: - cargo doc --document-private-items --no-deps --target-dir=src/target --manifest-path=../arc-runtime/Cargo.toml - cargo doc --document-private-items --no-deps --target-dir=src/target --manifest-path=../arc-runtime/macros/Cargo.toml - mdbook build - -build: - mdbook build diff --git a/arc-docs/arc-preprocessor/Cargo.lock b/arc-docs/arc-preprocessor/Cargo.lock deleted file mode 100644 index ef473a8f1..000000000 --- a/arc-docs/arc-preprocessor/Cargo.lock +++ /dev/null @@ -1,1881 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "aho-corasick" -version = "0.7.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" -dependencies = [ - "memchr", -] - -[[package]] -name = "ammonia" -version = "3.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee7d6eb157f337c5cedc95ddf17f0cbc36d36eb7763c8e0d1c1aeb3722f6279" -dependencies = [ - "html5ever", - "lazy_static", - "maplit", - "markup5ever_rcdom", - "matches", - "tendril", - "url", -] - -[[package]] -name = "ansi_term" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" -dependencies = [ - "winapi 0.3.9", -] - -[[package]] -name = "anyhow" -version = "1.0.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b" - -[[package]] -name = "arc-preprocessor" -version = "0.1.0" -dependencies = [ - "anyhow", - "clap 2.33.3", - "mdbook", - "regex", - "serde_json", -] - -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi", - "libc", - "winapi 0.3.9", -] - -[[package]] -name = "autocfg" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" - -[[package]] -name = "base64" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" - -[[package]] -name = "bitflags" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" - -[[package]] -name = "block-buffer" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" -dependencies = [ - "block-padding", - "byte-tools", - "byteorder", - "generic-array 0.12.4", -] - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array 0.14.4", -] - -[[package]] -name = "block-padding" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" -dependencies = [ - "byte-tools", -] - -[[package]] -name = "bstr" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a40b47ad93e1a5404e6c18dec46b628214fee441c70f4ab5d6942142cc268a3d" -dependencies = [ - "lazy_static", - "memchr", - "regex-automata", -] - -[[package]] -name = "byte-tools" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" - -[[package]] -name = "byteorder" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" - -[[package]] -name = "bytes" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040" - -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chrono" -version = "0.4.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" -dependencies = [ - "libc", - "num-integer", - "num-traits", - "time", - "winapi 0.3.9", -] - -[[package]] -name = "clap" -version = "2.33.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002" -dependencies = [ - "ansi_term", - "atty", - "bitflags", - "strsim 0.8.0", - "textwrap 0.11.0", - "unicode-width", - "vec_map", -] - -[[package]] -name = "clap" -version = "3.2.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86447ad904c7fb335a790c9d7fe3d0d971dc523b8ccd1561a520de9a85302750" -dependencies = [ - "atty", - "bitflags", - "clap_lex", - "indexmap", - "once_cell", - "strsim 0.10.0", - "termcolor", - "textwrap 0.15.1", -] - -[[package]] -name = "clap_complete" -version = "3.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f7a2e0a962c45ce25afce14220bc24f9dade0a1787f185cecf96bfba7847cd8" -dependencies = [ - "clap 3.2.22", -] - -[[package]] -name = "clap_lex" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" -dependencies = [ - "os_str_bytes", -] - -[[package]] -name = "cpuid-bool" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634" - -[[package]] -name = "digest" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" -dependencies = [ - "generic-array 0.12.4", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array 0.14.4", -] - -[[package]] -name = "elasticlunr-rs" -version = "3.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b94d9c8df0fe6879ca12e7633fdfe467c503722cc981fc463703472d2b876448" -dependencies = [ - "regex", - "serde", - "serde_derive", - "serde_json", -] - -[[package]] -name = "env_logger" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c90bf5f19754d10198ccb95b70664fc925bd1fc090a0fd9a6ebc54acc8cd6272" -dependencies = [ - "atty", - "humantime", - "log", - "regex", - "termcolor", -] - -[[package]] -name = "fake-simd" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" - -[[package]] -name = "filetime" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d34cfa13a63ae058bfa601fe9e313bbdb3746427c1459185464ce0fcf62e1e8" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "redox_syscall", - "winapi 0.3.9", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "form_urlencoded" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" -dependencies = [ - "matches", - "percent-encoding", -] - -[[package]] -name = "fsevent" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6" -dependencies = [ - "bitflags", - "fsevent-sys", -] - -[[package]] -name = "fsevent-sys" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f41b048a94555da0f42f1d632e2e19510084fb8e303b0daa2816e733fb3644a0" -dependencies = [ - "libc", -] - -[[package]] -name = "fuchsia-zircon" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" -dependencies = [ - "bitflags", - "fuchsia-zircon-sys", -] - -[[package]] -name = "fuchsia-zircon-sys" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" - -[[package]] -name = "futf" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c9c1ce3fa9336301af935ab852c437817d14cd33690446569392e65170aac3b" -dependencies = [ - "mac", - "new_debug_unreachable", -] - -[[package]] -name = "futures-channel" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fc8cd39e3dbf865f7340dce6a2d401d24fd37c6fe6c4f0ee0de8bfca2252d27" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "629316e42fe7c2a0b9a65b47d159ceaa5453ab14e8f0a3c5eedbb8cd55b4a445" - -[[package]] -name = "futures-macro" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668c6733a182cd7deb4f1de7ba3bf2120823835b3bcfbeacf7d2c4a773c1bb8b" -dependencies = [ - "proc-macro-hack", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "futures-sink" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "996c6442437b62d21a32cd9906f9c41e7dc1e19a9579843fad948696769305af" - -[[package]] -name = "futures-task" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba7aa51095076f3ba6d9a1f702f74bd05ec65f555d70d2033d55ba8d69f581bc" - -[[package]] -name = "futures-util" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c144ad54d60f23927f0a6b6d816e4271278b64f005ad65e4e35291d2de9c025" -dependencies = [ - "futures-core", - "futures-macro", - "futures-sink", - "futures-task", - "pin-project-lite", - "pin-utils", - "proc-macro-hack", - "proc-macro-nested", - "slab", -] - -[[package]] -name = "generic-array" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" -dependencies = [ - "typenum", -] - -[[package]] -name = "generic-array" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", -] - -[[package]] -name = "getrandom" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "wasi 0.10.2+wasi-snapshot-preview1", -] - -[[package]] -name = "gitignore" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78aa90e4620c1498ac434c06ba6e521b525794bbdacf085d490cc794b4a2f9a4" -dependencies = [ - "glob", -] - -[[package]] -name = "glob" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" - -[[package]] -name = "h2" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fd819562fcebdac5afc5c113c3ec36f902840b70fd4fc458799c8ce4607ae55" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "handlebars" -version = "4.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167fa173496c9eadd8749cca6f8339ac88e248f3ad2442791d0b743318a94fc0" -dependencies = [ - "log", - "pest", - "pest_derive", - "quick-error", - "serde", - "serde_json", -] - -[[package]] -name = "hashbrown" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" - -[[package]] -name = "headers" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0b7591fb62902706ae8e7aaff416b1b0fa2c0fd0878b46dc13baa3712d8a855" -dependencies = [ - "base64", - "bitflags", - "bytes", - "headers-core", - "http", - "mime", - "sha-1 0.9.4", - "time", -] - -[[package]] -name = "headers-core" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" -dependencies = [ - "http", -] - -[[package]] -name = "hermit-abi" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" -dependencies = [ - "libc", -] - -[[package]] -name = "html5ever" -version = "0.25.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aafcf38a1a36118242d29b92e1b08ef84e67e4a5ed06e0a80be20e6a32bfed6b" -dependencies = [ - "log", - "mac", - "markup5ever", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "http" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527e8c9ac747e28542699a951517aa9a6945af506cd1f2e1b53a576c17b6cc11" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a1ce40d6fc9764887c2fdc7305c3dcc429ba11ff981c1509416afd5697e4437" - -[[package]] -name = "httpdate" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" - -[[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" - -[[package]] -name = "hyper" -version = "0.14.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b61cf2d1aebcf6e6352c97b81dc2244ca29194be1b276f5d8ad5c6330fffb11" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "idna" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" -dependencies = [ - "matches", - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "indexmap" -version = "1.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3" -dependencies = [ - "autocfg", - "hashbrown", -] - -[[package]] -name = "inotify" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4816c66d2c8ae673df83366c18341538f234a26d65a9ecea5c348b453ac1d02f" -dependencies = [ - "bitflags", - "inotify-sys", - "libc", -] - -[[package]] -name = "inotify-sys" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" -dependencies = [ - "libc", -] - -[[package]] -name = "iovec" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" -dependencies = [ - "libc", -] - -[[package]] -name = "itoa" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" - -[[package]] -name = "kernel32-sys" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" -dependencies = [ - "winapi 0.2.8", - "winapi-build", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - -[[package]] -name = "libc" -version = "0.2.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98a04dce437184842841303488f70d0188c5f51437d2a834dc097eafa909a01" - -[[package]] -name = "log" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "mac" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" - -[[package]] -name = "maplit" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" - -[[package]] -name = "markup5ever" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd" -dependencies = [ - "log", - "phf", - "phf_codegen", - "string_cache", - "string_cache_codegen", - "tendril", -] - -[[package]] -name = "markup5ever_rcdom" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f015da43bcd8d4f144559a3423f4591d69b8ce0652c905374da7205df336ae2b" -dependencies = [ - "html5ever", - "markup5ever", - "tendril", - "xml5ever", -] - -[[package]] -name = "matches" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" - -[[package]] -name = "mdbook" -version = "0.4.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23f3e133c6d515528745ffd3b9f0c7d975ae039f0b6abb099f2168daa2afb4f9" -dependencies = [ - "ammonia", - "anyhow", - "chrono", - "clap 3.2.22", - "clap_complete", - "elasticlunr-rs", - "env_logger", - "futures-util", - "gitignore", - "handlebars", - "lazy_static", - "log", - "memchr", - "notify", - "opener", - "pulldown-cmark", - "regex", - "serde", - "serde_json", - "shlex", - "tempfile", - "tokio", - "toml", - "topological-sort", - "warp", -] - -[[package]] -name = "memchr" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" - -[[package]] -name = "mime" -version = "0.3.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" - -[[package]] -name = "mime_guess" -version = "2.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212" -dependencies = [ - "mime", - "unicase", -] - -[[package]] -name = "mio" -version = "0.6.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" -dependencies = [ - "cfg-if 0.1.10", - "fuchsia-zircon", - "fuchsia-zircon-sys", - "iovec", - "kernel32-sys", - "libc", - "log", - "miow 0.2.2", - "net2", - "slab", - "winapi 0.2.8", -] - -[[package]] -name = "mio" -version = "0.7.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc" -dependencies = [ - "libc", - "log", - "miow 0.3.7", - "ntapi", - "winapi 0.3.9", -] - -[[package]] -name = "mio-extras" -version = "2.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" -dependencies = [ - "lazycell", - "log", - "mio 0.6.23", - "slab", -] - -[[package]] -name = "miow" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" -dependencies = [ - "kernel32-sys", - "net2", - "winapi 0.2.8", - "ws2_32-sys", -] - -[[package]] -name = "miow" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" -dependencies = [ - "winapi 0.3.9", -] - -[[package]] -name = "net2" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae" -dependencies = [ - "cfg-if 0.1.10", - "libc", - "winapi 0.3.9", -] - -[[package]] -name = "new_debug_unreachable" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" - -[[package]] -name = "notify" -version = "4.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2599080e87c9bd051ddb11b10074f4da7b1223298df65d4c2ec5bcf309af1533" -dependencies = [ - "bitflags", - "filetime", - "fsevent", - "fsevent-sys", - "inotify", - "libc", - "mio 0.6.23", - "mio-extras", - "walkdir", - "winapi 0.3.9", -] - -[[package]] -name = "ntapi" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44" -dependencies = [ - "winapi 0.3.9", -] - -[[package]] -name = "num-integer" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" -dependencies = [ - "autocfg", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "once_cell" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" - -[[package]] -name = "opaque-debug" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" - -[[package]] -name = "opaque-debug" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" - -[[package]] -name = "opener" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea3ebcd72a54701f56345f16785a6d3ac2df7e986d273eb4395c0b01db17952" -dependencies = [ - "bstr", - "winapi 0.3.9", -] - -[[package]] -name = "os_str_bytes" -version = "6.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff" - -[[package]] -name = "percent-encoding" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" - -[[package]] -name = "pest" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" -dependencies = [ - "ucd-trie", -] - -[[package]] -name = "pest_derive" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0" -dependencies = [ - "pest", - "pest_generator", -] - -[[package]] -name = "pest_generator" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55" -dependencies = [ - "pest", - "pest_meta", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "pest_meta" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d" -dependencies = [ - "maplit", - "pest", - "sha-1 0.8.2", -] - -[[package]] -name = "phf" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" -dependencies = [ - "phf_shared", -] - -[[package]] -name = "phf_codegen" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" -dependencies = [ - "phf_generator", - "phf_shared", -] - -[[package]] -name = "phf_generator" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" -dependencies = [ - "phf_shared", - "rand 0.7.3", -] - -[[package]] -name = "phf_shared" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" -dependencies = [ - "siphasher", -] - -[[package]] -name = "pin-project" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7509cc106041c40a4518d2af7a61530e1eed0e6285296a3d8c5472806ccc4a4" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c950132583b500556b1efd71d45b319029f2b71518d979fcc208e16b42426f" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "ppv-lite86" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" - -[[package]] -name = "precomputed-hash" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" - -[[package]] -name = "proc-macro-hack" -version = "0.5.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" - -[[package]] -name = "proc-macro-nested" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" - -[[package]] -name = "proc-macro2" -version = "1.0.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec" -dependencies = [ - "unicode-xid", -] - -[[package]] -name = "pulldown-cmark" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34f197a544b0c9ab3ae46c359a7ec9cbbb5c7bf97054266fecb7ead794a181d6" -dependencies = [ - "bitflags", - "memchr", - "unicase", -] - -[[package]] -name = "quick-error" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ac73b1112776fc109b2e61909bc46c7e1bf0d7f690ffb1676553acce16d5cda" - -[[package]] -name = "quote" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc 0.2.0", - "rand_pcg", -] - -[[package]] -name = "rand" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e" -dependencies = [ - "libc", - "rand_chacha 0.3.0", - "rand_core 0.6.2", - "rand_hc 0.3.0", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", -] - -[[package]] -name = "rand_chacha" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.2", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", -] - -[[package]] -name = "rand_core" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7" -dependencies = [ - "getrandom 0.2.2", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "rand_hc" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" -dependencies = [ - "rand_core 0.6.2", -] - -[[package]] -name = "rand_pcg" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "redox_syscall" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8270314b5ccceb518e7e578952f0b72b88222d02e8f77f5ecf7abbb673539041" -dependencies = [ - "bitflags", -] - -[[package]] -name = "regex" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" - -[[package]] -name = "regex-syntax" -version = "0.6.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" - -[[package]] -name = "remove_dir_all" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi 0.3.9", -] - -[[package]] -name = "ryu" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "scoped-tls" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" - -[[package]] -name = "serde" -version = "1.0.125" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "558dc50e1a5a5fa7112ca2ce4effcb321b0300c0d4ccf0776a9f60cd89031171" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.125" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edfa57a7f8d9c1d260a549e7224100f6c43d43f9103e06dd8b4095a9b2b43ce9" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "sha-1" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" -dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug 0.2.3", -] - -[[package]] -name = "sha-1" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfebf75d25bd900fd1e7d11501efab59bc846dbc76196839663e6637bba9f25f" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if 1.0.0", - "cpuid-bool", - "digest 0.9.0", - "opaque-debug 0.3.0", -] - -[[package]] -name = "shlex" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42a568c8f2cd051a4d283bd6eb0343ac214c1b0f1ac19f93e1175b2dee38c73d" - -[[package]] -name = "siphasher" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbce6d4507c7e4a3962091436e56e95290cb71fa302d0d270e32130b75fbff27" - -[[package]] -name = "slab" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527" - -[[package]] -name = "socket2" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516" -dependencies = [ - "libc", - "winapi 0.3.9", -] - -[[package]] -name = "string_cache" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ddb1139b5353f96e429e1a5e19fbaf663bddedaa06d1dbd49f82e352601209a" -dependencies = [ - "lazy_static", - "new_debug_unreachable", - "phf_shared", - "precomputed-hash", - "serde", -] - -[[package]] -name = "string_cache_codegen" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f24c8e5e19d22a726626f1a5e16fe15b132dcf21d10177fa5a45ce7962996b97" -dependencies = [ - "phf_generator", - "phf_shared", - "proc-macro2", - "quote", -] - -[[package]] -name = "strsim" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "syn" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48fe99c6bd8b1cc636890bcc071842de909d902c81ac7dab53ba33c421ab8ffb" -dependencies = [ - "proc-macro2", - "quote", - "unicode-xid", -] - -[[package]] -name = "tempfile" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "rand 0.8.3", - "redox_syscall", - "remove_dir_all", - "winapi 0.3.9", -] - -[[package]] -name = "tendril" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9ef557cb397a4f0a5a3a628f06515f78563f2209e64d47055d9dc6052bf5e33" -dependencies = [ - "futf", - "mac", - "utf-8", -] - -[[package]] -name = "termcolor" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "textwrap" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" -dependencies = [ - "unicode-width", -] - -[[package]] -name = "textwrap" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "949517c0cf1bf4ee812e2e07e08ab448e3ae0d23472aee8a06c985f0c8815b16" - -[[package]] -name = "thiserror" -version = "1.0.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "time" -version = "0.1.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" -dependencies = [ - "libc", - "winapi 0.3.9", -] - -[[package]] -name = "tinyvec" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b5220f05bb7de7f3f53c7c065e1199b3172696fe2db9f9c4d8ad9b4ee74c342" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" - -[[package]] -name = "tokio" -version = "1.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e992e41e0d2fb9f755b37446f20900f64446ef54874f40a60c78f021ac6144" -dependencies = [ - "autocfg", - "bytes", - "libc", - "memchr", - "mio 0.7.14", - "num_cpus", - "pin-project-lite", - "tokio-macros", - "winapi 0.3.9", -] - -[[package]] -name = "tokio-macros" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9efc1aba077437943f7515666aa2b882dfabfbfdf89c819ea75a8d6e9eaba5e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tokio-stream" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50145484efff8818b5ccd256697f36863f587da82cf8b409c53adf1e840798e3" -dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "511de3f85caf1c98983545490c3d09685fa8eb634e57eec22bb4db271f46cbd8" -dependencies = [ - "futures-util", - "log", - "pin-project", - "tokio", - "tungstenite", -] - -[[package]] -name = "tokio-util" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "log", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "toml" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" -dependencies = [ - "serde", -] - -[[package]] -name = "topological-sort" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa7c7f42dea4b1b99439786f5633aeb9c14c1b53f75e282803c2ec2ad545873c" - -[[package]] -name = "tower-service" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" - -[[package]] -name = "tracing" -version = "0.1.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01ebdc2bb4498ab1ab5f5b73c5803825e60199229ccba0698170e3be0e7f959f" -dependencies = [ - "cfg-if 1.0.0", - "log", - "pin-project-lite", - "tracing-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "try-lock" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" - -[[package]] -name = "tungstenite" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0b2d8558abd2e276b0a8df5c05a2ec762609344191e5fd23e292c910e9165b5" -dependencies = [ - "base64", - "byteorder", - "bytes", - "http", - "httparse", - "log", - "rand 0.8.3", - "sha-1 0.9.4", - "thiserror", - "url", - "utf-8", -] - -[[package]] -name = "typenum" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879f6906492a7cd215bfa4cf595b600146ccfac0c79bcbd1f3000162af5e8b06" - -[[package]] -name = "ucd-trie" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" - -[[package]] -name = "unicase" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" -dependencies = [ - "version_check", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeb8be209bb1c96b7c177c7420d26e04eccacb0eeae6b980e35fcb74678107e0" -dependencies = [ - "matches", -] - -[[package]] -name = "unicode-normalization" -version = "0.1.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07fbfce1c8a97d547e8b5334978438d9d6ec8c20e38f56d4a4374d181493eaef" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-width" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" - -[[package]] -name = "unicode-xid" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" - -[[package]] -name = "url" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ccd964113622c8e9322cfac19eb1004a07e636c545f325da085d5cdde6f1f8b" -dependencies = [ - "form_urlencoded", - "idna", - "matches", - "percent-encoding", -] - -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - -[[package]] -name = "vec_map" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" - -[[package]] -name = "version_check" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe" - -[[package]] -name = "walkdir" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" -dependencies = [ - "same-file", - "winapi 0.3.9", - "winapi-util", -] - -[[package]] -name = "want" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" -dependencies = [ - "log", - "try-lock", -] - -[[package]] -name = "warp" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cef4e1e9114a4b7f1ac799f16ce71c14de5778500c5450ec6b7b920c55b587e" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "headers", - "http", - "hyper", - "log", - "mime", - "mime_guess", - "percent-encoding", - "pin-project", - "scoped-tls", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-stream", - "tokio-tungstenite", - "tokio-util", - "tower-service", - "tracing", -] - -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - -[[package]] -name = "wasi" -version = "0.10.2+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" - -[[package]] -name = "winapi" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-build" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -dependencies = [ - "winapi 0.3.9", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "ws2_32-sys" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" -dependencies = [ - "winapi 0.2.8", - "winapi-build", -] - -[[package]] -name = "xml5ever" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b1b52e6e8614d4a58b8e70cf51ec0cc21b256ad8206708bcff8139b5bbd6a59" -dependencies = [ - "log", - "mac", - "markup5ever", - "time", -] diff --git a/arc-docs/arc-preprocessor/Cargo.toml b/arc-docs/arc-preprocessor/Cargo.toml deleted file mode 100644 index 339d9fa02..000000000 --- a/arc-docs/arc-preprocessor/Cargo.toml +++ /dev/null @@ -1,12 +0,0 @@ -[package] -name = "arc-preprocessor" -version = "0.1.0" -authors = ["Klas Segeljakt "] -edition = "2018" - -[dependencies] -regex = "1.5.4" -mdbook = "0.4.21" -serde_json = "1.0.64" -anyhow = "1.0.40" -clap = "2.33.3" diff --git a/arc-docs/arc-preprocessor/src/main.rs b/arc-docs/arc-preprocessor/src/main.rs deleted file mode 100644 index e63a7b172..000000000 --- a/arc-docs/arc-preprocessor/src/main.rs +++ /dev/null @@ -1,191 +0,0 @@ -use clap::{App, Arg, ArgMatches, SubCommand}; -use mdbook::book::Book; -use mdbook::errors::Error; -use mdbook::preprocess::{CmdPreprocessor, Preprocessor, PreprocessorContext}; -use std::io; -use std::process; - -pub fn make_app() -> App<'static, 'static> { - App::new("arc-preprocessor") - .about("A mdbook preprocessor for arc") - .subcommand( - SubCommand::with_name("supports") - .arg(Arg::with_name("renderer").required(true)) - .about("Check whether a renderer is supported by this preprocessor"), - ) -} - -fn main() { - let matches = make_app().get_matches(); - - let preprocessor = ArcLang::new(); - - if let Some(sub_args) = matches.subcommand_matches("supports") { - handle_supports(&preprocessor, sub_args); - } else if let Err(e) = handle_preprocessing(&preprocessor) { - eprintln!("{}", e); - process::exit(1); - } -} - -fn handle_preprocessing(pre: &dyn Preprocessor) -> Result<(), Error> { - let (ctx, book) = CmdPreprocessor::parse_input(io::stdin())?; - - if ctx.mdbook_version != mdbook::MDBOOK_VERSION { - eprintln!( - "Warning: The {} plugin was built against version {} of mdbook, \ - but we're being called from version {}", - pre.name(), - mdbook::MDBOOK_VERSION, - ctx.mdbook_version - ); - } - - let processed_book = pre.run(&ctx, book)?; - serde_json::to_writer(io::stdout(), &processed_book)?; - - Ok(()) -} - -fn handle_supports(pre: &dyn Preprocessor, sub_args: &ArgMatches) -> ! { - let renderer = sub_args.value_of("renderer").expect("Required argument"); - let supported = pre.supports_renderer(&renderer); - - if supported { - process::exit(0); - } else { - process::exit(1); - } -} - -pub struct ArcLang; - -impl ArcLang { - pub fn new() -> ArcLang { - ArcLang - } -} - -const KEYWORDS: &[&str] = &[ - "and", "or", "xor", "band", "bor", "bxor", "is", "not", "in", "class", "instance", "def", - "task", "on", "receive", "val", "var", "fun", "mod", "extern", "enum", "type", "match", "loop", - "for", "while", "if", "else", "return", "break", "continue", "use", "as", "from", "group", - "window", "compute", "every", "order", "yield", "where", "desc", "of", "reduce", "after", - "join", -]; - -impl Preprocessor for ArcLang { - fn name(&self) -> &str { - "arc-preprocessor" - } - - fn run(&self, _: &PreprocessorContext, mut book: Book) -> Result { - preprocess_exec(&mut book); - preprocess_grammar(&mut book); - preprocess_snippet(&mut book); - - Ok(book) - } - - fn supports_renderer(&self, renderer: &str) -> bool { - renderer != "not-supported" - } -} - -/// Expand `{{exec }}` into the output of executing `` using bash. -fn preprocess_exec(book: &mut Book) { - let exec_regex = regex::Regex::new(r"\{\{#exec (.*?)\}\}").unwrap(); - book.for_each_mut(|item| { - if let mdbook::BookItem::Chapter(ch) = item { - ch.content = exec_regex - .replace_all(&ch.content, |caps: ®ex::Captures<'_>| { - let s = caps.get(1).unwrap().as_str(); - let s = std::process::Command::new("/bin/sh") - .arg("-c") - .arg(s) - .output() - .unwrap(); - let s = s.stdout; - let s = std::str::from_utf8(s.as_ref()).unwrap(); - format!("{}", s) - }) - .into_owned(); - } - }); -} - -/// Adds syntax highlighting and links to `grammar` code blocks. -fn preprocess_grammar(book: &mut Book) { - let grammar_regex = regex::Regex::new(r"(?s)```grammar\n(.*?)```").unwrap(); - let head_regex = regex::Regex::new(r"([A-Z][A-Za-z]*)( ::=.*)").unwrap(); - let keyword_regex = regex::Regex::new(r#""([^ ]+?)""#).unwrap(); - let keyword_subst = r"${1}"; - let nonterm_regex = regex::Regex::new(r"\[([A-Z][A-Za-z]+)\]").unwrap(); - let nonterm_subst = r#"${1}"#; - let subterm_regex = regex::Regex::new(r"\[\[([A-Z][A-Za-z]+)\]\]").unwrap(); - let comment_regex = regex::Regex::new(r"( *(?:\||::=).*)#[^{](.*)").unwrap(); - let comment_subst = r#"$1${2}"#; - book.for_each_mut(|item| { - if let mdbook::BookItem::Chapter(ch) = item { - let path = ch.path.as_ref().unwrap(); - let name = path.file_stem().unwrap().to_str().unwrap(); - ch.content = grammar_regex - .replace_all(&ch.content, |caps: ®ex::Captures<'_>| { - let subterm_subst = format!(r#"${{1}}"#, name); - let head_subst = - format!(r#"${{1}}$2"#, name); - let s = caps.get(1).unwrap().as_str(); - let s = keyword_regex.replace_all(&s, keyword_subst); - let s = comment_regex.replace_all(&s, comment_subst); - let s = subterm_regex.replace_all(&s, subterm_subst); - let s = nonterm_regex.replace_all(&s, nonterm_subst); - let s = head_regex.replace_all(&s, head_subst); - let s = s.trim(); - format!("
{}
", s) - }) - .into_owned(); - } - }); -} - -/// Adds syntax highlighting to `arc-lang` code blocks. -fn preprocess_snippet(book: &mut Book) { - let grammar_regex = regex::Regex::new(r"(?s)```arc-lang(-todo)?\n(.*?)```").unwrap(); - let comment_regex = regex::Regex::new(r"#[^{].*").unwrap(); - let comment_subst = r#"${0}"#; - let keyword_regex = regex::Regex::new(&format!( - r"(^|\n|[^[:alnum:]_])({})($|\n|[^[:alnum:]_])", - KEYWORDS.join("|"), - )) - .unwrap(); - let keyword_subst = r"${1}${2}${3}"; - let numeric_regex = regex::Regex::new( - r"([^a-zA-Z0-9])([0-9]+((\.[0-9]+)|%|ns|us|ms|s|m|h|d|w|((-[0-9]+-[0-9]+T[0-9]+)?:[0-9]+:[0-9]+))?)", - ) - .unwrap(); - let numeric_subst = r#"${1}${2}"#; - let textual_regex = regex::Regex::new(r##"("[^"]+")|'[^']'"##).unwrap(); - let textual_subst = r#"${0}"#; - book.for_each_mut(|item| { - if let mdbook::BookItem::Chapter(ch) = item { - ch.content = grammar_regex - .replace_all(&ch.content, |caps: ®ex::Captures<'_>| { - let s = caps.get(2).unwrap().as_str(); - let s = keyword_regex.replace_all(&s, keyword_subst); - let s = textual_regex.replace_all(&s, textual_subst); - let s = numeric_regex.replace_all(&s, numeric_subst); - let s = comment_regex.replace_all(&s, comment_subst); - let s = s.trim(); - if caps.get(1).is_some() { - format!( - r#"
{}
"#, - s - ) - } else { - format!("
{}
", s) - } - }) - .into_owned(); - } - }); -} diff --git a/arc-docs/book.toml b/arc-docs/book.toml deleted file mode 100644 index 289c2d3c4..000000000 --- a/arc-docs/book.toml +++ /dev/null @@ -1,50 +0,0 @@ -[book] -authors = ["Klas Segeljakt", "Frej Drejhammar"] -description = "Arc-Lang documentation." -language = "en" -multilingual = false -src = "src" -title = "Arc-Lang" - -[build] -build-dir = "target" -create-missing = true - -[preprocessor.arc-preprocessor] -command = "./arc-preprocessor/target/debug/arc-preprocessor" -renderer = ["html"] -after = ["links"] - -[preprocessor.bib] -title = "References" -bibliography = "references.bib" - -[preprocess.index] - -[preprocess.links] - -[output.html] -theme = "theme" -no-section-label = true -git_repository_url = "www.github.com/cda-group/arc" -git_repository_icon = "fa-github" -mathjax-support = true -curly-quotes = false - -[output.html.playpen] -editable = false -copy-js = false - -[output.html.search] -enable = true - -[output.linkcheck] -follow-web-links = false -warning-policy = "error" - -[output.html.fold] -enable = false -level = 0 - -[output.html.print] -enable = true diff --git a/arc-docs/fonts/Fira_Code_v6.2/README.txt b/arc-docs/fonts/Fira_Code_v6.2/README.txt deleted file mode 100644 index d5ae1b16c..000000000 --- a/arc-docs/fonts/Fira_Code_v6.2/README.txt +++ /dev/null @@ -1,563 +0,0 @@ -Installing -========== - -Windows -------- - -In the ttf folder, double-click each font file, click “Install font”; to install all at once, select all files, right-click, and choose “Install” - -OR - -Use https://chocolatey.org: - - choco install firacode - - -macOS ------ - -In the downloaded TTF folder: - -1. Select all font files -2. Right click and select `Open` (alternatively `Open With Font Book`) -3. Select "Install Font" - -OR - -Use http://brew.sh: - - `brew tap homebrew/cask-fonts` - `brew install font-fira-code` - - -Ubuntu Zesty (17.04), Debian Stretch (9) or newer -------------------------------------------------- - -1. Make sure that the `universe` (for Ubuntu) or `contrib` (for Debian) repository is enabled (see https://askubuntu.com/questions/148638/how-do-i-enable-the-universe-repository or https://wiki.debian.org/SourcesList#Component) -2. Install `fonts-firacode` package either by executing `sudo apt install fonts-firacode` in the terminal or via GUI tool (like “Software Center”) - - -Arch Linux ----------- - -Fira Code package is available in the official repository: https://www.archlinux.org/packages/community/any/ttf-fira-code/. - -Variant of Fira Code package is available in the AUR: https://aur.archlinux.org/packages/otf-fira-code-git/. - - -Gentoo ------- - - emerge -av media-fonts/fira-code - - -Fedora ------- - -To install, perform the following commands: - - dnf install fira-code-fonts - - -Solus ------ - -Fira Code package is available in the official repository: `font-firacode-ttf` and `font-firacode-otf`. -They can be installed by running: - - sudo eopkg install font-firacode-ttf font-firacode-otf - - -Void linux ----------- - - xbps-install font-firacode - - -Linux Manual Installation -------------------------- - -With most desktop-oriented distributions, double-clicking each font file in the ttf folder and selecting “Install font” should be enough. If it isn’t, create and run `download_and_install.sh` script: - - #!/usr/bin/env bash - - fonts_dir="${HOME}/.local/share/fonts" - if [ ! -d "${fonts_dir}" ]; then - echo "mkdir -p $fonts_dir" - mkdir -p "${fonts_dir}" - else - echo "Found fonts dir $fonts_dir" - fi - - for type in Bold Light Medium Regular Retina; do - file_path="${HOME}/.local/share/fonts/FiraCode-${type}.ttf" - file_url="https://github.com/tonsky/FiraCode/blob/master/distr/ttf/FiraCode-${type}.ttf?raw=true" - if [ ! -e "${file_path}" ]; then - echo "wget -O $file_path $file_url" - wget -O "${file_path}" "${file_url}" - else - echo "Found existing file $file_path" - fi; - done - - echo "fc-cache -f" - fc-cache -f - -More details: https://github.com/tonsky/FiraCode/issues/4 - - -FreeBSD -------- - -Using pkg(8): - - pkg install firacode - -OR - -Using ports: - - cd /usr/ports/x11-fonts/firacode && make install clean - - -Enabling ligatures -================== - -Atom ----- - -To change your font to Fira Code, open Atom's preferences (`cmd + ,` on a Mac, `ctrl + ,` on PC), make sure the "Settings" tab is selected, or the "Editor" in Atom 1.10+, and scroll down to "Editor Settings". In the "Font Family" field, enter `Fira Code`. - -If you wish to specify a font weight, for example, Light, use `Fira Code Light` as a font name (Windows) or `FiraCode-Light` (macOS). - -Ligatures are enabled by default in Atom 1.9 and above. - - -VS Code -------- - -To open the settings editor, first from the File menu choose Preferences, Settings or use keyboard shortcut `Ctrl + ,` (Windows) or `Cmd + ,` (macOS). - -To enable FiraCode in the settings editor, under "Commonly Used", expand the "Text Editor" settings and then click on "Font". In the "Font Family" input box type `Fira Code`, replacing any content. Tick the check box "Enables/Disables font ligatures" under "Font Ligatures" to enable the special ligatures. - -If you wish to specify a font weight, for example, Light, use `Fira Code Light` as a font name (Windows) or `FiraCode-Light` (macOS). - - -IntelliJ products ------------------ - -1. Enable in Settings → Editor → Font → Enable Font Ligatures -2. Select `Fira Code` as "Primary font" under Settings → Editor → Font - -Additionally, if a Color Scheme is selected: - -3. Enable in Settings → Editor → Color Scheme → Color Scheme Font → Enable Font Ligatures -4. Select Fira Code as "Primary font" under Settings → Editor → Color Scheme → Color Scheme Font - - -BBEdit, TextWrangler --------------------- - -Run in your terminal: - - defaults write com.barebones.bbedit "EnableFontLigatures_Fira Code" -bool YES - -Source: https://www.barebones.com/support/bbedit/ExpertPreferences.html - - -Brackets --------- - -1. From the `View` menu choose `Themes....` -2. Paste `'Fira Code'`, at the beginning of `Font Family` - - -Emacs ------ - -There are a few options when it comes down to using ligatures in -Emacs. They are listed in order of preferred to less-preferred. Pick one! - -1. Using composition mode in Emacs Mac port - -If you're using the latest Mac port of Emacs (https://bitbucket.org/mituharu/emacs-mac by Mitsuharu Yamamoto) for macOS, you can use: - - (mac-auto-operator-composition-mode) - -This is generally the easiest solution, but can only be used on macOS. - -2. Using prettify-symbols - -These instructions are pieced together by https://github.com/Triavanicus, taking some pieces from https://github.com/minad/hasklig-mode. - -This method requires you to install the Fira Code Symbol font, made by https://github.com/siegebell: -https://github.com/tonsky/FiraCode/issues/211#issuecomment-239058632 - - (defun fira-code-mode--make-alist (list) - "Generate prettify-symbols alist from LIST." - (let ((idx -1)) - (mapcar - (lambda (s) - (setq idx (1+ idx)) - (let* ((code (+ #Xe100 idx)) - (width (string-width s)) - (prefix ()) - (suffix '(?\s (Br . Br))) - (n 1)) - (while (< n width) - (setq prefix (append prefix '(?\s (Br . Bl)))) - (setq n (1+ n))) - (cons s (append prefix suffix (list (decode-char 'ucs code)))))) - list))) - - (defconst fira-code-mode--ligatures - '("www" "**" "***" "**/" "*>" "*/" "\\\\" "\\\\\\" - "{-" "[]" "::" ":::" ":=" "!!" "!=" "!==" "-}" - "--" "---" "-->" "->" "->>" "-<" "-<<" "-~" - "#{" "#[" "##" "###" "####" "#(" "#?" "#_" "#_(" - ".-" ".=" ".." "..<" "..." "?=" "??" ";;" "/*" - "/**" "/=" "/==" "/>" "//" "///" "&&" "||" "||=" - "|=" "|>" "^=" "$>" "++" "+++" "+>" "=:=" "==" - "===" "==>" "=>" "=>>" "<=" "=<<" "=/=" ">-" ">=" - ">=>" ">>" ">>-" ">>=" ">>>" "<*" "<*>" "<|" "<|>" - "<$" "<$>" "\\)" #Xe113) - ("[^-]\\(->\\)" #Xe114) - ("\\(->>\\)" #Xe115) - ("\\(-<\\)" #Xe116) - ("\\(-<<\\)" #Xe117) - ("\\(-~\\)" #Xe118) - ("\\(#{\\)" #Xe119) - ("\\(#\\[\\)" #Xe11a) - ("\\(##\\)" #Xe11b) - ("\\(###\\)" #Xe11c) - ("\\(####\\)" #Xe11d) - ("\\(#(\\)" #Xe11e) - ("\\(#\\?\\)" #Xe11f) - ("\\(#_\\)" #Xe120) - ("\\(#_(\\)" #Xe121) - ("\\(\\.-\\)" #Xe122) - ("\\(\\.=\\)" #Xe123) - ("\\(\\.\\.\\)" #Xe124) - ("\\(\\.\\.<\\)" #Xe125) - ("\\(\\.\\.\\.\\)" #Xe126) - ("\\(\\?=\\)" #Xe127) - ("\\(\\?\\?\\)" #Xe128) - ("\\(;;\\)" #Xe129) - ("\\(/\\*\\)" #Xe12a) - ("\\(/\\*\\*\\)" #Xe12b) - ("\\(/=\\)" #Xe12c) - ("\\(/==\\)" #Xe12d) - ("\\(/>\\)" #Xe12e) - ("\\(//\\)" #Xe12f) - ("\\(///\\)" #Xe130) - ("\\(&&\\)" #Xe131) - ("\\(||\\)" #Xe132) - ("\\(||=\\)" #Xe133) - ("[^|]\\(|=\\)" #Xe134) - ("\\(|>\\)" #Xe135) - ("\\(\\^=\\)" #Xe136) - ("\\(\\$>\\)" #Xe137) - ("\\(\\+\\+\\)" #Xe138) - ("\\(\\+\\+\\+\\)" #Xe139) - ("\\(\\+>\\)" #Xe13a) - ("\\(=:=\\)" #Xe13b) - ("[^!/]\\(==\\)[^>]" #Xe13c) - ("\\(===\\)" #Xe13d) - ("\\(==>\\)" #Xe13e) - ("[^=]\\(=>\\)" #Xe13f) - ("\\(=>>\\)" #Xe140) - ("\\(<=\\)" #Xe141) - ("\\(=<<\\)" #Xe142) - ("\\(=/=\\)" #Xe143) - ("\\(>-\\)" #Xe144) - ("\\(>=\\)" #Xe145) - ("\\(>=>\\)" #Xe146) - ("[^-=]\\(>>\\)" #Xe147) - ("\\(>>-\\)" #Xe148) - ("\\(>>=\\)" #Xe149) - ("\\(>>>\\)" #Xe14a) - ("\\(<\\*\\)" #Xe14b) - ("\\(<\\*>\\)" #Xe14c) - ("\\(<|\\)" #Xe14d) - ("\\(<|>\\)" #Xe14e) - ("\\(<\\$\\)" #Xe14f) - ("\\(<\\$>\\)" #Xe150) - ("\\( Settings - -Add before "ignored_packages": - - "font_face": "Fira Code", - "font_options": ["subpixel_antialias"], - -If you want enable antialias, add in font_options: "gray_antialias" - - -Visual Studio -------------- - -1. Launch Visual Studio (2015 or later). -2. Launch the Options dialog by opening the "Tools" menu and selecting "Options". -3. In the Options dialog, under the "Environment" category, you'll find "Fonts and Colors". Click on that. You'll see a combo-box on the right hand side of the dialog labelled "Font". Select "Fira Code" from that combo-box. -4. Click "OK" to dismiss. -5. Restart Visual Studio. - -Now, most FiraCode ligatures will work. A notable exception is the hyphen-based ligatures (e.g. the C++ dereference '->'). See https://github.com/tonsky/FiraCode/issues/422 for details. - - -Troubleshooting -=============== - -See https://github.com/tonsky/FiraCode/wiki/Troubleshooting diff --git a/arc-docs/fonts/Fira_Code_v6.2/SIL Open Font License.txt b/arc-docs/fonts/Fira_Code_v6.2/SIL Open Font License.txt deleted file mode 100644 index 8ed844059..000000000 --- a/arc-docs/fonts/Fira_Code_v6.2/SIL Open Font License.txt +++ /dev/null @@ -1,55 +0,0 @@ -Copyright (C) Authors of original metafont fonts: -Donald Ervin Knuth (cm, concrete fonts) -1995, 1996, 1997 J"org Knappen, 1990, 1992 Norbert Schwarz (ec fonts) -1992-2006 A.Khodulev, O.Lapko, A.Berdnikov, V.Volovich (lh fonts) -1997-2005 Claudio Beccari (cb greek fonts) -2002 FUKUI Rei (tipa fonts) -2003-2005 Han The Thanh (Vietnamese fonts) -1996-2005 Walter Schmidt (cmbright fonts) - -Copyright (C) 2003-2009, Andrey V. Panov (panov@canopus.iacp.dvo.ru), -with Reserved Font Family Name "Computer Modern Unicode fonts". - - - -This Font Software is licensed under the SIL Open Font License, Version 1.1. -This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others. - -The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the copyright statement(s). - -"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment. - -"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission. - -5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. \ No newline at end of file diff --git a/arc-docs/fonts/Fira_Code_v6.2/fira_code.css b/arc-docs/fonts/Fira_Code_v6.2/fira_code.css deleted file mode 100644 index c3a8e21cb..000000000 --- a/arc-docs/fonts/Fira_Code_v6.2/fira_code.css +++ /dev/null @@ -1,42 +0,0 @@ -@font-face { - font-family: 'Fira Code'; - src: url('woff2/FiraCode-Light.woff2') format('woff2'); - font-weight: 300; - font-style: normal; -} - -@font-face { - font-family: 'Fira Code'; - src: url('woff2/FiraCode-Regular.woff2') format('woff2'); - font-weight: 400; - font-style: normal; -} - -@font-face { - font-family: 'Fira Code'; - src: url('woff2/FiraCode-Medium.woff2') format('woff2'); - font-weight: 500; - font-style: normal; -} - -@font-face { - font-family: 'Fira Code'; - src: url('woff2/FiraCode-SemiBold.woff2') format('woff2'); - font-weight: 600; - font-style: normal; -} - -@font-face { - font-family: 'Fira Code'; - src: url('woff2/FiraCode-Bold.woff2') format('woff2'); - font-weight: 700; - font-style: normal; -} - -@font-face { - font-family: 'Fira Code VF'; - src: url('woff2/FiraCode-VF.woff2') format('woff2-variations'); - /* font-weight requires a range: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide#Using_a_variable_font_font-face_changes */ - font-weight: 300 700; - font-style: normal; -} diff --git a/arc-docs/fonts/Fira_Code_v6.2/specimen.html b/arc-docs/fonts/Fira_Code_v6.2/specimen.html deleted file mode 100644 index 6dce70b9b..000000000 --- a/arc-docs/fonts/Fira_Code_v6.2/specimen.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - Fira Code Specimen - - - - - - -
# Fira Code Light - -take = (n, [x, ...xs]:list) --> - | n <= 0 => [] - | empty list => [] - | otherwise => [x] ++ take n-1, xs - -last3 = reverse >> take 3 >> reverse
- - -
# Fira Code Regular - -take = (n, [x, ...xs]:list) --> - | n <= 0 => [] - | empty list => [] - | otherwise => [x] ++ take n-1, xs - -last3 = reverse >> take 3 >> reverse
- - -
# Fira Code Medium - -take = (n, [x, ...xs]:list) --> - | n <= 0 => [] - | empty list => [] - | otherwise => [x] ++ take n-1, xs - -last3 = reverse >> take 3 >> reverse
- - -
# Fira Code SemiBold - -take = (n, [x, ...xs]:list) --> - | n <= 0 => [] - | empty list => [] - | otherwise => [x] ++ take n-1, xs - -last3 = reverse >> take 3 >> reverse
- - -
# Fira Code Bold - -take = (n, [x, ...xs]:list) --> - | n <= 0 => [] - | empty list => [] - | otherwise => [x] ++ take n-1, xs - -last3 = reverse >> take 3 >> reverse
- -
# Fira Code Variable - - 400 - -take = (n, [x, ...xs]:list) --> - | n <= 0 => [] - | empty list => [] - | otherwise => [x] ++ take n-1, xs - -last3 = reverse >> take 3 >> reverse
diff --git a/arc-docs/fonts/Fira_Code_v6.2/woff2/FiraCode-Bold.woff2 b/arc-docs/fonts/Fira_Code_v6.2/woff2/FiraCode-Bold.woff2 deleted file mode 100644 index 349dc36a56e1f5eb8eb0813f1ded8a0d081c8cc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107788 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ΝZnFGG4dM%$7yk+7-Yx`E>nk`U5GPm6gdy5OiIW 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%0D3<)@Ht@GM9rK>L@&-+BSdrGA%6sox4 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 b3H>7p#Y^K;!R6KPA%+kwA9O^UAlUx_qOvIW diff --git a/arc-docs/fonts/Fira_Code_v6.2/woff2/FiraCode-Light.woff2 b/arc-docs/fonts/Fira_Code_v6.2/woff2/FiraCode-Light.woff2 deleted file mode 100644 index eeaa30363cf1bebde2ca2490c6d8db74898c21fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 102924 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


9JQnenP!F_V;xFO=*~14QxiJ! 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 E0AzG6Wz6iXsPr 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
(gfv@TGbc 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 z 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

p?HcDTdyF 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

sSzb?H*NlhKL?2kp{&|4l{fbAG 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 HeyyE?&TT(n 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

)aiH8@RW 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 ZQbYNWn`DN6DnHs9TsJe!=`Qs?3jiYDF|q&v diff --git a/arc-docs/fonts/computer-modern/cmunbsr.woff2 b/arc-docs/fonts/computer-modern/cmunbsr.woff2 deleted file mode 100644 index 4638808281457794f492a76afcdf1b22f29f58fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54824 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≧vmVg-X0izkIc9Y;5HIav)m!*@|fGxj|)_S(< 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˝KdE0#H4&AK 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 z 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�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�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

  • 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⪼%y2Z8w(UC_wICjY52=vG9_2+dLEtNE=%ieQF$669?s;~7$EAfO%Y&~TB zaGR?%$yF0Y=h*nLF`uxrVu{-uQ~9>B_LSAqJMn~QYBLh*=d7|JJLkNJQy^+O_$RDE zVj-beD>AsCJ}~5G{*XuG&Jp633SgCOu-WSC@VZ-VHourDnd^;^E{JhF@y$3_=jVF8 zMJ`)*jQ6sA;}?JCaRWt3MzH~;O3T*9Y&es$HbT*$HJ3zNrqkCV<%O>kXFyv*Q~PZk z?Cw{p^CfG)4=gwz=dyT0@kBFymJX`4@psSyc-MV8t2B%oojOg4Lh5czid_1*0k$N0 z!M@A-k$Zy`XeGJoUAQ=i5Hh4WfK2KHyy+w#9#AhqWZG~Zjm=0Zfo|)+EzQ0-U@Tnw zq4W?IpMs{YGhB@qR=dgfB#U|0=h&HkOQXRxy%1PsEua$FNPkkutOgazZU`Vk;RQQm z5+JWB&sFv}$tbX-Z`XZqqo3b>0u41vxfzqap&94eQ#8JzI_4;@25#&Y%>a6K44+Os z`-@`t8S`7>hRtewY~ESH)l!sLTT(uD`g9A;m;0VydJ8V9JNLR@<};(0v`_qUCVWP> zz5@xC66u00KqhwrBZxE)_2ZBHq~CTbi>U+BCg|RCce#fj_jyE|nu2Zc{lg7@;)*a$ zKY~Uax2u)emtWygI~dOihxjur*oA~G0ZPMJ%5LN5?s}a+rMDTGxhm}&BA{F1hr&ju zc#k}RBCHXRh)R@EtxUBQ9Cs7YLyD-n8w1*;-hPQnAFGnfLH4@;0Wnl}_kA^|MM<$2 zjh4Brk?J_tSXePZW57lxYMPs|^Wl2N2DlMnX-#COsLcZFNSR6rxK4V&ehP^OvgP~u zcyKQ(IokFpGPZWzB-slpw>QbHOh5PC zSM7|6xfMoQBk(nt7nL})!dy}cpp=kfX#0rsOu_QI4A+M8CN)$<9x%IWS07&G9NMT| zllu(qYy?8MmX7};32@{c=K6iDn9Fn8<s=pYUPwZI@*&5B5N|%8*2Eh)Ot_oO#V6R%0ciU$hSVoAP z#8rn|E-G!Eg`{fP92taSfL40cw^a*bp;J~Ot2oeLX)2&}{7%|qkA7Pc5}2n$)M^|T z6q`xYDW-13kXm=1G8_^yP;0+&>i>DJT22Wj)_L*ZGQ&nJ&dF~Y|l zgldDA*&=fCAIU_*$k=Lex{{O9P8-~l8G`YdJZD_<=v#Yxjv~hUY7|@N-FX>-{3f&> z#u%4ok|VD$TNUEoW5kQ&ja|$kN84-kVK;%N0IT7NCxKhOCzaWBua|Iv(;o*369%QE zf;*T=CTaciphZ7@B97A6;}=|iz9WbHHZ$vvC+#3VU4>ZmKmY(h*_xZFSq4m!?Hg6% zaqjLTuwE!|&3c$n^Aqqf6-tE5K}3+@eC*!wyfi`+Kwj}yYMx1~fk0R&9zcRUn0%*%T?kTBbG6ylBhreKTv1|^AxY44 z{HhdpnxL;WS6|~w?L3voRrC*B?$0bAZ-JnG1%%;tlNZygyKY1tju{$_Y3WlQbVcXO zUMU_^b#bvara$e!MXvt?h{IL|;B?vuRhMU~WBP?FW2!<@@$itkGBb8?VPws-Bd$%z|Jqul5yHITW24c?C);{B zkf{MJ!$oYHX1Y_yUDrQ8-i*1pbVZ{igN5K&B?MqTYGQ6`>cZ6y)&dze=FLqX81nUR zqMM=j4Qs;hw1;wNvQJIT{Yy~QL=si% z{RHRvf#!W8>Q$#E0GyEAkHN^NSd*rw6@G^Y)5};LPclN0r&chH3IL%^7ad(oB0Pr* zgtQ^(Se3ObNnaC>0`8*d5+H=Fg@+mHgRl^p<}t+;{_y|mR)_mNHz-PDIW$@ko85{p z#udp&1a5F+VDSaf&*khpcx#s{jkZY>l_(;u)t8n?jBhZ^U`5QG^=a$P@|^a}qsR+( zejWO#-bhmTAq`jQEO#{=!ZGGR8?)M4N|zPht{_#uNaN1LwX=MzwHKMiQ2h}EnZ(a^ zC+C$(vKB_$r2iXq{=v#Xw4oup(XJ6_%>wc&gNW20JgSN7Y9o`X>)(g>8O=Va=!)u1 zmXlTigS5!Rd=UHw0XJb}R;coWR@KcKeyT^EEI!M|db(CV9aml224oALCqHDC^g9&v zyf4!|rVGy7NLYrz9;JP81bzXYT4GM#!Tevu_D-^6`oj5won|$`e}i1kgi?ThLqNCM|7|PZPLF&dn0ly zm*D0R-^{FxvpG@{gFLBZ={vO>SE%t2ES3+&RF0OPuEalQmOXmd5JBb#pLg2#t1oym zU&rs`8721+q@;*mv9+~8M}7M3N2h|)jOr9syY#UsU!@QiN}pnUHZZWMBpkwn$ZIbs zsSh1GpuiTRq?BF)_2AU_Tb$EKbRaX33IKZo+4CR8zxEXd&_Jz!QoP1lAvNdmmrrmO z&%$%oi56(lU8-jRkuV|Mk0ub&n*kLEhKAn}IO4_E4aygYHWdn@4B7q=(agOz$uU$n zJ8X~`FB00_v75q~EG87X8i9njvUIw%A*%CBQc7UU5!G{%u2sw?dWyqZ1o$cHDbPjCuaWhdD9flZS0(X#RB;GlNIC_LQMq!<+4XCa+ z*=8!J-}@_(GR_4R%uLBeG6w8#my0LgQ%xdEjKhwl2Lo#~>Vcc)e-mT^q+0UvQk6^KCBopTX z-42P>i`2a}Zy(7s-GZeVEpyyNU`+6wd`?^|Z)hilPJ6D3fIQ2p*syWLyH_ulo(&W~ znz)s5D)^MADkTcfAP8cV$@CdHIW~2+-L1142+A~rMj4l7>90UKPKjq@wfK(8hSRgI#_1<2~Ftip&!5w*lJp zZ(4_IT$i?F-{4|Lm6mEDmRSqWuvX4gUbhe9%i452U_xzu;-nVorCK8qOBi~NuTyEE zw@8}3d^lw*bWYkPuarN(jXK+-CCS4Bz_ErDP6htwIXe9}C4UB$(#OQC+*36yJVo2p zUQls%bltpJ^2qo-w+C3;H{8b!GEw&;Geb=X0YddcTU60_u3B;AY@7!TV3~S zl_j2EA_}6DT^*CfSes4+#W6jwa1OO$oFB{(_XKkjcaT%6wg7^0_iiH_$K(~&nOrH%&gGt7;xS@cYEdVX?Dx7 zWq~>=cTI)jnBD001DH0P?7z2bqt@=tI*VQM)lFZaj{X^|WG*XDIp}RI-bIFK?C@p= z5!T8w=#87L*4EXBmA??=R)mB&cmXE3W<+$*?V*%`pVwqE6lZGc!Zh)aAu~2aprNaL z<94lE82$Z{wu0g%>cb{pU2I-gyao_}qCPky^MzVdEFTSP6_oGM64)l0lDuCmwaMTsY{RJx6Coci=!fwG)>L8`B1HVC)|wCH8vvH z;6qb|X%iLf1s~DS>7x0^dHj6=3s%q8#;;QlXGhPt+}Tv(O#GwESQiDVpr;p%oU-3@ zPhBh-Kf8TwFT-0p0}pN(N|MBcr#{dO8nUGUeVgH;b#<}$4hONEHmA>Q&xxgTapM}u0He%Df!O_hWup7XM zaH6wy5rG1_3-4?Ct%sbWwdk?jtUR$L`U7^}Z~jFLf1y8e9zXY<{-rGIXqigMKOnMq z*WKBw>+aK3MORd!s!PsKbUsilQVYaV?SACwmmxf5y%Ho83m0C6hy%RqV-^nXrp$qF zSFdT`igt31;}`7>sDHDlVlRQm1%C0dx^_|uKG&?RFW54s_DOMo#0-<4b->#pNG-*P-63QM50{;H%PCcma+Y%0HWTm$C2UH zdDJnaB@p+eDrh%V7&ujOzL<(}EHvy>wBFnpXNoT0eNIRClx%bbeLs(KvmuRAhP7qe*WI7YA=0X*d`}#IQcoOF2 zY1BlPF#%8^h0fhJ>bH6SSjsRM$q_`^c*?dM>vnZuR5i5vcgIzV>Wcw2JS84!=TM!@ z4ycnp8N85ES{VsLfoRG}$7gpUcdHR8baZD7xtb|sdC=EnTiV~sZ1C2uKub496_H&W zte4#}kKg9+A-Kw^@S8w%cBA3A_2_ODLCSP=ARg~$X-;4Vz!F^kpi-8xV|!B%zZ)7_ zGJ@7VrLEwQU995M*RUjtiJoCa_<01;!n=NB0Osa+WEY26#~zu(ZA0b|+=B|pw-H!$ zr|#(gTjOfvZ=;0qBeKweqJ0BJ2c)?Zn|V?kCvxiFfCg-UYE6 zuT7@@)E<})U;HC_OX!VU@BAZJ7f?Me5NcvQT-DG(=$l2xgf_W#|nfAFek$ zf9%XgyhB|*v@b>Y#X3rvsAT(2BP$oqJPtF1%?Y+}BasJZqAMK7cjt%{L14A} z!^yygE9dS3O&zH|2glWr%7}xyl5<6>uRDHV4So}Vj`Diu?u)SD**o^2gx)8QBUQj8WF`drC&SExN&20Ke z`=8T<&E%y>rlhAmUtu>%@=FX`{#cwAQ3KW|EQ; zxX#b8bK_F=DRF{=LPPv=7emWeKTV;}do1d=2!BX9uKvnX@OIZ??#1k738)*-G&p>f z@HL&?+|2}djjiFSNIQKE!bqsQ;9R|Icu+VhKD2 zf6nbS&Q@^sB17kPn*)pRG&&lgJ?;T-D<|ltN^pV{SE1Se5rH{?PHd$#SFOyo{aWg) z^V`8)2Uirgl%HMmdU#K>5QE2MvYY{O(*xR;L@>;iNC;GJx5*!0GONZD<{`^DDz^-; zy-lyX=U9Eln4*A|pQ8mkBV}XqIr-1`sd1C!U*z&%U;m#rgIx-Pyhb1C1=d;iUreZr z`h_gk>3$a`zQ&1ldnDqo!RroMc$`A<&+-1uC|UgPcOEKiapkqx(oM|+CU_uI#aYNR zoosFR9p6TYdUdRo_swsekxB3rjE7>-`Ds$dWR00>$HsRgj|sG+65dCl0tVBpuyez; zI!S+R#!d;8mN*Vh_MazMw1~g}Bw|6qwvvjg{09Hw%VZ3LnpO$_NG3*-EXt_i@m0t9|)&-RVaNc^#Tx?*CLzhf^qB9k@On;r6#Ox zJZ*SWUlmTT#O&gre!_93?*ZB^Q6BX;X)vjHcHZh#2NO8*DFQ!1%T1U|y1Ql>83}WW=^}_{Dh)h}o0WdxU zzjqBm8(kxWI1yUfwxG+JNPyx)p64Ff6voJt`>G?ia)!m=2CK!pV%sQLKWqKH#1E~0 z&dd-flSH59gh~?~zzT`b#oymA^!#_^MOm_ZTeoMG({riDa6Ntfe^th}vD9l{Po=6q zqOO7Wm^!rn9Wn$(7r1~Jc>!b%f<$={4g*9ZeGNqjL7$+NyUokHquJhV!*e-cl>9QA zj;>TLM+!v-v_RLc45;tQ33~?y5bX9nf`8b2GZ#cgI4dMr^6^Kuz=E9Gx7ccal>kQa z#}`9?R7c?akmYX<5!MLKE#60>ry*V7UT~%FZ$-DmoGpQk?lbEr>En7CY$F6t-{|MZzg z>w)aVMpyZE)e7gebaF-}=PIt+q~e+R5+#L*CNZX#k|-BrgqMNKF>t{Nb&ip56-bg= zaK#FE0~W_Xd1#k&{KKl(Hxv%#wqX}qi0bj3WV8Ww9Fw|mWvI=|@2(SW5B%vVRXXES zd)%>t@9%qn(;C=CiAG5z$TpUSF&mu}Ym>6i20s^EXOTQ+B)=kZ=9^c_{>)&$5d8r7 z@cpBcVV4Z+V}fDECR+2eN*nwyuwu3u0BHN(_}kgUFU1 zMvT&baeNYdRQO5(PJ35d`b*3s7!txLfL)ncRc;laK-kcT*rq0L_Sk$roUyjt zD9YcD7CGo~BTknmq9E3^P;!ig;*9P(%OsDv+dhcqA~{H?3AYln6h;dy>3(yH0sgT= ze)y_`)IfXlz(A7v(*X9YU9V-l>C@knoat?bbsAPO!p?>lQ1?o_?Bdb$wrjQghouDk z1(i1A8QKWVSCaOuwwoa^O9?cWcH4wC)CdIxxB3S=?z*Mh`CVL<&TwGD9t-bKGt1wMF&DcC9)lK^=n^6Y)J8_`>A6O1vFsv5$oQ z7XKBvp`iIJ#lv20JScFh6otC~wDe{!*p#rAbDedy@bBcMGPEWvS%4>Yfc@H8J2cy( z%oAD*b`^N!l0;Pu?j#DX?6DX3g1$&x52w9WKZ)t|`9%|9*3?=0+5OYx@q|>I?E`p| zkSGl)lb&pT-5ic&u60mx6L?crO7~asO4x-&xSPp9v}+l)_NFh%ESUpS^ekC@~B1Q|NhSS*V&ecnBdvz0;+X{8McxhQ?`Cs|9DQ zcr)uZ`_2#TSw+hP8)2bvn=H?xOHL`&{Y(2-FQu%Juv{qnaf=gImV1l#!!;5#AIOSP zGLvN$oq6U*TnW83c2MGQ8M-MMe{F#I<-EqELOvq{#tG9A+M=u!BI(^jE;Cyt&Iy;|nY>WBFp?bAD=p~dRs1iy$#!hmF1Rk2^=cIRQwVb0-SSJzRQ<17n`G1*i zX2J)NC+)}8uDpgd^(Xqd% zpX`%4)=Z~_l@w%f=@LP;sIWj$fHZg9yMx-ajrBUc_fH=no@g&t-t@TW=Zs#kv!2Li z0MCV7sk}4GH6;fBpS@8NnwR5jm#+ceSu1>K44~qFy;YS|-t;$*@7)l1T}l`T7y^XL z1xYiHNY%dnPd^x#O%@=uc?RID0SZ7Ou$A6GH-07q=w+2gZu*GZWOVSK1)Sx^*v65U zF|-+f?sgc{X~pvhtX6<5@xGcQ@%_`#0#qplZdwa9V<#&Cwh_9D1}QBe-myagenAb{ z7LQKo=+yg?g4Y0&-b!&m@Z2H;1(iQA3kiX5fS#c=1gaEuU*NE%i24oiGnNK{lrruM2vLGyg=N*U ziKyx`WN{HFLS7Cypia1gfDn;7#0dzHD=7j88c+otb5NE-lB^jfMCrV7;2Bo_=;|t@ z+|h;stD$e@I47tC#VUNwQUfq~%X0{}`av5ACd(&AvT+vHeq$@Z0xhA%+ZK2s7KdJB zfWx(LNcq!rjHG*>j4acwNUq)*Y7R1&#Pswg0%e}V(io@D()%^R zY6)pef8aml((DSezS-C#hS&O>(Q@PUx-`EY_&n#=uo`3kJt4DX@bBro{-|Uyq9KPpnk(ioAy3Itd3@MOK(o2QaSbVzcJ~7dzCL zzP#3ZLdrgS z)o0=7^cS7Cfv-PdgKx3i_5b1Ae>*}sO5z^;0%!rO5GIVo;+{pCX2S4QxRoz-jN00o z$c5KI!A0>gv~R-%cVltLY+{t#AT3s`0^wMrX86ObUJ#U&Q_+fp)$sGsnSl*%L`~3P z2KuSZ|8ogEBnHJ+?FRP^IE0iPriVQb=`X z60mO!E57m0*!@1^2Kw2&O$2%Kq)~;G!g%C!3_k!c^Chyv=`N! z&*}oro01v(8bj9e)sAfv&&2S6_gwz4Thw_l^s+WgGlcMRZioQY9QW5QNAO8A?(jMG zmBXmWwBbB*xuMNXt>}KZ{#XrN)Fh>k&MPH71g)LKBgNSfS>Ov6K;8KNr7MKe1LVP> z)Ndh==`0qP`0N_uExq$H;{$3Q2wOcSgC!2svxlQst}w5e{vCDLSj@QGtt^fF+l+X94aH*ef z>#r3fNZW!nvku@iu+OFB|v65Ct=uzg&*SvA9^h3(xbw5+b(e z5szQaTbN91HNf{2d>V&$NtyOhNRAeEfHQoF0KR>mLx#>_RAeoJwsbr;u5q7(M?N7{ zBXJ?%)N7QhF-*}~U5>txF^U$oy11Nb4qa9VdKpz0?ygw&*=1yLaz}eK6A&v!KonO5 zRh(XIAz0YtMsSvN;tH$_+^V#FT}rmB;Phr!E-VUb!@K_G7NBUFn(tD?j^Mr`2p+k{ z*_sGonJNc%rQ;VForQ-O&;c+KB&nx%$+LV{$}8Ns19gq5d@|7=#*hdbMd^@(DqFcq zwv=`A(XPYM#`ry!eVMJ@pp?wH6C;c`&@)mUkR}9Xog!O zCOV}q`vD2?L~cjnPS$F0Na2VqeXcn6H=-Zd8^y3chg|dR`m>OnpZNQ~>eRzm1PojAv2X?4qB9Rmx2>@-Z(AGK0CfC0^C%+HGTTLy@dIDJML# zDxocR!9gTOS-;0QuCKO*@(Lb910W9TXR+%}VPB~X#M{ayx;aHX0L_g4wBxB0$Gufl z9!D6Hk{;28BlS}(TH5by#v?>2tBmh3t~?cMIl@TJn_`(WQv7u6k+Yk?;0lvp z7Q&Gtj>vahoHJf}dg`B4pRG8d%Ul~gPWANK?=`E7kRF$@+(!-m64EhS{{e7Xk&wTleauJninP!fxuJ1B;>RKzy5K zxwfoUX{ER&m!}aF#V)~J^ZmR0u4ofqnidR)=!!vzkJQ24@`zXbnopE}K69LXue3*w z;xk4(i7+7pN)aW*huss;FS{-z(RmA`~k2OsDUpFNew7D;{k{5tM!#_H-)y&+%0$4~1q+FH3L$&kSLl02MM zc=BB&5SzL%ZQB<@41hsuC90$bQ-Gg(40ke(*CG)MJ<9ZEu5m%^*Nw}T0%_;XVcP8> z9`5bYM|Ihj1ySfr=_=L-G7bi@5fj@?IHi3Dl)%F^23?jpJw5sFFCmADlWP=fSoUct z6a}b#+&7f-D)?~ETd9JHAKU*C{?mPePgeQoD&<@min@|L_NuB=Bv}!cx}Q7wqdU|l zDz9KoGRjh$2os)-=y9jpJBszoW7WjBa4h6&m510Dvj8hV)W3!Z9N9Hm?ROWTNBgTP z(C5bG-dUIckva(EZhlArKZ0KS(bVA)vB~Cl)Z-4Pct`)(BF}_vcPz%FNSYW;gE86R zeD4DxPxH@@tl_n4(2LCNE7#LO-;fj*r&HZA$9<~Qeo;aOB}XYlAPWE!aq?OySb))| zNUouP+|uskr;h}-L&U5ulzFgN5zsyRS4o#i!p}u(L1E#A9>M3M!~r}YKKAa5?E4Y` z%;^S4%In`V{DnhvDenm*wh;{#o6WGyD^>`cIBJ=S%mKK7S&S@OvoNC=c~%BihWY@` zN9lHF{ba)t$FQbhzo$Z+RZ`~6#kB~6*is+ig&j*6uw8tzg2tl98!;#gZ;G;o`P8C9 zh2@A4^G?04Egy~g>q;M5Kf}%x{B8xj+2RQo_rY$D{nE_~Ec1ou&IInp+`RYHTIB{XUU0HydabITiXal<$C;Y56Um~ji2F3QYweM@@n6+B)<@RmrdqwFGUIwSA!`j#{)B6c{oVc%RZ$Z?TTWx3rxa&aY^?G&R$& z1^F3!T@PWmn>k9exfc&gg~e20!H5s<0aPB7$E@Td1hIZSBm(xC$oE6i?mCXdWqdsH za{Pl^sN3jztGJFC?`jBz1!0N7yYAOl;Xp`nM;D^$AiOmmuMdqYsu&NYo-M6@@&U5J zsahQKML)iyaKnUnRZS_{t*x$JOHAUTK{C1l4lF{!)=mD08Z~aP8j3fFi3f}$Bgd9r z=nRvXUgU>&ocLgpTT)LcFU9}Zi=n_VP$w$^*XkmU*a+WBU4T$dDxw_g0UBuPT61C; zWme(p9HwI)3o+`2G-q8!u=+^WSQ3ln$_+G=_Iw%6R6WC{m@b+f3Od~EB=zoZn&E!Z z<&P78n<6lNoO=>Z06&So{{742I;$VuJ775?g?zv8i{An1L&w6z`|H0)_#5AYUNZ@a zci1oCJ!TL#~(plO&gQJWP9dX=B&>s50n5Ul*|T?xoR z1kEmGTQy5_RC3o^vh;>K+9&&WV)xxAs@qc?KQ#ZEcrdIKNB=aS9>2fc7T!sE;vp>` zbA?H$UhA`N+0R*4Kt&+B&mx%H&;|2so41W0S&=$X$~N@CWAmi%A#FeeK23$Jv#6Fy z)699Gx}fB#aw2E!Y#pO!4k8yODZnrp;5@uH=vG(`(k)TPf)n2V9*vtRs_TgXe_hVrPVp1Ua$V0 zqkt{qy($bS%0?N0VZwlw!MJHj;GE_;K2OCJAs0~bmM=z~aGLT0W){^Py4BaS+@3@s z9X9S=u7}ur?@PB-VFZ}z<`Pv#=X5*|S+7;iG9DG9A6gX_!@%^|7Xw?Nh*&*yIs@w6 zY9BU%>AG}spaBpAfQQknO9CzUDp7SJ(Tjn)7|I351To-M%5K}ile8AT&jB(9C0#px zZiX}c4gZym4nUq;SE*&SRYJK*EvI6}G9AV1+^oO^eqF7wv?F-u z7>qo%Js@J#Q;<9y^$56T#lQ`+3_~Ck5rn?8@VW?~k6T^cflgG4_*WLQ0eLE*V1uR` zeT0yU8}>r|mBWg8wS@>EqlwZZ%TbX@-Momk+|vjn;Fo|g3Tq9gjDt<}=<6_Y6jcws zmoI_kD8iySW2yICxnzzNUWJuIYKh8PELiGMVqyU}LcpRU=7*B()A8r8)U}s9@3$5q zNj*LvcHlKy>lW6>-rU1}xh0&AKu#pP=bPDsNJ1Y|nS;&3YK&!zpkNUW8zi!pK|6;# z7@}BQXdzGB%7T{ysAUzE#1e5qV!OHFafN^r5BC%^>~mUzPt7JVRRQF4hWIdx@+iK# zz98gX&OSYK<4Zq1l~nI9{>Nut$O5-IF<#0iu7%l;{8tdZSA2JYTs<7)wPJEJ5!m>n z|CYQ8fA&Hu9w~qKzu_>upj+griTZ2Jn-7}zki5}gA;e`XYQy$m}B}}Vu;?zAdczP@fA8cA#?Nd{5F1^o@_obo)Fj;On+EPFGsrT$5ex~ zJTzLgS+cAHOI3_qyb-+3CkrhPTL~IomLUey%@EA=5lO-pClyWlR4K=sXXf<#UV6Yn zXCHa5Org|El=M2PS;{>UAu->cEOh$=58p!Uj*}*)Xwa_+d2hwDq@dIc6iWhgW&4Vc z6?`9ZlVZw;I4{~vOt1y4Rb9YoD@koQNrNEDoy5n*98c9P*&bI4QY;RopyLcMVTpQDYaW+- z&D#_J?xyVf$QU&UOvhf>8fUD%=+r>yl8EX$)(C?m8mEeF4#`C9#Y~B7Xouj|R3-Rd z1O1GIRE3x_I)#kub;fZ|lBLSZfP^&g`f5T)31^YOM434EJ77mL+N|n)7z7-2$Gb-pzu7voGE3~)M8O1 zcvDz#cT}?6iK`wPPE!RfpIRtsn%U?EIV8F1d6A1>?0O}`cHq<3@ZI2LQb4B$)+|(~ zco)~-yj8^lj*@;2DuimDo0fD0%9pPss~B#NazS}a87pNke2~cCs&O1IL!kL%G znI$a$9v9n_CN*FEU2Ja_ZiiLdwm`y=F5|7f0!G)t786BKu#zHtnJhSfT3%Qp$CLw# zqzJi|wAG*lVsYX^gI+~GTLlp=Hxlu!Qhm0UazBGz#V^@Pk_wO5UbY6z?xx;KzoP!E99Y}?N0D>>X`c{`}IQGE)G8A&|S^@9C=Kaj=D0ZCWhU2OK82sngkRfp8E;VIzUPUKvtyJrYocbi6 zW;(6pOx9w-G8x^tsb7bBU{Q$Z#CNTfMtGJJKR$5>!%^|bw3_%7R^0d3g*2~;1CGsc zidJO)@D?0so`3~=V@9a$t$P&DyXi8_GTMvV*CALe@~w52T!V8AHO2!W@)NQnzIz6D zIBaDymJ()GmkVJi2m6yzK8cYJj5pIs3H=FH?D)=F_;ouzUa)q>p*nwN>ej+DXNqYo z=_s+BbF17(GTtr>vN?*Ry4n?Ivd(ZB(t|_h0sDFAUzFa|Nv%l5R<9_DDY$lVGDbl> zw5%g~Sav1ySYx(Dp(+$T7|4apz%O1}=B~;s>RI?b`JwYy}fsfUX&!NCpe#~+q&yjrk(+wt~(t7#^fygpszBrR4ocrR6s-} zYD#P6T9po-3v$=_NV+Gz1}+eN&TV1gZpGp|CMb6&tD9Z{e;A1!@e_Py0^*(#ANE`E zHZK`^C=wl9Dt%mUgVL1-6FwZv61*BzYmQ5e%Qm(HKL@~w7kIM8afFz?2nfwDk9^-> zaH99Qm**w}93(y&Xu$*KHyKBVlD|rydyM)K)v#G5Z8&(nQ-7fpMx>m&0 zPrIzv(0VoTU|4m%es~lCwQAjaPS+wmXm#fIt;w2%*N%ubZ;qIFP&*8Dy|l*WI0VYP zrDsB*!iKcOHna5q{ewv0ZScQl*(D!P82iZZp7|8|KOP!m;`zQxrX^jHObSvcs^=k9 zn%Dioe+wGHpuyQh`n}J-tRKRRYJV*}d>-IXcC9N1r_uPy@A|j>Q0l6Cu4kgkbW)4y z5NGSK&OZIQT-}Rsp&Ak0cuSku%doi zlF_@|41yko)J4q4`-^G$(bh_XLvLXCUO(Ij59?b^Ccp+a!>XJvKS0ldbYYL62?Hna z85MDdG~{VSXQs#nNhfne;jSGl+sRscLTCLcr8Un4Ba>}~hdp;GoY@APtkpI#=m(9= zDA4*{oQoSaTv%$8`u2=HqQFk$#yPk8eJ1(&w|#OxW^q1Q0HeHS{hPNNNStWuYrG-a zI=UyB;xCerq@YstSv{N;%c95pOzInD?t($VOX=IJ{n|s;h=94R%F&?(YK|u!K4Q~MPA@nKJI)fEEE5UA4nTEitym;`d=1$N2OY zU$)d6{eF2Q?CGNTvy&LB-hYGIl2O)pt?8#enI04&o&FI^G+J+g(SH+LV|i<^UMWC5 z_;hqg5{ymO1?km$k`uf2WtviL6~n&jy7N6O6vOITWy$FHPWof+dE7lvr-7g6Y-?1q19e3#Md*pLBpRt;`q4X)!{uK>P|J1*o z0Sti`&9y;!l0s35d$!!m)_>dx`^XTAMZGB6Udx~i>F^b1qd$@9{7%%dgwc+N8ig&_ zeczmV?M`<*nKM5NNx|{n=xbqR^7(ylwH67$X}Ggb?0VGW_5-VY_cpu-enxg{E;!B3 zzB&ky%JRB3fU2yWYlD$c{O<=ohOlokF?-m zcaOA~5$O^tvmO&8My&;DkH3ppMK_w#u6j)S4`ZyRgRe{RDxQAjHi4Z(_tC-+HSE6* zUjHRB2f+~*C^AyC@mw_o(RUD)Z9LZ~_iXXW$dR@{FmyrxIKb#<@)U$ml3x!Sh_%>o z`tUhfNkEOGT5xs|;LGzV!dP6A?2;!@b`67D*zzIHuv$}@Azv|K1KE-d+w9q9ihaTc zk0FgQBnB%QVMVvf9P=HCVbim1RMlQ)a_2dO&sssD-B;~~q{3)LtI3Av_pj!lG2UK} zkZhT-H^2Rrjf}!$TYWr(oZCnk6YV_%o!{Fi{?YVzx|iGtYTZ=SJ*J5dE%DQsV0h8$ z!^jA0N!^QEa5M!6XPryzqXOdH#peiTD$(=li2zkQ(Nc{>H7B5H_2sS|Y+Xc#g{MPa z-k_P3Ix?8&3p-#uwlOB3=7YTn|NKYfhQXAwVH!mGPFArdhKFXJwy{Z1#w^JMLY6Z@BbeXCiwwQZu z12!>jp-P2MEs4wQSR&mrEOc8O2d=#YIU~GXjMn=0PSa-8S~#rhGkqqCiYTsi1piM( z{dfFG5a>a+kh#H7TSu|lZhza?%dh;;|0f(84t-SggkE9{%hU8D9_pkg@GrjF6ZrP@ zktud~E90}Z)^B9F3djicIAoJ%03fimMVyMOV1C08b_&)05{htg)HlQSJ*=t@cWQd7 z2>{#2c z3#7#Cbc@z2nIqCenNdkNE)%PQ5y=4Skbt~0FLPZb+;hVkf_*#>OttWQU7l?JqI`b;O=x>Q-rt3g#NJa}7 zt+icpva!6;Z>5(bm+$t-;lvj&Sb56@BwAO>E@j*qDzn_0(rWVp_W#T5lK#J1S; zd&E%};vrXv$~84cz@CEmL{b7zr>ZroMv-tGq>{K&*0~U7kRxCUT0BS=B}Ran;f8Pt zE`WVFExB6Omn0J*OAtG?6va`)F2%Zz$uBJ4fNmpaMulX)jfz$DmQmZ(qtJyqGn>CN z6pKEzMWW)nfjJm?*2a}~YPT|AAkA)crUq7(g3I$ht+D|F;Z-OI&G~UPP8C8VF%rs@ zV1Am8Qbp=oW}RlstYY+TU~azGMdPMr5dHhx;0E*i+2TecQlr_)l>R)2*i@Tc9Kd3E zH!L%qg;piYYozv$j}~?d8WSeeZU}k50oW1;He~Msxz$@q4EyG{Lkk$^DSfqRtIa{A z-vbdc0_&^6a-y-Fog*d9g$)=36N4^$K133`%y-_FM$fXMM8p^gyxnJnl4U{!A-Z#G z5&4LBVy3Y|u9TGqG!P{Xv}gpePP7s4L|x*Qz+)jt%S!Q7V}WkB7evp=O8@Q?SpcxUPya*jl;MO8Do~LG85GfW((=}}` z2rp&F4W`^H%>1^ei14d?PbXc@TdHuR-W=DF+pw7xZl#vSMXx;+L_~{X$Pj6+EE-KZ zn~zucEij={fC=7lF$7oOE)}ikr3|U>l_)d^&g<;pow09UVrh=n7~HAzl$Kp3;PpVS zI{SI{_T6~E@k}3CnFil8+}O#X!6N3!coDNT2LZc6MV8)rL>|U0N(-_`VrX#m;IY*K zE0qTlyq|Kqgj~JVxVqRq(G8KR>}oiQ_m>jDC^{l{*3jF6>o)+u>IHd&HoOLur^Wp? zA~t8mTESQ5&9Pjkj65qY=~8RShOhhs`D(s$E!e^t!TBSZV?9)Q9JfZv@IK#HsYv(* zgNgo2`_;u{BziEGGR&~W2E)~6PlUD}q|IjEo!6%igR0(l1?w^=r8(x|&3v3RCmMnc zyrBHw2HMV`VjS}gd;7a?Z0pPIZIc`~4Bnc!iYzo7QVbci5^aSvi|cUU5q8e^8n`!@On_wFCx93YDr-S3zi ztnY7|o4-W#5atp|bp?w9SRoM0(PVi8&2qSsmm5nF9x{`3ou~PS>PTC#CWU6Q@ry3 zDmdZ*-Xnf6^JJxlSeSPfA>#H%IF;%4nDL1OQ`xcv&_Aaqam?`4$QxfhW_CAoIf;lO zWkS`fpHC(bUH)SRZ~&QPC$ff76$!yd3V?yAZL3c&i{FVoonm0prM_Mi=bhO@%JsA!HJNn*x%(M+x|fjEwH5hB#d1f?eSrL+LV$IAb(ls9F}c?UHvh z$a2UcYgdpd6HC()TAy_-)=j5iJMQu9qdAyWc(~brNv1aU`|ZutmTRV)LA#wa(_z7kC>t&?Maxt}~1`5qX-_7W~arLSKNOgYio6NSID22%Ya zI%YvU_ij?%cyj7fUf(;AJ?G=u-Y<7I|D+f^h7JNr3JU~l7|>!(xXz1Bwu=}dR`ul~ zqX$F`R{=^TSdDK`*>y;ly4?c_r}1?=kAD?us%F*f!h;IJ%YFLD28gvevvpX3EvO}$ zU2wM8U}$Vbx#be?OgJ|YUv!92=UD;XFBtwLM8<>1TWALn#rnp&MDRmP!W@NM)UQ*( zxaHDwAUHWpLz#txn#E4ia8#s^4Ez;R9@R3{Vl$zs70#qj%;uzL9G(_KtQJSL1o~ca zR7pIX_4?tPFyMT|BaCe?nI@cN46E2zcFKuzS)-=b#f?j+dW3x`;uK0R%)Q&bG4$W! zyGuh{p3WXia6F^?fw_6sZRk+H_zELkG*Mg zT2jW5myDi7di^LTt1)^KR=dP&j<=40 zc%mT>7${KSo5WYnUH3&^89k$8@VAgmn-JwLR#HeMI4 zRS42ky)tYTDxUaBO0Pl(I zwl+P0R^b3*B6TF}H#IqZN)BYH=sijPCSDUjCeHzEb`>gHx)%k50Wn@#u?l>B` z_1ACbvC7qazLW^3T6bSrv#jH;INc@=H^iLT}Z|nI~bjA5mc(fYN+?WKK zb^+^=$nK|;BWci`Yt~m7pgK!ZvT!G7k-r|NTMxq~r@~}kvdr2q6Y@V>RE(^5QTUye z4kfGvR8lg$MFowVq}ZY()?F%#OF#)Z)F?LKc&DSTr?1|sM#9Q`b=zG>l zbqck0&3X8Fe@UFRtPaWi$!A*8S!c87t|;aN!rj?{PL`F-Z|U&Zp7 zAw{k*X!}Jh0rS35lGj@cxZ-NgIE!Kzf`D3)n;7Keln|08NRSVAYQl^~*iJJ6S6uKF8{*Z5)PapPpeM2n+opk~nC%6+ zNB+8h0rTQEt=h%Y0;$J{&;EFR-mN#(t=o-zEpFONFSd?6S? z^TY<4TX<(#j~R{C*`+Fk~m{}R<3O?$q$#e>#Qb@cIpZwp%SD5#I(BgGpcbOz1M;qfhy zd1jh3U+W4B*J}Brh_@6g{1$o{V*#yMHUnqT-IAE#mV+;tIYbu6rhVj%uNd9PBt@?l zMtdnzo_(zHlSbTWmFKyUGTGm#cB{V5^ztIF@+KeUUA!dOV|9re9^F;2pQv!`t061i zljd}bn!V$-+4}l}+OxguP>EVYJFj8o^<8Z#rym6~Z&yEVn(dyU+2N+II}Q?u>eH_< zUTXi{WDMlkhtc~NAI$D!ZxJlb<@SHe;B5!;phY=6Bc=-P-=mwW}^3UJ5D?eP`Eiq}i{$`es!*W@$%X^_?RI#lwcd;9v=? zO|4Q|+D12a4E;xdD{L`Q>$G(s{o!+;uNgO0t~P&_FG!1l9IEQ8RCg37RQ#kk4uBT- zCgtKDDz|2n1$8muh_8R)vm@lJ>8oV;liHAtOr~=L$4TimS_k7^L=zN=-x?7_x4~a+ z-}E}-%7Sa;+f{J@GlckZ4u2pnzFFOasWHJQXA&Fq&`ZkSW~1NbywywQ^N`S!#E?Z( zcoI$-er0Uk$)JD6_09$`ts{qJua%cFq}5kq5(_z6H>j+Nw&=Te$Fglf1`-{hIGM3 zby*%5(8@Ibes|(IYqeS<>dI>98oyWNu9dn{*?l9TM=6*b%%$yjFvH|v88cz z1yIDiQPlEHE-ngW@i8;05UXur7N@%%)J%S1nQtoNsEr;^qe{qaay5b6?Rws9-yWy5 z@0p>p(NDQ+Re-q}6rA@#^)Bp31+7Vc%4mk(s0x<5))eT6ot5wd>|%5%NyUcXQG8DB zYYn$RqG9XPEElNV66&FXfdR!{QVf|`+7g$aQxIA|7d^e0fKxn`rnJn;tXay8$g*Tc z<1=Py_D$_Y2kXhOXcDonTF+cwk@f4va3 z{}1zr=N0lFv!ifOG?82epH*$->yBRj1xsY!;15;y`iEEfLKT>F`LisS0xjf+Gh^F$t!+F*6k7>mlG68tvY7N{BoZ{6ff!@x-*C#$S5A5k<5GI2R0 z7HjF({i(2XxSExTa5ttJC)jlY1+R9mjR)T%&l$Bh{)fV^F$@FJj;{aZ}#k~{WSS^YLX|kRbv|XlD!S!%_P~C_ph@aMY zCC+9yzKNkIr(V5lUq=TA(|_WNciS?8DQ1ss?*IJQIHAWw2wLA_c_K)1)74nZ198*M zv27yKyDP)z0vPKor<}e+aTj&oqT9t>Q#ovmfX>ZG$%9cxV^=QCFbZ8VLz~I;{%8tr z`Fn{6P_)~+U6?VlU4!;}twplvcgL%To4=f%atR2hj#eqQs^%|};KA_mk!g!A1(k74 zU#s=h25cJ)DE6PDDC7o7a0kg>lUc%K^9z^V+|C2$JT{G5R>oGDtl_5Wb5|7ZUBEZ( z!0Tg*IJ&I07ssD=gHY^C?hBpEqj8meFAf+l>JL8^^9>wq`Hs%`F22M;##0o_!$ zebrUh%Y8bF0e6!X*gcQHtlhV#GG#1!Gb>-Cm^ z_~Yv+;vE~`y%bpM58Tu6ZvW2EdNHSF5C3R$aSursyx)08Lx!nY2|$yAd&Zeb{>@u`w`-%s-ANfj-@mq{yPFHkIQ9Pj;< z3Dq-^20aMkq{=*kRRPM_8@_r!U#bUNR7zJmI7dr zj>eD?@J#_GX&ruHhFAAQkJ6>{S7?Cwk_f`IXP}(Nlb0^?ovi>D>;pcaJK@crp`zf; zmA|}SQ54#8l==Oxx(abpchpvZyU<>4pmKe8j0LsIK_AyO+a~&Q#-s-IcTC>yZgDgO zJda)I(w8t0q-JXLJS{nh+RUrVDx3RGMcsTajhcB-`aBk;Zh$%0H%J-G?-$atk_znKXk3M1pW% z0%q}}Q=L$#2?f>}VasiLWnV@g*9^H+qoRcD;!By3piIh?Ov{YSirkgxvpSqy>sVm4 z>}Xb6-Smu%OT*A3*#^DLc*N>GyX3(6dKl~Vy^cgy=xJV>|D%*TA(I-0Q-o~~kRZSK-{u&X{d z$?bNR_35HHBdD>YN$bQ4R};|u*qx_OFqkkD8?Y#+R++m`Ehj$)|L(2@Q)g!ruiTP_ z4Rg=fh^NkiU4|{N!s41-8H?FD+O-p?j|S7n_9aGXRj31q6wZq4LF*QBrGEXH} z(725YPe&aAx1P4M@0Rq4IK77+wx(L%!XTjZ0E$hXD|CO#{FuiufVt6h>PMP{DiF6< z3Qz{4rMN?Qgj_KXZTZ}*WWjiBhZw}{%nXgg3U%ed(kxx1?19h=7ry_4al-kJJ8Ao` zpVOj^ds#X!{s;GIc6#L~fQ%@fM+n^r=Zv@2sIRxKo06a$sbwOvgLhVOiV0OG9$7q;OH1hmwFRrp`qlDgi8NO`;NJ5 zG@gtm-WtX#CmG_ zWtPQz!cYILp7%F!y;V5 zfVCz$py0%un_qA_QPT<#k7I9M18q%x1`f9OwEj$iD=6noaN&`&u)h(^5WWrtzv^Z< z>_5naikS0RWP`hG;&PzPW;?RcpW4HSTugy2>;#mq%uoIA(tncShnH{=@Oxj#Jm#_g zH~f48yxwRNvAEHLuQ_0jx^ILBs#CyG_~s3X^&jJ8XGeVC1}5rI!h3_0z(0qBL`Jso4z7dI zE&)c6d4M8#;KPX_m%txRJXYFzF%#^{T&!l7W9c*WWK&{^LhoFrc93?DZFs0XnG9|i_OUsjC^uWWF(UQ(>|FD8)OPF?E+HVmK8){1yx%JL{Cw==N3;pXgzl^1C^t8L?kcHB}E#xun zyeD7q(hxOdfE;IYoyjeG#d*;bSj2Q!qBPv$)L*CCXI8IS6?d)Efx#tWifJA?J={1L z3zx`UMyzsl5KbWU2ZqKf!xI^Fr#%-E9Kl1K)~J&v5%5qEN|Mk?)Elw1dk-b-9KqIL z`e{5>5;Mt_TncFKhaNAHg;72{(VPmCX39!i|M;A;+TTU4d$TUuL)6YP3sX|$72Y~8 z(8}QrpOZAyjK{P+)Rxib6eq;k4X3H$RvN!o`%)LFOm&W1oO1-%xS!hZ3@qVlm{s*0Y?K4dwb%RPSTBb0FkF zjc=@V2N%b1iub`uL@^x>ih#DwL3vRZnin|}wuA`O+Mti#DJ(&O1xlFGl-s=)>A=27 z7b}h?2a_Jo1516C<%73;${GyEGu>;Ccol=qHg2#vTfqVJ+Hy+f4wRBu%AVD7g!t|+VRqiqj5e(8{+F|lfA@;GY*`Iy)Ze2)<8vH zrLrwSRWA_sGTQm3JEs8UrXc~T;@rY*=n9lY&XMB;r6LMJYX(Y zi`jDa7AAPUT5~py-moruqn+D2QXkmy&L*p*|DXy6*nE~+^F`Zr#^JsLp*wc~99Qjf z8r?-aRwsKb-yg~>H)E~-*)caKUF^E?{$>*1>;3R4;@NC?D=|4=EWPevT&#=!`flHR zMS=VDe*Trn@u@P-&3%aI&lyuP-JAkZ$l06h&kO9w`K;`jx$as#{W0BO!#6iAo0@^9 z4Vr(rWO~V;ME0CH@8JZca@Nd01uK#RrO2;6FJHC-gDJXtUtqAyM8hi98q}C*sD4As z>Nmb!7YgZ2y{qf6cvo;(`);En`gZRNJ#8Xu*^I)Ry;RRZpfrzV^$02T)Y)@ zYiS!EmlzeIfUrv#uWR`UgZ#f6tIb&VCfKT6@ScN7Zpl)n0)CR?Yrc!HH10 zAXFr!gBrJj^k}OwQXkDshO-+~oNMykFp+O@4V;(C?Isc$>G){^M;V74>ET|}IS z@ptlx76+x6kwX_;0{hm6+23WntlR3}Oeae*HBS`RSkgUPeywr&nbkUk}Y7%MNz@n?2#;x330QV%wg50bG1d>rAQ}IOST+6_#48zys3(`(@ zL?B_fvwa+xA~np_bTD)Z0JJcYSQl1$q{B5pp~hs@QOsdT%R%j5a87(B3zRxg>7kJ8 zJvRnwydd8RzrqApyiKHy6M_<-X=lJ?0vUx=YOmcdwczdS(r3|ydVXtKJ z=#vMyl=%Zg0&k#3ZjD~Rl9C7(ESPE$vj$M~`u z)$^+eujrcT1h@lfZX$xg^ufPE*wEN&8q!bJdkyGkHk|vW9#(%k9F-H~T||Q8z5;ZR zUUa1FwO^{BSTWGelsB|KaFk-4Bu;8K48s(3o_sS2q|;Jin%KZniRKiJa^ zR0`8YU{9LLjdI{R$rYv^;>=BeNf7m&9T^|)=TvtHJIe(Nt1@eLT79;~F z>IXO)o9)xP9zCGw&~E2DFU+jgR9&DgXoFrML6BJgv9y znR~axd)?%F`~KrGtGne(_j)Pch_@`w9_;Jz25;SKXn);WO<(SXpE{j=)yG<#qwc(( z&%*;buX!TI)zvmdsb0-Qg6LKrgb*1aqs-a`>^X+s1^F=PbbWdrW}e;I4ySw+mc8D% z!0+&blAJ`f;t({mpu?S_AXLPSe}40^xX6hEpJO6}(UYi3z7$n)Y&;jM(}e7`c4X4Y zC{2(RrwW84hjcuSV?GS~S!=snw5rmb8s1o*+q?#>}Gh_(9Ya&SC5PBGL=20((2dqB%S+u?nQHEZhK#(eKjQ5*#!Fd(_{@Qg`RJ}vy;4~_AX-HF8B%^Z}Fe4qHC2EHBA>H)7 z{yce+nzSy=j0E{&$AUuC9hxCvV2d+Cq5Pu1*#(aG$=k+o^`Xs*^DrZP!sO&;hrj5H zFaHC}9%V(x7yha1|HTQOPS~>+=XNQUVxFQEmfQpFTrHDSq0T+c+y7s*30k51nfNkP zm>R;eez>lhv(3B)kLB&5p@QjjH5RIQzMklQCUQ02CaV4=StMSC!&Ihe&o(up$(Q}) z{oVMyBVQ5C`AezK!l)OF^@iAuMrwxarbojVW56OiE`;64#J1Wtn)}wT0XU5UqOqTq zjD)gUI-CRPIEPrNrH9_pG>;-K;a9+u3I+E&aELx`?$a3U&kmr#nxstz*l1%ayjotsX z-gGb|lh#cx5mY^*wg$|Y{Yro`WsI}@P@St*?V#L2CPoa05dy=QSmUTKW_}Wu=U)ZO zQKkQk1*+dwBD!5&@3{!6jAU3*V8n%xZ7_$?2fq{=GC=^0dZHc;iB*KG4>NQINInY6 zy^19}m&Pw52*m@J${@uQZ3e;>15=W|fF6dVsOsV_x=-kKW_1QBki8SDP?FI|x3WC+ zS9zZ0%b72k{WSpbxkVH0BDCDEr(HEy~t+x594c=})OHOv9B?+s{W_4qu;*R%+!IUC98F<+}!2ermxb>NyMx24n? zi{#w#hjBL+m!5u*icYmI0jrjR*R9EmA&zesSW_V?Ojm2PwRYmrM{q5B6>hwdEn!;C zwgZ(@kV7~5c9ZvCb0-2g51H$f)y1MhA$Ot=nFc4tu!c8AJ17tM9^LDB7mswuNob_P zo_S|JI0*TjlyyF^f@$1g$w*mr|MP)I)=(|;*-*PfC)Ph>d~3F5nBT@?lJWFn{{^qX z^R8V48}g^&}5Q) zaWbC%NNs^QFYs2;n4a1r6s#NTLNUcw0EM_sN!!!AeU@i6cGvBB&R9ICXk4IK7ySY@1D`>WnaQJ%GneIF4Io1u zg*AOa4n{OtSs*tr6WY@rl1VwzM^r3sfy6?R(}>&gDYK#<^7(wrWOFwpDwI8uY|4{R z+Nf@CL~k;c43+*)78-lySZ%8W%)acbx)O}cuh)O**f4qs>Vjaop#dZGg%$>@R4`4&jJ>Eg+N~74hPLzmgl)nq<5G!(^Jjo|$rc z22FF^-N+JCqTB#_k59;A$_9PV0IoZYXyoVKDQ)Jl+X~*a&iTpH-NcC}Cd2qN2Vywy zoUnrhH%XGOk15^=FJDBKD$!FoSB6j6Y9I*QM4peE{9>38S>F**>Ksp)k7rOVgigFO zVDvhsW_)PfoEdQ|0;~*nPG=B(Ua|4eYMTn)=y7Ftn!tw*fKZl-d(# zfWn~Q_*LoHTH?7=w<|{Kw&IaL(#cPW3>@~_rhG<)K5*XqJhuLyk5JX&ilBnu?x4`q z0?rhfI+O}bo9?Vzjb)}=B3rS$OFA6-CBPlTouB5gevBQqwzY!k&4l{pH#Jd`6;;Dy z*Ca9;$6efn`6frr%UjmDXj!nuz1SlHYtmvjYCLp(F0T`gf=Qx+l1Ec@yRbcsu~7^R zRwAx;(EUiK#Zs$zQu%KTys5#o`ojpg+_9RMz8O?hHVr(-GR`kb2 zb1Yk(l%t+?_(2*~woNfHA2lsaM$IWn`fI%ZD1%?uMy`8K_J~b~VSH|CJ@;ASG>WKvnoQ7lOBQooJdI~6Q>jQ*YEqYm zG{uT!Uo6TwfCAZy%(OwPGj|>|xColH^IZ z4gL$+zBnD!u0G*O`I=cM`Lj(HCjd^~f^3RXE00a*g5K^GG!sIz)yoAgJYq z`G%NwK$DcCj_qSCnI$1z=cK?uLpN$R>|EsE1H*I9TVot=P6LWZ>0H@*$7ZqS$*wI~ zh4_MVm~CYO>_pX}=jn)-(q)o*8)!e(stcT363}i>^xpq6oMzvrr6HJ}l3FI4#q#t| zce2a63mx7DamTmPp1q(ah$(-?Vf~_r+Ib@Cf_&!gL~R*X6zfH3qhBUVR-Crt z8Ip|J?C~w34dUz1TZe6|1AX;Wk)VL|7CN02OXwjki4I%ockDUDT15 z@6l)Lo%anfnMWvj5}qVsSkYE*b(ldzh@W-n2Tb8)+M_ZT{aC7_DHK%m*}OHp?Y_pv zzC{Lr`QlH{wi-=4+l)0bycx|fl^!}$O@-t6%Zl%xfFuLrKeuM3;TjaHMi#Ql1HzRE zRSur{m#zOKMU2>ZXV^7!zHZZ2&ZDv`Q<;gLR>_!cQK_3yEd6`*o{YK-sm=B+mihvJ z=SrYvE?-;nc3@}1Py1RQT8^W&B?qw852cP!XSyt%Lr!66MGZ!7=!(GdfPo~D2$3Lg z3pg3sb>UJs8WzfQk3@vgG-{NX6HB20oNXUAh0OZx-q&Mj#~q1I;KZJw z$7T@{A2$5;Vn3y^#1kLjs68*eY{5ST8^8eT_$3j3<&1E;97$osAqRw!mK{=v;sO<< z2rW2wHmGq+A7LNKDJzH}KCE=>O&DC2BM%YiTMWelRdjC%Rh^4$uI=M7ijcAN76*V< z)|?8ZG7uvYjy)K;7LP$ns-`(9!PQ8+3iW!ohx0)}Sacy;lS2Wr7<7!wHfvTBJqC1o z{N~MkC!vykYj4ME1$eMDaNmh@KKi02zC@_u9C^aQ8oiP3Wa?H@q{JocsgSW)Y#i_v za3kf!RX|qYR+^muMQ`Dz~)(aV6Q+srU4X0A|9m^-%}QNzdQLu?aY z5-1#6yKVsG!lMr3kJ&;AsXAh4@I}6+f#8XTU!#eqJ<~>i?Bpxu11AO= z9#cPxpt;7-!I2KRh#YLj&dDA5GstnEAZU#QXdP2@Eo3$~iBr3xu@px8$8Hy>st;PA z_2Sl=3e1U5WSgBdV`K6fQ}5E#g$I1GWo=gw0)DC@0F)^+fOMp<?+y_HwPw*Al{nV%qA@qfQaz|B z{HC(PN*-PTAEJ;-r}Cuj2>g>RKM?@81pAWvV#eK@S5Y_btt$&6ct1*3q+F_=(=@aUP1sV ztlNL<)p|{@7nIjFB^k{lK&@G2=^FWdL;T^YB-Xc-MVabfKl@2 zZA*B4;i;lkt|oBSY(^GO%61vL98jSHOHm-;arXfB?=d0)x^U7BowC#EwFa1(4o$@r z7LANq8Jq!POB~yD^$H@0o&RLqepF-_B#+i2bRUA8-oCMYDvS?Zf%`E?c(D2x8BbaU zJ|Tks$^|^DU?lOw25SAvv9(XrVo(XoF%~hTbjvi>X3ib#pb!uiva zOZPcqg*^7GG;0;#^otesN$>BY(ATwkjpsUQ#f=de{dup^yO`BRBOBT#rHNMF^krg~ zdqSJ)^!Xkz`!~3Q!>ekIHuCgjL1L!<>3Ko&6)R}aelizNuKpPy&t%-6R&A^XX6Dr4I5Bt1v@)~g@t@SJ=HiK z9)P9`j}s`mSRz=--z*>a@GJMdU%hI7Id$l=(K@~p8R#fps=S+B!B16xdfL2CkurB< z2r@jdDK>~L`zhiU5m0+@q1~V%3EGzE5+DZ?^tA+1J`oU|96JQf;*X z*;o(Oe+hZ;wYlH{>|J`jhmz9PQ+xDYs zbNlUui!cux*orAHnF2u28QFl+Q?cLCO9K;58r@}T8$5t!vw!JfO>_$mgDzn))k4Vk zzDp1u7`$z#Zqk=TmuZhY?86bG@g-elbRvWbB?1C#{-MMc!H{9!0vprk)sY%VZVpnB zp9O(v&E8Ow@xyZ7Vu3E7kMwq6WqddSh+kyliGK-sRwDy@m*Q8Qg!vt$g({KAn`aU( zb8FQcYyG$`7+l4!86RR@`SQ?RF1$&!(|oK6h|?8T&-EjfSzM0bLRQuc6=jlePg)w~ z40Gm-2di==TnQ5vha4FVQiv-TX>_sg;E>a&2XC~THUGgW+yV9*QMk^d^S$bVjt^$7 z%Mw(pnkPo{akHc(kc>2P?1#*sWqu%8NIG=S*^^Knd3xg|4idunJT`*r~nX%+8JN2Jsw({@Wj09|BWb!(*pX|>T^b8NCFKku?DWX(&9FAG) z9bx2pJQcu@(Qz<##uq$Cd<%%d%O;nl}H zICXOg_pQ@X?ibo~G2#|q^v!bYw&Z0(NHgk2?>0oEU(3Q5Clcfu?IELCx4DQ1>kGQ!6dqaTNc*8u zvkKg|;WG4l*yh6aAfwfc2X9)vR4=oGzGrW@76B(+bSJAdCM5un;owQT+V1}q7Ep1Q zGtaAB0C(a(L|z?y>n~wVOgW2`h@uVx6!k$-DXEkx?k~H$cu!IUzc_tPHgp%P)OC*% z|52&Fe117sTS+P3mM|jNFa@|#} zRwtH4!o_F<7n5PFR(E6F+8gx;qbFM@O=$n4MdJMF_umSN02Zvrbnp*o+EUvYn6-xJ ze^ST?mO z^Qz~m_yU5~z3Isgn`RZlGOSuf-K{qP%s^WCr8pe6c&fPk zLmoU__y(E(>mGEKZJX!bu}+3Hu=z61PKASHZ&#?!k%X(spFW-4HmvwoUp%lj#8~1O zxg?4oyr!))$kT=&<5B(j=GBU+niFH4hR7t^wuiU1YW#(dtBQyX7By18i^*rDYqjcy zoTJqbyTgP>4vf&9>wE+=BKSE*#sDq_|AxJ;aI5{Ij$E5F>=hN4^gHasxQ^XDWt?cE z^0uKOdfo{fad#Ci?c9SASO$~69BLkqLzNkzUls8ISCC3Un{$y=%%4c_2R>iW+%OCt z3iK-3z%E^xrc=ahXdeP%LptcE6T<_9 zN|g!{lw%sEUP4=d3jzz7=WplikF2ckFFaSLIUZ;i36)HH)j5sBLUxvWzT$-!!Rf|J zG$ycQMJp&KCV}z5;!ISS2T)`cDiN0_qM$bt(^z2i#OW9T9hw7r6_CxJNKpWv^yjH5 zm3F)=Tsw)d_G+E{dk~-~^-yEb+N1T#hrb7TNPJ0sI{WlDz4uvhnLbT|#XN7;)FpT8 zNmQ0Y_mqz8&XdXIoZTTZ9YKWhhLDAnu6^?p=wraIDfj3$K^^a4DPDi-ubz60B_6Ha zHgiMX9FUc`*tGBagGUTs_A2!E`&>wrG?;s~_fz~Ng&LRhXQ5Z{T~dF!JA=WPY4e^1 zF(&>-(KDGu6USXeBbDN*2cO*6f!prlEXKZM)Oi&;<5;PRBOj=j2bN%3D9 ziUNPll`#Eq`J`0_BdTy;%+JV~WZQ`=Mz6a;;_fFE6=sZ>-h>ik?CQMAzF&vSj?PKN z8nMysjvN}!HBpXH%MNGchpVH6MQXI(knP3SJy6TMo)yRtsl<8^k41I3W>OJ5;4zc$ zlk6{*t2knfqU$N`-1XIe`@<7Gaj z6KPf2uw!QkMg3>u+0YAl37W$M#LgdjZ{*7Hr-bJ(+2Q0lU!-d5>A1IIZH!itODyoCRfAVM!2JBdL}Ytd$bH`e@U!kxsS#%rMf!YZYBxya9e9Z_~m9p?O9Gv zb>Ji6{K#V;J#bS>v$ODz`RS`zy`$*K(9@K4&S>dO$*32O2~>a(-492a;gVUsi&9&B z;gysvnPrV&Rz70C-5y>4;=gO=_yWMib`p62FLT;eGHNFw7%u!2OJQ{H$o)#UJDaVgIOFN7Lp zTY@9aEFPm#3ztXoB8pEce%AMU`=iXW5L(sBK`$Vl20_q%`!oZHG@k_r0*rax${rZh z1A4SXZyq-ejo6^u21a^k*t+r@2iTAUqBD?wwUfU{aTXt&v_iKf`fRC*oO5U)BqFyh zMETv2vkdrNAjqx*!d$*GI8;M6mEKW**J@P%JyJ$k94Jbvb*O!evkzf?WydFBC17L2 zgMk}yP!t96_O3iePSUmItRvITY`sU^lZSp6@gC>$kGPf`0p7*rl3$p!sJ$L@QGME$ z4^;b9X$w?~KYqXT(PUV*D=*dEag2mcKd7*(%rXMqA{!jKNv{- zyxDTfqCpaMp0;=MFk!Po+oR;ZdQj}axU~+kEVjUR{9y%a_&_jY%kVZ^RNH2>Z!$V7 zNHeMXHia~z(m6KFEkfW}tu9~Wa4ruQmUe7rGP&=_-Y19FOAr%RpqM;pp|xIN6s>S< zx-hwLm6-;BS?@Hk&cHt%LzHy;BkiGDdW1+O&Ij9ElxWmR)$IXPRz^X^Bg@oGk!Dw* zTr|tH+0IkX4Ex292?T_Z23T3-@bN`CwzC3*uDx@$k zcV%Tql<vHTjZTkXd7 zc^OaQDm%;N=~T9wrcHXZxB}laE!?D=ma?Zud=$X*XyCgrDwLJ6ve1HOItx@*_v>Ry zs54J&#kEqc#LS-6Blms8tcN-C^^=x$AnbJc)S^GV{y7(W>{v!#Es?M##lDU-Uu^u% zGD^4P)J;`toi^1Ss-N0P&=)+S$| z&hzgWnbtp#o>MsVTpR6A~gOkBl_W*O-JdC$DWdN6YFAijI zAUEa6%ZzJX66qWq1(#`5c|B96|LMMo8J3(I$S@1$%bBaGT!@BczK4f@SWr`B$;|GI z#VOh2yHIO8E-wnCE<9w-h@Rp#&`-Ce)mE`H)K0~F*mfNq#!chzs@+c7>!8>i$P z>-(gH+EPQX1fc}mT^6rFN4EOeQQQ55Z@6z?P{jq1Je^q=X0&Dsfuf9M0-5?=Kv7Vm zjflSc=2lMoed^6F-O=YP5uRDQGHA%mrk+AA&Z<4JVUx~V?`_r+VA62D*ckf77gjTf zZbRpGmQ5n$&9(Ns3}unB{T-LpGJq2ZTV>zgD-#3S$aF94>a%eL(D|3!%4)?kx2DpL z2?S?YVWQ2w2K;fn>BcTqU&+(t#h~>N63)6>MBWp{pwE--?vgiVDX0hK4#-KQ9ooHt zcR738Kh1H^60cH);8E@BqT*u>?F&0GAZM!>w8{R ziqSN4Z%3r^8oo5hgN3(H9)oT)+JesAnH`z$>Na&*T=;(?9V+{ zSXJ|G5Pc&1YkU!n@_-+gLlv!9CUjLp(dR*Hb{8|dRKEoEL_t(yupFR4`3*t~|kBPZ2;G|MQf z2~2p21@S#J!%5D8!Gc<_V`QsMDv3S+s9hF^v~>ez4V1%V?h%+sU0k^ni^F($yFDipMnzO zPno3!-27b-o>!;fe|~rk7yO(w0)(sXS*vC0rNYPJ8JTDBihpd1>yG2{POX3oS4Tfv zVHc4CCYH8lZH*?&#P*)%mzDACQ$3j{^jogQD!FJbS5KYp=zuTqGsUE&_mW9A(+Vr> z4!*!{I;;%Ovz7PSP3c11>Y)e=&6dh4M^J5w^#$mO+$xHGieNQdTBVu}7les{4m8~< z@v*wPP=Yg-9hgzzxoA)Qz#+`btb59AZd{96^ zAF$l~q%Zc>>}sZC*#BgFaWybwZls@XOI!aSqE{2QNiKvCv4xeDNSIF4iQ~|_D(kj4 zFzory2tG&_O7)nZ1~uH^C0n7T8s&P#bjxw?#b&|;;=+$@*|~MfaH(a^a<)u}u(!v~ zPnSTgZ8nG!&^SR!GSC^APJk#D_)d1tdXR`-C+`bk^L6^;FUwe* zMVOEfZ42!*Jh%La^?WVJ$nCqF6<(PgM(`tF#V4C?cQ?GHfK($r5mF~DsI3(^AwNGc zGk~DYu&$tTj1V6(k_;6&?{Kkv?4<`$Pr@PTwoqjx`#c(L3-5j5X)+5)4%T4Nv9Q@c zU+uTEh*hK@x@0|~(00vJxjQms>X1%7r(-9m1t+YRS2*H77!Q=|Bx!5&Fhn6m);;ih z&G5*=$E;PK21_|M4Kg}aB$Nk=;CdXj6t^&|g^ZK7J^=5h|<&P_6ZnD%EVj2dSIPl2-# z58#T6kx`T{8TJzxJ18g|3TCX{KqK~$_vUkMr$UUzPlG)j?wzOtvf-erpYyv|+?a&w zV|LTMwPtY$|LkCGl{IY-5yZxUg0a}1In zykdKTW0CA-@_&Z94G(1CX~C84UCvT$y-1F-L1gb`H*S~FpVdx1sNSTqp_A{!<4SFe z*(NFK)PqAENa$TqDVW`56xlkFd~df+%a;5_AJ?ncZxEw`I1^}FU+1EU46|#T+iO6e zd6U@i0$~BzAe*ZR64OLz<6LOnoK6ZMkbUFJFW(F7QVYv<`C{E{zJLvM3zk#oRNaV9 z(gW-IVQIjC_C@OQpwA(So|1hR2P1)jLuu^{gtmc~Ef2_TKkM~Ox9(az>y2kOAINBx z0TaH6^2NRSo(42t?jCSX+Ip#f>1y89e+Tg_~9w|Nt- zQuzR$@0XV=E!GUCrN{Jf(?z`ikpWQw#eQD%#jam5S6uIsH(O_bt}%`kt<#0mUa~xnw+U9EM?$H7L9GG+R_#_ zP|8DRzSLatHX8kJUT?L_FAEtYcL0LgdAS1oYGAP=^`O4&%&mZ*;n@+ z+bx=q^NGZB!5C0QHPfy9iFUc?Gz@(rpWk2wbq@Y^CMwPEKa3s0k@H$hyz7o+%SL(U z5>-178n324hDUTghD*q1w-Y8M_p;_~6WOPj(QY5LE|_?M2i;hr)OCT|4~;7b;&P70yBiag5B$GxA#t1{cw$3HVojFp4!`)DmyESh+|@il!TPC zOOCj)IofTg8Mo2AsEg5W3Ql}ohe{iVy1KCE818YYLcOuh-C`ki`Yj#-@9V;(X>xUW zqACqZj|%f15ZWDp?b$`EdO!I!|D~&3p4esTjs>X;&fl4uz2>_AOK0niY}X^t>be`} zgK>Iiov)z&$2}RD|CkA#+}`vqy(dDRjk@_9N8KMa?Gah6cibIwSOG}=QC_hke>FN- z>*Pt;HZ9i)f6KEb3kpiy*?qAn1%NgMP{{%`_X)Q~j@Y!Xn+_PKix4GT3^K?F4BS|G z6OG4oV?epkoNa4Pq?*S6pg9e3ZU!*q7*NAbUT@)ogPEsW=m~%qL(?!C1lyBKCDQW< z7+i#hcS?VCFk5nXD* z*SgGPXY-IO7F-ZehnqGusfLlU$J5IkJn;8(nM&>V-2&Ju{EgP^m!(}D&cxD#87BZ~+Ctl`tt;ZaVB2ba z5XgF=`LE}?y|P!tb1#9yIay+Vd%Zm7QNo`D(B@=l#1J4TG~{W)(@^hwy2#1WJE8Z` zGzu+dNwi`i#{*BYYB}w^JREf=ZYlQZ`03F&QQgyev5jiZ5e_uRjD`Jekhl2pn@icHA$Yb{)aJHHIj4Izo9ST1SGv`UGV z%{4|19Nq@yZOBEeQonw+ZN9eN={Mu3G~a4vMT#eVM4VHZt}!e@d>=oPxKOWD*p7J_ z*Og?St{7h)8IN8i=e$t}v}Qh_WUdSnA9k_8_`qV8_1iWq5Pl4AX@wOISMg5t{c**s zr?=FRD*iM3V1~iq(s$&mCQknR_Nv)ij9~|y9Zq*|KY0aC&tbrt{xe3N9Ti?8D{CRE z1eDIz9mR20J#8T=k4s1uZ{jdTjBhN)Xtj(ekFF6OYE_CTKNPU|2^6y@TWT(;u!{g0 zNOkO}YE(t2krRrK`%*%ZrrV<@Ox-oQo%N+nFO3jiX;ofCkG27;Kv79cI}9LlS6-8DQRk*_ECF8B!|!M4ht??WENxP4d=S|)|NhS> zIT#Pn@VyP;bB)}DRjPN+Xi;lu;(s^Ys%_NH^<@5*^{yUy$E@VVDF%$Lpq1A|(y5^& zO~o^|%GylPGne`+H(dsJE=tTp^<} z0O-kStU|1g)XTBNqa9Ms+>mbs)a7`!4p;URDZrH(&he-&bw^#ca1!e{Gl)XT7ni;M61Abf&YU*80?WE4~7SmUc$P=4V*uf0pYMg?WIM{jW|IY-ltkYCOc zyYCX6me(Rl&0AFCZZ;ba)D{vsMq?_JJnVR2rE3e%fG_P;Z7owobyOSKX41WJLEC^2 znSBjh5sHDyfs{ko`g^&``&5gt^Wf`^5uh+9#F#nW3fGbNPHs6%y>F|fNvge$hmhyg zRc#yd3`=cpSUlrz3uW#Z{hKk)&@wm?#-C* zWnxxotp7uyKr&64R<1=~`(Kpf=AhlaRmP96d0GVGcJlv&vnX9Fq zqn`LdOOHG5iT#~?)0&R_ZRhhy+?%+C|6SfBR(vb^o< zAKXq>@z7|^eth^3;EmF|e*5!CZw&sojemr%|C8NsPZ}~_HQEyK-H4a}axyHt`|B0e zozQIDvv?OKyaC#u!Z!(8}h9}=pXP2WNsXKPJ&jko(O0!Si@d)_|Rq1q)PF8HwBK!R5QKo;ziCjq7%&$s+f zJh&*!$DV@UXI-E=Z@-pER^mL@8?3uM2G$*X1_o$72*kcgQGOA`N481AJO1dM$)iF%0 z#vyzawLcF;uojyno~+hdow+A>>nMkKHy8#z@|x;cmAui6d6*st-PY@R0L$6o( zZcDN{&ZeG$E&u1|AvH*FDYRBpPR9jRTq@0t2a(P2WANy|zc9mX;y#U153bB#7S&8^ zRG|8&#m?)V6d^s#V!4k-IQGp>y|6VWG1euH`kB{BxH5m1oU}HvUVonctgq1ecDFB0 zrK+RmkFmWu+=d4$f4WJ#mn6X1iC7nMSh_DmEDLW!ftq=agH7jRrES&vsAGRjmIf;w zzzrgwm&d9*vxRLAO1?!i84DWSCgCM*7Q~&NatOX90ZGg=1LZ@n<^`Lu)=%5_rM4>c zY31nlmP@1kKrTxcs;nn3UoO@%1)HT>^>EM`C|s9_UJ=s%EEaM!-lMKYulZu0!H`NO zyyj!4+hb(E4lWJ9UK0{8*+a1uw26rk)A1nNpL=2~)$W%jZ0k{BwELZcSdm^#gn~f2 zJ|#ZnN?B!4;dF2qyz3$dh^WTYrx=>sX=^q*q|{Vm}rY|<8^Ai+VBFSJolL+ zDxY`L+;j={8BCd=_j|G3zeaTnKnr`A?o=;E`U8waLk46?m{gE!I?NX|r*RXtn+#No zyvqg^s@tdYJ@s+i!jPH4F02H@imN?$9YF=ff{&&Y5SB6`^_2h~gW_IdJCjE4&^nPFfd!C=#)5R{#n;hr?wu}1^*qYX8uOzUTK zIwiW`PAZ!YOw0|eKfUF7v~vqv$v5pTC^p_?uCoQ9zPhbd{}KbZvz5o59f5z!q;^ zl2IMu7pKioES^_b^@}9SXJFXH@Ahn7zRyh?uGL)+cm}nCsh;h1rkbbaeKN%Hcp_7r zjP%$e58mh+`&ei9pbEO}m?b8;fr3bBtndPMGo(nN3vwumP>$VWDpQafZ=pPrJH}+@ z)R`+&JbvO_TX)1=r?M{baX*^slz=z0*GjdzG<+4z&j5?h@MyQ`OX*3^{zw!>Rd6Il z_ru&=k3}iZ<1}V$^z4n|YP&$Au{f`-2%^+=NcPj6Co*b6#Q?gWR|^p4yPrDk-@9(N^GFA~+b5;q1JyJL4);FNzT*fL~R^c`aKF@lfR zWF~jTLl>ySgbQyXc(Ro{V0jrR)ipz)$n`#Msxv8vQEJ-kPvR_GuT4BR`&anc1xbbk z!^#YMdMCg5Oe64@mDx`k!9&2Jn+IV#O$wh!O8Jw^fiN+ztWo|$H?0eO?un+%XlMPivCke*zFa-_13 zWV=DYT+U=`8!cp*O>4}ynsu-xqIe{cB9Txr$@T#D7pv7ttoKw@=4PWzc={ZpQkCg& zkMI z$x@)<41XPA`d*5CwA6peEdeBln_dmDT;mr|q|_aAwbHZiWYb`sWzUN{Lj_cXG(QVp zktu#B8)6lU8%zYmF`4r`@`TFjKR$MuoXyrQ>GFw#QQ z=@YbESIudmKC*^ajsdSR^LjBF8MQQQ)A*n`ZJ?1l>KGZ}Wx9l+al*Vuo49WA&wINu^LR{w|38Pf;3J0mSw?DI1 zR;N>HU1uj$XDk8It)u}nZv|9R3APcgl|&e83}BcLk_TKvz!70^uAGJwzZtjHR9lej zmUrDQmt%3`u11_9XTL3@UFc2Q>)Q}Ey}HX6m6E(n**Bmw07RL?OEMT3m0m~J^o9?I zFjuy6D=vXo;nU9O8yv-|ADBiaqkLr?*nI4*SxN{X%aRo7S!*`_UHHZHrAFhk^kHYsZ0hal7B$Yui}tkhs|DJbKPE+ic8V(F?dTjl zTf0+fVKjPJAz<==nD>}zzt#@@L)O1~Tj!+>X89PZrrmI%i9QrzqM>3;))|=*elg*$cCP0LRzjn+FEB~{Pc|JwFvF;K zjztkW6Vqi=nOgX4M>RX%#;Bj%NUQGbt67_myM=b7(RP%!Deg4D#0xEcRK;)tkX6O729)vEE46LoF) zt*8@WR~=X!aOLKFbox9gR!qp?1UD8&x=ECE_-d!Si1KdEu~nB zddW8B#6PrdB(K8SLyL^X#F2+tcnDQFXJy>BElm#lteDw6nhscXwyB6!uJ=OgdJ|Kv z6J9tBmt+J^i@*(#g%4-!G+3VVEfz-97Ns1Z026C?p{XP0H!I9p4cOoEd>4=QXjsVy$E(myZ^AEltOqg3$US)J6L2j{?$qhC%iEikB1pQi{-}5a=s))a# z7f<}qh%tp(Lpk|e|AxN)aY-BVt>`DAn-j~VJ_z(M~&X5kZwDMBN4Q9;N?OxJ{Y^l+y zJNo%e?z~YI>$mt&=xrl(CM%Cj`RnTvw?do7ssNCDDc)_j;YTY8&(wj&0)VF?h?ii8 z3@jxMGLThXt%5@Cf>zdXC7btd&Aw2L;<}B|<8Q?4CF`9sCowi$VUIX$u11(I z4_=A7{Tu8)vHh>iwAyogjTs+(6x-ma-D9vHt-s}JWm3or`=dt)_xAhE_SKHw2vetM zNJ8G*pM`(E0tj;@YPsUG`YYhi>6dt7U+L@Pel+{hS^nktnowW`S3@RK`e}ANjOzQ} z=Xh>A;~Kl)bmQdIe7suEKZJyOI-eej zf&u&+_j1-4n&v{ zIR$>Fz$*RlObnikl43kX_nPNdh{nLe&T23wC3qm82U`jjAJ}=0WAjE?wjm`pDo6m7 zB!_mjK8B@Aa5#C~Q3|tVE4b(=k`(93H7wV8Z|whD+a)p@HiMxve}de6UeBW(M=}tk zt~()>BGF%nIxtI-Y~D3EGwf=&9a{bjB0@YK4Bh++(ng-nc=ScDv2Xgt($7JuF3>8PSIoZMlb0;%(;FHy7u-C&%LDO!&F8X(JlF(H3s2U;I0dmoAga#?bB zTv)YE4Or;Z4`DfJpY-=#qW)@uZ?HR0-VQ4j97i|=Z?(nHy*hPhjhR-3WM_R7Lg6=U zlYOO+ehef~(I!$4K}8fNdD}d>I0H#iW`gauV_!qORj0H~cM3WEsqe0ln!0}qne+m} zDzL0d=Q3C2WIVcoW~8=ST7*wN8icx zOSYt^droSzb8(;Ug5xIV5m&;M!YEX-hbX+9YZn$cDDEJ+wbl}Lh|}pJo9z7k^HlsS zp6JIL7k8h92Tii6#NLdK{Z}3(FSCwdecqg$0NzrD`6I&L_+k7y@Lp*;a7_n#NB)Kn z<@CcyTWQdt2ldLcGRpIROVc8x@|iv|o$pV?BJ-Z~TARK03Qxo5GA*qUKNJfa@4KO8 zc&=2S@xvsgEn#^ram6*C49&2of z9jt?2%O+bskwRqgSu8l<*;#l>?)Nuee+_W7hJ&Y4+${{&QO&02^4&bV21(tYUdG+FICHo!k6Ujwcszq-k~Z`?4_7 zv>T`ilG&_%+>5aMqNKKhf7a9F?T@O@qtKx;4Lf9(qrIWL@=bp8#vCw|(y0kFeNC96 zFkGisaRmpSHzE@4s)+lc);4@Ef;;ku9frbte8}e%U_Twl;>HTjuLPL)zyC1*5b}ul z`Kiya<5^o@GRq$r>V!JoxElobD$;AqL4R~LjVRq4E9Td0l!kl#A2epm*YdIhM&MB% zeh-|7v4@8r(Row|TdGgTqxh9fX>!i5$ka{cc_PsyF{-ErNJDHZbU)*-8%sqWM~evR zd{wR4s#NugBWK|ReqA$Pqv6hhEJsz>7$MUr+?OR;D@K;Hkzr(6X!-=qx5~IOKVI>I zxa)fRtOT;4{b7R6HgU@bYscwXXHCmBF7gfHNyJagT{dHVaL$Lt7}aUM?93T#U8J4(i*(LHoKJv;)DQR&v!w{tk*x?p`Pk&6)xP*KSktJj~R zGY4p9@rf&m0TarMmX9;%hx~eYFklk8#$V@vY+N=Dq%w^+)*Tn{A%K%CDSNg!(^@z7 z(%)^)Svy<9y~DDTf&euzqHq@=<-Cg(#-E_K7DC#%wf24)3Km>mrouESs?I{CRoKdq z+Lx$k8eifrQ+N$ZCigh~B7;@iT4d2=eiJ}Z>pyVojVZ;$oMg0*P_y=ma`W4;;e^Px zRyT-ANu?*+pdUbfFyIf>#^-B`O_OM+Gx=+=E4KMCZzzGFD{67Aw|DIn>cSDMMV^W> zGwgKr`6AovHs4c22v3+Tk+y1P7VXjvTc|Qenc&i*Og&cu^8N4~6!YQ9GU9crz<{>DlSNGV5iiEX2NxR+k8D`ljqBzw9Wq z2ENr&T>yL}S=g-myT9lTdewi{$cwjtktHTKTaw{Tbj}k?irl(F?#e8%WPABGIMXey zke*}Prey3~=WBFXb?$W$>zzLOpv6GOf+$HTN<$jOY<))2(gq?7xg{R_qS9v}M>)xD z0wSpt;`%I>QGu$osQ&y*>Y&RUERfYj8U)ykF*RwI!1{# zz@D(Qu?h;?1g#3tke#Xicy41~5F3G(QnJ+$&etH4Pg3fR^N~x9qRX8@tA$Od@117w zIp#)8F;1zpY1wflHSLbi>Kzy`Mnuat{12+$#w_BwuPOC;ixT&j|JYS3tQ!PP+0wnZOpd7fJGO{%cah3OX3 zUD^C-c1N>|+3(&$H*4}|s0fEm;B{Wx&~)f(=}8U{i_n-jXSAqg3*`b;?9|ID0M@cf zi7Y=<9UEU;!$6`nR(quN;Bz%O#)dh1)trq$kzRY#vD1#{NbeD6eXP@ z+6CH^y>}-E0WVnS_oO!Xc($nuSL;-a228h&13gg_ZX>!KX=3hZ;BcLM*bhyytA=C1 zRHbNVYJ(=TqGvD*B(dZ?p+m8~JyyA5Peh>U(tWLf`=d>D}2FPw@eaRxuM8M2`-%wZWbxhVhaHJep8{|C)wN<^( z5$^rNw;t*;U}%2{c23;tc_(o~uS=gyzxPwlhtdVy!RC!(Vf+!Qw|^c@!qrXJiE*rx zTu-oDr~NGJb`w6Ibg>Q-DsJ>y9+N?vmJmUS4Efm%YRZjnkF>S){5{uVWEZOLVm;a& zZX&vcyH58C00+qSqIgomKgCLMuSidsID;Bt`ZsY}hAvf)d zR%Wy^gIg(VpQ*(0m1oL2eJh3yn7is32&~y%0h4)O;aAH1=5HB6D4rte7`e?$AuCWB^{G%SL zoSvq50x{@X=Zy zYRcW}fOZiL*Lpr$pg*SnSPXmQdk7OM5gp{7jcW(MApId)udP{a;? zi&loF_}gCIP`oEh8Pte(b9YX4Yu6$6zEWu5QFm^>@-jH%f3+6(EL7o({PeclPvBOI ztBn9DVj34{lW26@8Wnwy1a>AG&%hmaj`*hyWFdyascz}my;lYhLdspC?HaZ$0Rbza zx>YxDk6g|}qz@g_r}+%PN`m_!T+W>ytY`j@#Q?o(__f|CObRxmI4RwLG4k?)sn-`GYvbr>Fngs> zeKzcxG0lxi#!D4=EWK>Ow zmOiT{R#kc^4?Q0U`e2P*Mv-?*<<2PW@%m@7wa3xRZs)wQhh)p;u60}*(c~8Q?{U4y z``90zNq{K7dU^fi+uIT)ruzkUA;LFt&}U3 z9lUl}_+a5L8h>sI;E(nA=5O?4$KUyp$G-Ws(8fQ#PZam;Y$iYN9LDB8U8~jmeVq+a ziv4+G*ajQHy;3=lJp8#l1HkDMFsI4H10<1PJJ&h9Q7^ci_vNOBijHUKn%`}|%@OD9 z8Il7W6gO7vCe0Xq ze<%<*u8;XX6TK4P8mT-5M(_pA%>T^Ly_5Xg4nA$M8xOv!61wj;zGri|bPny>e9Fg@5_48wHEG+4Fm6{H`RP6pymi3+UFRFW87JQcxVq<1x0+;^v6?Q1 zohZz*?y_=oi3U;a@UUT;1Jyr3J~^jk8B~q&ucHi)JorxAT^AGO$AqUI0C=cro%MY7 zJ?181+qFv&l^(!JH;7WUI354dc{Oy9L%~DObNfmM)4tjkHk0qE049TOy(&i=rF&$(2b`l3KH3 zvOy4~kVNWG=~{Tn4*Qgs9)^NQo|OM2K>)(6Gj8gYLzur> z8jlJ+dzCF`8li|9w1DF;YTa&SLOMk1C=X9REF}_OxM)Y#l_Yf&t=U{=vyOF+VT=f zy_8Ix@jaNR4xN(uoxcZNIICx(#v~BQPdf-evC9rusrGxHu5e%8-kgh8c|QFd%ZnBV zYDiWu(cPh74M`*=>~OYtDsabZ7)%@#<9FmI4jk67Pz6P-GvhfIS)Pk?R06nObR{aw0@0hwjogZT zEZJzBxNVg@22sl4CkLS{1_FUWtYI8pT-OmTZ@ zDf7K`a*wQKDG^n2E=JDixSwQw?NC7CHWJ7bOsH&`7ISf3a}Em>W<)Sao3s2hIsAdT z4|GG#6m8_OW(f=%o;+mNUb_^*zs^Mh%?h?FUJzhumD?)k!1yzsas)< zk}cVyRxH^b@E9O|d9`e*#r2>*sg7iU-J~@Q`OKnE6Ru~rRGywax#&+GRAI8=E>x^% z5*-KqHMV>skJ>}^8{cQn+xIv=5O$8^o1{#VjAh}09ycCk_-Vs2E|`SJic2%2szVKg%ALdI9y*YzuDwLf*Iv*mn2_V-M9dfKF4jE#%z-}qrS zu)TD5zaGhs(V#0c*Six*X~k4fxULGZAe^?O7RdS1389=2gPZg^@^BCNa&h zhl=~=m?pMe?Ea?>@yS`C_;JLHNvh3qSBHRSCrnKev#oNF7;FesTIg}x$r)dMvb^sc zHu@sHWLGW%EnO}Yp1$El>`r35Nx^!mj;Ho%c%~Wk!H{`Z&9A2V|KswftKUTheD!yc zWAOL8L#p&Z8hvA zGMmp|@H}G%?;$6LPDo9!2NodpHhrFLZ5ox*x<|K#^YHqhffK@dpwj$Qr=M&UQ?`b9 z+V3d%CBvOw91^VNtzpSc6Aj1gMjsGIP#xxrW1kzy-LUPQ;GZ+q}KaIS{2%-9D-+ zE?o4qs!`EzMV!^&O#~Uh*3trYw*7KtT2_6p1x$-hLG0)aCVg~*@s|0xbI`z<2>ybD z)|#RR)%=G-W+GDBU}r!j4#Zng5_kt4ObQH0K4in!>}Au^eTKS{po7u1D1~Z9Y@(5$ zc)E9{1LXy>$aK%~aNVa88jOd5at+nad}7o>un(_diIL3T%AcsA8Mu*W5u|U$?XH*9 z2cY$enQBsacuR~K>NdKPDQwz2P{4V012%2zl~H7AmAV7l_b z!J*Z;ypHtR6I2!_kp^?#W3{LC_5w1(70DntbrmB+?&zvZwO0IeIvgx-FmOY9QV2I& zEI?0y_%(`NBiU24;b&%Irt=d9aQZh3BwJ4=<}rxtKY-nKxiOe-ZYw&;%3pc<1}Hg6 zZ;~CXU@(cu>V-7FzhscEz6{G4w0f|FpS4cb3;jeCXII{=XzQoMxGlvGyGmZ7&s3#s zQcCFep&F5P%lLw)Ws|cg%?xk6-;aEhEvvWsC_+cFcq^kh_+|fd4?$rQenN%tgo-N+ z3gY#_H!7BzbcBAV2yE zX@xOtR0L%jcU55-j#z%-tzgt!tV7QQwWVFH+b1SQAi2SICczE{=N+|Pu|k5Z^oYx2 zdKMNVvEiMD$|jwmlX?z2EFeXedSLdCr17TN5|aU$MUY8diWseMBc7YgcD}?6&X_)o zEQ%GNN|gu~FXbY!Mq}=zej<9XJEnK+>};kOl#iNx#r?EI^-8D;j^L|*I22*i)tj2W zFFRMgAB;r*MY3a=H&*0~$lwXvohmi#_p`v;Vc<<3&ORlY$ls=qY43+JLK_)Hnrx`$ zp!1{8$5pqE0ZI!-x5)et=iF9?-mU9B>g|2^?j)>857t%D=iZxoQ`z?GR#8?yIgp&N z@B|W0VfoZe&ZJi})lZ33EU<@_e9e|7WYR|`bq2R^GWO|UCo8B`=6PE?f3UXVCR(za z;>TSvDS6l#Fco6^$F*zv&=Hg%$rK2MD&+k(iFtPjAwKIq!m1rWdKqVWc@c&3#zk** znC#^O+GkgIBu}=9H|&i;NDIfBl(E@i#<1~u#8#_ih8f?T5THx|^J5r$+@x0>&8Ozn zf1Zi_K1Qu@_)2w6WFdH&ZPVDvy6y9-*cBhf5S39v-_>OAHV!N?QWSi=>iGudY4T$+ z%ry&YQTd#GyWeQ^)$CMS2@H%aIhWTM+&b?K$`zfH*c^sD<3>6HPIF7FGE6?$O!DyO zC0w*oxE$a81id-2xIOBK$kqf=sIaT>a9}k&^j7~Tmeq&Hm!We%>U4q{on&IFW{j?$p+9O_ z$#YrFd!o2?>MTa~XV?KWKC9X*tEAc(L~Y@H?`*iL`#y{{U19sOijL}s6%Q6JaOg5fQ zW}K)8AeVDj*>CHDiCI4c_iI^iTieHahSpiuin9E#Rq(tOMZ@Gb#!9 zt}E%mWmMxXV~@{P9$Z%+mR1OTN8i~jhB`2!sr^{J)uzp2GI3ce;Q&LPtCBqn)x*8d zu#+(Zl5;D@eqg_?=&hH||BHRwAVSYdvf<3!piisXYSKO9x^w+#8QSH_0Q;-hvHE@s ze!8dA{B2}Ccvb(}_xtM1etzz=#oz2a+1{Nt9m1E#Qs_gLl}}&0bw!;Ir?Up7i)#1y zDp8AlvW93tjVaZ*qK4B_S_sijWXH71h6g@g0R<>eWFiwB;}$=`gyCrGVmwbkQ*wy5 zs83?l6ldX9&akm#J6(&-F1t`3U-gjfXHP>5?4=k-U#7`7t%6~ESnOWhkcYE*i@cKZ zrh{S7?D}ov{s@S-PkeO~M%7EBQp zipjlJkD=ska z*^YfY0bCLb_&1p_6XIPDT%s1BDMla+m;wnYxqZ-02~od$K#wvKS0YvLI;(TMbO^wo zu)x@?kq&HngDJ6Vke`7JoLDG|)oP%qD7gzEZol5RibDY~L>pCT?t)KpS3R^8w8>v@ z&h7cRF+j6e&Y#O-!MjH`vv7F$2X`VQB75!P;VBx;ZGdSx=NGCidX1SI>bJ^_7-FbN zA$o!lol6d(RbpC*zW$uf#VqTcR zi+F?szpbm4rkrrplw=Pp>QV;pozvz;8jz%uPVQWA9%Qv>U<+%ok&W3LhSCG3)m=Lh z$Fik*qllHY?RV(88TzTu>2~%U>aV9-Ef7hg^!lqBwR$!eu8!uIRF$NyqDT+5XL(w!4dIus3Q#*X zxf4|!vweQ&4@iWI-ne#CsVMn!x8#!Msu3w9~6NYQ!Y@M;7}VE;{00_(ec z0dzz)m-esTD9`;H^Bx{n$O>5@D?cFUSBX3omnxp88fq%rB^WRh!!0wTxmP0qbFcrx z+u)7!v^?|WpGPW@NjhI_4HKUSKm+jco;n;KN$BF7p&x~dZ}S8l;v`-bM+ft z5cN!@8m@%VJ@H*eB+-OBWe-Q0F@swwiN_PqFUmPq-rV#Q18+A8TR8t|bbgBdN$*Eu z6UYLUa2v-SU|P``{d7U}X)y_oHs9)4zPpC!lo~4~De$Y1vPoZ!Z7N0gO_Zo_2z-M} zHd+sB0bgJYboNuHr!edd`_jxciS!z}CDn56aP5dt{-X9#NZMEG0j(13*dm}cbIV%8 zP}gEHm};x^C7^O}+IrYBhe4 zuX21$1Rj3F6b$*1>{Fz5gA5mxW-I}zgL11`Ou{Jy(1yMW$SX`+;gLfSaW)%NXi$sF zI`|JO@u^U~YE=K8Meo9{_5cWdIFPJOeLtP&eQSmd5uT#G!+#ftZi*O}pDjpk3{(adK}AMw>( z-(y*oiH3nop4M>Q*Ih~W&?GN`hoyKJ{w^sqq09ke8rN>WJ$HB_P!BhHv^ z58|Ti5+b{Dj@sl9&ldYu5 ztJB=l^)Z{lbWB>n=8=xVHTIBXPDR-kL@%&Lat%vo11xkm5ikym89Qfm}IgzGoG&_f*4i%ULI(2J|SYtFukoAs>O)`f; zMdT@QY(dE8P{lP1fnr)pNy-EDhm#jV;DQzctS$vT!`hqu^GYw-{_SMKtL>&X&tUbk)p^t-xvymWmOMNQCV3!`Hm zYsN&RTi4WN*3{>nn&a>xSO_-~?@d?iS>X*7oCj1i2#Suwwh+QGlrp@E0T$T)Ldj$h z2IW|_zrX<%mxn(Letnr7md5Cs!zH#0fb>rXLxoNcmkv@5(B+9Jv;bBl9^)~V!R&PE z<`c1qrMidGfo7#OkZlPw{Va*^TrcYwjtkQ;KoXxRirjN&Fr96lom|KY z40`^%Gvdqi(_NdnD7C&7r)M~rd45cKKyuzbsiw%EbR${lMAcWnHek?Bk|Zcap1%pX2IC<#C^DxyKrGjW2u;Zi@d2Gq8A#yEE7!76h#Ec>1lSEAE zp~bxu)8q^CWardV;`A~vTS*q~|f-!AjRb#SPLueSo2{JM_ zzp$80{iHR_4*s9;(#6TZTq$RNtARw$&C#@y!(Pg1yx)A(|UL ziyF;V^jXiQ@0l$$oy^j$DPU7Z2crg+KM(VaqzP#rV~2Sv?nr1aSFf9P=oNU0XIX|+ zT=Gy;is7f?1)f7Oz$*z;ym&?_9-iOhQHXedNX+&^yyt2oukn7%4QlSSiyQ{ zpGXHFy|HsI!J`R?03%+4Ns7NsmSj28?TM)B%|tEZbt-oCpA&B~-XP+gyI6@yrJb_d z(hU!+C--w@V|q7HW?nXt_m{>${DqwfjsSY2-2u5VqP$(L)py@C-g(suT)f>^#^~vc zIvms%G;}>G-x{>!&q70L)WjZ7w)uL?zoczJ>J)^j`LYEsKaPtvx|pwkXCRUKW<9cm zTI=oPV?%O+K}HS_ajyB#e4wYKvgD@q7@;; z|E#&0c!a!pU_7-U-;oHk@Exeh*o(G=vB~|QJ#48%0SJ-KE#`uBteZ^Yz50msN?PY` zNQThGMoxY}s3K3?8kx`;%IN)MhPpjaZ94Qy>EyIvNildChLK(rDt~BKawW@8_2meK zpt!!YFl}k_HkT4J5v^FNd+1qeQgfh(^eZ&KTWPy6U)&ST@$bSfoEdHipHV88DkG!J z4yH$g7#B4789_;$RUaSE+;D~a1}=UhbZ8~f7*tBON)iOOQ+Q*AZQ5l@w5gY27ZW_t zxZScO22<23F>9%?CWCE|SwPS40~Q!sdTXRMghV57_oUWCZ15#nt)LhLvt7QOlUQDi z#$Ma-4_*4@EHO4v%uuT{11^QW2ufw5PYq^s{gV?Xw%rF4ogHG(NXqrHQ_XhKh~Rw2 zTX|x#f}yFKAQX(Qrnjl#%dRGliT;yhZw>W>-(o<;Jx(n14$(?x{i�uR6CZX#wH2 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 diff --git a/arc-docs/fonts/computer-modern/cmunit.woff2 b/arc-docs/fonts/computer-modern/cmunit.woff2 deleted file mode 100644 index dc5bd655c34d388cb1d6cd1c0be42e50e9c2ee56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97400 zcmV(`K-0f>Pew8T0RR910epA>6951J1J6tV0elPq0RR9100000000000000000000 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

    BYo=P%HT{-MSAzRI_PmL-4d0kNxo>_Tl(-j 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 Z9rKZ3ncrzY&D!A{>ug^|KJiom@;^#nNZtSd diff --git a/arc-docs/fonts/computer-modern/cmunobi.woff2 b/arc-docs/fonts/computer-modern/cmunobi.woff2 deleted file mode 100644 index 413f7714d7e6a396ac09576c5bb45e7917bb5f0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103672 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 Y;g`2SQ2xB;Em%J~`pcbTuK47C0MfX-5dZ)H diff --git a/arc-docs/fonts/computer-modern/cmunobx.woff2 b/arc-docs/fonts/computer-modern/cmunobx.woff2 deleted file mode 100644 index 5113f4b4e2fee624ca6ff0fafe397abd33cf8fe0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75980 zcmV)4K+3;&Pew8T0RR910VvD>6951J10y5=0VrJn0RR9100000000000000000000 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 diff --git a/arc-docs/fonts/computer-modern/cmunorm.woff2 b/arc-docs/fonts/computer-modern/cmunorm.woff2 deleted file mode 100644 index 9434289d48e863916147fbf3a7f95a80c77b6340..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76632 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


    i1g*5_A4)wUy^s9%)0mfZB_v@QLqf6Nb)eT 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 ODRfN`9{V{P0001aSepL; diff --git a/arc-docs/fonts/computer-modern/cmunoti.woff2 b/arc-docs/fonts/computer-modern/cmunoti.woff2 deleted file mode 100644 index 80fcf632f6e8f9f29ffc5d1c37beaa2740387ac3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100620 zcmV(~K+nH-Pew8T0RR910f`I%6951J1T|a$0f?Re0RR9100000000000000000000 z0000#Mn+Uk92!;|z(gE^2nJRFh+YUj34~=42nvt3K#q+&3zaMY0X7081C=NQAO(mp z2dNhff)zh^WnyLqTieug2Gz0lNDPi&-DCho-tNCSeYC&@rVe4%&gZ%f(QQ>|51#$Z z3EUh9w3pDDBuqGj!RZAL zq=(j<%fO_WWaq=1TCwU?YAloNk|Cj4l8R{p%0DoeAQ6j9hwJkyx1MC|KSA5ZZCS+< z&|pT(@NuG~BP2A!R7)N51T#7F73TtH^&wt+&l=?r84HuCw9Ry^9z+ z%MW^*y!^z~e`dWu5=r1jy1@|?5;8hrB$-u=9O}?=2Rhi{4by*5lRDGtC|@_(dSa(M z5)B*WU4*f7*;xxH+p?99bFK2mz;m#S`cH9dhxgq69hhg%qjaVAd1~8-jf??U308~@ zMkFQ}NjcOEFhlfrh@o0t-Ou7y;@f?9FQ8biffPFU0JC4c$WmpcX_e4^gqG3LGF}GlIOymYJuQ=R zd;b4>b-h;7RczR1QdJ(9-1V+!PbaJqgt~g6!ZHKDt)74Gt~%P- zU?zwnD2ga5w2>(G=s2}|c6LwS%HQu7f1lOxRD0czaEbdf8(?=%-vrs4>wBm)g+w-C z&Z!4oR$Hr*4Bj+}0!kndPQ1U~-RWQb^XmM6O_FU%mL=H^*a3Eun^=h)c*;#~Ez+!B2C{|Jf45Z)A`s%%|Nq~# z{~)W6zy|I;SiGc0Ook4fHc92iN0JIv$;?yz_mh!5sf zGP=sTa;l`#(sz&N+XI#j%p6Dw!?tH%k^0E3GXR70a~h0s!ia$X{x9}dWKX`9#Mw{; zS>ORj{O+H5GpgD5y))iN31*m)U<3*zfr#-v(j!X(O+Oc~&$Qk_Bv;AK+&SQs9Fi0n9GjstYmGaSr&h zLz_yvq^epe)6RRq2*&pRzbdub-uJ&d;(a41xqDD50@TQwr)32Y0LYqVom%DTRdueU zT)F@6;b#8LJi_q5IS^sy06~v{2)G9*AOa9U0P1p!0gMQcQ~*R~6RPZUC@H6r*@LQj zVuGpcVVZWm*!8ZY?$t1@yLStU>VaZUQZ92J%m5T-hRX%b-T|N~5L`#_3;=SqfUJwQ6rB{^U34MIGsZ=7Cdm|p ziV_9kDNU7%=O6ZS^&Rj?Xb=|(jT$F*_i=BF#5GJp#GWLXmMT!@o0?{cJKB@ zp~T4a{?uyUmt;o@eg&01+GS^fipt3WP<`Bz^uOe9j70%UVK4*@w-%UX%RrK?1w>g2 zS%FC;d%+6Y4%t~!mI)jmefdb~vR9?t(%Wsz*j-noz0T=U`nubzvR%p}F0re&yt)5V z)oO4fS>?Ul0iCBn<&}7Cu)=Jdy5$i2O>nvl%upM zhqAvE+6H#z>$cqT$}6wDzC2>#0YC>fvyY}64}F(v%KRJ+V1TIh-8+zggezzq^FmPV zrW?13Yf9E5#T6ucs~-`@j?W%i1I8!_NQ2%j`0TuZ_TZ7!lE0X{D8zWj}kUi6($;@a-%*B1l5ft^LaP z-Jfjxdx#kWt44*;Kd^E}A7h&Dzp-nkYi60qaDX854$$`ApIVPB*xpvynslm=&`5n$ zKsX7?+?TBwaJ3FvWh`J)wwwJ}?zU>H8>EQqKJe zbSOm!=RYS6+pmxIbJw33O5xsB1@e)gh1xvMNcRa9bYIG89*iT2eF8P4opWLHC1fdbB?=1s%^4`n z-P8R5^u25Kz@pB>1IYvK_fap<4jvT-%suE>X0}N91SB}5@Tcgfn zLg^Ze6_0o_Jbj%XK&gNQ7}KIcZG@PPdaVx-BQr*`qP4^#E_xH61Q;bU#hgduj3*17 zp+|3WyqmoI7Qe%G3M5Xa|J61FU*NL0gl4_%_e$on@RDUxLDhxkN)f~d-feTbflR(a?b;g>PfF4L5akKmUmOtVO=)u+INt{+)<7-{cXt~@)!Tc z|9w>e1OrA)n75(DdxRG=rH)*sMO&PB2@)kqmV%&He>1RPEdbxp6{DDm1xq&UIV7%{ z1~l5B$;N7af3E4(#>pf7&ir*&G8sHG>@}+37ft}&WXSu3+>$Qy_R31TbB=!}`%do3 zcin87m{jb6J1_^{Y^;GZFb2NBQNa-S$=JXzj$TqE$+F{m^&2Q_MnM|LR}_#RSKrl= ziWD@WoHDP0Kv0)Q20>2&^%K0$SQ5a>F0)z%^N;$OnTpH6bmx%~88Frz+BAC=sM34& z$O?&@IE6v3^j1fbWNDBfT>!$z=ljOAw~Tm=fmh-{W10$7HAz;H*(xxPg$X{*OoYQ; zN1`vIf>Tx}%T6iNgQ%Tr-f&`*l-+@7ICA1T_RVKtp~|aQ zpdF=yeBSPKR$FgVW8y?(qVVUV#9ItLY}P0NSjz_@a|Yo;lJ2EK?MT%E}gPcB&I3iQMQ`ABmt8Ti1HBx$`QY8Q@W~iXBNnax&*Q72oFpT)NJj<= zQL?dh+#?b<+krE(Zqu%PhmPxXH5X{nhNMH6AruQ%>^O4f+IZLFVjzfV&{J2sz2O?3 zWY2-4I$4b++j2ib5u{X^<9tTe1sF1+Fi$Hw?sI#y?@SwQ0{|2qa{886;NeBKDxQBxJL ziC}47dG34fU0npw!bRH#G^R7Wum5Lod}(?@@5a|2a*~a-Z{7*);iP%R^NHVHP5mJ{ z*>mxfkl3S!Ep9Eo zAV_E|maRnmAaaX5wP;w*MJ|yml+O{+3Bu&52UH>M5sa&!erbFD{==Wk3-#Ti#1pgz zI*Su$E?l`a-l@A|-KJgp4jtF&C}ON&H*rV)r7;g-nHt%icvNv2@Hl#(8%VktG-+sv zhiEtxB^y0;V{l@G9WXqUT4TMyNMV%9HQ*!@!G0m_nuDEMtfXIa0>VMT9AA!u0lTsS z=x6N|;_hUzf;vEnlaST#`F&TCEQImt5^arX3#Qm~h67Gu1VV!-kA9lJ*c=}Rn(Ovh zha#`a?`p)u=?CiVY_Je4K+-vLJtRqzg>VBF$)~7;8y<_@8zQe53Vec+6XM*lCXV3t zl5)8{B;Jy99%+-Pbx^u(iq5>YO^KSE%NH6w+VDmkvVWsh8^l4-KNTiOz7$BI;H4-R zHyStLqFNi|nY@r!G9gnkBM14Y(Ypz^@Ml7^G{(Rq4q_TK5=w{r@JNL3Y;oWqMIuP& z@LxHD;4TFmUibvWBxL0L_)`iH!h|U^*PvLiWW@$roOlTmB}tYmUx7k+MT!wnP*tc@ zuR)_G&ARpKH{hw~UV80~x84~vY}B|l>o#oKcHqQs>~%hqUn-L;)LNaTwT-Qvy@MkN zMxe3SLb1tgvpZcLZ(j%$j>h1Lj!w=lp58vbWI9(M63a9?y}=C789cr~2tqI-k;>#M zwMMHm7)@r2)n<45d@Z%Ao3@8YBGZ{HHiv7bw6JqkW)pzQQF0M!=h9}t;oQiHlCT5UddR^PDWGrwaASlDRa*7vHy!+P zBo!!D>O3P=Yo?9fhMQzb#B(7_g{`A2P?hbGi2|72glCUcLCnvqv#eTBS-9E8@Mf%(FBKY(T5&=E9X5cYu*FCRMsTMatcG&jSw;JwirBF&0iV z0UkRw>NKd=s9BSCZ8~(0EW&v4<~wqTbXN%fK_P-40HYK;YHvXO4lq1}8fR`7(V-7X zt5}|bMupq}uOU#(z~LcIBD^EVBR&aQ7SXpHT4sF?1q;s$DTTp@mg;1KEgCW?`6S2? zFH@RqIdHNJU+w~!rc{{{%fT;BX$a~eothAnAqGI{POJ#YaPE0%LNTg%sj}sn%-kUg z6D32WQiZHo2vjTBG1tQoAi%p!YNnGsAc6FFi5k&(G(mcp=?6()F$+~FBV-!ikcjfI znX=-uAz4J2ol7M$(~Za`5or!f!Gi7jpWG#BY2^R1eH#TsVc$UffJ9%7FC&WS_H9K} zbGJWD%501=$>$TGM{MTq!22a4HEU+UnhrK1cGEZ@p!coZB}D`!1w{rYgPG^{Q(7Cp zy$*<3l6;4_$Q&XTIT&kJr5f*xI8EbuE$_}{8Vzg_K3AO&bFFQ4?Y4)bk9IFA$ZF29 z9EL5M5>Gq9iH=adK9epp&MBnp^**@(gDOj^*tjmtq4A6JNFCNsF zSH++vo_ERMq)^R=FiGpyH*}_-MMRf@BXj}k9r4u)>UM^UusnC3OEPRVW@+6vNBLX5&>E5gY0v?C-6x-)e| z2I*#uwv=dJ=gEthBzXXP{L|p8`iAvSo?ng@wg7RJTvy(7kNo@Ww?&LE(UtFDri*a& z%=D`nq;Fs!pHBjt&6&2IP88w57UzyfT6 zU`q5;a-f|Hc@bq(8yZA(z#(J-=R^0BwhCfg)!kLjK)8z6C);3A1i}YqMh%=b)7*@3 z;1x~h5khi$9o2J74qa{PdIp@#y+QcE0Q(ppzapkL~VJ}10YXp~whFOR+v=f3*{w@xxdz zzEsn6<4JWh>GxUEk)Y)I$#~kU7@Mn{mvw-!3Z)oe*Jw+=q7J-xG@8%7#!c;LWIJWl zl8V4A5aHALAV?}J3l+Fg;m00`tjfeSS5TO=Q>%Ps%{nZ`hsP+h7D z#_pKLxiQeE7ViUXi4{3>Ak%7jC<)%ZBJPt&`e^|lg8Y;h zH`|QF0%;hG8Tax(YlFro{pSh4^MNr1xCjCX04+)jVGoKZJ*JP#-^1)DOFn`Q;{v91e?MnnT3 zu!a<1h`=1C#EiBnAlgc&vVgW+Ad8!>34*CMNdiSQCy#80_Gy|2sZGgO)QTfT!Q8g1 z-c4{cO6FH>XS0k+upfT5bbdDVfPEmadB^PWJZ)qU*j|2fP49@_8#O-;I{8zEZVJsb z${VlvUgvEd*Z>%4gWj5N)ErVM+2v7~8TTU|0gq*VF!Ma1v8^5}iz{|)>?aPJQWL(S zmUm*&pN4##xC)PsZ6_>41p8gi&d1Z6$EH?5p@`v*6KF-g!kMjwC1XwgdF$XHdD*|8 zf%RXr;?-!z`S`kj`^PI|)yS`*)nNi_vb!7y-iB7NT}2gWplt~K=#uu>D0#W)zSlbX z^V6<0ihnKr8h?@QV}Dxz+l!~8V_Q`z9`6M`g92h3m8`!I-L=Jfx3JUL_N$p?)U8d+ z(i$$-{hwUJKqi_S2y?1 z4=;x|AJ2{l9i=Y6R}N(F&)k}Q`ZPJaon2i%-2T|qM!I8ad5&7Li0MLe=>ds=Hb?G=13f~19l7?0Iq{-kFBbPqPhgo3&1dJL1&+h*nYJ*dPtvGdUdE9*bc&6)yK|Qu(lH*X*v}`JZdWqj=wyMco!~fvY=!z{be(p_^kuUlFY+3KmL;N}&&_N8QO8Kn? zm_KM^b1gv7&LquO?GL1Txm!2SHw7~eT%KuYSKvHA7^g=+&aH4}-+9ecO&D|VqXf~c zmS4B+iu%UYsZt9(jUYF%->WDNfFB_5R-P?$WR()U>9q@-;ZXqna0vqoCA6Z& zYKNkwnbkRw8d?yxS^vYnFOQ8&f9o`0X?5dn$>|~>p&$)TKL38~fgVv?311T)$7~iN0XOT10L7OcvEFk4E$Y88sT0xBB(U05l%OY9K_&~W!kkQK^RW0wbczpe%LUG5hw9lXH_6i6rYl<31B-1GWnCe! zi{4CLrc?sOeRB83M6s@IS(gvAmG2=N%%d4}>s?PC?FHlB)2H1N(0CkjjUCw#4J%NN z)8$$v`6&N%8wi!ydg{dB-q|gNpbYw`ZnK+d1umw@u&#;#nyOJ5&QoInb1MM4Kc$s> zJA~$L+*&TAwIg?lmlR>5HY=mPF`#b()!!j#LJOth!p}odDfdtfT__Z1UJGVsHzP$k z_1-8&pBIdG;Mu(7x)X-2aPiQo8cT%2iWhnl*Rv|p2JNe3Z59#PQ4 zN$tIjV+16_c^iz**g9}hkh=0Tq_aUc*&0$uBk!z zj(^+a{}itfdp3I`UNvJ7QyKJOyOfkDI1p<9s2{7*6$OAM0*{)Ts6dh9qO$PcI1L-X% zx4T#0k|7Y<5?T8zFFK=uPR;l0cDfvKM?+Xw$cFxF?+w8WR~$@jGI)F?hsNt`$34nFuAN9&7@&B&wCnrE|_Om)6Dau+7L(b2ZcD`y}04AIj%a8L#_e z4s|nFk9F!7#G{IhC=nT|Am+X-n&rNjb0nLIO_p|L?RvtY_;o_6XkZxcM>Nuo{FK}D z+(cq@KFvoI9lMq;%_P0bb#1EengUTPOs4XUR?{1;T?c2J&asGd4iZesj1v4ah&9AvQEH=H<#cs`sf4{I4e_Y%^g)+4BfCN-& zt{FFnLx@1%>Ju8ic*~-ZP30vbs*7=Li-oL7n5CMk6`lU0Pr!x4%^RW@n9Olb5Pgcp z)FgE@xg|{%>*OTlP~S#W^6if!3vXIuf43=QK4FpIy&8-D;K&@|pPZtUaVh00ORlp{ zYNl(8O?EhoAa?@wygqCjvUGaBUo!+~>FGH$2oO{an`MinP!havAsH%BNe492*XJ}O zVT2jee&+r_3fu5i8eDBqHg4MdF&t;iY`Wdo zlh%5YYh}O|!VpU3M9%MaOVU(#-KkY?_PYzY9CC`RC+`#uKjFfX!d86CK-qU2`U-Q3 z51YxvO%Xy5)VUH&!_|PW&%?-P`rdTHiS+5Z*UHJf0L4d1yC(mmOX^P>M`(M66iz!T zrAr-1qe-qZ=#Q%Cz&TrU*`m6B(IIVTn-DN9Wa+y7#|z?XF(C;HWb8HTOaw?j)( zpx)RdH}y?Pp{@64b`{oKppa!Syx?*t>QUjTgWQLlQCiX^9nb<$aa|akCbY$5*URB1 zN(1KDJnWJS2N|7`h(ZQ8ILo9Gqdb=S6?5U~=%lsIlJ)<%8KO_yNge;4Orlwo4=cil zi4v11P+iI$OI?}j%ysO}-BM+~OQ;WC;9^+ot*P}~^bzWU&`?0DpY6!GXV3!e8NbMp zptPBxpZ`tq!hH{lO(HZKB+V3pOrIJneu{(UMuagNZ0l>DP(?cTd6Oe^lUdvk$Slkw zfK1Zc{)MZ1wr~t_yxvsDeoZy|E}Vz*fdGe#{OcyZ2m*l|ap``{@_9(81TSdJellot zIOy(qCIjOJbx<8)X$o*`UtY^fj){owpC9(tsG#fA5qVkmXoYot&eW*({H!J$3vltI zI-s*KY5-d)JBr=qam~zB%+@*2_OQ>F7aiR6LX2Gd?z>{M0VP4OlskpXO+W^3PnHmY zVPYiJ`2$6ZRT2Q*Z^?7Z;)PFAtv>~`gmRXd?upFvIQdSWsg6H{cjcXQ;YLwA;m(Og z^gjO-1RN*wYg^ISql#Cd5f(P8fP~AN))ROaS>4EQ#KitfyyInWX*<^!u8Qq~yvU|` zCIa6@{T<`DBFe0De4dVe-n$nxCF*SRZJEoJ{pLxKv9rHsP@*blLZ%G{J=xfi3(?-i z?kJdYvm9R3`rWl;GOv+PQbge}hj5sN)l3|4Q~?j!VUA=!&|Ru$n1!zq^Nx>jYnK1@ zERZHe0;0Wou4zt+kL*ohO^a;FJypDWTKUHdCk{)nr)2}Hm$0Bka`ysC-ekF2qpcZs{@e0cM({-@CN51lIU-P2S2M8Y>KD!X8>%IKhAj z=&l6zi33hwjJmp^WjpIi(trYF45Lo1T^T8dR#Mmi_z1xpP4;ZH-Yh}N=LOK#OWCNi zPVT!FIYg}#u6f)EYvB*Ir$BdPBQL9}OLA2cO9527l9sZ1iq2kwpmbw!FWc3z5UD>L z#&0~D{yfZvJpmqDcb$igkJ|&^G!qjDIEUoW3runt_AVNPTyV!8;Y!(XbEpNvcJ2;A z3;gQqiwsAK&br)-s0MR=e^oW}8eqf6J-^LgwCyffpgx^ftD>7d;LV_!s%o2*y6a+BMNp&6~cu`t; zRGp3tHYVb#TyIT{gbxa`hg%xjX%CkxaFS2}xJu4|lI8om z(+?98ps57R5{iC=at(_72lBARJ26f4W;bj1-xbUv-XKnBrxJw|w~+1IV*N|Y>BsLa zah&ancry_9R58_$o|d2VWtBmXhf=v8U+(eQd_orkVt$Ws-df$;Nm}y`L>tby*ZqnW zedjq_hD&fzAz;z|fQkv09mz79ikapFl(4b00O{eH>fK^AIi!_)J@4TeiUECVss$zU zC$7G#Hnm3gM+X59+NIdmS0~AwZ=|Y1N20y3RB^vx7IklWiRQ%QLi3(TbE~jz=5VP} z3uWIP%8fl_@GSES*8YZ?)S=A0U9G_>0IZt(D_$h$rVRl{K>}1yXEeFqELcW6@S#p4 z9KZR2ARu4Oy-L$%FTh76cv;_c|F~_WZlfn6w$r+`M&d)UuP(?WH8 zK!OVu(@87#IfQY%Pz9X_2x^z0DtRo%;@{S;G4TwZuNF0Pr_K@RIhBp*Qe!Br~%7RBnlDw(11WfJQgbx^{azK#WCR1KDVqkVRlgs`Iqb z?w)I?$zHbPau@m&7%!Kf#0?*RDJEQzLpP$V=+TCGv1EBA^5L0ZpZ_gR)3|D0EGfSdorh2X^Rs)`? z*1HMbr8I4N_9wSyME~jIhZvGtK;ETDt3eLx$*dxkkafwhp5o28@M>?r)5+TuVc!}x z@#*R=y5ft(zw#`RvHL%zH)tOmm;@hXNr7xBEW^>omil-r=<)R7)rRH;hTdUF_9R4o@$HW?PpAsPR_H3j}GLt$cc?pS%q&|2mEMW zCfB*D_tf1hJtCoU*=#NyOfI;oY(t3i|4Bhk0#xqCX@zku*q_0YzYvkMA|PtYL_p@i zlsZ^02C2$r6-2fGP@0~(HI-CTbMj8hCty(*csE~TujWBAHP@E)d0cqDFP8emlv+16 zkS1ETK#a(~$b#BUfvg3KhZUkMZy}Uq_Y<0w9 zkuWx(l&J~yu~*~&3VJWpzDg}b@=Op+2Bx*CGUY<0GQYhHH2XfxPQ+6~aT?}| z*0jS}YWdmVeb*<%YzU0=_RRwKX~cqu`V}M^tV{t+5@eZ0VJrml{496&N!4E$7AN6M zn4A)4p9@(zPPEv@<>)(OWx5k63i~$zYRvO6j2fZpI0%xD>~C_qUNqlzIx@BX+nYlH zN9WSO3+b#&fqT5Qo@^2M*(_lvVA+}73k===(b^+LIr$>hkvxi??~7naqoaH=Y`rM+ zQ76hpuoPj_?}>BfQzvIH`&3EpZpPD-$_*4ES$a>IyEYbT@}2tv3e2W2v}b~SHP85@ z9LW4+mOp%ml!Intp{B>2Y1i7ofq`0T+9`k}Z#*h#+}?{YB~e>>jPeSyWkQXBua*gL zdHK>3*}dKHL#(L>F3}4zh&|AkA#_!;fFC1W>MR4ZeU6@Hp38v5hI0#Z7Vu8gQSzu; zw&0#)03k|UbaJ5Did;BNoQ!(!6YRfH|0e4;*!>%lH+e!DxY?af=NZy zhu0P$rvLUzeIaj9|6%oKmMuXDzQkdaN~DL%=NKd&U%sGBbmPKryh3wcIxA9N2lPwoE8v1@m7} z*rIrLT-#)R)-0Anpm#ADk`r}lfPO-&`7p)Z*Jv{U%RxA*mqddr>q8_^+Fxi|894JI zj!rEhW5gu?0u&vAlsYp|1PIP4PY(Ua2F!Lz>Hq&#okXcCpKNon=x!shUu_3ug%#Ujpshz;OIPKU956 z&|s?R#Fj9gQm_Bgv-*$ta1puYJG#D zTAkEw{Cu0vp5hnM_HXgm%Ri_hCOk+uu~8}lbrV)YzTwPP$;~1Z(^GNLKU%PWy~Fu` z{Q2ucfc4Q8x;Zr(N5QovH6pICs&yBTrtv%eUUm5~1 zs%RG|(>M?$0k876Ex(1+XYUvKCi21u7G&c#Ce$L+g057eNP*elZe4 ztST62O*pRpiVP~(?yS-A?4<#YJOP~6zHUKa`;4y89|6>>T{=If>22TZX47OXDD4>U zCf7+EvzN9R(-y1gezb56{FyjXE>&@=U0%7ThYJ6o(teqp&x$uy{1GMvX=)%yC{Xkl z>Pm^5m@uV%J~YI)RL#WYX3+Kv4FC5=L3^p zNNi3gsd%YGqi{|PTJ=T+5-sqH0c-cv7<`-BE&byR1wGLBW`#$6&o#j&6&0e*iZfqX z4{Y_mR=%v{-844}u|6Xy@|ToCS&+Jp2hAQvt461V#$$sQiCr{I(SDLOq-0M(qcjrv z9|x$sboHe9AcI6~>X61?_LSBNQ`gZFbjM)g)r_Zq@Tr$AIal8dg6f*gzKkwYtsk1E zo|}5Z~mr`1_FYZ<_E%)58hJfD=}mIfWZuDoS1XXrQzeARjST% zn{j;^_0Hl^ql5?O4}PSv#uLi7;ZQumx>%XMVQLCH3$1k`)3aDA=^v=klTT%w_;oGR z)HZn;U+EIx3EK$;Yr_MmQoC9(&dPDQ@!{k?JE2FSOAeEuzxhKbtPM&ZeGbB4Q=E1m zO1aazR%_E_3j{8eGPqidWiVD+tNrj37Wh=JvAlLvl)oj)Y{W3WXGa3M|87ObrpA z+T6#3czyJ_)@vm2o7Tm|336sC6KIQhnE4b_*X(!Rh5Li#2JT7NjzuR5*RYVOkwmJI zMh!$)c3izx4D`hLWWpI4HDP4G%M%Q6So4!5c`jj1tuNj4Czw5ivXy`LxL4W*JU0^r zebndJ(ln)3>2FoF(cX(GQ;Teww2!u|3Dwjrh$x_s!@q|kfyju5#!>{jpuCh+626qK zs_pl=t6_DX1Cy%K0E=8g{7{NvUSQRUUW>ZY>tK?2nEv9tDzCDgdwf~ZI_T?peETO+ z3P*6Vr~$t|Tr?3chncXcZN{N!O!@lRDwoHbQGinWxbKK^?WBAmHs4}a5rUJQ^<6bui6MDSrpK8lv3^gy|D48#^n*b6_)Ia zE@{cL=ij_2aZ*04SPjy1Q4hKrKh{BcVmEx08yOAe9!SGiHo8C*YDO>lKlOi;n7grl zRLIx}iBDu+LuxR{GbeEUgX1aRA5t=FPtA07itF@YJgw>$O?;j(1m5Ul3^boj{d|Sp%8ITf4f5A2=N~{mY_B|lfx z(iZ;XVhDaA{@=us1&lT0rE%|!=-d44gw-4v+QSH&%&Ps>sXx;{u2T+|l(8;saea#M)A?}m zmW)ax5Y?==7-`vQvZ91XRxREkLi`P3KlJiT&e3|KF0y~VQ| z6+jRg4JiBl9r~r(e#cgoohQWFG`{GL5M&lVRdNI~G~fYwuf74Q^vwddW#HWx7=2Ec zR_g<0zE#YC0>R-xKc1C!(E0=2q^zIk# zlH^0#^ld%F7&3!0<%4L&>j7+z7eT$a-eBIom1h~I>H@{rY4%W#DQ59LPb%XsGlPARHp){?4<})nhRWaZ#`udB1Qe~{P z&0ap9`);i*3zz$_I}X4dX$Dnx3NRQWG{xPdS!aK+Gs1p&+AfQEEL5&*Ig?L|QCNk4{Kaj-bHh02cA_B#mJS?fxM@kM6U4Q4n1&=r@ zkCB-xtdvAZZdrF%4vc@~d-L@ua$QTka9V2K9J>52a@%v)DLtFmQuI>Ea9wI*4^@Na zJU(dzW!$_)qZ>6$MX2XXb`t6>q0UPqwut@ukF?=W04-H1k$x7c4yTSrykrWh*g4v_ zMV<0W3L6as0jGbB!0jfGGTt>rRfm=~wxtf~dA}IY67Dw$f4?{?T}F8UE7;L%3^9(?p*>)e z2ObC?Ue+`;M!9mz3eKL*7Czb217_z3h%Gy;joX(C_AlBAqCE)?B|trle=2uTHc!(f z0o6XTt))zK6L0u%cBt2)sBhptgXlpoh6t+tzpBjdGqglL$VR5NFUB|g=DGLN7HqG4liug+AIW( z9|+piR8Sl|(SgHG{yip^4a45rUpmX1u*jRaP=Qn{Nc!rW*c}l`m`VBZKts+{K|E9U zFo(|v3350rDNwSptY7uazAE}eLR8;pt$J{&yrZ9!5>1V zDM~Anj;+fl4Gr2Vt-p}-QrsS62>VT9j;%Hs-6!V5lYWw1PP~feD=fn-<1FNM+?X!w zl2@kr+9TuPBr>RNylghxac!?jhVrk>Jz1neHmfd{XXb3g9lhsJV%`awvk9Uub3#QwcWLMoYPMROD z9@q%cyQ1jWuKo9<&?e*f0H}>5PPPsGD#&|+SW1%R`ErL;_+DZ21!mS`K0(MB?Rf9T zr_sz__!MMZ0SEEOLeDNLBAp#-%2gzo$3 zD2NC{6;BC3p8{K+I{y5c^weq{XPQ%X_{)sD<7bCLl}271GQT_}a)NPM*5Rj*>xOLN z7=4#-j-IS#D+8@8^p8|!Ys7x6ciGq)YfyX`xUGZSB!yk(woca_yIj*u?cdomqbmVo zW?LqjZg9*c7ZF?mozcFe3IS=~VZ0$;)Kx3m_%bygU2BCoGc1I2qw~tA=c?Es7kol@ zqRILB*YzB-U_`!@o=;jkGsBT()jlIPjh{0ZbuIhiQ`x>XuduIBkQC%-uq^l&U&b~j z1_mDf+351bwNqA(j6HgzFJVe4T%TA`np&b^u&kb5=6@ZVGY)?nlb&lo);@-9qaB{VYsoO~-MF4uPSzKz!5-GlvxLUkX>YBw<^dm;pQE*B>D&QHG zV){+O)7i^0)6lsswnSA=k>Xr~g{Ow09F+3P?O_~M;h<6N2{;>o$b0G5mRpx$nU7q_w7|5&yldvf^SKCtwH&lLVFa+;k3LpUhQ+BS1sTv|kbOR`_6rIEFxV#cY zmTQ4|GAz^pML@d0fiAEUEv1~_Sk#qr*kBU z5HeL9QjiR1JzMV zxEG62h`J(p3tH*6R7Zi6b@L~D2e|j4a3dB zD`-Pvos>@um%)f>8Qgf+4*0)J&ED4@(K~`@a9Mc^t~-U@?4yR!y4AOB>3F~kk!3ur>mBAK9bt?(671jdVz{;Kwgi0 zw*wDt;q{j(bRB+qfx0!)?ji!10SN{OZ?eil?wtgGh;sMv%EsL*q11w&mJHlTvd_H{ za>ejUVa$^U(t7t?h(&*B^@pOybf@|;4z|S-iRpT$@})23C6goP)(z@UBUSX$aI_)n zH@cu#TNaiK^3#?B8lBo5dGWAChNH<6Az#@z`9Sb6qh(|w)VuLBEb1cXup>CbSXbp$ zD_l^5b~b$;gq51%1p4|uHXwy-Rfl8kq|2Y#sj~Eyzx@*Ed|ao$AGtD%pV$kAXNHUp8uS-IhtR;dI>m z3DKm4OG6+=72EHIrK{u$_A6&?JUmDTUOLC{$4A=|<**cCO%nS^-3K$4kHPq?)@j;= zo^we>4)K`M6mJHN@b3QPxqT}N#q z+vmOBgg#9H#hs&!de*^7f3&u~5znY14kWDtQZ5aJK)GYR##-O7xxoEl?f+N15U3=d zyftmlwo6+CZoEy4AhJ98>6s=I!~FgnI6a0yb5!FSZz#LRFAREdz==?K8)gnqM`GE9C^*>BVzDSWid z0h3l~G(yYLp2&C_A$YL0zp!p(yRoB^6*rs5ANQBH@T^PMAur?G@LV5%Wb#&{t7YD0 z^=uXN3DI%Smiwm$(L~!ZysD!3lv{sZOUO&>oqH}{^+c@wWA=Q6+ zZ;_Ng_fLbJobjWJGOhS~p09Ca5nP`ybFKU@Y{MQJzS-j*ZVO*$E>Vc<4S6(x16kDU zy~kaGnB>9czLnygq=0f;(tPV#WmL&h3)6T~ zu}8YcppHw08~P{rs+CMx8K3%q$YAzyGSuUMOjj@hud$@h=fErU-BMy2<#5b?ulbPA z1CyeH7JE%D>df@k!tQtyB($STZjo-`hfcWiLwaGbIO*&+E*%gJQlaax#zTHZt1Q*P?7kIZVZH=d-`m2bIX6p#I67rV^Odz#E+H>vnY&j@j_Bx z44S~NH)d8WK5GwL;r7(`2+4awn9w>oIcF8L;?tZQ9{8LG7^b&nE>H7S>_D`W@G0UuqH08=wpJkQc^6NdfhCWcUaR)wR~NL7&iCuPW)-(ag5Wis*~MiHy&-f zE&HPU7p`$=Q};_zvxG3v5=Asx7q!iMy4fY4Utvah*|>ltp@KU?_Qf}m{K^c^X?yZ+t?QHe8Z?twYW`e zjrCF8FmQ_WM2=DeTmUd6dqC^6paQQ_ZA*j|n$ot@nrPgj2#Eb(9X;e0c%W~FjaW5Y zHwCIM#RB)PzF)OS^7F%z@V3`&(-ysikd1$Q?&AWqu|u1jB!qxKZ37$fsY3ZD>RvJ@ zEa$%Fhz1nZQ#68(C$!X|hoJG(R>b!!mhnA~KD+0BB46{Pa)mFWEAwR>^GP!EcwS+u(s5ZUN0VOtJx+Y&R#JIyItwDRX#zYQlBEi*Xbja&2l{Df63j#)uoZ< zxoJr+l0{3?DYdD?uf48#u+5y6i+IsUC&3eADB5;(Y>9^ka!Voo727Dw&+b`**hv0y zJXK^k(V}|YVdpNzi4EMrfj0+K=AS&1C$SELpGf~n{H$hq-qa6$qLh;au}zkLgJ#CI z-zajIMjvc^A`gNm$eRBulOW@KDyIBqtajxbbv{% zhW-`jCro3&i;J#}=MR>Ggd+Eo#(}XaLYBjOdYNhhUz$b*?>AUi!NSM;67S%|VA?^$>#-0bUOT{4X`6l<%fPX{tNaA7p5o@rop2Hxfn@Lva1T3;XPQOtp? zqU&0>+`V>A4;x?+K;y-cp(`Dw4q>Udzpqv8_58*z(CFb?N`}bT(=OHWq z#1;<3pmAZAP8C}K|HY?sXFUM!bsl~h$~n)P!!rPwpTQ=_zxkBq$C!tgd;j5S&r=k+ zrW;;HtyENxVV%}Xyr=*?dgplFq4t}Q)t~lNwAi+}_b?`V9nxmdebMSb;{F*nO*kRa z9lt!+`2kmi8sRt(e^e(G%|jcKu1AR`O*CuNstn|_s;1l; zrRvA`?FC9rt>gaICn&|*8J4xlfE38pCYh{b`~59bhBU_5BnnMZp(uq`|Lyp{0tG%$ z0X1%!_xTSfHoA{*;d;ler9Oiekb_Qi9u4ykA$w0w_R)#V7A4wl6(f+eEhZg5v*^o zQZibPzKkcS)n-j`HqKHkTVS?Uf@xy_iZxe5d*HAm3S0`bZM8F@%Kf{XdzjKY9df1hvML%;Fq0JX~_>Ck|m}n0WX>((i>!CZc~AS)op7EzP*GMK(aPM zRmmp>0!XB%IkAAUHII5dse?paM{LGCEq4k{VV2R~b)F~Xlc;OS$z#dRCZ`a;H(a^d zFez9Pr;;aL0uVa8DG(3;-2=5Bw%xECQgL;5Q^^*^n+eox9DSmj)I$!e8yU~gPe}3Z z5-xj2!KCSq0W~E1Ay8yQ<>J6AYknmj5MB7koCMW6L1g#`w{s;VHD2h4k8Gp$`TnbT z>gArNX-dnP)@Om8V=`EA4U{WwL&iD65R| zN_|n7@8(QGr!{Q(2#V7|W3rjJZ+YcOV`xt6UXAzKtee}n(<@K++?6*OVoLFaez%4C zB(L4>(HIvFKX;8r8X&=C?}5_rg~QJYJE2B0W;j!A4l;iqT^E|*D1MHnvII0F?(=E> zRQHG1J&NbL3PqwTjpWhXf1j$q!kqgGRQCBSH&gQck9&$zg~=5q`22ac&fAh7Ti>eP zo-exivUyy_l$92e;2CzVM9~v%^mVw3N0<&?*vLpdx(HK?&fC$-#xA0v6hGI^&kZiL znK)G*zP>j4{%3yqUk%5Ez34Rkgk{ZPqTF@OooCy{#I7L!%Q<_KD|$)cH?4~EN^Ny@ z)=6-#2h!Z^L^Z4A2|k@fSCg1d^Xe8M2?JY$+|*&|BPhGoK2c&c$TAxWDt>9`#UVRs zhmUjAM*v4;a2eR%}b)L$pgnj!rIE{WR_BLSda=ZZ2UVIoCbAQwF%1H&&1-I+#8O6JF?QbkEncnkVk_|is^^-c#oIz+DkuvA zzW74NVbC8m1_tgm>p{U?%1xj3of!!8BIzS|7^lMO0Ma+!E3vsbL8;fPmf{{=8amkB zR@?Ki+;{h3&jQVly8pf#n47qo69X^q$S{~Y`|sykJ_J8Qj0wUhh);**eLM7*!0uKz z*3yt?Ha&6Dpg)`^Xa0br1{@cEgO>0VZUA}}L?5AvIF10Ti@iE|pMd^16N(dd#S(j$ zR~S)7_e>v{c64pi!?y{#Kn}}F6mgw(RbjCyy&=XNc`Krf_xav|qTHKkHYDaECnj?~ z2T=^9Wn@F#B-us+&>2)zk-W9U^8_x` z+PQ@}V>c~2sXaU?_&*Ly%;XgoL~cQS(tcQ;{3JSGCC)-5d1=I#nK8am#ww$7?D0r6ONdf;jv31Vg0Jg;rWNPa z%><%F7-XsFyt@^)W4r(N_?%z>Q%N8V?^bu#TudJPlqfH466D@*Qs)Vs-Tld!+wTT$ zemoupboKv^=du0H459D+ueUbsudH6bcy~)+b+BYxem_dX*@R)dAHLSsxhBTdzgu2Z(bKNnUF4w`{Fcp)bo?ROgCPFu6Ma!P0_=U)$@jNqG&!>(Ox@5e=e5=~NPTq@x7`fWU*uhe;J-7F z!P18wVtLNd?x5E|sp7w#EV=@X_4%I`RRZ2{Mf@9-u~?AYa73T~OqFmrI<`9;i@y>v zM7Lu0dA`G_O?mk0LS?nv^q9xESEO$%s)^YQDDuRl*N_>ezav-%$KN?L5-(|UO3aN_ z`MbiBHw-sd?(1$1gdR2e#(DABTK?NZ&K#SU$}0ndjgiZl3<$}z=nho`$oy8n0)2lz{eep_thAAet)390X| z*}w73=&sDLo6X1WmT&k`a{zYepK0$F-)pVCqClex;)QB zKE7Iku7rbKWqx4P>k*U~Zu7vCoA;Va2QM{Aonw%-kTvbqBA;qgbEEC1Zo@I2rLL&u ztTwH{yU6z*r;EH$)OIl_Ez3KXrzt3Gw_meG`eZ|dBpt zero=B>N>yuSeD9GCugtZ`m|)%?h4AD<#e|Ld)BhihYTCNANW=xUSQ(?C-z5Yi`ik-(7A#Q6=V(l>10)a!H!l0J-+j!1WlIGP~7U7%$xY0q@9G->j zcMr+3IqdJFfKm>6`R$fc0wTOW%MAN+0=0;i4Lp+C(AI>yC2GLFYeFd>Vtx=1Huv8{ zn(a>~_@9YKL_-ypZTEG^Fh{V}VT23I2pVf~drs*m&Gx$mq*ILRl-n8EY3Y+4H6agB z_CueE)PyOauT(D`8~(xgF#kp=o-Tc3r+cOxi}%mh-}AknTN*RlVV?HP4zGn85O;~K zwT;MBe3ALGfS}3pmcnKk%}*%tzd6NDnU5cHdo_E@trk|o;9qk?o|f|yDH!+ zh+Ejn`zW9axLgF#atC?K>t46jzb^OVaeYDpZNNSefqZ&7#;bvIYr91f4ygR(7;dcr zXg7jo9rPug^csQic1vN0C6_0dvfC4gwQ#I!vk$3>D2E+rqsUKJqY`RxSC>f@mP5D8 zlm0lR4OH{k+bH5EVnw!>7VR*$*LS5(inw(h7LYXhoe|7(hc*W>X$?*ixyFc`-8AeS zX{IXM9AM#=s;}pn@W)s0L1x{e2qWfD@3_`WK{h)LdG z6Rb?Aqs!kX+`s#!Iplh-jHKZo22g4dftt&f2~o^)-9K)&kth-9R)tjk3dh8H%qq$L zSqI{-7x7}sh}{l1Kp99Q?|lV30>`>sz}DENjD!0b5&|BYW9D?PQr7VbmzZIvkMru_ zSXZ@-pjkDGOOWru2?yp-7IEeQ+Uz2S0Pbf+Z@j>Fj!%UI!n?Nu>w{ynk9@Uq%6Xw5 z&m7VQ8_b^8m3ZD}<)R3H6DOKE2y>fdLjtbqq#6mRj{3u+ICu@3Co-g9SCtH)y4EA8*W-eRFny zWyD;gv6ZRo`>kYpx#FStW?FI7RFl4)7C-W?aB8989`}lNPSb{cqYo+HGKLAGI#TJH z4aA1Ph^8dDccXc*qvA#6u&Vlo7X1n`BKq}|*T>3|;=+kAMM?oX&s{@q7vJAmAN3Gr zKXfay6W1S7P^ddr!Ab+UTZpnOq>;&w?Wm#UJZ4WeL+NvBqDFcP<3(DwkE@AD#5t<7 zU>3kf+i5L;`Y_WyYoaKA2jXnE_{!(jx1J}$Q^b9GQ;Ba0A`DpdSK-W3*#qHq^I0zy zP?8CC%}W-XT%2>3@j(tcDqfGEespPb=}Sgi(ABZt_Elot(&POhWlCISH=g>#1*^)Q+($U}c@YL=&B`Ost$vFJ^9nZpIHcZn z_viC#>m?)&mrl(F903^0aifv~+z<^0IRW04)j>;?$5-~s8{PZd2*w}-gt2E>X2Rc{{NU}G2ofQR#MIhEcbjy+qybNo z@W)qU=wuim1}TLOmF2hv%#Fyw^3D&_zvOC?F|LkovGO6`3KWY-nz^i$PzIc8a6Swq zK}m%KKq&Xu;LH+&yf}u+^#SkQfBF^+L5`Dc$tapT209&}1UJ_`;&RI_o^#{_0K~&R zoSr2*HUrZo>nfO{hEv=$TH^ta&`;cDJThwT0CItdK+TCd1R8mAp>rWXOwg<;S)^p3 z7?6^Z;A8w;QiNvvd0!a%|1Us!xV_hhbW*$>K~;zVG`H*=A@cc$yC39IfEv0wh?Xr< z;?A+06yH>$>ZZ&j#*~}(hbXY#SIVK8%Q8r5Fd-=}+{!7$WjKU3`^Mi8-=?=$8=NP) z_rWpD;D8rt28GKG``%@5bVC{-dmH2vOJsb()Tv-*8}7&m`rI^L!LAx)E+k2PfXJs2 zKcBddSjb?Bhjqvr&gZj`?f*ARR|-dqkMW`i_yDtBI40fu8EKV|a_pg-yM-i6NXo(9 z@gn8>@57c7Wyk^v88&twepOOLt2@gGcZaoSw@bX})YV%Bavt*Is3#H zFs$M-g5F5W!J7j!m1e(U5=rt{k4TgWx9{q*bLpLnogQcx4Dp}X672noy}XqD>d{E8 z-qIb2`wvIIYxh_U;qSx{fi_~f?6dQ%G%)3XU$)d{QHQi~n_BCK@@9Jnw`QAS{LI^X z*#+vG!Euq*v61x|!JVSbkebXt=*jfXc9=uR(;$2ASyB>Aa%g5Qd0y^rbOlKQYFVo^ z)#c3$&h(Wn`CF#E?fo6oxn{jGwW~e!40D@2-yG#9TNdYE>Js$J`QLnpTIr7G#_~Ec z;*_sgY%Y^@1b$8|m~DtT#vD;xx@PBCIv;L~a6;ch%u4G+WA%9>Mq!hAp-5h`Lgv-hyonKZSp3YMY}p`p8Bq> z%3bV@f2^J3ui3s{f)!pYH38cx!Ua-&;Cr#N&pz%Ouu(K3AW-`AO5_;6 z7m-QK`~O){Oju~6QpMTa3WB!jVHk0Ws-o`oFz!6(L#W*cFki#!=Y6kPP3N?={?mT- ze8Cl#Qs>|WJdL{$Ty@O<*D6y*-dy+2@mkg|H~SQP4FLxulI0HL#)tgj;EdL+RRAWs zWrDwUY|b>t_-UHcxO%q2_a$wCHA$J;)2=;3-@JKVNb!sSX&nsjme~uGbK4}l*+9h{dNR$gxkjkcsk$}g^QG*awVpc$>J`G_Oto)oE zpLqlG_zt;F#bo(+-e&A%v4Xsa-7J=5EXG@KpQ+SPg4q#ST#14b?JGV0+YUUhpC+%c zG4$mJYB5oCmSu2xFf$>)FrMM6Te(MUkBFk~$qA~A&rk^t^)R|wEb~;EdTE{y2h+}q z+zcH$oC8A!O1IXwB5u#I2v~Cbw=m-2l|$Xh8iiSxpi#-@fk5n-s@37ln#|(DJ!#m^ z@=Tnw0m^Tu@Ix)$e{D|p>H)((c4b3pa&Tf+WirWG4N`U*ikyMKi{k6@TnWye_PKEg z$7%;}-7~9VJ)ee2mrS(6@654C!~_dYlv+T7ix^1e_~kbpqiI!$W*RQT!3TcXGMgn( zmXMzxF;*9r%#~&)`rR9TY}@eM;am7gVCRufGCR_$bH`UOQPNERgNZRTUK5xd**n&s z5^0r5$;HI2C#+bk4-akhE)))c9!j}#R>g3cNa^{=h4b1a-4T=z(Q*ZcHPuRt2a z92t%ocH#ewbfG1mVfa5-+WXkta^~i=>f8yU8n8RMWR$)p%tvAj(1hpYv~Zung`|mT z`Lq4$;5KEXpTZjY6c647^uX==&3CAo>U3djXnAq6AnLo0Q}^mNoWA!APnK4s#1+i> z0|pFReD>B-AVODNrWKRnS$c0K zgoJd8Ookun58MXg?}Um#-u+PpN2kwdE^}Dx0U`OFD5P2 z%O@)|Z%CV7usI{n?q)7%%WJG}|8&Op{z44k>ShB8~FtYtD?-YvtCVo$R$0S2<$>sgkt4S9TvRIIsNN zESIbY05Hmgp#wvKJZ-*Bd6u9SZbLQwvI7DrmsB6-WIQj>DSbs~$EYCMMEG1I4D25b&{J<5*H3dFo+ z(7W9=iI!kxa^7*@+w4)f*vI6?E@ZIhDrXEvZbb#*0>JTbP(3iEepBs2Wp8PB8-|5q zAbAWWsyMunO-+m1HyoCdL>5q`iNZu-<#kR)nVqAiEQ=6x2jcD}#$&(ubG%EHlao=L zP@EOl2v}K6;Hjt*v(N&qzQU2mh(+q!d~#AHmT>3cnmd1OX$#CKNy|+r$=W+nha|J% zwh?W~2=`e5$LRxeXk-_2pym#umrtL|fOmmZNWb+V7O^5i++f<2TC*-n`8UZj;|Xxg zH*KNaySNgcYt!EzJU;~*M6qsQQgx?l)_aK_6*Pp2Z^NnsNp+w3xypF;t#*^tmA`KQ$;~Zov>U+KS`y!D3jLDS{y&kpQY`? zp4cb%j;OtRHe~y=@MNN`K8!JEkN6U?vJ9GUH-o^T<0&5A#G#4icvi>1)WmL+(FJI8 zxf3=WeCQ6qO8Tk%Ar0wzkaS7MjGhiM3n{&RbCb>!nBzYF-Vo0*pN>%m)~s+31} zF#;YAML|pA@#`vC@reAt1#vM_o{}Rn#7KC)$`|_dkn0^QkDGejy?ZKIh=fFjVKFKD z?N@*#{Joqg2L*_(a!xw*>GK@^f8&ySP#)3S7L*X|Fwu3`fAT`>vSb98dw zrQ2S6PnE$&Ya++Vi`Kl)q(#q`ZB!}XtScGtIqY>JHwh_K?? zV;bZs|2!}?5&~{WwKax9y#Z|%4a0tfQT@Y3blyHmOXm^7*zGclbJePsL!XWW(%z0XE z!Te$h$$CEcv%R7dS%3otn{Q@FZCRyTKG?0zY_3VyMl-^s2*Z_7288ABTSz5!GJQFq z>&b5OY`>A^YqJ%m)=~p;0ur_qbCiqQ(_<%hPkXjsV%+{mqV@Q}1XWk^X6vr+&@2BQ1duVh)&G^UHQQCe$n(?ma}Po%JOD# z;Hu>mz387aCkmR_TI(K|He6df zI~`*6+MjiZuoNhsnbr^sJO%7;sXI|^{q^dRhLoH3C%IvvNYUJBEUyPk1lq{uvh`0O ze4M%4vrKBSXk|6xy!x!d#O|u0){S|}>MWv8dK)SWvZ*z;Qt^7!LjANW6}H6`?`gTF&?;GKXzH6tDe73B%RbA2Vo0INu({6S(n<4nHl2D+g|K-75jRapuu?{8^=( za8$h>K^;F~#-3NK+WR3-=bOmzZbB*(Sl1S-$GpUZxOFlwsVgdx#qGpp{&p!w3YR>> z2MvqPv(JB<6rdA3s9L_3Je4LeF1ga=m!rp4vL76N3uQgI6##{ z1jLWj_3%UGX63!___d|*vtJXB?nU7kE;wrt7OOiAU<@ZB%ba*m@EV))yZ{evYsXNrB_ONS7_cAr zW*KWqNiv z0{!`Nj3$}3w@U1;&spdl)R6p)5#}XvL|U8Jo>xD$qqgAHqxrs;iNTGRT$P{h`iwNin?r*VnyjiGLIZDj3Sez~qN!fL1f!+& z-2JV!c!Ck)wi@-z@*IgA3<5lQG9E&WkFx}IN@P^t>3;8gJVx|zSh*yDwzq!tYEj9Ck!A|GU7(MVEE@71MpsVO z_I)Isq@XJ1rQ!|@?KKK^X*Vuk@MLjr2kDf7Y8iwwe`iQz@s?H(++%k!@Qpn1>4Cfm z>7zbZj`5L{MDSLLGQ{~gKS@f7jv#wjl zzZ8K|0XwK&TtuDCwh&;iDH*PZd@kyypO2KE*K8R^#N`q5L^lyo%ZDi*EG1~H){2mV zPwRgI&2r2s*Zr`i?BITijDsHcE>aCd9B0Jfx_G2DG;#e;Y`e z$iL40nA+44apz&uBMP?Naz3X6L%W7TT-wb~u02&mdfp$ax*0QwW&#Y6o@#0Z34X8Z z&C!r%XJ4-Oxgeb}=19*{D7pq-w{kqWq|yl{lztEfXm-u9x{-YG)>Om~?yKtYqP=7- z?$fmNUVG1vUy`mVM;J+av&?C&5vH?F8ZZl$tWyT4Wf05+7!n=P*6M&WcG}%LNyvk; zXuYB&Lh7aFdT_B9j2?s|CtD`!Kxm^Ly>pj-@y-&($4E(KANyky9+#991@L@(64VEQ zjUOuI{Dj%Qb_7yAMcIx>^&=5R{XC^?Hg&gEyh0YZZO({OjJtwr~A`XV-xm%)74camYWBx9V{pe_E1+}K` zdPj0Q2i5sk8I1l5mquEz2fD4I_)alSNJ`wWgP6Z2n2CfIRsVX@KvUq{}cf*{(0tX!I-2rdsuhMH$QW4AG|L2!| zZpam-;LQ$)6<12~9A(KSzi_gn@bw|F$RF|NBn)NVguVqHu4fbII^h^mhdRcxx6dzn9h3!iF~DCf}xYY1O{an$88_1^7=8!Ii+)BWE~ zdwU6tKCFBK?Kp74A;tQLQ^9G+t11yFnMKQeuk!Q zv?)&Ccgq7Y_; z)g<2rA=d&zVs>5ypkKma#qK}$>GK?~Oo>2ru=tu=!ST!r=oOgqRAy=3sR)>~vXBh4 zHQC%~UMN?D)eRlLu&DqptuCVQTMOK1tkt(x=Kl0JxP{C-tisv8tC`>#L&8MI#$2OO zW*+Tq$xbv@_^Qo-2(3Sbtxi(KsqUWm&AVLtr2fLi`m)kwqtoh6iZl!k?zar*brmPZ zR}8gNn#h2&3e;F-i%aMakBPu|Z!xhP%SCf`=4=+V(${jZsVIB4e{ee2WRMr0xJw)& zxtTyQlmv5JczR!N;C13q!F$~hV2GjckNpX-?S~@h%ukgZVV)q?8B~19X#pWFiuXbX z=aD9g(>G%U9a(Xr&=?=KFN<(Wc&oX59boO{>!cMfuam9LOsz~I9+YH3);4oXw8^C= ztetoX5QtE-Ujuq+Bu&1xmyN|*;k*jk=V_1ph*Cmc9WgjlBd#S&I%WeQXgdPA9Bz=J z<#q5Vg<&(cCV-5Wt%wy2)h}E`RHB$V*R)M=f7XSslcM}TU*_F zKAm3JuC3DLperJK$+_Aq8PuXq-Q~*wVuSje`WW;1nO!RfCic`eXQWr|sWcp54k;U3 zGtTAM{CRe86{Q=ltx}KtXgskUYz(6h|q*17Brbx>HgRVAJ_)vY4;K7>)) zQCR_Ft$~hD#*_5i{_{?pd<5Lxdjc4ew6QYgug*IUIya<5c>`PTZ83ppb!#srx89Ao z?N1%eF!%cHLA08Gaciwy>NkGQ-lLS>$VHtU+mP#nD$a`D^q$QLBQxxExcFgEQ@=TH zz_zive-uOf>%Qyz-K(TWM9QhZzTT9bNFSQ)1dGpP`{fqt#T)X=!Jh?O6}RA<_WyKMz625wLjsANve>K|-sp&I&>EFWtV@xyfmTCTdx}1?KXE z@(h#L;kBwevukt0*iPn}iW`>ZWAX&|y$gq;Ek~bUFkstQ+dqm?w}ND>;nm`T5cGhA zV;tA3JDfrU3`jbKTG70pB^20M=^1E^Ak@ZEAg6U3R0b#L_Zg z%D2|!!Br3x8lEP+P;`Gz6;l+Qx4k3c5@o$4*J{)y4&)DSOiJ5Hi*rvu@_l&=Zz%m1 zW5P}&V(LX;&OZs}Oi+#pNHF~V`~>`%=#bML9q}hZC*LJqE{1iMF4#hWrF=JOH8(E0 zS9nvtJ^3_)h6>5JC;Rud%vU|8;oR!xbdnbu1E&CDKtcsEO2mSo;KVIve9V>@EG{4t ze!R19{jRp1bbXpw!Eha=B{DMX%i|=WXp7AN$Rg}UW5EzQ4`sI+gQKmv5gUi9vf!#U zH`exQR5ru)5`z<(kblubBRs^>DnbT5W+s;-HqKnQBQi5WHqTC^tCZ3x8;|t@hxyD# z${_fHU~P19ayVvPVy3pPko%`VM`h@rhTXH>hnaLp=)u6}-UQsMZi$2?XjlLMkcSGO z*7gio#21k8G-=$_Wy6l^uI^t1&VIiSdfxw0o52Y^ZMB&)@4KK&S>f7bo9B$vw?rV8 zR76WgVOx7>FPp4kzM#(6t0&CVI(Qk5oq@w#eMW4NcdzA%>qe%I+NInl0z-_57wsjC z*Goy|1}YS3>Y|JtTyG@!EVwXcm=+78AE^3RR(#lj0kH)z6W}7@;t_E;fl3pr4X8qK-d}0w|;BEyR$R7-Ak9a zKx%^_5Jhr1Nd(o;)pZDxd7pWlZiRTFy5UC{Yp{9tlC< z9<7|4>2)0=!Pix}bl5}TBG^gQfg8Y1flwZBbA3~i0~Nc8WDQD?DdUA~STg1NB*c!+ z`ELVhCe^GchK3}{xqSb99`)51GH<_nzL&_J9rvlL&tbVVt^KBkzqyE*gM9PqY#*UG zxUM&tbO}itbfbl0>~^CzG9x=`!${3%qG=*48#1nDq=V8x{_uG8d7zf4Vg*IR%?_5P z2%>!G9WF>F7;lIQj?76856x~3=dQOKUpcpxJ~J5`n|6W=08X*0AUIh+lJAp2ic8@u zl}k%CkAzoJD-HAArU_%lUCNuSlt7@7i%O` zpIQFWXSVH%fL?&K_EBjf-ZIw$x!~1FwTlxgb8~XN@!1g-LAu1rrmPCT$IQ2#6bQxO z85yc6udew~L_R&Hv~ap(t+WclLnJZB$*1d&lvLLMYLz^beiih%Pcw5Rl(}lKi1Mv z8tC(RtJMxnG#_d`XK8iAJqp)pDMf92m|-Ocd-n{AxV_D-P_OUKuye2o^hSSCsM_Cs zO}KAXJ@rde{orPeHFT%h#ZVA*ruP3ENj!d)UN;9^hx@rw=nKs!$9ybBF~jW$qL0@Z zgTm`0@EAA}S7VIvC9*>P9*LsEG`^mWa-iFcQ$~03ncg67YN`sazIurXNk~YN#vXWH z;hx|+g9K>g`XD=3Q)k-ea5aLOL0)@7G`ei^e{Dw1s5s@g0jgMJkeygATQ|cf1yg?Y z%ax`i2g>3~a*`;F67gxM&Z?tn*HUwhl91e0W=i1oe`rI@iC{k;mzSy2D!vEc#6sx@ zt3KAaI9|}@Le&|*KD2&6gK_!%s#S)Qqd8FAsizrtA{kbFz&(=T^k3Tj^1M~V97hf* z!&{e{TEVEQIO!n63g!}X66C>Me#paZwW0b!-hSkk=zo~ZDPWa@1Om}j_?w9ei;ond zAmtvbcpMYtfOh@c$)6jQ;**o7yzs|JxaIv67Y-v4pOyrRb3NcjC*9l4aaCmk#kgR& z*#{*&gdEx+-6C#Ien{7k0oO3TjlYSOr7sG$*|KhKJ9O>ggEK>Ao#N{VBelaAL+%mA z8Kl{tMZ8?hSzGnWb)X{T-N&hfjx0>U-1H4VX;)!VY{@_!t(lIv7#tcaa^f}he3dl8 z1;JdfJbe6;@MYMF+5~PY>jp%W3Dd?0it>y`Ia`g(j<76|Td3^-)1`g@eRiBsr4Jj& z6f%da>~V6l==gsVF`VT{SNOMrKl{dw=48nI&ib1g=Kofth#jbY%%WEf3)|*Dk{I`vX@a6SRaEO ztq?yjoxmM{?Z7HQ20nGV!WgE0gH|hQ%NJ^bheIDNZYPBE_&KA#QN0h{2dV`_@V3_W zYBdGnmgF+>L2oC6(mj-?l?-MKFPD@-fEM-wttIOP;BN#H`%(gjbsSKX=c986P0ukc z*gKcewg#Z719$Jo$2CRZKb>n>qCCvyOF*Y7AVNWPVeVN{uHqy*>N1C|Adu66TiU@F ztQtZSOYjv`ViJ|RE>VOigBf^+u4>ej=O}OSp07|t`p0MvsMrcLhmbab{qV^I_`w2G+07XrGG(__Dd2Ho^@{x=Kqow&-p8| zTx`SGrlE~FQ#eqmi=O`R1WZK@pGZjLZ`J_j`kiBa@0L{Zw0| z^{C+-yl<+wOIfI{9d=AWY+Hxv%ts~XOq4n)=obBrhc<>E_6$vi(d3o+Ov4=(TR`Wp zeNgOu+0x9NKfTuLHvAQU!@n~BQBX4cBqKxQ+PTKQck2uR?(J2Hmcc{Anf1(2kK$%$Z*wr{r_Td)t$?=BWRL^{(78$NyJO-C-NcScE6qQKST~)u(8EMD%6ssFMqFfQCta+1L z!_Ky!C@&_wp;+M2 z3EX5y8o{=qC)$HdWmV-9*V{dCS_@}*XuK_c*V$(y_Ez~7n!~!OrejzGXCE?;XiK2< z2YJ3MtK2v^NdSWHwyNR2iAKKuh?_@IUTX z=u8WM^Z7(Z82?H+4Zi-!SLZoyjUq8uPLO%(hGKnGetg3F{JJ%Xm1SVSM>#d}ySDXW z6TOVLTK$#@FvL1C--S;lu|z`_Sjw`!EAzel^YgO?ganidOkB0-wyIm7xm$L2{4JB;>3Kg+VL2dLpD?%Dgv0cJs(WmO3HYuxL($ zK^Ldt%z4bAGbfSz0rn+n=YtamPWniDz|STH;LdvLpk#JT@5eO=6 zCmL4^?d($ZX)KM9ice& zUTyz;vx6EWWXOI5(CK*XhF|_Mdtkg{TZ3Gp<4nWIq!{-&iBT^z=f>;KntSzDDDrh3 zRL2Q(B#4Ro<(u6O>-^s`2@h@@V-uCNoj~-{SYtC_dyU%kPdgPi6WAAGBZ4eOZv+NT z`hU>*YIQDylbm8cwrKLL&&}ducCJ1B23J2k;oo|a;3P=w+v0zZpymCj(w6a;n>?v- zljXtbRCPJ?i;hW_vcI&1!%``%EU5>-L56LNeEP%ouKFuG-DcGO?~`Sj$SK}xNXYAI z&K30A&|#jGKq$f#7wom6uFG>bk91PGPr1F7k+k2{@H<1PP+$L>x^FMQEFTdy7 zt&|DehU!yE>ZU9lBxYmnjw9bv#1aB;V&|>cZ@t?5A#dQ}#+{&O{Nudhu}ak}UGF>S zyvLIdXBo8U(GrA&5g{q69CA@hFvxtm`$5HngR+cpN1A7RM|)zZF%3BR7bTa$8Y2;{ zGsMFOsV`ZgtL45J!?42jD&E z4}qRdGEtuA0czO1iaQ=)J;+TGhGxqnXPXUOOnuKU*>m$XcYGfdR7TA;8#|ft`v@Bs z-zCFp$hhQSA}j|QMj*-S5T%%^@%J96l%ND&Jn2Id15j)lDo7ULmTIhYzd@yhY{WaC zKWjKK(WmV`$;%XNv7v;l+PQ>Bw;nZ5;lN|&rQ9}|)C)5B5dZ5?3sVei}8;8@#U zZcC`vJC+myhJ&M4U%iQK8G(Tohg8)V8klgD2zfxzTD)ouN1hN5wZAosGy|X6tZj4`S+1W{m6O z;G27Sq}pd{_VZ&FgTMa{azu9XU-!F{A)`c$kQ6DEA@h#8nwAMW&s~w4u{Y)FqdgFI%}gT^LwP_J)0Pgf09A z;+!w(yJT?}Zu`h2LQ{ff34EJ_Q~mx>(`)K%o3{(rMnI={etNqeb z3zY)9Wvg$Vhy0iFgVWc){+9{U|MR}h$kIVcAd@%x$Gu}Bi1}g3m?Y@dJvQ;R4~zkk zQIemERdA*QInSH#p-|EL!m#|(){gwcsFZJ`J$r$yodkia7Hz5I#B2c!t?q+5yJ z>=19%ip@H;k4(?S60pvHxY~ofme)+vrQ?Zi7IU0T4l|esXKMR@xfjf=a7rYX1^kX| z-3`-XjnUnsTZeA}imQs&v0Rc&(-8ri&G&!wE&X{%ZD-LPrK>6s_XDwywYny6&qwBX z!*HXVDuvZD{5+4+<`Oq~E?)3mZV7d;LYx6A9b@i!0-vG^o15chM(G>{y=Ft5yUl6B zzo~v1bR@e{uc=dnk{>--{m0ASU5w(|ZBk?1p$VPmB%u@7ABX!v6u3e-bN>{wj(jj5 zz}obbksbKfboSTuIcbMVK>_49~-fwBs({XEfm$mob&4A#l#ALsyJq#v_ zQ_U`6iQ%6c=ZsMNCI*UH1f9*@yiRHN9mu?MsC&`&syaQq{;=UUj~!8omCqacg5}KK zEC;*2(K&|6347?4)~r?)5o%gHg_m2m>l_|%!A7~Nh%d}f;FL_rhdu$cU3LzgKzdc& z&G)F=v~#D%T)cGjn*w~3)uUSmIoUaMrTd)8?ZQvD`?SAA7R}Zw&%ZRkSNiX?wc@ip=4(Fr_CCQqBk>x17x8{9SQyWK zs(r#gcD~h{j^L>H>r$brD$h-M9v&-`&;?b+;ko4U-m*SG;b0ckXuR5>3Cigxv|0Ni9L%|wtuHLlDHgjm21Q33tuGYrI$;?bw+GTIeP7;7|-q+@T{ zdyPONH*rH_1$?YRB;wPX88p0~l-QByf?vletXW};*#vZQmBq$&MpiGttzq0aW5k)f_-aVHgpBc_`JV=blY!n3wsF8?DUVx zBYdg$1T@=bfr9@&u_bFcUG%j%xp=U0a2Q#0CYkJ*PF$t$hMKV~1S^z_G; zN^3)(g>jDu$9p2!KNzpev~G-p&$dOaK#xIG5fr~KMVSHg5f(0>i)xEwx7{Kb-F3tG zYM9D<@7?bn2rs#_Tc1#Jh^BC|$&b#Q-dq(1uDM?46Z&Sbb-Mq{-K$5oWk=raIrE~v z=VV?J`^p(*IF%Ll`dw~MS<%`5$lL$(hn%UIPjmz6oiz)q%fH)c8FA;n`sVfp0z)K?LH-aY2! zj-FrAwtU5+Layq>2mx@$Nt**$@m!elmn08X$d8W@HFXu{Rt|RW{`J>OrTN48CtN`- zVt_}~CMT%)I4dM8jLd3%oWD+meZ^u3=%T9PxT#whaT-`Rh%bdiGuIs4#!-5r^lNF; z%0GoB`L(Iq_NIHbJ(q^R#c7F@9$K%h{(Wje$L2ctFncrF=DCV!5!QLD)W#rB6H!#0 zy}kCpW^eZ^s~&*C6ekVE5eDRuDx5?br#+4y`BmSF|GM9L)N`cM*X}RW(}NA3I(jqA zMC@G$iCK&A?gYm=+I&3_FUGsLpQ0V!IdIM*Szx#_#}crSy3e`b_Gguc5n4hF1w~?= z)BJsy9&cjbL}TSMS=@Q@j3`MCXB3?497mYxkzIW6eNIgQHI{n+WB1doP(Q7J9?7KV zhgFgc-0IAhsiht${%^o8a=V9Q0Xjv4|Hq)I{)ZA%8;PH8RIN2Cy$W4eXL0d>d;3O1 z6|ZhWHepN8Lbc<6UlJF9@&6bZxsB54peN2}ZYuWmyExPQVj-Y=itOkfQXThi2gFvc z4ennGk<-^aex+uwrm}<9Uj7S9%vOn_*^9rWZ%Yc=8fbPw)jBXOx!iCwvoiO?mE+Z^ z%~qoB^r=rDwG`N$-NRv)mTjpJLOBH^_f+8d@aqGc*{0^qe@Ad-%`1XCN>LTLqfBwT z9l=UGaR<9@jGasgUIb?(CrKR9a}=DH*TIJMe!2skUZXbsBofE{nwjolz|#Z%<7G8+ zQ`yCC;YcPTf8=z6Uh#0loZupAR=Sq8zbb4o~)FRyWzkfB!I&U0UWCnLSG4s4I5k=CmO88w!1UQo6&2XFL(ao$NU_;hlmLWSkS^ziy!qIHUy^Q(s zw4rn21Aw>Q^VNTQICvxrcF#g@Ol+gB$yaQwGvs;e(HdBfH*O@b=j3G%-a9ZH$*(k4 zltn~$>evbTz`m4cunG~*wn}qR*-g$7)X?-0(jNjIThgwm@sUsgub&3Q`#bBWhkf`-^G< zU1(4MkJCWn2Ln=$dSeIu6Xr86kZA3AYLLJwuvl41T2I-QNz%w=XaXMxD196{v=s?@;B)qZt7 zgn}OMTKGCzM!CLzumMrXi^HTxBy|7Z6hp4<$%FbM;UR&Z>^zDX{301}YW{b`@iGQsdac2px*!oeji z%j=Go0oeN`XWkZlYJ<$YcM$e~=x?S?n1^+gd$jLWE!+i!uYZx@5`s#Lg|$bstpA9{ z)uq_D_zQPqs6#v+5IpL;#7iOoJ%5fQDIi~^*1tZfsmIl7VrmoQzKcv9O@+5ZHXh|! z>IycUkFb=p3wd=V3LSGz>Z$@Z&C7e`8Rb2IDuPCCfSY^NKWpvBCcvXUmr4kzVMoirT+dY( zE+F9G)dEhs2z-%+??-VC2yrqIhOeyV8;|yxgG1!}@6c(t`!xhcg*T;><75hvf&03~tryz^?J$M5x7;52}qPv|9KagFeAinex+Xv~`dMzH>(5UtusGbtmro zKOVPo=*pn5PS4y`)=b*JDU&|spr$61sW5jswPM@50ma}{z7I@#LK!tx1oT_ZBJ*6? zT>wzMpfIIT?a~EZ2Un7_pg=S1a95+muQsE#FYkq}YXz`kyukO$qi=3;VS^;9TF078 zMrnA3{eW!3%?{&nhIE`Tle1%T`1VbyZJh`IFO}$<_a|Dh1fbgoBoxvc(WX)I4WBps``S7UivD&SZ6*`F0p0bFRLCaPHW#B2Q+$`d=#~`on~fAWuxUot zxg{dGIO_+C{?O!pSC5Q6f`Q+tD(F=QM^H*eJbDK{ipq$wOK=>8XLy$ei)*8QQTq?O z!mi=cTx@p4;9lMgGF^H1r!o-nyZ;sJ2y<}Iv9d>@*)pP)+ara`h*{1iJJ%hvQFfKi zo!A_HR*0?`roA1-uD08T-4|HXLnt``6#E*UnVHusTp#DGxhsx03$six^TB+zpl+El zY@6V!-wvP_PSEZ~w_838pn=_sF39VGkC zl)N1+17UJ^3=M?LEr}%zYhUs zHf3PN4X;n9OmLgJOTv{K8>fG^Z9C>eE-SL2AI|OCd)&?hc~92zTVV>|yUo~2^vBYI zJ;JOgO$N%yVz4T&O_`F6y{}jO>yxTlOub6GJ~2|YxoP{GoT+1rG^kBisb`^JVWF>< zxgq7>I=Ff8@yYEf!inFxh3(I;uwO(BnN~Hd%9H*0*`!+-Vo$7K$KSf93ti?wY#Wqn z11(tY?1`SHpD`ahsqSe1hsF1RX)#->y+{{BM7e3M-#EfFjek6-?(jcTj^dD1TG8B^ zE0XJ`9?pF{|2Di6HxO1>60%agyD|I`G-dIVPhHQ}j=aeHk|}wtJp{8B2#A-%9RW1# zWHo9 z-Cv`9O3lo;zF$gam&+eYUnL?(%GSk#2i!}S`pFO0`6P$Z4bfX?P3pIGOSi}U*9ZLV zP%k84ydPkTDXW3vSLg7iI5gVnH~?9%mVuM&u{%*(f{Yh zGsEM@ORG}j6T3}@M(H53)~mE8IiYl>A>ssi;N0CbfZpV?bgnR^Zy_OBy`by2XE*m= zJvY2q-PBN>SmPUHfk%@B`FeDWqnrbAvh1wDy}U!78jD?@vmIe4pJzy_y%R_dB@b5D zP0n{HO*YR>MsYt&sFljq^?bFo#R>LxVa`vvYRoR~E>5~cZLZXlo%G(@J=p@CZ`epx zp$Xo#;(%~j(Sf#*X>npfUvchrf1Z1b^hnJaqb4Jw1^`?rSc2pLRO=*NMy-J;6q)cK z{0GvF=p;*&8@!v+BUU#aUV!%W_70v(X${on5sC)+R&$*#eYVYfoWDa}nA?=;meN72 zUUw%3fYsG=OcPz(U7^r}b6_v*_oWkhtuQdq`IcR)=O(p%j|0e>Tu}bTVg)mKKLY*Z zkQPj!yec)ir*$zG=i`P%C1qtz$HdDENckZFo$H(!6le%(zxQVJ?lVdZ7{882+zjk> zZ(PIIJKxxuw>c|L`F|#}ooas`7tIAb8=}DtK|f!MWUvsf> z0ubj9H4&J6K8BX=0R-OlaXOIKnYFgD^G@(14hLiMmU!Fu?jGq*Y`L`?=Xw-`ooMpf z8EvDT<6`N%_hb(qg2O7DD;lD+n6|4^cXrpuv<;``=qh^L@Be?`K>bd;GHyor2F5zK zZ3iezBg3k=1?P(P%UeYx8PyK>9mn%8VjKzRhh&1Vyr<1qr@T<@7Squ&SiYmYyS%#% zNB2Y4CKsA@|58|fhmTt8Zp`{!U6hvh!T^Z15+B!4wNx3XJl{EC#Lr`OAf`>)RAAA> z7ugaBKHYDInsSNkw&Cx68kL)IpvlC z7fkw%32-J8I5emmCh{+$aUsVo`r?PGR^?R=Gn>SjDSNv4wx^|p+)#fE9~(ZWud26d zvujLYoNl-`Z#Onfumu$?m0PPJu84#RzT|odH`Um(oFq;coTf|%gjMcR9|(Gk3T#>G zPSNP2pH?(!Z*W+-1X8sE6=sJMwB@d;XtZ%Cfg$$`G{#kNG3+0x*V8we9Jk!iZ;u*klQo7pWl}-<|_Hh>WY6$9OY<6Me$f zWQnhEYCv7QiyH}u{4U;~B8;0>i$vRtC~n(4;0 zq?7LWznPK!OOw9`^t>6tD@&_VFhent6Xq9-T^~#Y6DWS&kEtcRmhPspjT3W2#bM8y z&RuCN-(bo}F4`G?Dc(?u3bx-*W_1l9RIRQO5C*^PhzwgZ!gmz)>k=%X+L`>vbZyBO zqx}Lbjts2>S)km0e~ZGHr0g{J>gtY=9@#)k5l^6t{^ z&0CZM^Mg;4ir_VEzv{ibl=<7kpxU_;Roqp=rYZM5AkX*WQaQhNN$-)Fak z*eYzz>soB_%71xLkv!L5v@uX{fYsP-WM?tac$UHu(PN+dwR=8TGH zPI1sUmR-lxdL$uNJ$FLxBEmKNr(vpjNazN?Q@o|*h9LiXjkSD7X?J;%W1ithV$->a zIw;$&sxMF0hNq=PQn>9%>v&SRDffTk7GbFfcVIxfx`p?lg0AYpbn1x&0{@?{ut95B za2F}70O&A>+ks)7!kGC-hZ)|&X?BiK3w9xId0msq+8u>YN-*~HMzlpm_x50} zRfjID0#seNz^%_64Z!h+4KF^}z|tUSV}HPEk0A`Df9cQ+=PZQjsQc*~RjPN7o8LMM zIKUmOAKsI(ZZ=^eq}W!S87VcS;BU?itVoj`h*)!Uc=6~tY8J|Wqv9tJ!=khV2B_1y z;KDg>gC(;Yk4Ft3qBp{f#54{jA@p`~iISaCZYyi60Ei7~pwV;Sc|6_G{ zIVb~T+4C&ch(_ke6XH9J?2Ov}#?qOW|DUYwZ7fL|J%owK zHRj_@gWFl+$kK*>KvcFgNJCDmK`z{!RAV9f=v$j9F403_Xp>4BgjEje>g<=Z9oGY3 zFT5T`UVL%>`>`5Ic<=DAH8L$L60>9*Cg!tzX*+O#|3v1<$B*A^K2o4KFqWNaIMdo+)yoT2`7m=y%q6rqH)~qPVH$(BtDeBzO=1oGr=O%n zqcH9-H#nFRs!KO424oH#nV&9*{$}XR&vnC7>#fDJ)N#&9cN}(bc;L{&)}cnS)3u#l zD|542m<2E$VKchu1OF${+>EUMbD5#UR-Ear$8Id@k~I@N!nJPpp1!HwNRej zvgaN3|MggPdI;ws6FWfgCl=yGIrYaUmBG2NW0SeQf41QPLj4aR0Pcbpd7Z_Hq`&4` zY9h?=di-?&0I?}<*Z?iX?QRI_LN88vWNsLmJbrPjyluiKP8^;)zurB>!!sNoBaPa} zwqVt?+fm(?7%ob`M4L^l*PsQs_3BKfD}xL}qmw8Rq&Vr+`2d>@xbDnXrQv_z3i<--nQ@*IJk zRo@l=xj}*hk^>H$0SQ`9%FfNtt_xBHNk3VQAKX>pc8!akD;f!+V?;f_rN%?)Zvc2Y zaH%BzSnHf~cfr?(kt4^AY;Aqh-LAw|eLQ2%xK*5AJ5*o3<0as$>i+sNzlN{8o(nbV za=uY}oV#zYuw|)}jaKw^*gnL8t~O~zZ{svuMdbQh-0DX@CJe@d7?75lAH&w=@#@-PqDyd^(1Y6Wu(y3~d4l%746lb6`aHgZGYf z@uxEMmA~7AngZ$@a&rQ;U$a;>B+_?|3cyQ&wTD%dSKni=;I7@gZTR?L>UhwxqX=7; z6ENW@BN20I2~ z$HzijxlI|7s~h{Q5leFKYx^9s78e&m2QL4%dXxTzqK9egoGpq$q8mYwMb*$wwF!Id zdvQ){D*(xz?QnO`YXO_3(r8sa9F&FSgv7Qt>6g97#A<%g4=!+wiiRq5nw1IVRqR*4 z_6&FrBY@`V2|!v$dnV@ANv8^*uSCpbpy&KbxaxCw#Mfh(J`sRQ&xaXbo++UKetwZ{ zBw`~0aPH^Pb?)l}Gy2YGt8tYYwd@nz8pahKiBRqzgsp&fcrDrhUD)AWNsQ$|(P+YZ ze!+q?7b;f1#`<^-CK#MM%6EF!cqCcG1r3WU_|^Zb>u`OUUtWt~z1dG$+xmt9KtgdO zw*qRwFYF$W950agx4G|C4aZbyY5oOa)&fCs7n}p2iJ@(+9*Z(`50jwpK}|M&V5SFD zI7xz1Sh91rKjk>@e(|vv*@s8_zL6#+J1sQ2$2`n7&p7VkwjQJr0uN|Y(4qRTzWj>? zzKevIHa6Mm0an5sJR%eibrfg@1ot}WN zz8R1tJe!`L#X<@DI(N(1IQRdfEk303;|MNXLc$-R13UlQHLciBUo=j@3}i3<_C4Ejf(hM-gS!(q?#x^+ zYYfD6LV4hqD@#Ev&in)j9O?L_|G(UBM2v#|JsQdzIQcu;G`iEuuU+m;SH{HnI^FW$ zFY|GnD^*|zAtUSp;wq{QQ`C4UIK+=w;t;Qa4uWqP+J0~opZN}jeI zgut}=99VHYP{Na+9K*9jM6xQmX!VlQDwjM_qhvn`kKiS?3~-NLEm>9I zY_wrX^2NQca>b7q!hN~!r#4okoBGx9J;%-Qxh?fG%DZI!3=9`P0D*gSRR>Dd5nMF% zuEU4%Ey2!>jm9K-3nAO%A!2dD+xT#L1+ZlO^c@c)F1o1VofTD%DKf}NnqO; z21jBSVEUAmDb$_`45H|KZT&A~#YU^=9`8JRU)3J(+PffJ2u=W*;5$ds0sb|@JIj8R zXS}yO?#{vO%b60e(6}f?pEsgn10`a}aAC6pzk$X-YR)L5`Xex=sZTdHqCF>Hi zFN2`44!-0Ap84E!1EF3j&i(E8Ul0;8rEq(WYoACP>w6xBamyArt?Ti5syhDDJI`l_ z6eE$sPSTDYGEHI{VnzMyA+i4vH(UrzIF!l$Tx~xlHtL=Bqkx^K4c)`|jgGf#J3zaF zbaRWGG)h%x<6Hg58gQSlcWE$wR%rRgsDJFz4~xgq(ZLH)73%# zS;Q1kjZLbeE{|i?K`G%!P-JTMR+Z5poDb4bHa+@%{cHfvf9b_8B(dk_q*tHIZiF3t zPZKHZ>0c`h)J&5h`*u)3ApsYwKuE5QA0GYeNKOLECJM|8*>nAuBg}e4e^*6u$BVhJ zCEwE>Tp3M6yIzmuCHZd`y2V+FYd;N6S#P3ObVqA4@~U|f#w=6!2u|K)S8I`HA1Tj4 zBt?^~1nGQJqa(1_LZZ6WoR4&YP947Y*>d29>UiZh1wj*zF8m`JDzd?Ohmj8NVy_BM zZVzJu_Lz<97oK!VfBsQgD-GbC{M0SQ+j6>#}+sWX6{mB`6mo=AiU| zgPR8Slc1T(25^hCU<(<{Y|Y0l(p*fOO5CT3kdcy0<)B&f*ST;zndOqize@T#i{=o4NIL$OT4?KaitSgl49;L=%#>`b<^@v_jC*~QrQ0?5+dwx4W zUMiIdu5zMg!xB%viV&{Nyj^Z-|BBYJoxvvA&r#ay(^z4TngNh^U(R z&1EX|1Z|HnGFc8RY}>^IAm2|eKv&+u9P}&l3<+V;|4}BGjAub;7YD#KVpj#kf2wxD z;FJGn4R`n_4=&u=-_xG2G@f&AI!ld<@vt~nx{uOJ)PG_VYnkCAXzu#0+W{PQA{y~*TXmKemvvifvP`7~Q6s}q z^OS1)rd6y-O>o#*7{s%+%zlD!T;JVPb(gXNUw+{{Bstd4n9;c)nB}EV%4REOlRS#( z3PnI+h{*HvLiePw)}r@L{q=ywG4=~km45T8Mzgb@^=AsP4jPzY_F-@2{#!B@2FTwurV$V^P*kO_OZUnsvK|$mo)F~h z>5)>k7w;~-E4;R?BK$5jYxS%D>&^f#!vzrh`#gFfO5hD*vsWFvJlFMG?!sdIUFD;~ zw%n!Z@H_G|q?7uA*tWD>0#XQ~Ml0E34PP(5ogEcZcK&i!Uii!QJKuMAl~#6Srf78> zmYN^}W;Ivk?y1T+Bs~%n%+81w>&dlr(S%_~c4t>O;SKJ&v%)Bn>SHYQ<@_I(P1UWv zlCqU7ok9=7qQ$PTO`^*1OhE@A*bON12%4y0IH(26zdX(z2ceU21PD~;BT}hBF(B*_ z6khg=RV_#_cOWv!Ol7pwdkG>wJxaknNu!4aeNEVe^Jc+*)}9At;{4&JXC!_}M2uT1fmy3S%Qh#N4D4 zqWCZ#0f!(e71-n4W1b;OKsa-Sx~N=h*P%Tk1I;v-5b9@UcLRlS*zbCG?c62OhX}~m zfd>Kk2z}=v+eAz{b8qN#cc$YaVQ(9#Q+El z`B}|3X(a6N;i0BEDv6N*bElzHg@?zezq3dmAs}GOioh7olb1A!XzMn}dXXQ#4D;s` z4%2zY%P3#Ch{bXalDwm3;E^Fg!OUmOBvrr7ay}5WPC@68i%1B2_Pkf=wrF|KKJ!aA-PNc(tiiK_GSdtsPt|DqSyPEPVA#239FFnclW)&`K@Q?{E zor_R|eEw7POhe%q&m1LaP`3hr!~GMPTH@QUL4$29Pz|k39PTjpi2<|mRr$1 zd=Q*)j=EBinW5WgtVHb1-*)Su5=6HlXenuHJwc0r&fGM;(z>;YUxe@}qxP=3J9SVh zkf*j;>j1i%hlU2YUtvj~fVndcs7fT(A^c;>F|8rXp zJ8Go`wOG#eZiT3(aP;i4yZTia+e)T}J|{Q%r$q1Q<{tOVx<0xwv{YPj&I5i2{f@-f z!CJ9_^0@xBTS?o7*ViOm!v93yb|jhPN5Be zSK3`XTPOiZQr7;O&<O8dS%%3|#X_y$W24C`j`HJ`-FOCadVm_z}e}DCKdT~xrX?UR| zf?v$iggJNtp6N9O-P@9LaAS?`DQUp8_%qav2%J5g(@%b&mIz{*+kaK)b=wp(z0ER$ z5;de?169Bb0YUQ|)KOISYv(5labj0DV6DqiKr&s}3CMhh{e&c#7{BxXRpqn2lJw%t10#`~gUM zNXRmy>|fk9G_(mYz|Byr2`+IMEPc|nZ)*S2q%q!?$1EIcBC&Xv?lZ5k>3-`6eVCMN z)ScL;A0D+QcDEj~`^txbxWWyqd8Mu1(Ikl$TGjRuL3P!&B}0n6 zH34%=Z{=@SJsM-k92zKFB%=r>rpbaVFIacI&MkvH`5iDpu#52BTJaegIM54Di_6UP z9+ThSdw3U?*2u33POdbPi`XZeLabguNhpqH*~pkYC@n*nW%HA=_ANk(n4pHP)^O4x zTO^>sZ-Pau{2m~C5YJHWGn8A<{g7GYTEO1u0)ZXRY-n*5a1%LP73iDv^ncVu#I%-=-o@H z=p;oEXy{|wLC4eKNQGC}83)t44i15ZIzb$}E$13e`1Y0Ir zd`KGo`3iU?p}wHpi1iz@g$d(DCA>d>-frrI>Ekv&6pRe))u1t=B|H*!f4%}9G)b_Z z>F(!fes@=3Uo<;kd8hM&ZNYxxwQ1#y_6m`S7U3*sTj2<7!G29kdG;68|yK)VEzYfZ* zoL4lACeAWoE%oF;b54G*Aylh1hr|b{IIIqm5KMmJ*OENF?HJI8?X1i~I_r`AY;vOT z@aNv-4;aMT?%z<7tV<}UNg^R?kaEC~;|K(v7hjj>OK=}gT5q$XPY+D>N^k^eK-)B} zYXku;GLuN-0w&7hqSh^k0A$m{otN*Hk+R#zxpmfHYol2^CYg3HOx5Kj-n9kC{1(k_ zb*Ood^IWzXv{j5c#lY(q8>S$;1pFv4HCD5^jL>0bJd}dYw1j2ot^>-=JXMp)A38HQq`0ayHQJ zZh>=TKS8u{(vXK}^*NN$VckI=I>i+C0~K2u=A>=hw&DPH?r0gPf8BQ$poz>3OPgG8 zaP5Elda^4%C&W)2ts+@FDVW*Ck(xc*lXgvfJ~H9!wwe+Q!8w*IwcmT#(P1^%?&(;) z8?MLR6Z+)`q7C)^3n`73axE^q(RtD@#mKe@_y#F(ocL>{f;#zAx-~1H3}DVwi3LYk zN`Ml~V5gRt${w$4!i?!4Ar`$V!ulF{70y}>$A^u6~_$%CjDv0E+?W8nWw*#jOj^HJKhco+0*N4W~H<2C=_Yw8Q`f4EoDP2DD;mUq&dP z@g#dB*|2!SF_9441Up$#wGz09uWrP~W$~>&LreU-yaYNg|TS!o>| z_1|PQdoU*%vs9bO70g3G34t(%b6B9XQKkipZ`uFoLUGky-yCo2k>|m7fPESzu~5^6 z@4tm$nEt&Gc^%sSb6!VQoFqi$!&cfx7@62>GBo-QBCEZss!|dQ7Q#&t4sfswT_I}C zx`bYgXh^9vlWW=g?4`r>3`=*#-W?*V#x3&c1)sSG9X5t;Bp}{zf>7mW{^mJ1mb>_6 z@U2??w(1-s$Ox@&Ix%tRMA+ZSi%3}zJJyrecuaoyDVRBy2pqN0r33+NPKmb3BX2Ad!)JPeRgA}#OQh!kt7JMb#gZhn8}7OH(A)U z-vuZeJyuT`@hlTt(zJ>Qi#OK-QJYDWz+Fzp{{v=>_nw~?x!V+8=0rGSxM2#Mt~8;) zwNrx>U|ip!@@r%08iA@sGqF+U;Ret^!zipHa@=5cA(@6!+bMyCuMDCkTJfD;92ZUs zvYk#5yRs z(h*$`K$eiI&+S6p{j_G$*arn6612+o@US2u-m~z&;1e=XHueFdbPtWx*aS15HB_FX zj&3Yb1V93xg2RA(6OQc4Sdl1z;%L21XxoYjn6|z^P*| zFv8s~>K^&RMKa1j5{~Zwjs{8i=-hvuwENe83VXjK|AVa+#aJaaS+dEGYH5iq?R8PT zr|t9}^RLKBFdUMLKG;c)gXp7nCyG%DKMxu^>+b)%)~0x2pVRLrLCop}MZ@Sm9v!_@ zq;wl)5sDcc}FjFXutf#M2c@ZBY_O3^yh)%)uteT}xM_fk0L(en{O?;KDi}E3gDDvyhwaxe( z@^;0Wq)B#<#jxCvP3~Ri`}l9zagSoJ1(DmD4Lx)tu4BOTnR$!xO9(9Ez>KJ~IczCS1y)Y@y z7=5)-I0;L#%d>MfxD;npWaKSKPtM#i7p&Ow(7a)4=ju%GX`AEHf>~!}&jjn|@YjIB z#9qO2j&{%Y`s&HmtE7%G;H^~{DVxTar$3nA&Q!XqKrQNv(Ow(}k{2y@Mj@2dt`AMg zst7Kg%K=_z+;_N|iRwqc^2o#ZgJT7o&)X7u`C4g(3k`GTWCxc1Tr*WAWBuww?slVP zg7N04@c80_nCdeHlXl}PGoiVQfD`OxoGah65ThgV>V3iI)Y(!VKm(*T4k;Hbekxx8 zQ9!Q0V>^v-MVrJuUfu_UqCoOfid9YdY`3$m$ZL;%gGgjT_^p54M>`MMoN>N4zBOA) zn=ttjLg=xXRfCE9x|+S8JagUNu5^OqWI|S$pYR7S)*%Yg;NnP4=(Je+bPMDme+Zjr zglq!*+CdkiRP2%6lP#B?dUYi-?6cUJY3jBDOoL356+|=Zfv?uZjJNkPGJJ~x<_wis zaFM0dIR$!;Xxo3yp1_KuHO<6ISCbte^@Q|T!)>u8a}L}k;UFqge`H!loz5uPFI%S@ zD?j2vg(co->yG3SbpqMQ%*@kwd)Cf+%ovRDOA1P*aWzrZs@lV0W#b9z2NS!wfvc%D7;Z7dqGFgbaFKsiOF?F0!2 z_!$zTv5WU$@upuY6E2sM= z4VHSL(TQKQ8%tCsj-d=YMgz7v^10jEIj^Xdkk;VY$S_C6uA#rwoHQwI=aChASndte zV~9rYYQ@IOBmmgl^qI$|v3wFI13`0@I*r?kOdeO2D6SvRorJQ9bf>8(S} zAKekb=&Ldx@A_PmGPM>%P8&@jeZ&dmN_trLCdp%Zn<#pB$k~uOCMTyWr~47rS?Y~e z445ml$so#`;*Qxq>qtw2Zxzzd*D-5oX6Tx`F87TRnfT6%M@tQ@gN`Gsm%en7@#vJ= zx#31IehSM!bEd7H!IKbl-JpOD+psd<_#oC<1I%Cc2!swm>5fl(d~}L=n6n;N&WX)P z4##m<3Quys)bEyCv1K|0A=X<&pVOdO#JA+z%rGV-N-pm+->YZHHU%vX-qL(7hVm0% zKW~uGed;tqJukT&i7`TiBNXWE9!})IK5)Df6pFvPqGA3{C z|KQ%RK`|mZmcFDAnmBGG>$dP1%olk5=b;U=ZBuV2){%PS!k)f|AzDZ!uUI=-7F9)8 z3^?ry?2;{!H5-n=VA2MI=s7SQwg6u(cBhB?l;7U|3BbCYyU~_*vv0gedx@?(c|K*5 z-Ip4-+}(Zf!qD(Z)jP}UK}cc2+yjP-Qd-($wc&f2Z$mwDtBi)wI`OY?3euCj{e;?Z zHLY}fdBP9Hd4X-YVFhYCahs}=e>mw>kjhw7Utg_uGIcL@c!Cm z&!)Y(`#eY1nOC}p6MAl$UR!?y06H2M6mDrgfE|OO?^yN0s4?nO#w>j0JqYaQg4^@2 z!xq=ilo%gc0{5=H9RcQc&rf5O<=Ezu5?{x6@V%RF zQ?#Kz>`te}kECy@?C&pUGe_JSo2=mxMe$QQC9G^Qc>fcM@SyImSn7A;3%jod%5<=6D_;$5Ci4TBlW;s0~ksHbp@SuzGl zXb20-;Wk4u7*awz_!>=%03u=p47B0fmp_+Ay7kgCPM^oR$T+ZB|0?xMS}LUr#izA* z$9NQmdFQw*7|EKWwF_5^YS%9{b{pd?$_$`f7Vsy|UloC1*@LkO#0Ak>14Ewo-1G99 zp!9)1D9rDV9sj&aaK+ZBOQ%(CQMjsQcxrrpyPdozlX+2==;O~k8~_prI>Jh%RYa_| zBiKgZ;WJGS=~t=9z#%8?TDT+NVe~!xCCe$)y}T+VF7H5d;_r=h{bXuI`1-YqwLx`* z=OJr<0`9rLewS2RBiH?gKNNA;PT=v8d)cScq{lPQ*)A(s>bJ<)=LA1f@?zg7ydV$7iYqpW934X(CgOo#3@O>H9u*58-&d6z`9>lDDVd z-y>QaVF<~w$`gM#H(9{A^Ax8~Cr0{w-kKn+K7a_^9WD4Q5GNC?$6h?}BNKHLiaoON zC&@S~+SB7KTCJ)~8&=>Mf7DQMy&?tNm1VS5PZfR?dwX%jQ`#Sfe$dtwX9Z-|G+l zBc8Zy? zKQu`Ll&rV#Qimji9Yf?v7p%<7#1tHG*-UW*LH`kW0Bes?mE zoy~U-UyqG9bi^k86)X%c&dNCyR6Ibp956k! z3i-bwd*0&dk_61?6_;UKaQrpJ7N;wf5%&3oA4=RDXDMCa!6csN%eSsuzq&<0F(4+d zxoVM&7MqkVFurcdll*6g_mxx6z&sp!7!fdmy!^9=QEJAW)f0EGQqpDiZ9bp6sLS?C zEb)EgCIR9~$cqZ@iKnI3fM4 z7ZBfTBbzG0C|hjpF7&%`aEO0&n4jRP3;%E*kbpE`_&#F2_)IJQhU*mLHAQU<1jshP zQ)3)JjB_Jyf$n*P$I({O;iABb|H!-BBOM+@Q<@y~SOS`Hm9;NjcnZSSJsh;i_PN=- zhjbAP>B6#x&>7C+lPs~pAm<%Xcnws##YLnKqU>3ARy<((kvl^Rs^2zt;*cE*g8eQ8 z0K99#OIrWUaM9Ywh*H*t!&Gh(4`Y!N%@hO!G0AFytDLc34jYk706M9n*zNZyEEu44 z(}iUWp)L$Qn++6?M@a)rUt4R*e@VfpW{Z_9ci3V_BJ8GFWJ4MK0I zbwOCmt8y3oKOFP#_CIuX0kSed!5o*chQXu2A?kh)weruLx@1F>57$|gzRZSKKI3pY z!8xPo2GrxoclMmy7YX_Gm5qK#!ZkG1kI&S6`}fq8rqmXp1ZN$2$1pIl}}RpVpWQis%uTP z-4$+cwq1E{?r0keBnGBZ=e>6{s27W+a~--jqR|XWg^Z* zooj{exF&<{A>CjsA>yR>@gfv07EH;^ z|F$|%6mTNylJ3SC;|E1P1av z1G2ba-InXMAO&0NU6Z7w`&2wFCh9-f965>7zKVGb*3rV{~= z&Vl5+KJu6`w^)D1d#?^;tn5J~H{+*4j+aEg+ye8ZRBt#T%Nm<9UBQe;98W&%2w_jK z*7twR*KQrw(BDTPMd8MxuuIZKUmY5>a%4KosV2ezzCmHCid|E9zHl}zj)*dwm|@C0jWrLkajn)OC(cad$EQLOXEM=p5f}Vaq*>i6Z zzLfF*WvowyCMgLqcDDtDbV9L!$hu(IU%UQVb*3WpJBbpDQ7$a@lBF0Vf^Mgdy&{WA zE*SQbSd6~H?w8W73GaWKuiZLQBlztWm@k8HuY|0$xWwraPYdE$${|Mxdn^lnRIGg2 z`p2oO)b2$OS5rCz5fiXW%nG7m-s8y5k6LwOR6z1&9u$VFn33mOS`%snqPLGfbX|X< zgqt!|fF}8LRzN{^M`ztVYrVU(qKG|9Lc%8=L;iJK|4U+;#1*aGHH`jkbN7DB=k$HQ zg?BU@N)QR_sfznT}eQ`^^maK08{ z2D$|F$GS%tI^l*yB*)dK7Z+`HWidz~HMVRBR|Yej-IYA;TbPl6RM-uiF$&6Qp>40A>aBuM37jXD{zXbeeu-|f3zIn!pSsn#; zJh&;1D0gSjyk<=jH$2QcWm$mb0$>i?od!97h<0HfSp0k(67auyZpOUxIiTdqiMj-r zZ4NU!XH*R-&fB(=$5O`^23U6G|G_0gyz;QdtUTuOTOSx*w)$^WMs*O+&$umx;eVe)D&qk5G_?2EO&%9-!)I+<>{^UWAgTLHeU3W%Wsmf6U zAFgQR)%ZNwhT7`aOD?~Q{TyF@0d$?2IC>0e^mO6D2DaT_Z4;_4kHC#~+n9!^)Ezjt zG<<0?B-8aBv=Nd0Tl3V$zt^4#M43d|ucZyD|?FA=YQN=qrf(~J}vUUat@e=>SfZn7|6lPQyR6w(cj2!Mf}_(Zwj zZ8;39PL=OF#Qom-19t6yNpL|JIM6&sUcD?_9GtoiyUMel6_ac&v`>A`# zdsc7sPko9h%Jww<6e2NWD&WegUGfA$zZd-)6+K>94q!G$fW(M@FL@72K&LF8EIJJ| zvCjQW*a>d(E14}@IXZ9_BH%-dA0>EZ{EHf&v!=Y+p&3YE>5U~n?@nbI}MPH+)JbC(Folppx z;m)c~?^kuRzTaAs&z@;8_;*}C>Vrb5N;TB`(y((JG-q&ajjtC!RB`q}gW+;Q=be>i ze+0dlxE5mF#v`L%zjkUs-|xLG8K=Mww9iD}u#|yt^Fs8t6CY=g`g5qNbd=w9LUhdX z1Ntwq01?ZfU2>Jh3i84SLOjX=oW**OWH&trk%DfO208D{}zSGfro)xs)FoPuq18KtASy17d=R@6HUJ6i7z*;e?k&E$*fz2g|@`N z#~UD9=BKNNW#!7BQ|vF>rejvJ63kRkn5an=UU&WX(`4ls2t zJun5CyUY6dryG}gI5+eyZ<;gNJELPzYtU{0mnGUN>TY%Evggc9Fj#AX6MOs2fBYoi ze^u8`Q}}ash{~VFWM6%@I@mjx$*Vg4{qLRPp~-1A3fqqbcR34^!i}<@(<%FSUOjx% z$l=Ziu;PE2PZz&Ep1bFAWn$>EDJ~j>%C9iRQvl%{=021jR=FKpH@2RATBN*n`YGy5 zsoQVyTJ#-T6B2Nf$0q&AfcZI!RkPz7gHz~P# z$B~}|swbm(=h!EOd>5iTaTHIQco!s32&YiU;z}VU@^NaIE9-k~Dn`_ZBa5V-CWaFO z{-KnsDUHbLo?p-U@leF6HumJpXFZQ$^gqd}dh)LdYaOdPRxtyBfux6nb^YgcB4L6T zARMaRKb%pDP^YX2Rgnb5>W43YLldYN7e>5-$Plci`Og4zieYKEWC#b8%7YULcc}_7 zh6AT25M#Ud?-(AhxFwzlHYGj?m-o8EiAC0LP#cis;;jo|Ea!_J{4VvrH;#8kN?iO` z&7BHq$pq9PxB2Y$ZxG)C9=;@U*WE6I-wjgZtDEsf5 z9|wSC`sasFKkWpP+DpWXAPQA@w?82=DmkD?asSrh=lr?PC#Pm}y|!IwcV84|r{=$GMDe_(s(g)-yHSa_KQ2q`A)8N97A7!v zU16xDNxXBEFrS^5d<&la7U8&opbF4sx=oMomp(yXEXjqEu{EDCA|k}omLD=6^!ef$ zZ}E=$g$DN{c+ zp?r%z4j8EZs$xRYogM(q>A^WO`}`xHIHzfL}cRrpUL>*#xFxNgg3IDMG875v-Ni<0dxn1H|3 zq4CZQ@P(qi-Ula*^oRUB)Q+(%Nkd$k2Fi_-i!`Dplyru@fllKo|KqpENS%Q$XMU`5&|-V1hvqlN`vr z82YzKoSR9`{p^$KD%f1Kh&zj#pPV!AgD2x6PRZP?HAE;()-w!c#f0n8A^`Lj!l`Wo zlVs04))!lVju1`7aXZ2gOo-Bhx6&#TX*Qc44{y8USWV9l!55u9r21#mac*(FzT~b1 zU}Mb)H05AKitkV?F)5Mji zjjlBMpEVb_FpEHi!iua$7dFF8e2pR7>0;gO#S`HUf4Yo9!8u-1wHIk6BQ}UiHEzPS z1EqKXU>E_WC4!W|(+pMKY}H*&Yf&W-lU`637qUk?O1|{BJ2~L#TFkicv15;GDj{k! z^k>L$x~GR+Fh*^`ql}XjD#zma9NlrKu4eBh#$x{+tR*Umwq$G(G1E(;?FXE63h_u* zB0LD6?Yk|9(?t)y)_!7p;gUpsE?8c3zHvR4jF<_e*gPz_u*fpL8Nd_&KJza&I??!u zj7Q61xZQoT#IdLAf{OcK2TLvgM}hT+8OU{|7PD&GY%S{BrZ?Evj8ig2|E-1FT&j`N zVXDz?bB+FX-23kK;eY4Z<4QasJvM6NpR3ejk!o683*I2cDfzxD5A}2Z6NMU)wj$^y zr;%tZmoIdC^F{j0l4l*x$#KI@x7sLCF=1_SgY9sn&dM$t*oflv=XRwo87`i46f~13 zMwkbT2%91<4#3(40m~v`r;u(eLCqlu!ZpXz4|s6YFyh7o+wdp_E$VoeA7iv&a~Ivz zRyM2Sba^m;LTVW{{<(-|t_zN@iCVtXpTtELZ~_`df^vzq{I9*{1}Q?LJjtV&liYM3eoW$q^7V2o73XtcxrI-S&dyrpWq~ zvn+}=5G2VYk;0Nz4^qKfP(-5 zQQQUSD80_|X=A(MM-~V@sV-1(@9k3lIAuG_lwx|kzPSkrR|?Ln>f?-GV=$vh+qKwpW2xrU zIMTk^G<7d_#aDPke#`(Bj}J}a0;3>-jyO_OpkkATzI}8H;YX51%eFhcA<3+=@ZDPH zzYgB;8a0Y|p|L#GIjmA-{~D7f72CFjFd3Lx+1b^Au1qo)5*N_+zWk49euujhQ?Dd; zBUgcA%JZX)#k4}SJ}j*#+oJ8Nt`sM*P`lz6irOkp^bQU&@ALgEd{iuT@0H{DLX;yQ zUliJm6j4U5FEjP35Y*b%Fky${I-6~@>NNa#N%qOTw>s0>uF4&9Yzs8YllV!EU1WPm z!nDfA2Q{thud(w#?C!TaiTh^NzUo(EHj=t6~Um~jFSGl1*@%%bV` zf}I4NahYxfS?&23z764#cNpe^Qs!BxE;Gsb{i@bDB1sA5AUV5}HvZzfXdhykK+dNu z{(+BQKC3`G?*0wDL(&ht%fy}VT_(Rr?Q~~53>X1mK8Xk-WYU4ug?C}s9$O84I?Ma8 zTB7wFKJ>vXMv#SN_2OhZ!L+vzT>6CRS)m)A2vKlfBH}RL4=#-ad!KK2F4E)%cg*t& zQ<~H>S0zmjycoe`&@kbr5-|DT1Q0wxbbv=N4t4(~)7al+&OvaJ^^=;U_Ri-zP1w;0oPy%Wc$cP#kz7roW}F!r-L zx};EN_$Gi}hG>iQ6&m4C(G}*q) z7>}p1fW`$zj;X-t@Eh6)Agim0d3yx9N&n08X88WM6#5A!JUL) z`*^Q+dKY_!14}37v?K-Mc)m*B`qt{7{?nTs5{Xq2MGCggvBQ{eg^(g;>hY`)CzY6W zrDjqSj34icsBa;@EYa5R(U9(k`iXQlLf5+v3+Hl9cqLG6VJ6?$7nJ?6)G-ot7}hrn zAs`|25R#=@zXT8dl<;SsT^jt=N=9=tkeYlQUu)(Yey{JX_)Id%3*Oh7+S=wTGpe6` zfZd+oy*N;^Xc)jNgm}*CLXN0MW;TT%C0vg19Ts#-oeiIKE#U}$u#hkxg@S{@SbRBC zogHgvTn%poL$)T3x%C`o?fq?C8U^u=d}n^x>E7H{zxqcBMzVK2<3h@5wHk4Gi0cAb z;c~|L{wm5kHQ=HMdx6Ar{n~5Aw^lr{+$JkL;d)v4Rn)y`d!XOx?r_pjsG?dMKDlGi zlwnrW*Rgv6!l_@oetv+yd`l<8y^Kb|owj|(eaA!4VO81jKB3*t#QwW>Ze&$qRklQf zrdF$VSKI_Qi&k23GNB&+(je6y_nK0y827ZMiz9{ZP(JVsBj+Pa2okvm3C3=65^$%Y z^dNv2Qq(xIi`|XJzN!Q?(9SWiLIveDxJEs>Bu6eE28XHL?H|;1-s>7 zq*#%8c~x*YiN3!m2=!gC^Fk3T`C2?cRN6cry(e64bDs3%=|jct^Mx}^bWo*%ATKD8 zk%yH@=;+nPl{Li`pV8-*Pdi!b2Kuz&=Z%e|%Qxw&(YAMt0*hW!l`nVrB4YW$8$cfb z*wlx^TYGJF^@i1GIn8O<-6|MraOzgi_PC~(K%`3d0`L0P#d_4IEBi}{VHhTDh8srl zcxORm>A8Q^S1B_>=Dq8VMqN{y$4=E&7d~o-)57Uku^c9CcWKnp);`eqr?5tDF5J=S zY;M2dgR(bg@i0=ZKe!I^qYJR!sF1nmQUK~3Tk(Y$#{FErc`+O%y%Z^FBBnHBF)w81 zB+PKufK(prkK}d15|dnLH@i_PlgrLE1-&_0gjl%C8Kv6Oevy!To>PiRu>`t8C~-U+ zdjKqm6Rb9xBy)^C1lDuo!h=`MhTi9m(3!9Ow3y?BD~Ig4qVU0Sr$MOavl#wW!d ztGa;F8@6oI)yScq8o@(AUu(B^SKK5m!!0O>j+6KNcW2M5DQG7N(sN&c*U6q^s_1B3 z*PYu_YtNhICxYpAweOvRY243xa({u>;6>fxv}?pcS6s=*KH;%{GWGZFzaaz)od(GG z6LIt>+F7WSb5hx1ihI28?Z7&dB(fs1wNrNwg}JtzjS_ z;-(!a4WTEdQq%v`SE)liMR%KlE0RjHdCAzcy%Ia7`{O*chl*uC>0UUr+H{3<#mTgC zGN=97@ouO9buF!DG^QLTwW1x{4rP~!Z3pFq3fS0-<1f~+VqupSID|RbD^<&?fbpqE z_Z*=}G6SH+z>yAgF1+Dl3csl8)Bbj~hADywGGu>tLUul%k~ZniveqvCHQn9DUY&?l z_gN({L0}a#xTlqAEGlFmpgr25$4Out8+1U1O(EX_ewpDAGu&3q>BhE&UyT8K9i+Lr)$DoS}b0StGN%`H^5hBgRX5fXN*LV<>#26)TWO$G1r(%UYFi>Xm zWtof?lJT{PU>hDOeJ<*nx*;uE8VyBqH-NFgAN79l% zFR+)sCr|IvT_QynbeTB}^ipr{3K6(Yy-o7cV~CZ5um1PcaXEERc@mGHYM}Kx6uMfw ziFPHNJj8CL<`vlAZDNPD(~a-%OxP%g#!wKX*<7D<8j#ZxwqLF` z(8#x8YfNw2Vk)oP`cZ4hcZqlnBSik9x7{3C83&-O0jL;ii1v5ImC*e+AzmGG!+&!y zv0tt;Q`)Pyh2svp(lqByW8V@MZkM;9lBh^+K?>yp%rh}YX%Y<02&T%-LY?vUqL`~F zQ3vXA$0F{<%5d?{$q)u#XQY^CM2a5sAavPlR$^gwdLe*RUXY&apEFK9O zkTr@7ywa^?BnwWz-qJA0VESACvlyFCti_ROcedY7|8mN9fBTI>k%1p|wDyS+J19d^+}?P@^3mBV8x!s}?$ zveuxvU8**G1DG!ksQ9KnF+~ivaw?z{7rw4Nc;aIvPvYE_`bp&g#B>SLlAr4u%;^{& z8MFcVMtCT?7YD6ieb>C(^q1k_SWiw0<9aI8YCk$-%RWa)KS|02RH~Gcsuy$V(m}&` zd+I{DAOJ2}6=pebf{~Er32LOsO;O(iC5{z5R2bR-feVBpYY~FtTnunEf+hzvUFsQ2 z2Oa^Y;5=$nNt;)-rXSpMb=Vps01mkt#prrTAog9HAWQBTLKTP=0);pZsjUdXvIBIl z?0?;pBM1r%Cm1oP8XefKxRP%A%@noEQu}LIu?0pbG&x zs(+{h+i}bpqDFoJEj~z6&eN%4jP)<{25|?#pOteT6rTq?U4{o`LoZmML9j>*8604x zgE-zeNPgGo8`DJ}B+U%)QIlVFdi}J=`^ILhm1+^hr?-%`H4{5*AHRlB@Olr=OB0Tt zW@`)))#~?1J_p7~)x38x*l#s((Z@yCbzy08IoX~U_35=ZiUsL`E|srH%)o=qvNlCg zF{L<(k~daZFcE>uOvEeOmvyHlV=zUE+sX1>&QjqmgqIt7&Yg!Q;O7ANN7(-e6}F_W zHjh_2@Ze*hlvJpcvqT|T6C(tsU-0X6DDdm=GPwT0m3ZNe72Qt?p&p*BPq{GcjMrW$eBn8rdlan!Wi339^u#$O@ zT*_xU<4j9x&``tzg+Mc6!CFnr0o(gQc1K0YXPCCR?7)E^IA}mNc^h5NCq~%3+)y5)v89&5w3`XJ%{;wlY!gP#! zuT3jd5+Km%W1kTt3D3Osson-2;nmloG$y{~PSy~Zct!UDOHs^uzFa|eDz*A^5tsm7 z!nBmy5xlQuHHMC!%a5M|{9TbOG5&*-J8rqbe{_gCW4Xt$hKL= z^enh~=`$b2*Yt$I9EDU_zPf_0#)zPa**&-xAav0Ps(X4gDufl!!2K$WwoHeM_I}8> zYDPZKKPum=eklP7Q>3jdub2MOh*GkEube!{V+lwvSzC%yAkpE2&Z+A=XyV7d_a9`W z$k?x6=2UVAr^czbCz&8wYmRH}%&O^3meBCKu%B7ZFDe`~EgXU6P;F~5PJCW3Y*GW& zgF(Du&bSpt@P8VsQsnDOU4}xpN$mN0bY+pVfg?VL;0+ecn;xmf%}1ZSU`yZe?Q;nlc2= zvx*yWX^3s{n4?qp=D}Krv5%iX+9Gz>f20z-8v(6z-F?gN3!fLh5oUOR_tsYMmac?wo{(=Gcnoc?olqp_eF3$4#^uK3MoxTs*=-@wj@8<9=ebOt1=aPG+vCay%yv~ z%To0~JdDcXstc@X-Ft3^=`!o&wf}@FaWwcTp_^rOUV*4GqAeKh?zkb-?M|tK$)4Ojb7Vg=P5Gj~t?LD4C&YC^kEMkMA*STSW_jjQ~2@8dn~4 z#g**M-^@kvgwy^SR%&I~q*!Z>f%^64l))!aL3-=l(s*b!UF)~w^@?M{1+lygeW{bauC zrCOhn(8LGo4idBM);WJz%dUo{tFMFSKB?r9Mv%M!SBKTI-~Y?4$AE+4SoFNSd8^kd zAi!87&U^Ydf^0r0{`TgZ0z+K)Cm9>;*KjfN`|z_ioAIK*Vo@t(-g++~j$Mf-&1374 zuB=~@cp=fVd@=Wxchw|Y?ZnSF^uzd6U4xmnP~k;?(6K(j_#@IiUI?pJVcBEhGjepU zs4I>8^_~lz@E|p!T&xB|+{j)~a~buwaYlXC8e8=Hd|6l@`|RHfK_!B>+B^C=D7-Rz z$r5Mo>!((|dj=f_O%)-0pgmMsZ^7Rwa-oAoOELECeY450!oE=15|XB|2bBV?l_3oU zosz%iaTZ-=g)dvkk-L!-^5VJ%jDfyGTxSB3@|ZNpnNiBr#5Bjm=KLjM9Amu=t~I^Z8&~IX#2@V zZ#4d)T$zkO_68c4w@EpHPD33A`uP%=Y#Pb6{lpi1hfkK#52>8SJ;06LzcK@U@^ViB zf;NFlA_vEz+_SQ}40B1->eak;2Dr-jQwvu!L$k#3kqnm_-geQ)O^slUR>csQfozq% zP7UVOp;_AR-@}bAHi)XD#Y`ZC{L)@y%wa9NqT&3EUF-gHJGQ`rhlcfLJf&ostg+1p_b(j#&?|@Nck92ou_tv;&{r0(foHJS_`yZe1WVUky&c0kI?gqqY z=h>V6Xl+g@DwGH+T97Wv`P~*dXB8HLQXWIXgCJbPs9D#Br76s9j5d`yZ41g#z9<{K znR$Zs}K_58z^p0KfiLKYs85 zZ45Ij2Ilf(!!(CI4-e*f^QUR&=NRnvCYEB*S}?}li4>(&nhFnITTCGI91vj_MzF!i z(~5U8cF1^R|NBYaOthjK!w;rl)xPTa)Wlh{10mXupo}t@t?E+B;{4V}yC-iwCW~FV zGJ)7j+$`l!I{AM=r@-avC2)iREggHXXQ!gURHtCc)b%-fLas(YMnzy$)jil!>veiC z;Tr3)`fOt@2f$oF^Efejag7JvgdUEGS4(8S(X-XQgPNyqj=Xzh@DFFa>)=8)z6_?+ zk4O834lJPN$3a%8xelA;U{~HEp+FxzfZYS$_I{O#Y5%qhBz^`-7yL{OTx#d%w^ZMq zewmW_aNphAtY+PF<=PW$xuY+T&Tpuf_>Y!2_`#0XdSx ztxNVn2ZW7BG@l!|0l~?-M4pZ_L$g@oqnMhiYF8aVuUsYn>{AYm+-5mfKgHvdJD)3-Xf$5ZJ$vlqg*`sg~Prj$V&A} z;Wk9p2sDn&OPSd4V9PxAo4$?-Kw4jcR>L0oja}|ZCYd4ZS%qhYfK1gM9E38>NM252Iyo0CBg5L>LgL>bs-rXASTt=L<^U66a7?! zW+C4agD(?Jl(vERu}s_m8H<<_GfdbK%>{|S*u!8OBBk9f8+0?39R}%!&$5n}P?F;M zG@TeWaX{%oH=OyP8T#X07Rs~T?YVo^A+v_v8zBRD8)N4 zFBlhhNFs46{6uGur>V8;CSZpr1`KdFy%`%TZ2s}4~$_jaxq9a;v1GUBoP+tzIb^Z@&q~Eg+%>)pU}1u1?E)}Z$PFFx=ufK zQE}Gt=umAuTPRC}@LlaSmd;juc!Eg#Hbn2e2`VJ`IJ9SrxZ) zl_u_$WrN*?&hSQcGB=#q9`dyG2kJKV?=G*%yeAy)OR9Gpyxhg_U`>2Me2rJ6;`ZNg z=*6=NgihRzBm1czD9U8NN2BSqUu_yu=~3VI0{s!z&2MgEMcwxHDfFfFv_ zIwt)@&%e3d2nIRcTL*>Fdkq!j7W>sC)rRnHx`hOXKLI^Lp-h*vfGng%w$&CTUFATZ zj9;q0lC@D1VKvuN?0>flm_3nCPxW0z`%1pUcQxtX`Cc;Hv}OW!!mC?9Agb@J+77MvQhS%9NNiKGw4jLs zwUXFZuIl2PNkwLGHsaN6owZ<2vnm-7PjW$_RV;lHpM{_7%0>d=)T#Bg?IKI9dh4Y1`#yf=l61e-c1uz|5`So7Nmrc|NBsY< zCp@vDI-f*Mz#UIqs0VL^Pc}SDoZs#*OS0vewOyspiRr@WO7=XPAEAW>F^iVk{ zGlMxwHz#&wGPtGG%___gk9+7C;#zqf!PD66)Sq&V|G_lrfuV6%Z}+BbAWb$(aX?hI zaxM^H(~2%2`NRne9s&l|&Tww;xR<@(DT2l0j-70V%Z<2T>1OwEOL4&MK?oi6pM!~5ZJr)5T; z&~=K!u4UqLgizb}M(GAxJJp>7cX%_EqZoo|b-uXFfXR5&~8=UI^827k{QD0jIjdvsqw#(J#vJ}#H1GaM2 z8imZ&#Q;zl?Vng;re<5W;PJv(jeIy;oZfNn$WvX2^?i=6_YMpm!ZuDd3Sp8a`h1e9vrwvgG}MAJeW1*dD+}{(<~N9sfQi(Qf;%) zaMdE&-c2yyB%Z*x&Lz3VtWjxe5YLk!T4xS9m?hpo@aKE7; z>`pRQ>$1C;s~Rc}QR8$QRB_bzUZ>5Nj<%S|N?U)d^ zDakRYJAdOF1{qEjAyZ?|nT?o9mOVGq*Tyb!TX%ihlH1dX8BN7_qHPg0gv*VsQ@2eU zI5)M?vR>XM9o6nB?QU#w^(Lh#rmp)Ux?|dZX#_F_C+Kqm(y;AHyg>2$j+#m&+yjK1gaAC4~pBWP9) zG)ufnq*1#AAR9K~tAHrV=#Jyg+BF7Dc9f?ZfHb^o~oXq3Q~n zjv906#nIRI>`@=F8XZ{7TF-1yH-y!@=f@S%%P8%eX5ChIFoRLCd%Sa!UbUCfG0W++ z^XfxQ=X!Z{PNTcgv>$+3@6`vHtacuKIm@%V=kole7(6mZII|NX!u`uwnBj~$5C99k7)0YaN^*|&yu2s}FX0E>2ZuM(H|IhKr3V1B@M7QVqn zinV3jZswL}d;Y>cg;>xelkyRo9Y;P)*CGu27lkNq7_4ErXzLIEZ;dEuO1HBKyb7n) zPTxwygI_S;(Nl_j9;(yX-kzZSQ*r=J3?1H}xkv=LzYl;trn7CoG&&^hC+OuVd4(C= z$fd*C)ob|j9>#eNus-)b$B%-oylmc{S|PT)5boT zW&g#xR+M%FrD=1~&5c3t|HEh>{p`yt@)PzW&aI!MDUR|?vq!8dgfv>|oCqfWTd0)Tu21CA!82bAD$7N4x%sZ*sk*or zy@BNhaA_+rZawYg0PIv8rCvRsL6nAgbDR5ChtO?Z97Ek9C5{9!2WEFt1VUr3O&=7HH8=XrzqHDkfh8D)-;JTtdkz%qzD9NQtK0 zampq~Y6z*jr!GM)ZO2drEbnqBKk^XyR~wYgUCMVmx2Wuoc|!boMyRv@KzZH= zN?T8<8W1ZDO}EF^2PEoxhPDP&)1*}6lNobtM28B5t6Y~2f0tzj4We8Z)HyyGa-A8R zSm||3!I3wA&B^pyRLKnRCHR=#QC0iIVuk3T)#gbwWCm4_X}xqFnG+MvtfZd-BA6Nw zYZz}8s@_)p-ueuvfz98}VB9}hm89;vH3H^_DK-vM_hcTI3tx0?dD(8Og|+{pPjsEc zH3F$**)Th;a_Jf8V3RqChf27}A*i`dbK`;udFSEKQa0APLCoXHB8cM`BL%R3#XTu$ zDY=CVQk0A#=>=W$)NsDBF=5nETgR5JwufRk>6Qc@dUfikoB%gK$iIM_EQz>R+$aV! zVQf9)GfxL4^Gnh^i#N~i7O1gar9m#ML+Gi-c=beA;mh{x8sk(H#y=HiWzA!lYnrpt z274~1%&TC|v6Ip;pH~H{=-H~rQb#@%hU5qj!;y0-USBpW6e1{}!DB6m%+DQAjM9Uy z`s2{nF`*KKX^2+IrXg@x7jD9*YIK77GX@8n?tW15Hj(M4I!^_&U1T=HNZ(VY7;VR( z=~Xb4%*?iv2$UHQneQoXsM|D$%CqIWBv1W{62iQ+)logk;Fnq|W&SnOs<{M!jOjb!h#wcGNIYYr5mhvm9`9$OZYX9%?G>K$SD z89jAs$CUxg|A0BtyLY;`giv`wwIOMa)D|;32Rg5WQJYk|LN`$kA^r|2Pn?x5i0kw6 z>L2fbvYdrR%xY1;O<>}u`sSh=;4B8)END^XhOiYK(JN>L_k&5Wzn^U-k@4hJ|D5S> zUJ;>Xgq%L8v2K!LBd!oqNjl}dMzd1dQ(AcAtuwjm7uq#Cf0Cm$33Anbq9uI7HC;;0 zYWXr}mr}v=GR)<={ElB%wH%rYERh&GiHO_tBIxiOh`k11J#5Gnv6U3qdb&Pid#^f3 zr#T-6IhQZ_40?SF4hA9a|XJ4J&n!A5#H(Z(R{nrA&cv%q- z0|O^_KRP}zrr^akC{0N;w>?wM5NsU}hp_xr12AW0 zv!59AV5i6h?yPZv_J%h}fiZ3C0DK&rfk{c1a#<~hbzqtASTf~k1#UM(AZ+y0j&12f zE9oGXjIir^0wc_zR4<=5W8_t!Eak}x1oDL_vkFNqR%*h^=INWWeR$(Gid`~idO3s3 z72(G`<<3fojKxy$7c>|MdBFV1kH!Qr*W6_s2xnZcX7_b=hJNM(_29WWF<9hS_PfS4 zJJe-xWPWv{OkNIvHT%7>M1*zC7!%C8)!bdH$6mb)3&N{-R`gPKz%|$ru7svp>W7%0 z0Y!zaxoqaYskRq8HhuIv{j{UGV-aiQ>J5l7cn`?f7nH4$g2tIHuerxN;ht*D;~tcX=kXY>$JeL6XvE!D*#o=9K=m5tc4s%Bv%lc$`67IC)8LL7op}3j|32Re@LmxRNAOC1P!g6AYNV z$cLWf2DN{u_E$LJX2gmjoOPF)S@1Ol64pz}iY*6S;U}{ffu_ajpj$G36bO}S&_X@@ zp`0fdx1y_3mc8C(&Ey9r!H4pIF$bjPxlJ!*Q-h~wxOEC^O>UBs9OuYtsRp^h9a&QA zS^L{eJlGXtUu|(-KwNRQxlR*TT|Z>%MD`uC3hk`PG6#*@6Wh<+3B>h$Hh(EvF+a=Wpfb}Y52*eQx+mjs$B8+c7Yh4pf=YMVh<_{m0!K#S7>%B%U{stp=vWb$dGs`nUL zyjZB{&RbFoD&;}}?V}lNE}c0Er5|3C5u+KpZoJ2Yl2QjnjcaVNlFPXGna5Qcg^+rm z;P3{?j{DfawtWwLgC+pcT=tSQgo7rFnA9B;uBuka4fl)+|b{HKn5wBM$NojTbJ+l-=n@_?u`zExp$fvhT$is#sw`-3X5g& z25t?}moZ}*ge{bQjwClWfgLR^BQEmG310)$_H*>D>_EF^Gfq;q$>y=$o%qesw{o4> z;R+p#)*i;+LDgddE1wP4yTbDOJ7B`8RQ^?3Z9s_q`_!S#wZ>)(MSX(KcP;4M(J%7h zl!Bw`2J3TgpzY9>N_s0c!BAaG_eR~V1(qY}+0^y8I>ma$nN08YcY}LWjZuvGa=wEI zpM4Nb{chG_m7|CAg=%MUcl5$CD|N6J3$$G8|I*R57G=(CX?$Px8Rvmd^0jwy;aP+l ziQ)&k2_Z-n_i1HgX5ImIl;bi+nFdxgTMqR_a?hGpI*3om%fq>g`^nKa4dSaOdq4gE zI!glxA@U29wnF#6zy zb;j>boZK}lZY?}Ua@HY0?)(m{;+niu$}zAAlo2FGNFfw7!;G2X?y?&MvRLY^NjNeg zKxlZ-ZsTF{Z5GWu$`aZ9L9Z>qPBG_p$sU7P{iIM|*naqu`l~#_m-ooyZjsOse-zYq zz;h*Kz4V6n8Y#@TzJm+HP(?^l+DgH(H|~FNrRqAt*Qff%Bpq`7 z2v)Yb+N`q9#pXu=0d`fl?Ts&vY4M(4*4PK;H-CW!D{S3!YKFa(SnW3ja2G?2H}$3Z z9e&-3hXJ(XJID{}<6yr)^YT+A;)f=BK9&n^=mF%283hRgMlK?couoNo8R!`6p*=fO z(i)RSexFNV4o4e;a4_e{H^5gk+1_^6xA%qj>i8hakMC1cRJGXbP~fmRDENcZ%r31K zC_qRBAso1fQ5IQ>1=*mA=V?R8NU74~{gWMMO=DyBx6Z`{z-dB-GYn8GQ99s;#pb#M zCegYxg^nn-(4uWBt3|gRoW$M0j?Xu#hIWwuj{OQj2oQJt=pu9$_C<*nFzbq&WC=3Z z=TY)^3ss}B$+Y~9dEzZA=zie~T5od^`Fl>}wf~Ets&iv~m5D}jjhhnp(rtGct4tJ< zkd{u`s1+>gKGsCCUkBD72&5572m%3iS=v`Mqq64}x^a3)S8De3!^(*lE1RX_7K%fo zYKQ@YM#t2bCfx%t9~jUI#)VPQt*$WV3&-7By)J0$-pUSEtSAx8%rz`%AlT?r+vzg1 zUf&mPyMtB&wI3MJZtF0%d7n9AOMXHtD3QlblHNl{FPZ(#{`PDI=coPUpg*TNrZw@B z<8XN8O=ugPb(?CtD_oVo6ARnnaJPMoIYplOw?pe=CkBAw<(K5uBEQC$vzCMFkxKQP zpX+;Zy}31L_(4+we(-A!CXfa+gJc_jO+k+}uC)5vI}d)>X?nb5(IeHwWQ&|n&dT_r zMG*0T8>97D48&>C=`$2sez3%Y1{(WMmg_|t`m>HRf!t*5!nP&q0uS`^a#VPjQlloT zJVg&+xQD_~P)L|5#1;U04oZEnNrj0O)hoPdIp|zW!_Ul{Q25&TeC73+V>9hrE3a)L z`m8&zt!Y%)t?%NA9`HL-mluU*y;vyQ(re-K<*z_Y{(|@9t!Q+`O*ZpolA(nBve>?J zih7v|rQQ|gQL0+&rW*u`!fZntdcc;Fp7~hpr%+;->Gtj5)6}@XGCRDT9?*|Pe99$( z*f{4YlPG9v=~EEhq)Qx0U8InJQ3PRy1^O%*Fn#AhnW#rx)oD7Q>?@~UXr6G&_H2r< zus!FYlsA|V{R56+*DR{7wHV)-E?-pDv}0RpAHGi2>@-h`aNXq(S}5o!)rwsYzk!hc z1=KA5t6jNQ_Hx&itbPXk_*m3)O$r}A!8S6s?$~c_xC-S|zyraSxhl;#I1ODR5!XWt z?j;L^;48+0*sL6rkiKM}WYl3Yq^@Z@tJ;67-k|I%+FvaPB8Tk`?DdPD%Y5$)iI7j^ zk+}Pcoz*sh$Q!rwz~k`O0^U%wFy7}u)wTU?4s#2Ydo2g%z{dZV#w%zkopXm&H%xDAUdz&Vxx^@JV?vx z$I(am>_E$>?byJi^G0g-56TSa3AhhAFFQ{`uXHeix>w@PY4_`R`5vmn5j+wOsqY70 zc1zs9-(xjD)YMz+R9tqFtIvPb&F6aa4G=i_y0NX4sdcSGrFE5+7ehD@DG;Ng_GV+^Zp`+u7^`FDkD+lAx^+lShn2W2xnf!Ag z0*mIk(|coJKe*eDD#v)$Ue5Xcxsipn$#mFoSEqeEjn6h@M*2t3%|~F&Pa|FW#9pT? z_%%Il`@-ICR?Fx{pf}rv?>(OF`{^uEqporhyFD5iwBKG#4pKfQWvf07O+Fc#fcWBS zGv|iTk87t5d%v>H8tU4^Qt~Wue?>vgVWcvH3!cOP7c{`TdM?wt&09grkh4SDl4H2N zc}XDdIhM%9l^gepk3;^J^K9#zx83xY(lN=m*{viVkLUVrIn;u!({Zt4oex&KV3kZ= zt=73r_fjsfe;N*&S}Z)XQrTV)@2d8#EdGtd0IgHBmV2F+%+7iNXR1@0+=d-uI=7(>RPURBX^O!lnEJ}Gcnr(ubVug)Ce^WRi}Jj7XD{XI zcjdNc3Tq&$Wz{^X0cu*vjXLND*4Y~q)DVf7Kod~dw82Bt*&|=kSA27JO*N^g#WU0+ zeAM+|oo$5cY#cp6St9Xb2`WwST)+1`t$31Pfslf~Uid7MYqdL9)cHd5s-Kq0nGNwo z((BYCX9r6IO!;lu(jXpF8so`j{Kf=B5hC5F(U=ZfZBjZXN&^~bwwk)_d4Q`5;(1Bz4uWfiPGhXvd;~G*Gga&{~0a6L3 z7n@yX1IXWIh?M7uw`qzfziR`Nep5nyDVRKLQQd`=K1HzkgU01 z#I&rd2o;>fx!neML1ARc`9{4HwHH(w(z&)OeS@i`bMAVq`hR%#DKgg@iD=2ewXkI! zr*TXspp5+Uk-RIMz8#VpH~^_XFyL{b_FCG6R%4pixp_F-0p}u^R^I<`01KiFO-~9H zjohjrG$psftgNy}@>PL(Q#UBqnz`c;gs1ic9?S~qo>Sdp-mWG=u5&oGmRmzAHF1Fb zEGC<0z;o`cSR{tIjD|2O^)Ts{$Kwa`BEwaQ?`1^Z(kP^x5Ws+`vtbc)33yF#t4B{_ z_DZ@^oScCp{tqp9pnqkN9BxH*u$%H@*f!bx+O)aZwfbo+fl4-3(`<`5ZcLQnvB zG$`3RSEV?FZnAx>34IwAHyTk8fFMX4AV)x0VSp74F(3?^I=WrMs$N-b+I6Czf@Wry zRndB**;1+PBpc86Ave6J%q|bO4$GEv6Ts5)p$#r=;>~agCXTd2(OF za2E)-0jE`)duspmL;`S|^V#AICYNVtp5op~hA%!I=5JnTbGdm+mDc|R&@BO!I}kj4 zfSJPOoYp-9T~y=0c2&s;=F|_}`H$D?yv2EADDJkOB1zyOo1YtRZaoQII2zv+`@=6d zvjwmStPlA3sE^H-QMivE>VaMt>^1VP`wAObZ-o7ren)2TmEMpU}By^eT^me^cQ-bVulwC@0eA=1`C~AK>B|DBEOgK+Ddfon+ z?lAO8Xyl4wZ`bN88u=!PSKBv9`lOww4jMO(e9bizug*pvS8rHqtwhaaZHYjnTsYVD z#$kw-v(LNLBDQJddPak8w*L59YDM{{+LT9g*mm9}u{17Zf>keL0OIfz;JOcvRh+K( zWdX)e_@Q>qqmyh-zM;z0>(t9E8m1c$r9e#9cI!Z#dg7n2zXMRT7y~nCJzagG!#w$ z2i_xcdEVa2_i>sP1 zCD5?tidm+V$#ep`Tbz_XQwhz)d|9bnsg}X-0+<-ZowE22<(8m)4ihKr$`~ziVrPI+ zOtc*)D>!zbq=MO38{*W853oIA&6d37xEkU)`_R-RrNDcz45N1qyo59}HaOT_wc${J z=H7T@JNQSeq(N=w$ zzWH|?9aMB222gn#pmX4ciG{GPjiNS4+IUE$S9m)w%Mn-8K5+pD2K}bGz0r8SBstGT znAwFWHCqR~**YwT=ay+3PfqN6VFHm*7?UIQROi}^9l4Y;y3b&?%V?p69UElFUWlg8IOZg$`%KyTsK1B-+rGx1aUu=N+E*bEIjRfJtUnk9Mp|2<-pZvq>M2 zAMwLS8OG2`90|wek|H!ti2_qr#N(MY#73+7u66Ygm4E{9FXjE><545ZMF! ztK_pjniPOCqh)TO0dDR&epwj~i-N#{8K#XhDKm%X1kQ-D7(=-u+T2zZsj0=pnB;LP zkkTxqY^-FQrA=LBD3?{<-wo`njENVn_h%jOZ7j>huR*NnP@|q19Nsk>xcX&~ZF{Ky z6knKCu1y6Zs|j9DCgqkZiL3l3t5YnM{d?=yd}e37s(vwlqZYWtQ%j8v!E4_F7>mltb=Zku)U|9DyNMjdu`4x`UBV?;%c5^%*TzkEG(f*iH<4cO zQR!lnWnpJPrNf&=jgFHqT(mcq-ZqV$IMH}9%Yu@sNaIY`cGRW`5O<>%_?|j%L%n$h8^v zlAhT8;7VC=Jq6=??RW-mt&|E`qo8%hS{OY#!5W~3TA&D8r$Nd~fhFZPlRj-hj{G3; z36dq#Z?IYr9mZxrndUn=kac`|y7GQl#?5Iz!(0AH4E} zRcei9m(5F2-3@_EJiaFkO34ok&CsIuEqKz+;IX3t^;q9Mh7*bh*whkMvF!oCB1*D! z>h{8^{!T2z=*?QoAlX%pW`73(7`Wl44@LXyB>p%J2d6dOw$}b9>Vm>VoYp5LLrXXA zOwZ|U;ERZNVN)j<*8&}~FMmeh6pD*hQ2`4XN`r8BBr$3$@Q|xoC(Y`z$`tVqb?R$+ zI>neG$~dgdcW{Fen0wZ- z)9P87Z76n*^lk@1XYgjAJ1G_}!(uKZK{6S1aPTJeNW}!4c*sw(-E^k576xZLbs@)- zTqtS=y~A~ncZ`TlnjKFBbb^?M07nE1I3Oa04g3YmQi30W_I>oWF)d~t+9_`cHUv`; z1W-j2!+?RSam?zUljL|o5quiJpP4!`z1ReGnbwZ2i$1?E1Tt3e{GJ7I1ES6bL3cMR@(d&sC4qW5yKwHzu z38mMy2+vzG=g|+%PdRDbNui4@} zJUV(-R1CV*S{7_r1{~dK^AdZ87A#%{M-;WXX3@XwP88x#h-W%2>ZiF+>-sw%*9Fh!@s&d(6qIu=lDbK~hCj%v>?$OMrc z$7NA5hmq2F3g|3WMV5$~3dhnv-v(4eVk~Eywuf<|Q+4x3@8->0kqBlK=jMe*mZ({< zvrgG7@LQP?3lM{bSqzqj4|-x{|Eu2A6h#S{XYuK?ft)l&38C=GmycE0p|1(W@fu2X zzn5-9dHQC3{r_)2yZZ{Ua9SmW&(}AY)w}8WS2!4d!DF-rZ*fSnTnM4SR&93&UHo>sIB;fE zNDQodBhzwdc!3Hhwz?MRTCaM3ERK5!NxKR!!#l5%iY>D7W|M)`diTodG9f7|TK;`3 zBaKqO+pF2EdLNp70Wf|kRJP*D@h0HhfN6fnsfSQ!vs|b#oUqi0X9{Cgbwo)@1raFn zx~UL&Gw$a@kNbm1|L&ACuz|#lotstI+NiOIBTadrwfU~+9(v^yDG0GyhbFhwNnxoI z9Z87X8kbArMItLvoAaGDtEo)L!qzMy6`=6fF?x|Z_(lC$UYh;qE3$oQ-BdFUcs~gSv-A6R$&S;4DL6v0ppY0z&=?oP z@riRImBdzT#*ly2p7UwWaVG7q4v|NRz7Q(W2a3bif9dOXsHnRH^r;og%ptK$tk9(5 zK&)ASj9JIfg$vwEe&^uLPqpPFL?}$OGpy3ZH|8cO?#fxVFZl(QG2Dq99+g(%!UX?D zH>`x<397nMU_i%(tQFGY5QuTda2f{POA7{YitYOo57C@}&kSKy;b=#zRautVeYI`m zSxF~UxV$#)rY5q@f6mDe(VWeG27<4|MgIzznnROSz#Py#Aw+D&Hs5@Fkn97|M3Zw9 zuZ1}Z1Yh8&4w*~fuhO`7)FOT6Dy4DfgVFgtX2-YujwUXVE20zo7kZM5_ue^~a#kxv>0834=r>Qsm!4L@LlGsZI*Y>0 z{VeRuu&E9WrEkH~IoHV)D-G7>+;|q=z0@?n==-=Q% z$B_&DT{zz${H6i*!feFqiGxxf8oqxJt;bGLXZVhtg4b5P`PRFyP#!t!gr01Lv-vPi zoO`3g*N`g?dxHndfj|U|0p=#McT^s9WK#~7`uPsh+VMob!>h2b)mTK9;Vo zGL_0l;>_%+f&4@P3JO+|FKudW41ubgjX(Om;uDxtlNtVNDnC-1uB0}cL$Y6-cbudA z257u)mf2!LDri>r6#rGq3Cs zy1H8zMaMVDemp~f0K3m#46`i_RRyMDn~61oShL_lP-(8hzAeZ+2z97CXt{)>91qpd z0%}+7f8C&G$vH?>PKQ;-uDPY(Xgn$lH_LXQ$>WLb55#h`w1^Ox;AK>n{Gsra%W4%6 z9SOjQE+b++^^3&VopUdB2SyY~CMda(7y|#mIHNp)geY7Di>j}xg}6WCx_(4tc*XES z3Uo)&ZfshXDplDuU@!84H&KIWnK*7-j5Wef7VYS)n6VV#B4G(G2;UxsfU$LP)puu* zUf;$Hd#paaD={8)ql4lhy~LX1r!NCXYG*Q1Iwd?qc?*Xbxei!oVm zVBOB7KSkBOg+mSdCR8>{ldc3MVGke9*bw}_{#JWD;h{K?$T{vUMW;Cxbp%iE1>8<^ zA00vGzgS1I$$mQ%>6wcGpzuH(_qkDhH{ygHnp+ftJ}8MLfpze}!P5#j#URxq{Za6P zXlFw8YEWP8+{D6nkYe#=tn6`lzO#0UM_-mq+0KfCd)ra7u!%~vj+%^KL1A!b6c#Uv z>z8I)k}fyd)H0+gXe~9dX@uEpgy&EvoCQfO+X_2-GsSndY;#@)2xXcUe7oC;G$UdEO6$-x-4idDNkX3 zn;5`T^BYyGP#~{iEWHz+g`8dlHMLiy>|!wu^IxUI-aJbz=72xV4$iD4S$oXt;n_$$ zO2mX@l3+yP>F~9tRU)GMskCkUe80{_a+6uQ!cq@hEb|jCmKZM|amV2(LXQlGjQJ~Z zqfO$IUZ|e9$rjk)`Epp@`Oc@*;w6gemJqv*|GO9cDU$YO%Wyx0%kMwmBzpZTVWC$D zPt|N-U4RmJ$Q3GdGi*R*1*0urvn>bHh_4aQZcFVpA;YZfpZJgH^-e@%h!)PstK@du zk}X$KCzz&tnSu^Sx8-Q*NQ}=QWK-B-e8=3pz+ojMH}-SZV$ZO17-^?^Ld1-)0&Sgc zi+?6&n(@H(Ui?;l1_UM$vS0$8cm_5)*wmwg^9}3_;`NiM({4}ll&=HNPrfx-^nd*& zHPVcmTF`nAwyPtVs2@AF_RYWobT46(mQG^D{z+D8!C11tnAYX7E6@SMAg+ zM;v>ngKaw0aoW2>g?6+Eo*};JKSG=+G64?@;?O~yXskSC;@O8DPG^+pAYY*Ktf~j& zDquYnxTj};;d0pyR3G8(-)Rv)G|m-PVl1&|jsdXl8e8q&W&HtvH89<~{p;A;o`UtD zqGD%-H>9o=gq0Mea4JjmQ^MxePK1NSHo3vDTLkY5-)O#fg0Zly7^wy5eU(Bfwz5_dGZ;nB)z?=4b|z5679bCOIl!Z#k#4_7 zKQV9FqHol>#q`_c#*txD-||>FVp3u?nOh zc;TPt+eN)fvFI@!(kM%tkr|GMaM34vdfv`nsH_ulEcJ5FQ+GHk_Q2_G*x3v_nePM* zMA7IaQ=;Li)XCYts=KST5=W=B(XvcPr5qkAagoM};vCgeM!AsTvo`$iC}1?1PniTvU7Wq|9WI0eY;p+uH_O0oo~r%Ol1vPCcX6 zpgdC-UD7B~y-Z(hZ^#x}l_HtYsvFreDvGn9aE6v`KQ*BPSLfNYQ(kzZoQhLdcS!@%RZ|?6QlpT)WYrY{&ADH4ep@fWwG84L=;iqxbr_NUZm(8dC7T4Dj()DyRi(wXeg9gWRlZCJ1_Jg(|*4W$Re_k5tx90fCd_uTlVe&=rMkSV>$8~c5>4s&)NZ`e-O>Ga zaRucX(hCj3H7B)}EHJneBA4(u4uOUpb3C$5I<|f|6frY)(5i|{cj*(80tXt}|7cxh z=8OJd9$}P6|6yUX#iX*-2+DDiR)y3I6KWRb^H*n;4DAPBQJ&r*n5M50GG<`tH~C;w zYi^plUN=l~W*d$6BAM;IF|h_Iz`-X_HM-zoR=Z&t{YIQMcR{CWL$cBo<16B`VCv3(dV2 zY5W$5*G@PbIf8mdD^790#w}r=CBB{+n|`HRVMl*|>9GI?&Z2#iuYz)1PY`QD9KK7? zh@SLSU5LYfs1%=g-pAgzke*hqvj$vPcQ4yg=z)X^H0 zgmn$UV_7$}Qs%@)N0ZqaCi9^JS#t-4EJ9z{5m*7q;4CIfF5ri|2H`=F1G;{^XH3r5 z8N87w*n8Xc%akGnM7jq&&=gj)BXT4reW;-18bjMfCU1<7)hxH5(X4< zzyd%q1uDg#Ui6|6FNjyqQ-rA%OEoA$tOGrEuRlUJr~5w-Y4DqE2gHcwKfl&um2I~0 z&}%V~B~iW-cchIsdtjSn$>%9*3ixI}p6kk;$y^>6{WUF>nbhmWQIlCy=(}mxP2u@Z zY2P1y;dxn@_ZbvDeld`E@jK)7T?Aq@1-4!nZHF;CPxiaQ*x~8M%h{W_q@XL7JERsG z9hYj}#A!_s5?zE15=pP+b63gKD>>3S%AR)U@DGM{1dP#ZkX1JCGKPW};b2K0hN1cN zu>-{FjroD=!BePpTjILA+6D$=%GSuP>gRLJ+g2dMe@)=qVMP!TFq9e;PW@LhK z4c+l0QfZ#TguyAqdAGuR`1AiI7C?9yR&Rm~6Nsa+-4Nb}oh`kB;}j4f1Ex0U$N7^Y z+i!Jm|0?S)M>^&bHQv>LG1qdib^B#|n-UFuW@Mp|9rA{q_+xBQpd1Dg~|Yv+-IaSt6d4c=7FZ5l=xGw*n@)!4ApQq;tibeeyYwZ$vy+*oE8z@NUce~V$1U|{m+Y8`qgiycQ;S3btq#-N49;=Fjwi7^-6SAgp0!GIQ|YR66FjK%d{9gu!S{oMU*NGal{-F+eO&P z*LzThRz6!`?q6%oQgaf%y1$qwS@5-dEzN~%#f0p47 zL2|UBxvThb9xj$Y9~t>TB2KwdsEO~W08OPY{4KB18br28OKOlwID#b~EIoOk4K}2b z2$4F}Jgz1k1923Lm(*!=C(t$zfOb@imHBJH6Vc+~M)^`*S;C_E+}4c{Z7ce=N>_G+ z>IxF5cF1i@iip_(txcEaGsQV;lM2bJai_~=vkG#AS?OPQ+(^@n7S+R74k>^ z?rAP*klsG1m>@ypDu<7i?muq6%OJy)SCpL=lZvOkCKHJWG-7vyAFD_!nQxVa)4%$k zeisXyGRr)qhTKPuzno(lo@1oU6VDx8k!tguH+k(geA@ZVmDlY}TK&R9R2m=YWbqI4 z@h1MhTH;44*fd$;eMlWNU>l*cegI_jo#6-DJO49?Gb?(Z4Nf!lJM_HXY_+dN3A-<^ z8_f^fepPrPXKX3Dt$$8GEZTV5t=cQq3bXPd46?S6g&KG2cxmQ%5K6p9&V&GutY}K> zT!VyOc0K<=45QkU9*HI1Q+88Dxr*{-%pd0_y` z51c2qj5q6dIL)ehiCDY$9PJl8j zPgc1MmVR<9d8E8!jKk-TpUM9`5wuY+5b}dTu=T})>S(hysEkW*2Ix<>;B`#vjV4!k zI9E+7?o6>Ls8olCy>nQ?+7?-=QrLJSb^#Jfm{VNFjptr8BFDUuC(u$&Ddiru#xZS! zvAycus`WMM*mosF5n*!m(w(1*u+lx*o@`R0)|!^xkQK(OrbpM^m*E&sWL*#}_+&MO zdQ1e*`1=m*>xRM|+v)7zE_~7RaF$VZQ>o4doe5E8M}CRHfc5c|1NdG@qr@tQLSVWJ zp|8@|k*iwZTr!#k?;KmN!1E023=-=Guny&!bm%)~`&BHZO4PnC=H3ksx1$3b31k?v zqJo4=YT}7OT5Fw?BublWod`Eux%^g#3n5Wv6UJ9lV4TU$65objtB%U2XIJvIMo_Oa zTCH-#TVK21&LEyU@WDy%K(73dKY}m)kbh0T;kOxIXMB*~hH^yP8{?rKwm!YT+4RT$ z>(4ea$Z|cnzGj#*@yr7FLBiK_|8?>x&L9uzg2I*&Jy?YI09Y<_*PhA;u?x)WO-b{VV;&qee4se=Zf`uWr?N042)B-4#aRwcIUfk5V9E zGLnY&XApO`tzt~Z!c7L^q4iN1C89ymZ`R^a#HLlXCy7-M~Bs( ztTK@tcPR)Rz6kCKOq+?jR%(zPAMn`*-AhPNY;b#hup3>8ZVDjiU3*W9>6 z%%VSacsyNV<+~Pqn?v*{)3P*-#}Cgltvg;Q`_-#_xX=3dQuYfj?20b531RuJmTcju zjh`GVS9|z&pEp$Zq=qOm9^V-vkHkt=u_)L%mC#B-e$pY&uWaa~W=zrD89w&dR98y` znEGJUrE6#vpe^C(7P2s2f8os%2Vh{-PhPk?*2YBl3Aa_+i72o)u()~&g zOuHU*Wx%5bKJRF@N&L|kJUp-TEiNgw@6=6Ll#+LVXd2E(qP`o}>CDZ?QhZ%_ddXmM zzJ=u!j|=s4U@&b90=vaQsdgk5b(LIi%$+(xZ`DsQXNK;jIla4&9Zr@0_3G%6578jZ zu#2=rsK%ubM7y%@da&O!P)SzmmSqSd5Nr)#L35-zwqF?|8Cuw*{K&KVZG$iJ)NQM~ z3~Lw`kOx|>>qhk5Cb;W&U3~xFz67K#s>G>&sGnM4pJ*+@n3pFg9jNS^Xjd1NSwC|K zEp6FkbWuL6;o*^S{l$DfpfnyPH#YXYc4{I5jg2{|JH&ldX@$GK=lBX>F2GH!4a-@s4;CGA`KsV*X?CX!=oR{F`K@LJGFnoP z?2ixTK{$`2M8+}^DWpV@AVN&xXGpgFe4$vW?lD^ul5Bmh=-gFnUSQCUEYeHu@H-1C z*1fUKA9M>1X+56SwcY;%y~E;39}-GMrGkrYv^S`Lh9+4XR5vzR^ThMJyJItgB~&li zLLf=n6_78_ZQ~P1pNPaDa}QV5(qV%WRE^U_PNvaz9mOjl5wfvFzXda0KOGTTE<@Am^w3?}}bYN~Tm^%RAP+XdD~^@dK&&%|#3tKHFCjOfQ|H3b==BjAdtNRU1>|%*v(}yAiYo z-jXkcu?ZwYT|Zw0Hk3HT6D~f^ZI}@fhSv3kkiGA)ezgIhy|v8e8}*fmf=j+|1d_<1 z##RYdT6V`CV-oxx86(OG20X#kLbcBuGnr3%;+5%Vqa}B^UOG$N7^DwI0;as#A1)Wt zN()SHRBai%G^7{o5kZ3_50a-nC3n>g7RM^x*w*KvaFIKJaF|7|4kW7Ryn2=?eX0K!PWO%#OD3bi{&Oc&m50Dno!A3}MHK09{LG{CdY#IeSTx4F+YPEk9NKx`KMo2z;}Ht?8#j9nBx5MLYi53 z!J=Wod-*v7h>qTa>Y6errKPv#ype*_KQ}=VG|2iH`XHA}$GX}e81BU#k*FhsI%jRj zM8x*FKmYf>vlTJ89oPamW*&ojx;bO}$(G2}IXU9&c>BzsE!kN6R3PA!s4S9-CYe3f z3348cNkNv(@$|TEHyFZ>1+`Ps1|S(bKxj18*YcaW3q2<9$h8-qV}9$uKGsD~`jGt0 zrZ%lQ%F!>njZ+k`@{~?n`~>Mrsy7uqbf2>eW@8DIdLAM>Jud^1Xd|5SAWf2vF-)J% zfFBSaAnggFNscB9Hm|~;GlSpHaN1W!qpzz{u6xAZzwvjC_uQ2k*I!R4{gc}!4u?aJ zp07{g1CP0l-UWW#;pfv^2I(q-Etp1ZMk49E$VQp(8m>s8m!|6Rz1H~Rp8oE@BR&ih zkTYL2I#1VC(R`uT|4hz?B-FB_&&FXK`1`E^xPI%A*M!5V8ShdsZThLO^M_L3;LVQz zluBI12f^PL6!6H8;0s^)$AzyHVB%Sopif$uyS=j=*Yl(J?5n?;e-J+t5>`7-2IfRegrUm*&A6cw z3yeKkJuDN{zon+lggPWg3WbZUvWY*w3GF+7F&9sdRz^=2ic1s_bdt}>ifj8c!ZCBop9KZs{6D#}% zG$Vm!g>onH$U|(NHS-8|)KTJmEcF ztb30RP=}Q?|6054P>apmG1wDv3&}3nBXqPdiqVW>vZI+w!qkNjdk_*2dl03t+ggjg z*{Llt+Ci5!Ctve~qIjbtR<+pTk-kP8@Pu>_U|IfFG)6b9iNxJ@AmOuQ@C$JX0R=g` zBSingdI%(#i=McW49GB&Q!Y9ki#x4 zVd@Bmo`}VVkMLhkS5$vg25Nn*Nu*X{LI)|4c}&9O8&XeMgFO&xjaH|x?Ds&Igv3pV zAWZ&&`;qA0Ssn7pP7bW_(hp(}ArXGn}Z>EdUDSw3|u2qHUd3JCCQf9WtGZOfZk|oHJb< zt~`1i*YU{Q=Eep+E@W7br(Yqg1?QG&t%WojHq^(>PEmdXkj$nJdu zvZ=S?{nsZxU4YhDvOyl1j2StlU95}M+VXieLv$rIvM|4!i3@*RIr06%#Agm`IyD|< zfk%h^D3;4Nx@YUBSX)`QlHy*(FLGg5>0h-#8J}#oICUA$~SobD0cnR@KOZB~d zen?iF^A(P=Z$PYF5R@#p!egWL1=7oB_3poxMwg_1~>1d42=iy+00c5zBv2w#hV|Qno-1^7KwgJ zoZo7Pp=kTO;W zRl|Mll}H51f=`zAAif5vt)^zx7nZGQ&`x52~ZGsl&Yx95sYNEDKFxEj#f}e|Dd;;)z|3-_KbGIr&!fcGI zWQKKwPxD?>+f8OfBnSc)jDTz7T%hyaK5OI{k}U>{Tp#mQr*W~ObVsf*)%%YMW|;nv zxc2aJ#9X(XtMhq*+&e8(!g!nx$QXkFuU?`T(qX@n#PTSt*o*iC(tNCa19N`vJ5sd0 zoIj|ul;U97Xa|y1aMfKZlOH)1&k>{tOQ9>t9YNY{^-r;W4fv-^v3BXV%TbW=j`(5a zB6Wp15a^Ahuys1FR!of|?(t7d#BVe+)^PGQ^V6^IbNL(dUs4}T`>oP?(I`+1T^p@B zS_#fq)cLZpcz(M}!~~}K^om&%T+Q><ggVL<2wK zz<3zbW`lSwr`Bcky{)DVer|n_-;TYhrT#Ia!O8%cr>qH-^`6hWGkuidWj*f0ODbL# z{V^n1f<@UU3fUT!V7%n)qC!08JD+0-vKK2)&C3c0KRmi{Jib}hWbVBN^C8+<#{;+v z6(3yv!~+~r;q*$B<3_;ovi250rzN9M@~=xh7X$^Vr+F-z@R9%I=npou2DvP)G|MZd zjjtEOu7s0~@K$Qb@3zUym7yChgkM}gDuy2I*x5ouP&tTrWBJm=4tBIYjesN&yQ1pI zRZwc3k?W9M6mq4zBT2?6qFSZ(%v_2@G9=Cr?Sj!9TJV!Hy3(aGgChwMp*C=u2!+x+ z{hm#yS_fM^mA z<8#o1M|)pM(F8KYMMY3%Sie4D1^g5bK3&LQkArUX^gwTSkv+6dvr4tNUZ*U!u}(V` zffwxb?JG0DnGyb+02V6v3PMsR_TL6OMWjDxQ_-lEtk4gR@~o4g(8?S5Oxa)$TMCO2 z6e(B$)kPtLw~B(bPx(W`>Pp@eVf=?#^kl3W=UdepQ^op>Tu~@8jh>=pXJ~SyJtN=J zFHx9r!D=b7Kj_fEXk6aN!a+%6DNn`QS{Cl6SHdGl9bq%_18TWm5#s*Ja&L5*GU&bD zSg?%mREQdX64gR_*=87)Er-c#@@uTZHh6AflbT0^AfpOd)KC@5L3sH0TF2U*8%gQQ z+Q9xX4by0(nb6tI1&DfxeR|Gh;uncfM!Y^F#@)drUwp{XL9AoPWJ~!v~ub9#MRvhJ_>LJ%vUlcZId=VHWh9C#EklfM0>@*W74Bz0^_+5qijad#L(2uz3@ zJ!&9zWAYi|wLs{|X)Ng&3bwn?0@W+6licUA^R8SctD^N4W|b+_v{u^AqiH7}C79{#faUlF)!W;(`^<(Qjp~J*V|r0ZS}r=_4M@&1mMRr1DvI^O z*_|a5O+NKmrFX{#&XRSbhx!n*54BFXIv8ejb(jyD^0VtlTq>Fll=J00-iXGr9MPze z`A>K~B{*+IrMcChAK+xqm~C0Q{&RjgC9pQrh5mWTilMdZ);$^NxC?vSm?O^FY})j! zJ_20_W%CzXyW>jd-3po*O$nNmX0Z8!acIsc6+#p%?-oOXv2YNnVPLTb|Aojw3V`wWh;uJeq zT(bu7%+S#8D@QGTc%wYV%#}IvTzs)eRTQ^e0@G0qnB?xo;~*IzWPsv65(y^TiVB5+ znGFHZ*XG-*(=O3qZ@!<_Rcqaz7}2$Bo*J+j=76L`PfQHb=|;1#WLq4Iv+0lowZZFg zXPij9OL;#5({o4B>Z`DeOU~NZ9R|bVp(zOtG<@UO^KG9&8>*z@aqKe5V`s-Lyk+Oh zeXwuuQ3TYOw^@G22WQoI_t!@vsRjUstg;?W&qFvE;=nh2*!1til-BW&_K{o+HNwXw zhQ2MU_n?h=i`6WmeIKZoId9R*KGmoO*jR3HE*$*qe3Qu*sf*K-o@efi z%beQnx!j)q=Ub5KT(TeYi4;gQ#t~}evSt1q(d1s=e)HNTqVGz6vQJkRll@Z=#&zeL zAG8%@4JUkXc+_n9mcPuiCV|o=Y2TsmUO6%Bg!W=&21ykX05`J%nL{lg63kb?My@5i zi=Ao+NQ=5`V0oZ;`P$fhqu2lJxC1>1fVulGyeQjrai5y@g7v5FFKU$g+r1c+rvZU+ z5UeS}_%5~uaS#I*!Iq7vO=!lQqKSS=IJ*Lq1#rYNt%x+rUIpM_3IdDCIq=3vs*4ZK(@hV{S!hA!UevYoEFSZoSz=Z0?Q0Nq4p|- zNj(U7PbJry+0g29P5lQRxBTa4#=TgqMA+%cZ&<|^N}}~?3>ZG$7%`O4>HP(c0GN8_8_A94>Laj z&5Nhsqc?U_z*Pn2$$z zlOy zbw!>$Zd{0RIxtqR z^Mgsg6>oN>s_8N4LB*^K4QZpn0FS!gR@pQbCQRK0oAyVNWOFhg`8D|LMDW>n{DwDu z_{z6~A4@%wQL$lHoonao_LsyRZ>-dZB0NkF0mo^7cN^ zcJU_Jdz;5~hW={Mm}UL#HNviCsm!)sEE6|gbcSgKzTt7)MwqP!&Z=MG=-1yo(Tz7=)B^hrd}CifvQ);S*;=iz_t4$Ofx#kEn?-j9?x z>)UQVuw{mxkO8=1M+Hyy?CUvONhWe`j4g>TiMWzXrV%c{mN)jCA8N2&v@Tz0#wgpf zvKtmhHPkM4s|BkAsp~%d951nt-%)iHjqfa3?r8;9bd|wtADakx3l4hJ*M?oW;HTJu zl!)Oc0QS|4>ww}F?l&G;Q6upJ1+?jkIE`NCbG*S}SpC*N-cAG&y~L@>_X+^Qc{L=$ zSopl@0bHfx05A3QyBX&*-<+aJ_?-8ZCGkDMvzfZDDc1>ctR-rKJ1Qdmx77+<(;H56 zr?_sw>rC%8p4sfQcBl8j03FgUn6f>|PQQcYq&R|-2)bUfs9S3j=BO3wn=Uq9FRzc)M>G#L4YPd^%A=M^FD!MS1o zh@wV^?I-+s=jZ<^9UU!&){sm%WrkAo5Br);(|@^waI0NkWh|e{>DU!ccY9i`6Hi@k z^(Ut{{9_2SZ_(B&i#`aKY<%GI@peUC+pNROeaJa!>G6u0#tN=FZ({OHWK5_U%88r= z6HBgnE@DoS8!8&p8HN_!IHMrrTB^{NzU`gY)%V`uRIV_}`Qyfu@0ab|DXQk!(1NlwW1cqs27^(#Gs2I? z1dt25s!}-8j*w_c3rKhO`_j0}CvY@PCkEF@Za;e~j@h&iQ^rABYu7|8vzLM+S|l@( z_31cPYZ2G}7;Wc8ZIbtHrhNzo-FDndBrE%32q_Wt(TiEk^NmbAYttBFzG>#|M4!zU zX7dHjoJG5tVmg^#oB8G+6q=xB#+)&__OIk1e8hSWHvf^ceN}VaDH?_av+Ao_dF4#` zc@r#tpd*Y$Y>@S3DZD8nIV#;@oBO6lvy7$!2#|_aEy#|YQiZRJx2N74v&=X|+L!WF)J!Rx<#rXS~6g7LxEt|2tFn2I{<` z%Ez=+pCcwo5{Iq_`&7F7+#2qW|90C<0a~}7%^e+shOw*WIk`xAhP*jl(IM1e>bz(V z22g~Lw-mZB>W4WPB@A+&B!h;ZO$~w1)$OjSNH9fxS2RIJBIiZSaz>rSlF{r|;ldY+ zcx^{n-&s9wJ+i1Uvq)4V%L+J4+JvXU$Vn{fTp`XvK3co+t>+XWmLhurUcfm*v;xd% z6#GbqhIG#sw*TXu()hcsCNJ+WG@QoIpCEsY=`S-*x{?~Hp5Kl4B~C6Ff6qS%KXb!d zu&Qt2I%5m@PKrbQ&6LgOZCRO1>NVYlw$fm;Mp5Rlfd~r4EsfL;`a+T$${<53(SceD zMzk84GiZqu0)%kdDm8``Xi+?XWUGG6GcI-}B=Zsb^HV!hpB9FU4Zzrxu9tl>+7&(X ziaA;!q7;}*LI6!kf`g>@(eNpmm+4NqpA^NAJQ;{B6__*J>**~)e;`c38DS(`L6~3E z(eWl`!0`hT_`G1{H?ce2mQ_}5)1?2TdpKJOTc*K==%8R##>bGuhOJPB9F!{R8~$Aqv!)4c zUDt4J4n60Uk8DTllX^Daxjn&o=0U4w0|}kz*)cB9`AHfgBzKfsXJ%V|BrpmN-B|0od!i?h575FT;US!h@}} zJzY_QGy1C6|ZgMk8H2=blLa&v!3389#48nzwu+INVi{_-r7VY7^nFCxI z36fa=W*$rh&Bs=k@p8TLy)d1N@Q@BgiwpV`QWm?w8&_q^iw1km!=BCkBh6bl|K@wc zUy9%}PUw>KO~Pk3C+&;7UTZ`-T?DJdbqws+ z{ST_$S11%fNd#)Ft8EH4eS-DDJBkMq^5E`^5AwOUoVEt1(#9mdX+w$0!aN+78QfGh z7Y(0Wr+v7$UYZ7hVcCudVw`iF%Np>G-ficL!*28mYuY;Sx=G|#>SD*Dh5Ns4w|q{) z`;vI<`=P<`-=@8vDilM-2N13p%AcLXy%2qjHn}hd3olJ;aAp)7mW!Xzs*|%-5+t1( zF$^0hRUk!&YYm@RldUFV9R&xQGka4rJ@q@e>{{HAOcEBAu^iJlgV&VTX6EeKYs4C%5=;jx;@=p+(dt;|2Yln3mrzb-8nX z|E(+6$>Rq*KsUh5>bWNtKN&)1^owW3@#M9p8vz^6OEc$vb@QYnj~myHGAJ-gvLyYqBro> z4s?C%fnqccCbA{lg4S;mjCltkcO?$9-QcCGw~A3l8*~&HWN12AtBAVE)yd11+7H}^VmSjv11B5@i-8%kfC5k^EtW7{80-Qd5Q#)6Aq-c zJ~V=41$N4s^mC?}OR>X8eyLT9QbAZ$lOf!JHqZH?8TOp;`5I9Y_>)1UUuum(%tTbD znF3J>VsiSwD@Zu7Hc<*snYA1#AjrK*_8e_HQ`F4`lBqEO=oqYhZ;@%Ft4J@i4nh)S zXtKx!#jDnFW&eWF`RzkF@tp^`o}^fn?$cl&$~?6f*leTWRJ|%6p;o%XwY;+_6C_zO zmwz$z21lo9RiKfD`3tZ%7gb^^*t$vpjhqHL?UrU6ssdANpq`A)GRhhIP6V8PJE4E1 zjK`0-CSCZo^pBg#>CD?B1m)ouFz5fm1TdKiLBh|8w;yu;3KC?&dma{|F9}?bjjzbk zo|or26MoZt=-&cnkeA;1YpV{iHSWT%xnmip+ySzDF_Io(9f-yQ8-Sl=07(E&VlT+M zFQVdog#mZ5@B67U1tXDTXA!YZM%}TgDI~G=DT!~18)2b_$~(hkTMlFwt|~orYliF& zpeonRz{YzVOzLjJaqiSEH&@ig6NX-vrs6@Yn!c#Ba+!zreevFyIJmR6w$To0GE?gx0 zfpqA(?}-n`7X_e9rl%}lBQne zL@H91BQYV_0A5L?0943UYVTZ^em3$0QIcy)Wb2bV1T;y3R0{f}TSfRzrk2`C6}s6_@`uJuN^uIj{;>=*v{d9=b{TAY}9z@ooavxE&ToUC1 z84*^iWHciGat>LFnxaf)$!?_Gn9x7FbpSe@Eru^TKfiLiNOGTFp0`b4(P&Ga+$~s~ zA#x6tGJHyFhkyF3-h1~4Z**w%yvS5q@`IM`TyI>CyJ59;hR%Y8B0Gza?lcAJKqC8N zjS*BF!?uxX=5dJ>@6(J_2r?m#9c=C(cB=6a=Kp`qE0rol6{HP#Bl%%KXM&z1g_par zyre)-&BwJw;<7GCNQt118gNu=LC=x7I@fm2sOYC@ckEuDJkV~op4*Ht7s_awgcOey z==g4AS`fun_5nmgHZNkG`BQmoE}}<2Y%ojT z!enE@#@lclDdPw*7lEDi%Tu<8EYD}rx{lbARLJZb#|;pLRX%v z5x3bnE!R&m*RX|tLvn?y@%VyW-LyE*cByEznbIl~SYuAm5iod^!3zZCBLuALi?tCi z6R~1hP74YZegzCf{hPF0>VTl~{Q?_8k-~6BBOXUUOGhP378TL4GS=qDn z5ectwB0?#?*!t^duH!c%-n&vWnO1<8LQG2f0p9Jaw%~PDG*PX6EV{n=6^G+rxg%SD zF65|PQunBQ5ay|K{rG0gv5AG+Z&Ay-9c#M!(dXXWL<@ZT;I`>gnY*0qs_K<*(rOC? z)3T?tJOaA?j-8`&GdlCX)*&`hIkz$EV}|O)O@W3Ofk2yzg|?j%6yLiXXMCmY!8%WY z@at%RS>q)3?c9VQzUxi4*h`Hx_QDUsD+j^#OZ@V_fKDqAXz5vI)p=6~o}S`!zS|C_ zy7%Yb&PIec-Qmk)@obJs#pKX2%~7-(t16v!tNkv;mn9*dl6{g;o=h-NH{l}2a74_y zDQ65+t!Eedj`5RQ1Fx^P31@{`vjV*|E-WzXZUmQ=0J5gRK%r_odWv#%7ML?)fn?1J$Yx;6Dzzj%%nuwjS!h70zZ&BP;jzp_ z?`QM;mss+MlV)6vE*~5b%`*yGhqmCX5O2M}=z#S2D4cquIxpN)^w@iIDGN0r{A*-v zqmT2K5|BubOna2Ez4CST+fdku!**-{yOpER@dK4(03Y^m_v!FaCCycZi`X~-JcV&A zEDMvlqjrWYKb72V?BY`1jV5HN|zlk@u0gR5aqcf#_ryIu)qT9?w^ zV7~91WF?H-IUMlz8JGZb8SZD$W{aAMxW@X#j&4{5r;XFl08SqV+9RLzUFRZF&JXW>$-OKmnCr$ z859KmLE{-@;^q)}oOB2zHxQ=DXw`t8{sb3Seu#FrF>;<6^O6J9A7b=y^xUGn9*|(v zO{9fw^}-HYQM5nm0bO2PJ;$NM9NV3^sdiiwTTCrvJo<2Vk77_L6wc1fo}D z4@sJ$dzvy|9%p*|y?#5JC*K+^6U(@T^1Cz_AqAvVO?x>+#JMX8VybbuWQokGgrqb8 z&siI?792DpBoTFY^1OJF8;VCm0^Pp!J$EE{>v$vF<3`a@>hYw& z<$J_DW2FQQPfL6A9X(^o1wt3v{%#>bH=k(awshyrcKJ&8IFDvKc!Sm_+0i9inG&DAW-dAVX1EacNAd#fO%GF;x6g3@9)pZX32`%pkPc za3N^Q_xAEkkZ`(2#|N}cyc559W32Y>+W`{K3Edu>4!O^3aCsZku^isoma#$iAqBGb zErAr;qaD#&>--06g(VX&yE}qZz5X=6k0ae3v)z5sF3zD(!)!pDiWo8&>uAf>oJ_Wn z3w6wfTc=RbcLnOZ3m44oCWJ@%+>@AuyROH=d-rx$aP#b&O3&w;g`il(HwAL4$|_|p z8AHAK-sujLY*6Quk4Zn1a?+OEf5Q;zxuQ5Bux5;0ll8v0SRVV+Hi3knqH*L8Lf}2Q z5N1pQpB~M$S#s;z<2*_BF3n}QSQ;=O6N*<^K@HL78E}bZRmA`OBEj{mndh!_zqjfFLvT!z`KWj`V}HM_b5oD?Wy$zu)#6;oZ!RnE=;eJ&13=2WkYB19fgpD@O}sBe%>gY;8fN&hRS;AI!65ZsO+ z(wt%gBEea!F-WLy}!k z^{ogokZodqZVlLvQ@9r?cM5mVpC4R>2d0l+2J)?0|K!JTC4HIy6#?iiYimtE7~&8* zMUWv(BI}6PgYLukx%&@2(cs;)v&!#~FCOWc&A%W4V z*5l!oM$laMefXwy%?;ZWF=y_6?=ESjZG!Bh*ZpuIBu<+_5eb}MxcLZcFq|8`E>y3- z50>oZB?1~31((T+#eFvpU$C<9>MD4!f≠Cz60PJ!hB?uQWz?F-3c@W|0?@lR9|C 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 z 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 DGl7M$ diff --git a/arc-docs/fonts/computer-modern/cmunsi.woff2 b/arc-docs/fonts/computer-modern/cmunsi.woff2 deleted file mode 100644 index d16293426925375a052852a4a4e31815ed6cdd11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65128 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%0Al2<{-OxhqZpfD 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 diff --git a/arc-docs/fonts/computer-modern/cmunsl.woff2 b/arc-docs/fonts/computer-modern/cmunsl.woff2 deleted file mode 100644 index e93095ddd8aa0032c1f82f76a654f48cfe3b3c52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95080 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 H!&?9VQUl{* diff --git a/arc-docs/fonts/computer-modern/cmunso.woff2 b/arc-docs/fonts/computer-modern/cmunso.woff2 deleted file mode 100644 index b835f0250acfcce8bd12842b460de900876e638e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90540 zcmV)DK*7IvPew8T0RR910b#5F6951J1Cqc10bxG?0RR9100000000000000000000 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
      ql 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 z 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 diff --git a/arc-docs/fonts/computer-modern/cmunss.woff2 b/arc-docs/fonts/computer-modern/cmunss.woff2 deleted file mode 100644 index 13e75bb9ca45918e10e9aa154509d140751b4e13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55716 zcmV)DK*7IvPew8T0RR910NJDf6951J0!OF-0NFGE0RR9100000000000000000000 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∨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%0DkXTgxptLQ_<-qWwXYJ9x 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

      =AE(z}U zB16r*QL-}eMa!AOGVAr9ZR7+u@K`or*MQ69hgs#jYZQ1%d+?JWzE+h541Ur|$J{gp zWqtHq{Q9R~qszVm9j?qD{hR;Ruv{>9O8M27}*1{N7&*+{rJMIwXCzZi3z$XUdc~WoY>!g}uvFFQXSGtSGEfOF0=X0^s#-fq4_}Sx7DW#HF&2kHHv$U)20)EVBD8EZdEk5V zS`8;G=S#mzuhw8peI(Ga;Z$v`O(>V%z`nYjw3`gu{hG0>OaZC(4NURF@Ss6`eQMe$ zU2_k6BB=~+2pHBi0J@w1!iP@&DtIlu)jD*fVCYf7@DZ_*uF2_Gay^cy@jXm%dW-%N zWOC=Y*n=MTS8Oz4Uf+s?mg;qzQNHn9omT)pK*7HOFUJ%(QFO@8Tt&vw3%4k_^q&Pk zZ2!=!_QtK@uR&SFc$-EOu!Jg?GhuC(u7IdmufhP4%0LI`9Gf+^es>g7#dF7<8a$V0d!e-$^tNPW%b4wF_o_x30i1 zLD{6}f|#wvI3HW+Kvpr+byhT(O>IIpU(f=f#nD@%^GIyrDE;pL_L!~j-?<^(@5$xu zlNb>vAKVi0lO~?IU!V4WtU9j;c?@NfZAD4N!iCKL>bo3vv!zQp@31q158*0UPQTj! zE7KO@i$zIDF#JRCCUN_X|4yC+Pp*w?2NkX8?V1C3d0$(Crk@rf$ixDqKsqJ_p5cJI zfN)IdJ6yZBT`xC(KmwC6C?e=PfJEtWr<)uBEDpE~ptGuuE9nK*J(&CQk6{}GnJPdE zq_aX?`e=Cg&Ea;vM~{GhWHFG|NWQs=B$fRCc(U{trr<|P}{B=p}Pi(G)y$KcvJ{|YpH22Ty+RQp8KcO`- zKA|N_6xW$##4r8?`}FwmwKLn6Z`DFO_Lat%Y}n>^x#Xnp$^%`6@xp3V+uokSc(G1Z z-}AnsxnC?LwpHW!1l%xNBRns;ZoUcDq<>42lKSGqPM`gIOux1-^j*7l%S9&%|9BPj zYsLgVDZO?bYDM5cTGoE5xV$OtW9aOlPmG{Z@DA!DGv~K3qeIi9(*!peeCqw%(1m=O zka~pZC$SYJItYY(%G)PJmEVNqE7xI5rsug@ zHxi_!=?I_=pj_=$n9*&mtEZh7lA`|SS=96yrEc=ScE%z=>xsg9t^FktY6+~5*q#>5 zsLeZu;W=9*w?#gXr#Ow6YN#$tt`PRCx8+5i;ba(Fv9m%q`f0Fg9s7mV z_rvDa-FGL!zrrz47YRphYe7h;EH>bqILI{FLXLQMb{xmeqk0`-@flgNk@?;6bWqt+ zdZ_x!)}jhaD;Nm(m-P@Dvbg*dnat zcNCP&i0+EE;U9gO+X1bjs*(@`xOS;yl2DUmk=Tqp>308sys6-yP++Vhycqy0M8&p0 z&{PE^df(uIV?XsO_}tTVqN#^p05^w9wUdw>y7(}=rzb6KH*bfFfVP+qG+Nog)}-Kh z_-c#KDs!|KnJL83;C=zh z#QtRr8byc?p=sW-pSXxOa|@1f;ws%2PP;EGE}vuSxA>)sMt3@53$Rt#M$%V)oty*Q z8tG7qH8T|bM3Ks6q^)S2h5TRJ+1xR|ep3DlQMeE9K+Z}4GEopIO_NhZ|2|*v-i1B4 z$liasi7=BABql4iBO0`SJ1%ixqGbk2MP(K~NW7IE*#aTzMT^ z>HS4;qnA1bmClN!=>8&n$c z=LM{AA6`Mx`90@;C4nR&lawM|-?3KN?>aalh{?kqqUEC_3h1_5K?Of~jd&56q}Y%a z%l@FT_V4ndG3ZY-i+&mCh{EsKfrT2P%PTR%(aJrPuv8PZ8Fk($H$O6qS5`%mM_ z3%;mUL6-qfpKp>Avt zR_#79Bm*`-+hledD{>4Ia|@Fa%RaEuwOf(vOi9h+Ei(S+(`cKBL_`gn0H-z^)_?~0+jnAdj_bjpM z#S#iv5bXu^`Gy}6Tx7ww=dvb_PC0QruN?GR2s=RdIM>xQ!ucOz(Tb6mJfG^?3G#>d z_lEJ0@z8GQ+t2WKW&cO;c@3BB0|s|mV86hhqP_}WhMXZqc@>$SU!o3}VFmWhVT-O~ z?HRHd#S0tyl_qq088eg{Vx$7ym;INJMWwiW=0l?37Pn}CkS6~f9VL&-Pm6v%EWVw? z4{cN-r8BSCQNPKegh}OMN*{I?R^z__Dk#O9`1}5hfcN_08)5t5fJ82MiI|jIB1YBx zB(op0bW|qYr?(sEz=Be|T6|WnOYy>!F+U8yWUoPL+?^(8J^R&Xg25FA*HnE)kuC7C z7kOWI>^fyjIY8U8B|PsmbmHKZa~-=+La`M!fV#SK z?DToFALeM&1rHE~%kgq_MhUeETG;YCMJR>aU4`!gi&cVTUeO&p)-54fRz3v~ri#L+ zvtAI$(wVF5D@4vSKHn`1LYCztd)w6BVqqztT73zCUOi4Xs*o`0*P76Qa+2geTW?zci)x9Rl-H(JdfJsK6~R_^dwLL`OXG?Yy61cafzj()lDIXo4ZemL z3UfcL!kbQAv?^$4?|s&#v10#kXSv2bJ9g(C_q@J_SfJXPyRvt7O|eaw=1~x&KGQjW zcTbGPwmYRe`Y^jH%Eu(I<3}ad^ET~F?s3T=Z`so`hR{m`GO|ThI=|g#3WvHlnk|(;Z$UBQ-{QT2RKaE#TV03s+<+nZb8}c9GVej`s zuPG<$Dum8=e|0SI%JUM4jfQgM)9pB3n)lZJwGmtG(3s5gH-Xd!;-VVKKzZ;hJSsWm$6)R5Bw3E(1cLrWn3AxgyyG`K2q+%A`xGWk}UG&IWmHkEAG8V}g?q|6Pe3Uho^-)~S^^2~*+; z&j?e(YRKp|BcCQ@KSC{-AV_kf(&1(=&JAuCiPMYz5%5jk>hda>$ z6LU#2_VxBBsQttCqIb3pL0R+9*`aZvjXw=BLNJL`*Qiv-${iEFybH?2Lj->`op6Ro zm1^XZo0*Z7e@V6pxe~JwV-_px+n4-sWa1eD(Tq~O@j-4};@l5DLZgCP@;v=fE>{@J zhVC-+hX}A}Nb(CQh}4^Kdr!sA_Q)CrlmsUltbqd*X+4!xc{|Q;PNfuv~R@KSbDHsobw{#-RpldCWqC6g> zLjX;Zica|s(EKhmgjK^|U4nDn9vqe78_wmEf>;b++L!V;Qk|=B3(xFZhUb6Bon^w8 z?m(kAs@y({ej;TAMzL2R89Q2bwVkRgERiCGWO*R?kbq#k0;T0bf5I6eSvx?#7&dwC zeTq<*%yj}O4;xN_KKu&`_5B5T{16!^C&ik@;wi!)5$=ez2TjobJ1mAB19;#Wa0-6$ z7=a`+s6c8K{z)N3y7PDEggCh9GiQ4og8mKKMSmE_TlWL?Gsf|d^9Gwn$%1UaiICLB zL?BZQ$VG*5o~{=x2kVnioa3BY`EQX4oVo~v1Cyo@Au^Pt?M$+BdyEbN{>W4z9JQjN zNGT0Cgp;JAERc51jt+rr|Bev@hOK&Z(S8CKol$Dj8m%j-OOzJeYwsxlDSl%$t5Pw%Skxm^?zcn8I8k2SiUj1F|whId8>1y z?+4bL40fWOq$y1qCcGn)O3h-eQ<)Rq8QEFEy|di5R5lvzr;i_3pnu47B&ef%hOnHwn)r*Rhsy#G5Rk*GzEBuLxo?tD*de(+>w>f!}NS1?wMDT zh`R23aRE8?qkkK>-?v0llnB9j#H|KLI}laQ5+p0bJ4>vkXHnn~K=Zi2wg2oiFyZP4 zTn5mgLip1JK_JTE_K(`LsxfIHeoSTWJip5)Rf-_x$s2hD5h*(RP?{;qQUvrELRvyhcqyFxtks`74f`1z*sMeq)}HhWAYUzcbN$s!Ms>5J;qNPUY;4yTjG4L!Hk+l4Q5~Mizf&=#W{cd(J6idadD0G@u1P%lathPT3<>|Wyq-o z!(GuTl7d{e=N?1Am#fI?Wb4HUgY~XG#n-txYl(J*}42W{_vmJ}C0L7XJPZG}&j2Lbf=Sp!uhw%>Q;L-$?@$+zcKlPfiz^PfVqP(qjy1U2okN1HT|4Pbq{*PyWuF5C<$MkRKe3camu61HpQ+ zBEo8QtU}zCB}sN@s${Fowo@n>i6!B99}6A7w2i7YEDy&;cA|?q_2|LAO>>cu45TIC zh-NUtnxu%Z7@gN4?rJKE-KUa#ZNNFivba1iD$_FptV|;%gO*D|=Q!a+5vn3s8uvty zI?&J#f^ZkL=;}!-o{|0-*QRnv<9$@`fsM97HIle?O~Sgww0L_Inf9*C_3c(xNs_7R zZYsWS!0~DO7ko&9`6q@cS2={-`W$b(jsT$R1myEugb}5==4vWrOT75HA<4)EQ z*@&y5Ss7ww!fHd@s#5X%M(Mp=+w#MXv>RLP!XyKGvomX}@y}1Qo~1Xtl(Mu42A%BI;h8P&`6qmZ!AVNKORwzVC5f zLM8p`#dQmgT=;0i-0{L`O8X{Yt{&%F81BS~R>IB8@Eks}8(leLbO`6sGbF%?|7P#Y zw;=|!{TcsV=)%|!7vlqtjPjkO@Afalr)9^u$b2I$O{5dcBfi>^3NHqC(@E(u<1y~+ z<}jNpu$``Rl6)%pum!_CY_K39hSLh$R29EqYg6aSrScX*Mpxjf$cD9_)XmLtCotQ+ zvSeJ3N90%CzisvT-9A;O5xKm`KhIx0)x~RrdG~WE%eJLBtJ3n~94fuj$oyg+f1mVC z<>#_WW<d@w)u|=w`uJ8*EVAe z6mhzh(z*6PwnYWVy4Hkd%POT!luah0>pzN0tbbMJa4W{8?=>^;`J1#{UFmT+rF_Tt z{eB{i*gVuywfd8_U~jIB8i~Ho<9_`^^~>w)B)CJnMwZ@<3jUUbu8I3f>_Yg7bD^b_ zdgT(~YNZi5dd`+2(q>a;K0B4C@q5@rn~LGUtFPEKiB8sDnWD&(hy-Y64cr*236_@j zf6PG^4dK&yO_yx7s|dZyqH3+&MhYcJ(520eU$&sueE|LHu1*THQ?FQ^q`19)LY36G zRI7Xc1{Lz zBiwR#L%gL*KIGl*SMM7{Mm6WCd`ej5=ZD=}rR*L(r z$~eduP5D%TuumD1J@=KYSr_Aqa1|&BZ$FrYh%_F;<8Ipr)$;|YI;@CSbkLoL4&)&e z_1NyPoDkZ*)22d?QbhWbdjGsby)wfS<#EqaeByh_tC9|FG8B0eN2OO!c}%|Zp3!hB z0Kft&1waq!Nyoe7i=TvGicsXu$G->W*vf>}ThZ<$ zA${x{ASk)$wS#^ukaC3mti7>+yNsy9;iE;nBQ703P{H2vk0Jp_B_IWPTfqsf2k-2a#XIJJdxgj(wi^)sM zsv@Ax!TcDA3}Kg%-$94x7y8xYWe+Tw^VQyEAn9hLS{K|CYx9PImX_(>C+3}_^{62d znad`T?i0YavpogubGs{kon$cuWRmwYb9mRTr_wuXhzvi>??ak-L-PHhQDy9kxC81e zOgUUB-7#h^a)y%#%oxi6wX)))xA352=vofr^8&k;w#Pd`&(hK{P1?WcMbY@Oqh%Lx^bo18SG>DfT7WTm|B3wZkgf2S{<-;ot_vO3 zI!hV+u7{h4vX0M69DBCzOz%O>tj6prE1QrYjvtm-_iWmk-0hO#=yTaoQZXd4{AV0L zZFrlPlR-@RKI>b!*89xa=?mspWYr0cRUYHo(CYBU680@I`NkmaLRMiZS8K0G8zC;K zmA>6pPWvEBTgJ$-PfQ(iUtA%*|8TO^caM(vRQgWT0h(^v&XgVI)7>?qIUok~B3GKB zr97g4QPwK=nn4)N!|9o3)~Gq0ES8*T7={Ug`2e15AQwETAzXWlEkPI)Q2vRj;I0U}~Z`{GU> zc}vY)3uz6R@>yPrTFE}|y4X_;www(3S93yDe!+2h zVvUKN<5|sEMeO^hxz=n+_;hM=lQ?;;m)dI)HKu`C!+ptVDx20qbrI<*S(TrGQG)p_ z;8WSXJZ4(tZSW!xJ14@4O2B1(#=ByYH5#t#rTxX^@5oxOEM{wHs#X%`vxJv}_06*b z8Ef+U4ELqvxO~@M=NZH-#(?ppuwq zZ6ukx=dD&s`xuFD{!vi!E7In;>wgSQE1Oyu6dXa-RNjyL zg&()&!RXtsHpXUzh>hR<-!oJAGUTS5NMW@1K}pt_#j)8*jqDz~x-$5ORo6&$zPCgN z^A@%e z6}T=nd(KUddroXkROBR6p`{dZy2VMh`7>6gAg;Jk1y3XoE+@4x~S~`i)As-!ItnsJ4&p{>3I!iXWM}EPrI~nADWw zl7gJ}WxMc62nq}VMABJCg<^@p*2HQE+0uu&GK~|Vg}lRj6*oihgQf)IWOp%RmFx_J z_LG{m9u=2YshQ)hHyb#4_~9ocT-5oPA*R!#pfoT{hM@oZ*cTOv8vV05~Zck=u;FjsUG30qqIsp zXEzyYT+iC<52x2_*rHVJmUL~DNTXe;7iDPLbJC(jS(^5&GyuPLT}HY}OxJ^X@nd?n zrY+k-dr1y>FJ6agYc9-7UQ0!mz@^FJiL#P2*G!B$enuvrmz5fIK^fedj~hif8V>cG zbOBG3J*?55?~K`Jp(j(#uj9lE4RRV27@VARfk>Om&j0j4Wf83#%em zRA%(0XYu%bk1Im{rdwHJl%HepW};51m0MObYyO_D;S?lLO$t&E`@gSD_AVqZ5xW0LlZE@MTR1CY_U(6~)g; z`&h+E%Ms=OhSgG-{!C+hDaI?WIX*nCBK!ZXN%aevA~eHu?IREZVZ1Z1d@|#FQBHG< zMx?_q_uFh(w}^y_c>lAI1c_)yDnudJ-6hDkQmF0{sq!@GPws~-y8!O~4w#7hMh3eM zdw+(!YXTJHHl`iXUS|;EHn^hPa*k->c`vWD<=)~T}a&-+yak+ z2YZi*EU+l_ib!BeT1mHQ9>L`LCFINmwBWBaFP24Yuwx336OH4A846(psI>w~H-GJ+ zW>Wn`Au(9DWPy`j>$yDpucI}e{x)gKA=DHDgL-`5jve&1W(?*HOn}OmsqXI=PJ5IL zm7)EqDLNYY$$<%w)6#LEGjDvhuHap)&x}X}rTBCbITh`_UM^OFhMDDgV%`?l<~^NA z>c>=aQ+=woet*6^frnTyftRC0vG<F_VA%S1LBI!0R zsAXFDf=Uqz|L5(ND_{of=FU-EtX~G5T9)F|J=FS43y}4Ef|q|5JwHwcLQ?Mc(lN2{ zcZB#bAc_6+O={rQVMUIa>RysyzC&h~o56W&xCe_n_Jsl%QeG9o=1<@UqLj;|^52nV3|>Ljr1Ak$IfH(QENe!PvfZ|~ zyp_k^&mFfpYpkr0e;mvAJ=MDJY1*J(<6>nqmhz};v)oLw{LqrDz>gNMb6cNSQos^o z+Ua+ty=e+nl-F#fR*67fKV*IEVbFH9v>OBe@BI4i4dDKzf4|O8fqn}35Aciaffv(5 zNd??Wxw?#KtgU10r=YO+&3Z6W0a+<4&|Ce}Z4`kJ?G=*S2oU5=MIvBHrGjm5@|oA@ z=c+RIB$D)NHm{9GzCgWpXf4=PH&H@x%~I6&(}%?G@~T2~-h8cQ(gaf-9_s2bBs5D} zq1wyaxs#hH8mCrYqLrTv>cNVjoJgyLZAcLbMm9bXsd#QYAdZ-mz{&NpYG_odeI{_9m~D{&jaY^rM75N z5vAnW-);AlAr&`t4!6B8Uq(XlHntwqXc|PAY})5jE0suV=a(ediK->IXE;A;D*9;A zRtF`7<30~);pXzqc6rO|fS-?Tx1s^h0Fe^M#DDb5|5v9i8~?1|_XpiWRe%PL`yYuF z4Q{q7T51o!H{5&E4jw-8*yS=>!u)TkyTJjHg5TmJB~Wxz$K z;4~q~fz1POR}1kn-ov5$94MFw`(%}VfPORVPW8;P|+6Kw`Pn*9k$ zTLZc&8ECrTf;T4}nJ7Sxk{5auGk%`7Z|IadiOkYcW?A&}V2{+?MofPJ^K5H3`*V3t z?kD+^a(i)%Ahv>)Eo}h^wV~pxo>cdhar!K`HKGOlwxxK!8|(b5^RJ9t6f!YCGixE< zw43{R{v;=0T_?WwB&I4RfLf4iMfhtZG`Dw*EADjOhaG8oB>ldrq;XA56?l5ddc9 z>xFQdb2$T?36Ce*CA%Sy~8JOdyj%Em*ro7~kgA%o6b(`rV) z3uB5Y`!6n?Zp(8_ST&2y4d)de9LQR@p6%`3_e#nNdDJd3z?kY_3a=`6z~S6t0%^HV zbr`#NzuSSD%1JTAm~w5Dc0Mz=f|&(P_TUC~&oN%#6~F`{i1Hxo!|2c}b_gobCuohp z65S(=6o`f8JnBZ#71=O2(S`@Bpp6AG%vWGd`cuWQHI1#KF#-|z!#XnM`aI;r*T^bv z0k!aWLO!h-Oul34Tn)=$2O;q}Y4GT!DVKseebw=t`I}xHN_MbW`N0xm5ACYE*YpXL z6vj_C1NP4_j)mqWY0m(yDfLhli7!qK!!HGDIML4lbx52-MWUB~^YfSF;j$z4+U#p8 zWYGZL;fRgBpN9HcXf zt78ETj{j{;X)pe>R}jhVsmfJ_qoLo5E9lbVgBjq+sHIfbvJISzKx5eL zUMM`nim&W|IkCr#c#sr1AV~x`{}La*`w}0)z6($g59$~UW(q77uUNPU8}&IP1@J`B)!YerYCm$l%?gvWOr2DG+xs+8&1huL0b)IUZ%RB2)Oz@!^891Ul2)l z{*@_vKdEUPz zDJ#~8hiP@%J~x2P-Ql{gtZpa<4D7*`a8`_e@cz-;w^)+HE;aB9D5qAqtr6SQXgY=9 zAS0PNu{GnP8_$n zvRq&IGrbKTdhBRpX7`-VFY1Mc6N+2u6$QK`c*5vY@n(q$57X#$)kfSBZ%x~|ig%~k zh<)k1GfdHS;YgvggvatWXBlh>+f!Cqnls%6&X7bl{aK`L;A?9h#^_jFwi&llVACWK zZ7vFeL+J$s$luxOWeu_Bugi;$3AKN<<_;G7xP12PHB5T=SvkZ-2w|sKr@HAa^KK`n zEuJv=ld~PjNgebTD0(cA@GbdzOs|p-N`$hx98SkaQkK~l{AR=w=+z?u6DAU;ohRiS z`I-0bTM>Oajy`q6z~YY)@+fW%l;oacSJkCsge+2~j&WppA*Iv4)<|(*pHNcD5@WjP zI;`xSbQ?7yk)?H%BwI7kew{;rKlu6~;-}LkC%3dj_{8Dp#JfbI9>GzT4b>(k&?5@K zYu(&thw<$9H~zgiDP*(*3!gJ zkO$x>>e{hpNqty#@H9_vv|tvj_cWarq3o9e=)*hhvEO;Ep#03<9DQ0-tDGd zcBNCGn=o3UEE6Q-B0<_UHTrweHtFx>EFWghFk9nqeZ8D(G+Iy_>c&h&dt1;Cupouz z@)k7NMYJ~`_3ASOgP+gKjwrD(JIPhzSGB z$6InKFi^a6s7|sw8^kLotI}E&90UWO8q|+jqOFY%3$qZbY@Eo#oBul%yyoasGJe>( zCDL8VjOY^_x8RYp7$KuQf>pwI4ldHS!0M*lvfyct$4PM0o2|Oe&U%azfgOz~4*CR< z!w+LY)TI2G7g@H1QbrT5Ih-*_JIG=%<^{gv+r!k&*z5dM!{Qm~a4Ex&ns+#CKvMAM zeXh<(qNw_!GD9?eq8Vwaw>1;|;u=TC7Y7())X~e{EIQ)g^6||o3_gttq_sI9*=9*Q zP$T)REYkRa`{C_Zwz>d!fyPgC&!>s}ALx{n&V(wF=iiG#+Efoh`nuk1|1kY`0z-Gc zX)w{Ze%C78vVj$YolOq~aE|ONj4Q*{(RvT^cDfZ?;j4fAOa1{EnNN&4Em}A|aoQXg z>#u@H)Avgc_DD`eLL~4H`H;4`33l-EtfIDOR1NXEWiJu<)JMGE+Bsj4B|TI9cy z+V7QKNS=TR|LEwCyxPBIBzT5CB~u%NgPC7d77(*j^~6PGk{jLF)(s?Wlcz~vf@{d4 z?>?wC?zc8%>~X<2#;ue6j;8n>`BiGEZ|e6q2kK!u6f4W&WtX|8UC{jYXxB;rtWRx4?6fe&Un^Ua4|_`MMiCB~sUU{u zd-kxG4n~^o^|w8)Y0?p~0mk1%(nX1}z%xM6+PRXijqwnZf`@XB;*T@P@ElkydAGYL z4ZKd3=^{7z7t0)xOUvrdi#ONIiPdFpH6n0V1(?Cj@XIO5kl2dmmu%??_Q?p#ar)lH z5wQFWRD!}V@14nvHR8w`yjPb)M&dF#1yHQEJ}OC`7n~X$xvhj#Kb>v+twQKeyJAo81Ssi z`eHo`sdDhB+eJW`Y!UAToCiy|BDRFfZiXcJImIVedXXN`T~Gic@jGD3)uj2^mt-8a zzg?LB4kqj4zp!N)Ph&~4uYO7E{)Ffbzir`=EPmtUv%THpvqH7vquji?Aoz4vZW%Yn zPLcY>-74wRVWYXnA4PBV9P%c={iv4@E{f=Ae8=o{+vRWQ>`m!e8~8Ei940$AVmo)% zxG>A}ED`LQs&!GCZx_W`?Ba@6w6*4?iGk5yyiS8xkcrpG9Pyj$3I2fEU`;JBTVcDB zFAN_{cAE;YhoE9P^ro+f#}Ar;rEn4`fo5Tv62!iJ0P~5M%Ys{A1`MzPA*kWBKoWVD zGlo1(Cyj*tMl>KTjSwDYx!+uOaK+I-(&nbjpjVhy7KT?G%RxDodkoKJy^MR%9gGVC zq`Z^^X!vo0l^|At7NhyVROWqhbf$LSRz3C#@AF9NbwL0%B6*A9AXFn}6E=MZHpzW# zJ2rLLq#4eR`2&WPWI2Nb7N~Ksf_9Tt z3(TTsk(nq{Uz+^C;^2wfPrt^_8gW!;5yYQ7`Tq z-_M2}7{c_YJ{qkbuSVzll|%NVgc~Xp>y$|f*Y`0y*9!?UrCub_sl>u|YdP5D{G})x z?#s?NHi)}jnYeLkO@0&8L_e(B$Y*hiVP~b!gV1rV}sB`rZkAe zDvd-YI~4~a&zIq_4jXDDQMNivPj54FfuuMj??J|s${ zN4R681@<{_`$K9de&5gYsPpQwrN;T-7ncsq+&X*Wz?Cb7q}%7cQs8wu2>#BQKnnz; zPaorB*4TOnk}`3*1`j=mXwyG?syOfPpHD)B#UFNYq;_M-zDlVEQ&)m1bB6Ajw=sBM zg*3@UCNB@IbcXD@lxMbSX&sk`V?cdQ^3rPpK~gM4)Z_FW+5>^=0^JJ!$u3c@$ZU;arX{Xn^N!wC`y z*)?y0DH>Cpfm;c93XLFKTGAa!1{a@-TgqFwd1QJLgMk+XvxlaqKx@|mD0o~szGbYX z1-kR??{e;J;`l@xX#GYA1b1!@$d>&YOL#^|z^w$_B`V5pNlE^U%5Q(Xo6C+8dX)Dh zMc^y)bYCKsASPgeBnd6KP}rDQ>iK`iq#g3*c7H92`jx}N4Rhspgeg)}BX@h_(T|Z+ zOHB&%YG^Uo#7zw(;ZNmGLx<{wZFx~cDQLEb?|$z>Ysay32uzre>!+2K=kRt@TNj?@ zN{d_y#B6)eFgq!oMcY1VGtEd*v6hI$_5HTrht1xFx)Pi@qtnNK^?|#&%!6UG522ft zPkyYhgu8cZj!vQAfXpwFxor4vu6ujx78}0f$wCQ_`waGZfB9f=-^<4QIB?1JVP`nu zd&c(6d;u*)y~Uo}LF5oS64f{phNK~YG9FCj#;~*#E*q>VJ>CV~ID1HJYDOpy+TFG# zCk~7~D&}@A#4>&@kA`;>wkAdL-@e-aqE@hydtm`hG)@_B66z5667D5*ALWP zY4~Ew;J$>(^(M%Tuul{rRx#YoWu6q^Rlx=^+)2!o3xmuMU$I=q7pCKbc;X8gXn^Mb z;2>K5K#cOYUAG5AbM`P(-6gs1|2TFR`6r;g+xQzQ{nrJeA5x96< z-C^uyNg|J*a}MG}jQnHmz@5tRtv1jc3 zG><@jD(~;&RH@RQ`qQ%*8vFR(2R(1Rwg>9Drc&5olsSQ90W z(uCZ#<=zViuOpZAz(e-^=cP)?T+3Z5NlmIDTI#CGf{93l@VHvfO{67#4E+_T^pY0| z;%t4!g%z7E-u)6M;UDNZzCFqY58bp%EA=_k=C$y(A~Fc!zkF?l;Sc15(UU@?G`Ecs zNKP0&nGdUU-PV4&7uAbtj>}5814cLPzGe28UAa2eja&260}qIpFn%%@by*}@D+853 zZ71jm%94Ht^W5{@;b;ELICP za|)togrRMoCpsD~>EO4jqC%O-G?=*8!{@~pdBnZu+G~^^9R)Afu@VE863&=?yG3olT>y0V*4F(tP z3kmq-`+r15&w!(6ySk#K@JUuW-$BZXiWgR=lya`-sq``NudyXd-C|^sO{~qAM$_d(j*XsIl6W;u2 zF!dAs8{^gf)oQqpEuS{Ie$hr0C-8N-Hueu^T9L8SgtCv!*RrYZZ$O(Td_&dM8+UC0 zt>Lt~43I;bruOPDwrR`&dHpm(ZGc`pt!4l+_cSsu2B5En6|qv+e6J79-Mzzw*owJ> zSk|r2G?C!fcls%4+}*jiOm3Q7Kh-Lqb4%gUcYQ4{$+!HZsi`CH0iD&z!iNsO~qi;5$Ui+XdD0Z*cLK#QKOVto;XUCVQd~&D8M$NRcx_Yx7 zV190e%zCxT-IBxauq^I{=T8xlvDL_*b)Hn#VCwE{%p4oqEt%f~>$zG+?Vw5%Uh3MF zQh=BPa+mi-i{OFQwJxh&HWn4Ie$LwA`U&>xuTvlT@89}}K7&#({jwoyckU-Tb8WdY zbxk^(xPrTO-8`Mr=k?b5iTWE!X}X@eV${CQ@uvQQP9yTZXlD-qPXRosX@D^O$ouJ~ z|HEt&5Q^^{07#A|CHr+F7$_qF)CV@nmIW{ZWCFxd3L14-_S?eNbOVCnCHPOUDkyPr zBt9uaUxfWj=$}Znr7(i}zAIoCVCEs$q-oE(QBYz#w1v`X6r)+xbHM6&!!i~Fd<3_{ zX%Zt#cKLzK1$3%jz}D^Eo(b+D?|=VZ+xu0a9|UwTGm0?`qL5GNmdMy52{d*0m54|@ z0{Y9ZU`aqmXo%d*6ylRG0-_CLC-_in5ZM0QSb4U5@%=ZmsO!-k0#em4MDjTQbp-lV;-NlXg-L7)u8ap$ zz@lzG4<(e%lNxoqY-d+|xK&TUCXU!l!3^r<%lz(zUuHM>r=9cdB%1E(sX|cU#JD2= zEdirZJV;N>YcIx8>L;1ddsx+Gn(IzkxNeWSu6z@pShOFx@%Pq$yRMBRhlz%+WvU_V zHOFRnRjtM5!=K>`o2{STd?klC`rX`KKf@88G!F277`L`wee|mpL%#WpNwpB3O0OV_~dXk)vad*>hNJ5=5Ucj$SEnbJtp{E>VrC z&QvSKUA9(PC4`v)m>%3YG%uhX!mjvUlSUj7v~ovx8G7(R+4!^3v_W^{=)<7VZjQ#& zd0fH#Bgvh_RPiGL-z3)z98KU7ILa{4pVElOA;x6%@IU}gbAAc&LZ7Z21Nd{?XY|6z zbM_ME<-h@?=BMu}=dzp6ls|^y+fQ)BCm8ol z`EUS{97A2@5D0QL7w8c1z}>VFpahf9o{BGE`D?0bXk;pK1mwyTrn@lO48vxlpV7*o z)f3qT=a_{Ek_KA{irAmI9hNd^e_*Tn{RXN?@HInJde~wV(_*<9*kiuQ!aR_wDTYBi zi~yLpfsqROk~Nn7;OkMIPMd}oS64KihGa}u)j4is?v0PcDD< z2@iRHIy1ZWwPvzpMB%x$Np0-H%SzBu`?R=$9!MWE70>3|0yGO;dc``?5dcd-w7)hG zc68l0^rFUpd}ZtoREQwT#E=HGHP<-u)S|}2-Ufk=J~0_GK7#XJ>~SBvZT)H@2Q>Hf zYEhOWqj2?Na}{2F;60&f(t@O>!#*bjMOJadA0G!F=}rMVZvbeA!TGP&yPyH|n2 z7S>o6p=_3`P48UB$X#i9?ylIE&B91PukFKb4m{o+F9)cTeT(g56fT1oE`z{s zBfVoxHA&cU9uw+o0 zIe#~5B*pR`jqL+zw!&yL3gcIuCRywa)=3%uN)9BfVyol8pr>d7qrHAovuZ@$4SSk} z?(hb{Aw!6|2iu=P*gl3vFp_}?%|6uN=|THV=qv)VcyQLd5tc>^1d`wpSt!UV(4+*j zraKFnfg#k5zx1`!nSxD8n;Pz#pcddZK-&-vzE)s}-;|bTQKFROkg+6l4<$*v6kQo< zGQA=bbCNa&o3Pj4gxNHn@q$Ln@0^(Yk>2($l=d>2GdwCc%w%dr>2gSgBsU`sbdoNJID?ssz+MjLS07_O?X=LkTd*voRg>30<5#LvmHuCu>Zbo>%aeAZ*{;hyg2szG`M{H>Fck!@!EWxk5#W@2s zb*{R^ZBulhHBOybdlp&SP%;Z5LkF2?rw*lAKdn{>MPdkk8-JDt>+2Ot!v@hKT`WD4 z$R9Gj9_zhAaQ{epENTEfg`0w6Sf6&#Y#YoiMjI!=17W*e|1u1xfClFhr#{>k8rsJ} z4#%h!ZiZa#K^dVLR{u zcmPKm@*I2L03HNrb{xi)xUhqy#@+#?6jgo!bci5ymJ&30w0Sv|ok$~KaYiyg&8M8* z%~U`NacxI>_RB%2gD?TsgH3J_&W?)_$EGC2L7SWNr6+97y zno%GFV3aG=sP{Cgjm4^FkR-R4HxfNf>%-qiE&~|>4Uepz-grcp)A>|h)%9q2k4>((1z>r&_mtx608FK zDHv_A`(Xr9qXXGU-2kob$)6R+7fK`uB0%aj8=G72{_Ps9^6$=YO~U{s|5gm%ZioBE7=Xyqu<<`7GET%38gWnXAu5 z!%`jWBcMhT82%I3@1530YuIFV5QUTJegNw49Bgd58X+D)J-s8t{?grAZlT4{D}J?L z;uRuO+)?C><60$ROzB#on=UZpj(H?jYK-zWx)I3|r3sUCo8!J~lE_H9Mvf2oK7-(U zPww{(7Y>i$<=AD2=clRU2P16Hape1x_K~-KNoT7D6GzO^?p+3{7!0^H%UXnjH?y%tFO(!k0LlQZJrQV0q`cq(NchEo8EI1pa6w^D-L;_sARy+j>)zGC zNU8x2|DykJ11U3(Fw~v{vjnM-F06i9BVeXS@dnibCve~GO9`w5ZG2k1Kt!bR*`TDD zrm|jSLM=iKqb{KTq!Qtluwf?kuG=5BuZlp$xIhf|Sy@YmqD30bXRprpbFm8}j<&85 zh1&5zYv5X+RVX!I5GkKW#0x%}DCKP5m_lS`EssS}!O)JGih3SzO~B50h_OZqd@I1Q zjwo2SgI-kt52vD3%%u(1UlJ?0@Iw}x+*jHxU0Gi>|V_YjR2{|HwY{yVzyHH6jj*_!QP|+^T zZq2z71)RDaUeYAw1l^DHx04`gMZh1K2iu+Y$|6%CSQx?1Ma02U}# z6&vG9`!ERSl9f!WF}OHAEokh+wQ#{J!Yn}5Fv=h^r-GTwkxXH3jv(Z>8nkSQh}!1Z zM%W2Y#>9h%ZpaiRtc#%#aXEik^?E^UMM1GmTIt1SwjCDJbom76bh;94Ww#;AYzl;8 zR7-*Ym`dz)cvwR$#vnC_P8Og0V0JG0%IhyI({shgEQ_xq$&3Ex<#K z)HX^nYJ)fYO2};$d{$3$=)m@T(TaWG#f9!p5!R_-72CBH**wFa|L=nS4Gc(*!sYBD z?e`QbrKzV`Ulq}MTntZ_d=@E7d=P&jL0YF-Nk`(hcA?9XUG>u;7D#_Td|sd!Byf*G zNs|Rz3aWL6f$1rRfKbLT$k}pHLnypJt{+_qH&6ShHF6x3;_;t(9%v8f8XM@zUZez} z^DTQ2FMUR-Lo<2>6MaZ8v!y|X90tPx>qf}gP(>RAex@7u{GaOmCje++)UTZ0xBcJW z_lqj~W|Nf_?O<;39D8}3fyOgl99?QHy}a4UNL$AsTpBb!pz)ep$j)#8*iw;=Fk8xV ze)s>s2plBm1nKtf<$qxtAwptv@O>H=a^|ybdX!3jxJ~jFzxXJX=l@N!x zT!FLufR9QWs*edFC0O+on50R&tn*}&Slm;Jb=&3J$nUu`>N@f~tAo^FaTejuVrf7W zWd@MY^n}?^;%oqDQuUnVFtPlO!&`|%9dbUQ{hJ`k2~kxpNSZ2Fc!%~RE|KP!K8ZRH zdjiK52}#ks#|bDXp3^lS#c8p89#?{%n{Vpcv#PAv8}!d}Du$N3L*5xon#Fa7zK%t! zICX6$Rt+@>VQ(Ac)_m2_mFzMh2m8u1NzUtzMl=+tW60>=4OXoQA%6ui*(wT;fh!c( z@HR+LaiYFPJ?ZTz#O!beq%p$TuMUAQU_G#kauFb{N{RvmWbv>pRM+L&h}&0Uea7Sc zz&Z;;>xJLZof(J9gd6bM6lmX+*)uYkeO0(rb})m0Y5 zSL{+F*Igql$R*7ll@%!k=X+1Il^b7YtdJLyu0 zblU!UJzLMDl3*5a9%G5h_&;y5eBTBzrCM>a9(V2tW4s2;;`KA%tk#g@s&3-=c!TG~ z1`+(Md@%1#;rf}4M0ga6yaCdGiW3k|RAH-Lh9SJg*mPr{G=;V?@tZ z|9ZHUX_?JfUf;J18oKud3Ljv0)tTPDJXiUTvciUh(wG4{-NjGS0sJLp92q*WK??epT)DJJl#;%dDj_P8B;m zaZD%KsG&n67TC6l1gE0HwI+7LKy%fQ7dT+Ja~0sn5V>ZIDkO^A#XBZhOqv{-O)v;u zvvQZ|vjm97^N5fQJD+@wAw&GMsh89Sw6Umm|JUmZj5 zzst9^nUe5wWVicHqZIKK{4@S9N#{-DhMjEmOW*kI6`Mip;MLreKf4CFymk&c$3`12 zU*L$7DBAT59_34Ox4#1GsOLtMckszR=XsnXvL8m)MyN^5n&Xs=h>W1!5e(jwwnK~( zX5*&?HbN`Z_TIB(gl%P?nI1&nL8Kvzf;iL^`yuSz!x|J-e$Wa>EEDct_P}fLu*;;N z_4wRrYd)fJSOXCN*do>dRFG;S$}^5rO2<`6A(3tb4k<8%&PMA5styFb+ow2pwumN6 z1{U*##pyDr9R^e>j36)t%mo2}iw|s}#2irs)cepxW+}8pHz98R#|(6`O3lA={$xlw z($jnlO4PaW=gJ$0mi9wxEfq-0vXKEHEz|gI&O1lg9d3yfEjft~XIpzDNU5+;rcei2 zF3X@+``IBqT$vzFI!!&cP|Yrbk7iO9oK3pYMOb?sjfSIg=plnyW^TS1rZG$DYa=Q} zzvhI-!GsZM?NH=neODZo-h;i3jNVW?4J}#4f)F@1EUV4*G!O%@5%rV`rwjLEVy-AS zfJaQF8e~f1>4XoXuV7-j;YQ2qP3?U1;CcyY?Lx56`cT{zdOB&#$lU z^zTRM@yYe_qr*1}JpDK;jVU0|FgPdkE(r~^fX<1xmj!G|{7w)s(6i*lT}RTq6A9Q6 zP8g)R*myW7KuLL5p!3c9^hKMC^P)J1P0DsW_u z>opt@@OY6=3qCA#rO(yR?a$%*_{-}PzdRHlT|PQ|pm(_4zX48^a|m!x6S^edrf=H| z$WGePa4TsOVN?eCVj3-O&k_8dnNka#^2xh=?dgKg3*FHd>o@H$;_mUcAD{R$&;3u` zev}^8m_A@d`^pW2w=q0u23K1HJ$!{*pm(!|WHnvxO(f1rE&0N(l_+Bf4gr@jvu^W$ zgWmUc!P!C;E$T&kf$H()?un<1Vm$fi@D-&hZww|0yZ5@Z#0;59;v214YDQCPCc2|- zC7ni-WDt_Cag_DBy8XD$fB#!yY!2@iUtZIv{iD?T|6VlKzx+0@_O6qUMA{MM;9h+( zeim~YkYRt2>gGEG(yu4)rib-y<|E*-1_TRMqT7?)p;Dn|h@&5fvqcyw61mkx?o*y| zW20#JKtm|9xA2r3IMnnQ7ukLugu&yg;0{Embgq=zN_6PV)uJ}mRy=Gra+HmcO2u+G z(}vV_A&OECl0Mk;HWf*T`IHTP7U-X3H)g2;&%G6<%6qbjr^FWnfxBvu1~FhyBv9GqHdPxi*y~4)_%yDZE~YZY93fS-P}TAe zqy1MCkxB;z3<{~_aI#IY%hQxCu9BA7Mrnq#hO4UcQWQW zVbHXQzi3fn9O4n4I>#H$`l`Jjwa>OvSE8cgwYVnQ_lmQJ0xR=CYC-p`c{)e0J)ApL z`TUKOacK{0XI6?zpRR?*4XTQfc1yt>x)Wm|TNqg8r%|Ov`_rkbRjN1AS-=PNByMY9BQ! zqS>)oOX!h{XZzk9_ldfN{B1eYz|P}05_Z7kwzGCNhYAhoowm1oX-&nFGixlDd5XtQ z?V#79OfhIcRN<-|=ue|A@_2wK2V|M{jkd zp>4U-@f&wGo;7>jUMn@PJyo&?T27@x5tXoQy4gf7<^#`ZHvr%_4>!%eX-D>K;fh}TKeNL zB1ayBi}p-X?jyGCh3$_a?OOeIf&-q9);Z@KhhcJd5`i@e4#gcrbAS_AHk2dcF~4ej#czF=L?_Toa1nmuMJLDcQuaN*SUZC z9@`{;peH=d`y@Y!U+Bl$llb(|^OZJiY}3&LGdtD`(A`kH3*TWQX$hp!%P8;4odBJXlEnU_yg2 z^u~7abi^WbPhJ%^2gAAiM)R@J)Lp$e{$?QMzv8xB^sjFYWq#>xf4S)2=*uSa&&#;=3K$LUoPWSqZq_Pn(>9D)NPT3(J-jbv+oCkA z%GK8j3hpV0)rsSEmPb76jnLy|xX~eKM!2}&O9bOD;73qv2C7=2E+ocI?l( zeu22#PW8+5Wt}spe1pwB3DYH=qD^fxeU+QqmTs6bJR%rD6LMx?nNuI9PgLGLj;8st zlU%9lg)HunEczHd)*h!n%g5T2{G#P!D%YRj{kc6_y}P-CxSP>=*JCJ7e}l;lWqP+2 zt@H0&M%QRx+fV-`_BMK@1{6Kw^N`OB$cNmE(92fSUvX0e+_Lib@oC`=KGV-9_C7`; zr{Ritjy+f*j$?XaYh`B}I@KJ{NqqzF^0`5x}FPvkH*L?K{n)y4K}kFsdRZ#o%6B2z+jUrcWfDm6A~IsYFlOjN?Vl} z=g4Ms^Z>N5!P*yB$(ydI<(`3QNxmT~y}|Ys9%sZ#GS({g`)su?3g?6_jFOuA>6Csm zWxWU}(GO&3@Imy>hgPsk(R64}oyP69CsxDADYx=cLf)pXA%yHe))KM9=q5-y;m8%S zU~|p0ht^7iI=EbERu^iGjW%){C-x^|s4l-ial!SR&4q?koWkOWePTDIMl|&vmxYh@ zi3j;gE39f~dT&>YUNQW`&Y*mEXt$0J+gY!8c&MEkPj3J6mI;6-0!`8wcG?c*W97zv zZeFKZY!E-vFwhebln-)-U^C1aH`S7y%q$Q3WrW)C=cHj;{D5&DM#?8Mdq0K64%@|2 zatcg)sIUV4;sh6QAI~EpR`Ltta?DDaAQdsS9i&#j^N(r&^1b98&;4qO8n)R6x8pVS zbgNiZOu&P$2QCTOpq6D|*7YmM8VhyIPxA>b@Z9*_B-0hk$la>pp2kp=Ez;WU7lQuI)il4lm~Cx0pkKPXHF36wbM?(_zYrB*bwrvd za&9}Ie0TjZIAQ%4bFJNs#9zK$-d$0r=)2$l=$9T#I#?E4aFBmxQqD;B+Qu}AL$o}8 z-;(K%xi9bzleCyH7B{@**zye*Z?u5(mMwsIy3AMu_uN@W#vh5ZZtfp|=4hbHjBi@cm>i74fL|MD!Im@WMEAM&kPth->M=mXP z-GCp_oj7Ov-oTRfYohf}Zl?;3&=0ob!~F)?xd0cOE>zOIo_FRbA798Pp3MKzM&rqx zwzsRbk-IqW?X=l#b?R_-K14X2xYLQSkazUaFne)O)xLiRh<7%&pOncb+m*bUTI#{- z#qJW~W5f*V0VV9Bopn)wfU>B$$issBg;w-XU$h^vdi?VGiPsNd{qo!N&(f?a>yihf z`wTBHGUjI+=T>|8=igL)wQ+X+ZPT=gR|DW?v1LH#V zE}aWwz2MIm`OA?5Ja}mxAKa!)0x-%EitAeQN-l5)l=Z8N9uz1 zjUAzLQ|AIX8xC(cUHk@<(bUJ|*J)R8@pkZ0a=Fa!_;s@I-K*4v$z<=~PU-@-!Uvi* z{SCTrlQjKl-uJxt_@tb_H;P&M`JuuIdnXvVqpCq&>9VM|p!b~uatbB>GzNI1=Qxcy zY&LC5?WNk zJ;|eohfyCb<#Gd^+}OG&Lyub;pK7b=Gp$xv5G}^s7t@(3q4{>}{Y$WMGQPz(ZPBNK z7IcUg)lvF-m~k8tcAS4s*~ck121vS4ql16##)K6n1^WwD6NBVvrn5KoW#0k%xf1>+ z`zYO66i$)$RbiR;Ddb^IA*u%>&MxC@hqGug=}+bOSeuy^n7*RZ4z$HxuT8Ui2|@wm zV%c4ETeeiPC1BB%Fj`v6x^#|l4zG7%3Sy*&jvFz);o29MNk6`hQk2|oJ}-z}d4DI< z##D75UG(DSUZ3f^_VQ*>9O->@PxpzK$_g&qzAdA~*8Dad5P6?JOndhewbNVu0X7@s zn-|!nt*M$V*X7i`XAx=q$m;cmW~XV1m%(}K#VEitzT}fdB{`v@uDD*Q z{7ir9d)wR4TOU4$elw^zp1hSX*Eb^;1c>t6bU|f-EM60=wZ}g#^TQ6;qiVFYCv>JK zdc)nulTU6rNy$|3XHa^K=(9bW5Z@;ayZswXc+Za8!?jazi{flm3E@KV??2j>;-mp^ z6V_P!dy7X&Z@%p-tGfQ=k59MR6ZU8F&|z8VNyE9*X&|5T_q$fnCSOfQID9E(_NwrE zIN?B!&-WDcqdDh|KGga-gZGcdcc1@j zrq@sK^!^sd@#!0>Ti$w?4}+I@T1=!q@dyLZ*4}%t2FPxBt-Pj#G=GY$W!K`6BBX^n z^5$VqMGq8$KaO)eUWL(y&4$^$I$)<^56}}#H@B8qljpBojktM$Lf)#Xa%kGI(t5?&|wG7|uqy_|*-r zY}eC=azLsxHjvniXD|^3o~;d~Nw7eA;ss2KZ<;@*Vd$$&GhIKo6*x`6mjXEP^jLrW zwq~U8EhnD2;29TVb-3!o^7bA{S9q438LBR#@M_C$gToEO&y zlQZO8Xl^JaNs(4KQFZKeo90yA7f~Iaz>;h)ICH6-3|$d1h**iKQVJ6Zq5!`VSDO&w zhh(p=q8fxF51UtXH6$|PR<}4hanWex7**008#j#SRu58K`L^+5>AX!GULmH40J9r| zS#^uNr82TbRWzHNW#@u7wOe@GQ%-L3mM&7tZxTCxF{|2on^^Ad^jdr^s-w!oJI<2< zX+v$ha#hs}&0z6K1HC1m?sD6XJWhber{h@xkrz7c%n@B~+gqub^3uMRQ4~sSa&q@- zcaZ!eUh^(uvmxcNcFwYapjXcVQAMwJHA6dI@U`}yHkXF0&m;@FZH;;q1SKRdB`8c<_ZQHT3jzvgkdk;^l*JkNGG+N;zZ=|Hpq4_yKEmlVbt-tm2wnUSMd zl9iOhVg0-!*Pl?g?amt(b{Ka+X_iXiBawn_o;TX%j1K}&*PcNOATl!Fg&h~Hy8|0C zKxNz}7Nr->=44zS46u^$wV&IBY)#@k=XUxcH?^Lwg=Bd8-Oz&yjbS8_gnmW_u z<0Pf3ZAdhna>9$ytVNh!4UaF^?#X8|G&T^AF4`y!` zbULdK(BFI-`rBV7n1lM*kK^DEA3W4tQKE?>j3ga1w==CgEgBLb zuq|S{rIK^lgs4a)<8l6fm7sSpAlQxIgQ=5j-%a(|7ZvV5^{+5T!S(582;*j7v?tX62YWCLIb<(}|v*82ux1YxT?$;Lg zFU!00mv7P38^Xtfs0g*|q2XKNZo|;|!;EfDP61{Uf0KN@!*n`Yk7s^an@;F z7+=H#eJv>CaG`ZyzP7fU?JvK12aK&B=~>LO2PDiv-6 zM6FxX2?f#X`QJxy7bI}DT5v$l5K+*B#b@kUt0VCsZ8UmJp7oAH{ZaFfzL$2Gb++R{ z>*Et(`(d7zalrPvDA(;L}F4a&RW+x}SAwauG^cdVsy zEvmSmA5X7jjFo|%knO=4Ig2sNL0Lt-d_SCR!pPI3_Dg@{dSWz*4(m~-bH_ATrIrn- zjock*-K(XC)zLFD_0fi4-A#u%>dw8Lkf(^M9&<{|Ban@0FLFf};l8=36(~ad(oT4I zR>w>;VfHooZ77FAVo*1nOnOLcvNj+=?ghpS5+H6pxAn^{bQtTg!bQbRyHwSq`fm2! zpYG>v{$|R<$d7F)dn!?yU8R;Z+}Ni_4qBlh8XqBwLhW_O?4wGvLZh-iRV?d9Fxw!R z%tw`YfdrmnU)u*C$7_ z)L~ef zi>@dXPjJ<0tRaQ>w#!hOi9T!nmKmUC(-2`bZ z;gzb0r;R7Y`j3LOPAc=|zB(ls!+qrj6mGlD?-OD)U zyl1xE$n8;V-GXwH{{}q7aDxNCU=Vqvk&57qpHJs9{^vMxaoN$U zKWUtF7Rq0PA+Sf9Zs)4Kx#m{T18$1l;O^1#`dVsE%X4|kF)3bkl|rj^wc2ZvI?uFOQ*#SmCt0Sort*l ztr1pvKdh*DCKyApI(JSp4^|OfgBL5tRab-8irtI)95}AH|LdM82EFd zPgxMtfex1|67#aZ1l{ZMx+EAV?g<>BwW(uBSZL_iT~>>>nr2}mKnB=!#$^~wJ35{j zm58aF+KzoC^{`RvnSRKOz`tf_ZrX|_mQx#lc7jEQ98VcZc!(pKVl3z_WKvw$J2A}1 z8`CGQ$Ny;6T0N%m9|+rbQdbP1CP*j*5GUgjz;-+&noQ{<4S^B|E5i#-hEiaG7X-{i z|2x9i3(~6@ZsH^Cf5<$rX>aYMwq@=kb-E%?JO+#@WCG~SVQ<^Rd_o`-+I#%8TAtmK zKciPaEKzO-|02YoU_hHXVPyKhWl*#?qFfDYN13uM*Q~ilw_nv}Dafr>wP+Q}JHq%c zf~s?!Y)FZ&G)RI(JmE0k0Vddy@ObQZ!S8z~v4+Sc88i=YTMp_fpr}Pj2}vZWPBRJ+L^iFt40=F4f?3Ah%@cy7wtd9PL=8_W zQ2TP&ph4rj2iUnO0571TZKITY%)kmY9)wYZ$l0rrejeC087&Lg{zd6|AM_P}gMGM< zt=&Q%a4+BXKIWsM@W=SXqQB+)hl)d`(9CK-g(}j_a2H6E?b9|5#a&HvT zuz|+mSVl>~Gn&n~sF4YICT@nO6+=zItK*KZoVV{Wng;3)?y*n4Cph%&Di0VL7|*pQC3c&I>ABAo`O))4ckqlrwKN`h48qXvK@o0rnSv!2 zY~R`&F#D~Vr&;CMG_bbY1_i9!(t$xkQ(%nIG5nZQ^#UDrYts@-=0dlIDDw24yI~_Y zXp|EhD{!)VDixrT0Mff$bO7;4(Tbo!TO_N4*qH>Oi}tbF@Wh?(p8( znoHANctizi*e_AGYFofekw1xnbHQNOD2q5%6xxz3+)=PMqx(q&MJKaA-K_U1lxAk~ zy|J=!Ht~v;diAsxiI=bM$3nGMxAS^yDODqbW?Hj5zW8l>BaNS z)(6fb8KoaIEjf^`vAxDMt#3`%cKt=#1J38lgm&^+Zfdun&6nU^yJagW0M7|~XXNh8 zDrRWYv&MsS)5-v;Tn7~Z-50E>nLWX0W)n1I4t-#MQXGhpFm})7Bk|*!vH5a1&yX7K zNNR^=1cngF2sBFATk$eA&F#lBYn28j_UlEV8w0)zF@8~E)<;I2dcHJ0O?cE}E`8$I zF2;g;S0NDzQU;X-5ykOp{xU^&eBLFB)83eBd^aFQP1@I-T{gw3r#!sC~oySa~tL@ zVLQiFaAHKfM8+cAz3jFgOEy2(`?tbm_6Xfn8ZH?;B?_{jA{nT}O14f)BGB=U843vu z#0oNsV`O-dd0#pcRbob%ItB8DRyp4FgGm=CjGHcNriXTO3RJI`N)dKaC7hXYWX(;= zJK79L`Q6SX-Dy+-rov@%&p*B*LY4Mxz$0GeV#z>HWnV~&cO%|P+-wi4#pm7w=!F=Of& z;Mqm>SqxP|Jajz)%zSl&!B<+IN?S2Ut9!861)tN|A2QvuaeFosv1f%8V+@HILYhJr z7GSM48ps)rTS0`*|7r5uKUy>l(>=)Lae#d_OBTFMORffm^p-@yP`*$-s2NPjeFSYo zQq8U|2&o6h@WKB9gsoGIPFPK2s_UCh*@b>8L=@mfKDl})Bk(hqj zE4xgk_5r6syNL#rgr`6-lA%@0Zz-yS4y7DuW@(Ot7L9&~)ZE(DsPm{}?B>CA;Oa9s z#9;RoyRu!YP<6>NBxK|gAaaFDp9_5hL3$rc+P{>cnHg|cB{e2E3Xhd2fNo-4%$_=^ zl2<((->e#BvrCAPU?^O$op@e+H`|BM>XA&&n#|3U(D8-F*_e^e*-M`E0)$?JXhjbs zV1q}DDRE=168CCJ?vNwvfji=y@OEm{%Sd+#6bb9R(t((&ymxz-?J})~!Lc>lV7d|?;T>h9P@8+Bct0DbmB3}PO9`WW zuwsB(CjnDt1xUTo)Bk>|22(S`jv1to)URQe5>l)iB>?6U0L%gK~pR zuio;x1AAg%tukk(&KL^xV`Z$;vW5ef1bJ*aNNyUfC@xmS`K1$3H1E!xqKXFRfT=6G zvw);(QR~Uu z_GhK@UDESi|0F*AjclXRe@w+{GbLV={K)=$_U9?YUyZBg$4_v?!-B(2`{>t|t$yl` zZbx17Nc+jvX@48F!>%Y3`;wd1C{L{e-NXl|e@7ptSzO<16VX{;-@rLOe>PrU?q%N^ zcyApzBNlr2gjnI-LXUEjJzslirg;<2jQ?w}=eTEF1r3F2cDOTXCUdE&BotiBUl~mZ zcJ4cRL_gE7Tcu75R0xn6EMe7RlM{EL6%MOI`;s{Uj_80k&L|o$!F;i8Zv9OAQi+j5 z7&HdlR2hyOi4Mzj(j9u6hl3(!IkkZ;vSl_wZ7a#u3jsp!?|4* z5RCFX6k9pmZhNsgHRDm%+J@?_9z`;-lQ6(P;%Oip8?|8lv!_j|LeXUyENUngTSh!9 zotmA8{4^R?yxT!S99|wEBzq3ROS>$6(4~>2sw>-`_kAEVH!jOf7o3=dX$`WtN0fM~_ZJ@v@cqD- z%B%ZVETKK=&QRZJ*+{&6vRXk9A2dA`Sf0u>p?l8thVV1{H}(q)$y4{99J4E^8U-ci z#7b7du3emKWbk;P^R0n`y~;Dj)gABV1}g1beQ*b=$76?k$4&K|Ht$uK(xCWBpx6x) z%4YGuY5ii_ij|(f@qd+5sR6ca*N4 z^6W(z5uAW?CbCQwo2}s@+1j?0O-5(Vf+m`sk2fWaDcLUd8Q-pei}{6gotjWc995u^ zd*CrDhrLT+)}EPZ$MKDI5}MvHdHs}S=D%n zlsmj(sTzXaopFfBqA@MlDgsypL(*Q1I)v^W=fzYh176S%h#N*w&9GG?b=u(deG)XVdVBIdt< z(auC=)MQJ@4q6ymk#H6{;!nc{HzEvja)@78gT(c{`&vOZXB;LSN?UHumd4H4*3E^- z>xvMY)P9PiQYH=<7aT+B8f7@(eae-!fY}&IrZCa>Y*BlNGUUM*ruam4Y5_HsR_?%5 zccLaj=h`h|y6B^h!iM(uOpW6Ix=#WYArJE}Za3mnhT|BK8)w3?#%+YZC*U_#$Od!O*egLB#?Ox}(TjM2Msoxk}lAN=<861>MiziqtS zjw?^(Io(sES%1q0(aZLW)HiS}eb49nLU_gF*XISi)LVS3YkJl3Hd*>3jXW}=n5TJa zp#VxYY|?Wf6q>TBa zC+8CyD6!2dQIe(wqdOSNy7a(|WDT@FsBug`N49o~MtWTaF??0o?Zx((FHdB665}ti zVbLX{f|uN$FH}BJ(o&5;4oOY7e|UKj#pi0dMKgF&N1i-U87wO<4Bfz&jWx^yla^bV zT0^xJ7*+198Aug7ruAhM2;$`Y$*o#kxw5MDO65e~>dMC1bY8%%1IQfsC!EMa(h4QQ z5*PbyhAh<2TQXsj$t|OaLDr=(QwU2WJ9JJfnkA*#s4;>Y8tImDFNHlQC1Ok-%A8+b z$&5L~@QjuOL@H@Ye=j5!gV0dyCqZSpx~~e^BhwQtnidY#mHNz(u+hMfXI>I}UAZWc zYPDl$c$xTE;v$s3PE==hN>uuHF3-2+?2H~lCztuicsk9gl>Z9d0Ok7vG%SkBh_&I~ zEMI*L_G_7PQkCmDqr@uIF1b|`4`2pEM4N(vAF zTV^YurFvWpF}FPn=#dE{N!2!}vTeN-V8hP%4-%fvjQ`$nY)o&UTM{_?V_b`x$qc7J zQXN0MxXprLgk}f89Eo z+V_El0PN*q^|ZKkEl({hJo7rF(vn>1`)dvE6mn%R#>5mDzR_Ki>EmT63>Q9c5I1n4 zeQ9#)c&2RSm>+4A_rXPS?xOkotgG|P?wyiN+RxQ(JGG*xQRAM>ZJiY3{U@dLyj#)0 z6yOS_&H~PZ0>yEiLEI6now%Qgc#p0)bfB8dU7-sEyCQd?E_s*~Ko)wLW;O8;=dFo= zfFMcH9ak-^<%;VFHOxztBPVjS4`>r^O(&*j>D&exNh%`ODzO~BW?{{vpVbToLXYDe zd@bIrD&gRm1|&M@jp%}5Ejk6z2T?iz<|JjekmQ8r5HbXPyqfZ*$tlj%l7;hHK*fTA zF$`jprB5I67>b0V24-Q~Od9-rqF|RJyU!&~weI*ND&3_jJx>b(IPwL#5|=1Z8eq8k&=z&Ef@E17)LVLn@D0+7J;7 z3`%O}Zn4I8ikDelCLW=NByj6UaR#1zH*5PuK;2n1*f-$=QJRji1v-ImHeu}f>KRKG zS+n8FlCTW3I|IvRm{-ptb!0fHc&11 z`FU0Ts7nl>B^tHOq{a}=;#sAJ%NbN1OGKmwCQ4U{ynYo5DDQR$B&Qp`>GC4H*VErr zHz97CF3B<7iIYZE?p(Y;nZ~A7V$GenJee4<@XOG}($WD>6st^wK$M&$yA%`D7uqMl z;`y7lv$+}@Q zy+lYV3T7zHedtjE&5}`bO9euRcsrTP0_X~+lB(Z_yjB|TjJS=u+Iu=gtJ-S%^8zbc zGa`V9XFhYB`I%3B!AYL+T=S}jI3-#eF=s{i<53PCtLQ61^MDYJ1NInR%f=8>HpJ|M zf^xhEehBp7MG2{NRP2NEMh&)>TZZa}El9c4*G3krdcj4$l(<(^QZ~;>>W&t~R17<0 zBPNNDJkIRz93-#1DJ-|(FcO}6KR6Xx%nfdp(BZRbN>=x2VD@i<E zbSVxcQpu%Cv&RsBN=C^gY@ewKo)>DimRb0a5RY>65SpA6*a72EWFh{^SD}tWPcLb{ zp+=Y?<|-*Um{?oVQet^HU`)-y&5+yfVo68yV!|)VbGt|kfdZ*X?g-(Eih+PPtO&{~ zJKvAZjE&|7uQGU0JVFZ-on-6#cTh{ zI&a4v%I?m$fGG&?V1@U} zNer%$fymRc_+u95_TGA79J4hpD0>Pe-=PldwF71s%~koOJf*?y!bAj;7S2H@R}<%} zmm~x|29akrU@K(f4=FJxl@-ua7P&H%$~-&wVSCdeZD%HIZ}WuFO8%o_?s!@($1XbR zj5neK84uS>gh&q|z-x2JCAv1m`BH7e)o>dzF>+e;b=HP?yFCSck2agm9}Lr2Fp(9P z<73Q1*2YVnTL$W_25;=2o7sIsZatq*ou;dHu89t#~>?-Y=o=hmCMR)W|(DeJ+3%q?+vpg zwL{gtsM^r>)IiwD(!2sS`(B(G^)ln$6j%;^`eG1dl_NsVw zyPCz7Q=Pyx#4SEzQ_ONkWM3oI6G6w9%MwDOxvn9%Orb>v_e$e+;3DG!B7Nt_&D4|b5dQ&?mF%{Sd0`_n`xaRKErFf5*;u>4r-2{}X=oY?oLQ|T_gsF+fThS;dgIKDx|s2pLT`3B zG~xE8;dWC4YtV-9CX+X(zn9n;Zcw2r0SVajJ7)xQu^(+dg%!PL{NMkCL-VXKF}ddU#8=E+JX?``SOeXZb&0kfWpncF1Rn?WBhTpV>d{yziGCsU0j{ zqpgKM^q=KiKIP;4hsT?A?V(3izq$-0zbgL&0B$^2@CSQzi}Jxiyn!wS`f&w2rWL{z zp+1AC9EW~rESJF#H3*iD%yasdhvCRk!nm^J#QJ;8KPQ0Jab0TWQ$TUJSW3J(=(XmJ z5LM_AqU0BNmrq?E&{ai?!lV-bCi~9V8134OXWiZ`VF$Y%40^yTe-09#uinaln!s~= zX|!d&Vjqe7z7I}NmO1F8d|vX&P9vv_y`l1nP&7`Lhipcp1yz=wHD)*O=9+IOD>I5? z3=2Of41D}H8tv4I;trkdZ5^Uodn)CymIXd+9EI1X8)mGVlnaS~f=~_G5nQAzHoloB zznCqbfG}8H8-G7Ev;MLx?y^5|64hk<3BI18I2>Vv;E*2N!Mqq*SX?RR>C6E_oC&!ifHavN#6zNG!gJ zQ7Sjf-jv5BB&akd?}n#vZ3 zO)4CZZQc{>Vq#|=qKJ(gYRz`(mr9pn>e!)8k@?Q%!%C^M5#a8m5Et{H^9g0i=N~!+ zLfo=HKg#5?FI1$RX>9w53$-kUU2LkXR-LFi|9eLNfdVNj(Y2Gy)c(~`vfArL{VAVS zsc7?yj&vNHooj2cQPm4%S5NBp@+wu$Zm=%pfqdL+$K*H*&fFZ}?J!wDNwDA2@~{v< zKv<|=hBzFnWgF!N1p^Me9Kt86wsSRhn)2M$ml!FD2+RHQ|65n<4@Or|45PCF&)i+@N&&H3D-iBQljk>kDJ4LGt1Yl4&`a zL!?^{;Ey59;`dc!3w!7Yufqj>)vFfCrE8Pf^P;dUJ+T5sVSCzLx8qa>0Z4*f7*a?N z_-OGz91)apB-(>IR)^VM2CN+bQsK8IXE1t*1|rwzILF=DG*CyDpxU}u>SpRANqbT; z)Mc)6kiJlIIrtQ7U7TRq!x6E$GITdaon;=>VkW>;%|2ieYX!rSN>#lbVwD(^uycF;hzysx-X=Ejb}6K{K1dF3xCn{jv_)O~gX z590GN9BJ+1;pvMz)j1xNOC$Q2wyA$xZhV&|@c4!gn2kUGx?nvyrZd`K9bd2Ghuc*= zsc{O7Sy_}&;5gI$L6l}bG6zpIWu}(gDFh*%Qa1}aPd$}e1X+ukl}5%l zl;JA)j$o@FTHWYoATTJ?B@>{=N!brQ7Yn3bFwSjx{izQDh=OWI@K(>=lDWbF;Wx|c zI{3j2=k=L&urwqRD>wi-07dXPNL79qJGn{?f~>Y9h+W6a{Px04O^A|eGAjlI48*NMy_z^4iaSRgw}$Q>WSr$Lu?^Y4 zG$|3;;)P5>(w0JbhI1u+{n!LJv?QJ`b~z_<+}}T9t537n(%UAPOxkCLS#PY$WRf0O9KWo6Y8q`OF*3nP>4CxD zyNK-pC8_C!Tb3}PP1N5F&=W^H$WaWHJ-RngS0Zu~I=+|C8QrMd>oaTY`BuIdggh2z zUos<;3DOoL8@4jq^?q_$Qp=(AR#Gi;D@4W&jEs)~ilXgT!9^Dw8A<4uKV<>MA$`2e z_R*LGlM03On&qx9a$8{Aq>DuO&RT8mw9~PlF!IxjH)KEQtiI5Z(cgRmUVa1+;_u|= z=sEuUP5w&1>e)m(^IFi~(|JcC%p4BLFRFW{|9y{+lhtQ`*`bCTg|#wmQ4jtj6v zvAnMM-kxPm01|HFZa-p>M%-Y|N1=}AdjCwiqo(WDfR1&b-KzKPL%LPRvnBmrmO}6j zQ*s_XY84%w_e~gCG9X-<-4QR`-$$^KYInEq$J+H7o%(Pz3y^2A`zO>H7OEiLHTZrR1d|1yYS?g> z*?vws+jCpMn`2_2QIgNits!6F-AjNqAMJEPIjPcPAG1P@xk`z*M|Cu|lF&8*{wCZt zzfo=JYW;zZR)Cr87PW|5c`0;5Oahr$NS~rZaIW@dA0Prbgvpp zE!o6)AQ2|8*VW-%iIk)x@Rk7pIQn^_0H?{5+FQR4gnL3P4(KrezbSsSA?6>IIEZ_p z9$DgedUAuZ%V)Z7KqmLq+Q)KhQCn%fDp~CG$Z1yn`luq9?U!eO3aqm|F@@3cPLVHT z=|UHZ0D~5Hl|5aGomw6qMtj>dh*~G&oOwzmI&>LZ^o=Hv0f+-`Xq*!BBk-dcqFq!# zC(sD?SD%1_Kpm!F1+}|wE>j$A@{C#*O;90?$r5W+COSV=onA*9&`;&8(kGXUJ>HuS zLgWCl@DU;K0MB}*N)39s{1}*)Rs|+Guh3!H{x~x0XI$oy2QPAyHswJRHl}hUPu0@&v!LJk~ zBO67nVGhaL6yM$B0OgU^Zmq#K2Sj2>*2qS0#0hYDw#w6=$}#?k+b@hfaCX%6vNy?x zU4g`c|tym>koF!&aq zWHs9-H8hxq=9mROXJ+$ZJ}k#u4g5I0TVoG}K%c%rlfbmhok5OW&Y3B_!P_+CDtR*8 zV`qg~-B@}S6T>eh+_d2!F@d@2%HYru^?3S;I1;wlaNQ9-Qeq`l{XI1A4D-hbQb&cu zKn7amq^=#;5@Xv%5^2V4l!}7k^qMdR8izi-c5|;<$KBkGX}E5`V)&>@d6Fis{AD=E z*Z>I9z(l{c7rzguHqi_8jnEW~g?-{8sC4P#QAeVp%Eq{mTu+h7(WPqozDG?q#?t2G zw2|ZTKw>gdN z$jF#h8hi@cxW&HY4-Nq5m^Kral?YWUWT(B5i=}P-i4CTK4Q(BWYgB|-z3XhG-})- zYQ;5T1eya22Cw7PKr^vf*sCkuHg^lt!)UwKqBQhw_-<7SeYb*}S<9-8i4X+VB^dO- zMZs+uF{8kPf^gLX?BA3snN2N;EagKKL1Y<4h+ybt(!Qu5A`n@FKU#bhW+FQ|kqQcf zOt*29X#aKkJ8TeP%m9;iiHS5)Yv3vJ6W0+LAabc9A0$f6ONR+W$ASq>bH#yoMjF_i zLCMpRrx6DYl)5`lN<;geQg-O-fbUX78Ea&TLQp@NcjNLRGe_mBAI{6h_GR@D>L{1+ zZQ9aEOIIPI=u>!0O|15=S8c^1)2rvmST7BSZgzqwqCNGkc(YDbyh^zFujlB zsh{-YKp|CapWRf7d$h zIMWoR^7-Lex6j~Rfc8hF-bb`gGcd9kz?92U5j%-c6O98m-BumN~KGDQBR7^jXE0sqlHbqU(45B6a_v z{6eYY7Wy&u(VH6(Z8<^fZAxyeI48R(M;;}Z7$AN~wo;F-nQ9|Sa<2FAtYW))R^|M_ z)QyS_d}c!&6;gvniur2CE5oFhPOb4f%+pE0*kkVPB(Yfx!GfUI3lq~gNGPE~va70& zejw!~VkLd&rp~9;J|M@6?MNFeW^7P4Gh9o4EQ;X>c>tH-bYeiM%Ed{8kD1fX>*myT zcRWL;gXZL}$+prnNGWYP@@5M+bM*2q9HXResBTY$s(LgwME$~SxWn`Hv(>%e0elrv zYS!Lt9%X93c;X>?I;z`>P^IjJ6I6rLRjKw}`?!623K;a#dsIkTqsbX%-;_H%UQ9}& zPM#mj;v)AK*)O!OoRYq#^QVLLzgthReELMI1#hYU z1Aq7LaJ??wCP9m@(P7@N^6$lE>OC&=p75i5s(qz5ywN|%H~KL3H0Q7J#ovR8kpI4& z%N}&;5<6^f*>pgMqyS9v zg)GqD9l=@xg06Ac6|```VRl-HV32n)j-IZ+<*GDIJp05$+H!d~k9)GdI2M$f9(lQc z-b?ZUfzO+4q0WF@8$%()nJ>diAE43r|KTZKu`RX+AF=85 zzUsr|Umu#3ysFLtb*xy&V@YuC3N(d+v_;WNwBJm{TKez|B$J)UrW0kD9m$a((j}c{ zXKv{72tTBb1z!bKtTogr?9np(x2l|#ar0|MCTnEzT6ls5iP5d&VMnK-p@g;YTuQ32 zp4@xR(0|-zSVe095HMD7Y$npm%%wBOVI4atHh={H90pm)nLF9-YZ5*bNk!0|@!Rqf zxQRj>GVQrvzhomPVYZyXR0FfU*oU@9YjrERE{}%=S}WUv)r3``vJL=wK9tBSdPXfR z2A+=Es@sVU8u4I{2FQ1OCVHe7#TjAu(1RJm#~$2x`uaxvcvJ^F`6lJRJMOJu=k!yP zFC*+}>24=xePYu->`+oS@7!ayCx@k;oOC>@=>shmyi$gYrnH;0qnlbbJ*C~` zD5oeTK}Ssy+4)^$yJ9Zii(o28P^;=!|A02w(3L*O&BJB7jOXi5IWr$eN!VZu81~={ zQO4oa4C#W`(pd0Lk1#_KCr{}jP_8D6`ivV#%B+q`W&2TST~XnL^>aA$$Sck{&q#aI zGaW7xeL!wZSKQo*$8gVOQWS55I{<9f{07XduuDZWTHQ@_8^r~SPu-cesI~HmqG5}k zFAg8+StJw3w1cPmF*u?H7Ia*Ct{G0wyRiTd$9t(1W=Gb#h^nf3HJ$$j+!_zKUEU2L zEPlbtka{GdM(2xwFJO-5A`ri>^L&lgxeQEo)QQW$qmjtub;8Ec8jrV1D}%R{ygr^l zC%Bjy!e_W^kg z*SA6rfPJU^l-}malY^+qd-fM85{hLS+6FUIFk|48O!5v;bJNeXuOvk<%a?Z#WOi9p zQ>*(t(Y*UFk@(7AXoVHs(Hs3by_$2^e!H0Z>(J9=8rA7<`S&&XIym2`&U(Z5DueAW z`@FB_&m(gG^HB**kHoiIJU(s}&~0jJ(?+v?8nkHXmy(s&%=-aKE7e-KENu_fkw~tl zKicx-q~&3ESAERDrG}xpB>9l=v3hvQ6|Zfr=+jnA`8U(7L~5csW~7NcO}nm!B_sv4 zfGGn5I|Vp#7N;pH1Y&N1TmEp$P2x?NfRu8CV*1BVNj;6fc6VC)HtDZ)(D`=%KvPPE z>BXMI~+61p?PeDSjR}^L#R~F4Dk2Sx9u)>V+b%DExNe}R36=pI!%l;wbtJ; zCPz40VQ_bkk2Z`tR;4}MB)eCDAWD^ASt<47bcMa4QuJq#o%&L;EPtiv*%wpmH+i>* z9i-{(Hc#0ZEED@T`gLZBhQ9`0?Q&IxTPV8v}6L@E3 zE3xAx)!JyjqO()~*a)K9(4-uD7Hx879o}l9y0`1hKGpn{-CXTE3z|G_N%--VK^=M} zvu|M5LRr>9@=HR6_=f#4T(N05z3 z3Od}rRc)+2)EF1n0zd1)5Lr(qt^{=cP;35A6{z$Wc|NkPc~L-iY#0K}0n$bt=4e7G z<+^e+;5!~bkL6`#5Q7QJwR2l|Mi0-snq^t=sP3=7Zuf~ zBL^Hx=OYS~^2Mq0!&RVv1ss46r~uonZ)Ddf?+*X8xtf^VoS4NVJ`fZASINt#O-#LGe?iq%$r|)PZRi*uHR|j)Kk1u zMPZ$vHcS6-R%6uo5BVrM|03m!Glxgl^>$i8zxCBh5Kqa;x1@R(oH=rGdd`t-j3^m7 zz%&iDjJN79WH2OA^_LtNvl$gTgV^oW^UH$4mWGf3jUIl*Qlt7oGm*KWRlr&i7Sa(3n?;*GFl4y{L-B{ba46PMmSmsrT9IHgT~B z%SSSu%G?zfqSTuc^DR;OiFG2pF<;A4r>n3)`mt_0HD5%IqFu(uv|0R@2%*ZXStN+P?B#<>L_fPkAs;siLkvVzjdV2goO}0GIH=x00acM(WBQwD0yvy$b9hRXsc4KWhbY13f@mE-V_ggm^o%FIXU%k zzz9SI7QUhL+HZ81_%_IBBgCHyh{HLx~PL9UAn;zYK%;!Aa;AQ(XRjx z$M_vXjM!yrmzl*fD+&`}3TN@I-FHjJul$m2L0S+pBeC6v$PY6E=W-|Sxw!}14M zvr?PWY^BlumpMJCZddc{5r&JL%QoImbu05_o)Y%h7l#<=Hk+ngv}M)0`u;3;~mb>3&yukQWQ!QsW_Q&ZiZvChNnsq>H3?G|-NLH_6Ve=wT%kFKsCpRWP#`!zT; zx%r!0wZkub@iRI9aA}Z6TY@yiQ|LcV(egoZjzcL45PVr`?mEB$x_qf8w98M^bM+0k zbq=-EFXp8GE8M(z7d7GzQJ(6+%D=ifchhRla&=C5WzOI(rsP3?+KZUi0_>ryR`2fm zGuN|_y|PdC%K;2FMsU79bgoXATA!Z!;Fdup0MlBG!konKY;;4s?eW)gc>UCvN}6G^~d&1IUBo+ zZpH~D0f|risyXM^ukQ95{%gQ!{k1szsyCUt`=qP;s#KRO5tdW)E z45mN?yQ;Jk^O3&Pa1no$ArCP$6K?e7GDf$^{jpGZ^QZy8e6|l$jF9;{$eGmrJ(+_` zO+FesBF0IkJ052K2Zm!AWAYytQFmxR%McW9MyHFIYskXALhP)9u!I$^G@f1C^Gktb zO?zy65SN{njuNZH1bfsn1DTs}=R8XxWa_(TWG?$J)> zb@a0`KcY0WkNDz?y3m;ql5YEni+5Tx8s5i9*ZuDqzSf)RVG!$?%-Jt6RFrV z19IEkb4}GTJ8|WZhm$KGDS(N9OSQ~(9G+|1e0OJC7tzkCM&D*vWIxTzf8f=Mj5u`m zwb;=&hR8rf{nN1#L8)?gLM|yz{WdY}Jk* zW5#X+U8_Y)heGZ?q&iJ^ofBfx(dPWsB&z9pXv2Iwnhv%-J`9$QrZAKyurMHI1QHJBaR9?xOqbk# zR@HkwEtO~77$jYJMXxFW1RjuPORyM!@cnoaRriQaYT6~fytY>n2T6Rp6Jq1gX z>8I5vdNt(I z-gLBk?Bh^6?kw1_g_}{qNsCr)?N*PO-h?KiX2%$IBaRP%)&hs}68 zJfWkRLm|_jOa_Dyh05>l#LKKWLYiq!B}7^&yI_hsQ}$Fw?xG@@do}!|eM@w)(ds>F zf>0P7ItM+Qes&!~>ieVSCw%?)Q1Ovek zxO5VYm)cngzpX!gL3kCxH*?yYh57+B53S%c7_-J~O;Kml>?@oETG+lX#lyFnx zr)RfyQw#SDZmur0hEM}>R5U+;<9D@3xY}7^Q;TpX-PE{hI3Z{_(}M3zw|6_IpPGa| zf70JsG;e;Z8Uw0G*dP}A3CeT@$&OAnp9RO2zbkJuSzp|GF!7Da31jCJ{$m{h6lWuz0;EY zwAVAZ<1|j|`8Zu~=E%4z-h}68nX{72M?+AGq(?yFDoNyrAyovS&|)CTu{U#CA!!vv z9raWxk#7AjZnwb`0`4l7O#9*1PvBYsCoodbJbr(v!?ock;1FIim8t#&6G~PU)Qkjk zm&R~Zq-b%kI4Ny2neBowQkc3S6w;B^5lPz78Egu|>H@Nh!Bf~c1sE#;WbzD?-X~OL zU~;HQQ%vNR-s8Ilyt9!4VwnxwB(H6g+tk!hnKEhi2vgBswpg@-$G@A{C&~fV1#<82 zI+XmR)`vR0eV_bn+P@BjzPoCjmI^0!FwFA^5D3&&GqLTTvz7HkGjOZW4@TneEUMQViKQh zO#N{!&bTW6s;s5$UTdC<))1(boSK${ml3Jy&{%3mFr#EbPdLiX+q>a4_3rk{0Dfqh z$zr&;EUAPS&3Lal39jOr6Hwt+pc|oC^`2TevG7cQ^fGD5U<*1jBo#FQXWp>W>D_FQPL$-&?8=DDXfQ_6DDtnq^_P>T(IHlJ!5(QLRp}Y_!0_a1j-II$ zsK5hPSjWm2lx}XOE|z6}U8z}%QxIaMR-LQ`L)h4h@>&h7r~Ig6Uqow^XNn|z4$`gF zL@>zt9-LR{RF$)&3rg(-e(oKdcf5nqk>X(`wWwjFIUW~)>Pd3pN{cryl z2Z%|);QOJ55jLr}Nv{T5Z82h}sW8S&kLh)34HHav!E>WaZCkCMT;`4`G}@)Qwtu}> zTy@i;>u&fc-5s|q*)Kzf`|i3Y(~8fUWXqBxmsXx}`3e<$0k_|vScy`foUK;5jeNV6 zW=*J3tyY~?Uz~Uo5tT+~Fo6qxWh9%!?GNDa-toiVJ8DeHU$BuL8CLM!t>Wf4@NMZ3|6p%6I}1S zHxs;w41Nea^vV-YJ@e8dFB$--r*B}0ZBS2qHP7DC%9`EauWMHcaBu_|OctBN<$-*G zP$ZT}3qUY}Vopp4_0?C8RIgN@{Q1Bc5GX7MjzFT&7%UD?Ad<+G2d#<6GFfbai+WIp zzDn}nJCiGvDz!$d(;JM`2S3``#nsL3j(+gVd4s?ZC=8B3q7V=&HWi;W(Vx}m90-+@ z%FBqQ4}>fTy*3z4W{cHkcQ{>G2$Q`m^?@N|Yd}MYpDl0*^S&$|Lj17;h|s5w>-j+# z#YvjwtO#4QZrbUrn=h8D^@bZ^#d$%L*b&a@oo=r`7>>pa3E9A)NXWJwj)a{D`au}Q zNs2I`>~y|dZ+B3CFI6x zq%E$^n6>6zKN`Gs?f9xe%<_v6=}hyM(Q*VHS1 zSquwAn~TyEZZnNbjrd7p1tSwkg1pnbFWDG@V_Cu_`!Eh5bC+vT!wg(ae!4`PB}FBM z<+OfJ0n|(~EH>a=@W zYklT;ebNsE_1JUUbNn^z+H(7h7zSC_&O$TmS7ou8^-UL>*O)@3TxsXd|zFA4dy`udU&JV3RYn5TKxrLEdU%&B^Ihi8;vn~n7RVo>cgS(S5dN zh}Is8r&*Vg-Q zSnsnD{aFXX;w$RcnNY?-$W%c?MD~DuY@;t86XQ*WjS1r*WU5M-P{u*XRE;p9jDwKB zyUu4n0QiC|LKz1kQ%%BzG7dtfT7(H@9G-YXmydagz3!McCX{gylKyuk!Zyq^UQ1h4 zpxi>hFfCd#wsRYVRN6S!jh8_mLdrOJO_@9Nn%hDf$GY({2@}dVNTrQq-NXBzeY|C} z5vvlLG7ds2Z5->y%O*@H;~=Ec#<6a^9KwV$4nitz9P7r*Lzqy;K}e;IW8>x$CX{gy z^KYR}tJkynt?h5T>XMBKWgLW5+BnvYmya-^jDwKMv2OPbN<@SSWgLW5dNa@CuEv0U z(|viKipjq6KRnu-1&CL1!EamD&bZd@tZ=sAO3IFx%Erb^BOXW>_Vs>xT{qeI;Dj95LXSetxvF=-T#QUr{&ujYAbi8kh|0f7#cGD$ zt?=dBgMdP|meT$8$7!e+{HgB;ffi@rxy70KsKp(4e$UCWrRddo!`0#sZ-ij@?SxzK z{<2gw9`O>1A2};KN%9dFk|qg}C4EJnYy_CR8x*(!4uT=UHHw1_{DfM{DPwey-}nc` CfR%Ir diff --git a/arc-docs/fonts/computer-modern/cmunsx.woff2 b/arc-docs/fonts/computer-modern/cmunsx.woff2 deleted file mode 100644 index fbb13f7620770070f37dac7c03c21280e3d95a49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83044 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�j@G03 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 diff --git a/arc-docs/fonts/computer-modern/cmuntb.woff2 b/arc-docs/fonts/computer-modern/cmuntb.woff2 deleted file mode 100644 index 9b95f5f428c7444937df59caf9d5415512f0449c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88128 zcmV(+K;6H0Pew8T0RR910a!o)6951J19!*(0aw!i0RR9100000000000000000000 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

      C6{ZE*WyHxH-!lFw2x) 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%0D?T}W1`u>Vl&F}oC%mR09bO=#4MzSg-+ibRwo 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 diff --git a/arc-docs/fonts/computer-modern/cmunui.woff2 b/arc-docs/fonts/computer-modern/cmunui.woff2 deleted file mode 100644 index 0273dc91b67df068c0ab85be6c1a16ea48fb0714..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92324 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 H<9$~Eq8C=H diff --git a/arc-docs/fonts/computer-modern/cmunvi.woff2 b/arc-docs/fonts/computer-modern/cmunvi.woff2 deleted file mode 100644 index 0c2b0f2771ba886e58fa5f2dac4fd3cc4e8b09ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 85376 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 }SFJD{kVGOQlM5~ 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%0Am$FS^4Q2>-pc6^a=1U8f7GDCS5eI&< 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

      U=-Wb1loN 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 diff --git a/arc-docs/src/SUMMARY.md b/arc-docs/src/SUMMARY.md deleted file mode 100644 index 0b683e3d0..000000000 --- a/arc-docs/src/SUMMARY.md +++ /dev/null @@ -1,56 +0,0 @@ -# Summary - -- [Introduction](introduction.md) -- [Getting Started](getting-started.md) -- [Tour of Arc-Lang](tour/mod.md) - - [Basics](tour/basics.md) - - [Tasks and Channels](tour/tasks.md) - - [Queries](tour/queries.md) -- [Examples](examples/mod.md) - - [Word Count](examples/word-count.md) - - [TF-IDF](examples/tf-idf.md) - - [Sensor Data Aggregation](examples/sensor-data-aggregation.md) -- [Command Line Interface](command-line-interface.md) -- [Arc-Lang Reference](arc-lang/mod.md) - - [Programs](arc-lang/Program.md) - - [Names](arc-lang/Name.md) - - [Paths](arc-lang/Path.md) - - [Values](arc-lang/Value.md) - - [Types](arc-lang/Type.md) - - [Blocks](arc-lang/Block.md) - - [Statements](arc-lang/Stmt.md) - - [Expressions](arc-lang/Expr.md) - - [Patterns](arc-lang/Pattern.md) - - [Items](arc-lang/Item.md) - - [Globals](arc-lang/Global.md) - - [Functions](arc-lang/Def.md) - - [Tasks](arc-lang/Task.md) - - [Type Aliases](arc-lang/TypeAlias.md) - - [Type Classes](arc-lang/TypeClass.md) - - [Type Class Instances](arc-lang/Instance.md) - - [Extern Functions](arc-lang/ExternDef.md) - - [Extern Types](arc-lang/ExternType.md) - - [Uses](arc-lang/Use.md) - - [Enums](arc-lang/Enum.md) - - [Modules](arc-lang/Module.md) - - [Parameters](arc-lang/Params.md) - - [Generics](arc-lang/Generics.md) - - [Assignments](arc-lang/Assign.md) - - [Annotations](arc-lang/Annots.md) -- [Development](dev/mod.md) - - [Continuous Integration](dev/ci.md) - - [Arc-MLIR Reference](dev/arc-mlir/mod.md) - - [Programs](dev/arc-mlir/Program.md) - - [Names](dev/arc-mlir/Name.md) - - [Operations](dev/arc-mlir/Operation.md) - - [Types](dev/arc-mlir/Type.md) - - [Values](dev/arc-mlir/Value.md) - - [Blocks](dev/arc-mlir/Block.md) - - [Items](dev/arc-mlir/Item.md) - - [Functions](dev/arc-mlir/Func.md) - - [Parameters](dev/arc-mlir/Params.md) - - [Arc-Runtime Reference](dev/arc-runtime/mod.md) - - [Execution Model](dev/arc-runtime/execution-model.md) - - [Data Model](dev/arc-runtime/data-model.md) -- [History](history/mod.md) - - [Tasks](history/tasks.md) diff --git a/arc-docs/src/arc-lang/Annots.md b/arc-docs/src/arc-lang/Annots.md deleted file mode 100644 index adc4ef1f5..000000000 --- a/arc-docs/src/arc-lang/Annots.md +++ /dev/null @@ -1,15 +0,0 @@ -# Annotations - -Annotations can optionally be attached to items. - -```grammar -Annots ::= "@{" [[Annot]]","* "}" - -Annot ::= [Name] ":" [Value] -``` - -## Examples - -```arc-lang -{{#include ../../../arc-lang/stdlib/stdlib.arc:unit}} -``` diff --git a/arc-docs/src/arc-lang/Assign.md b/arc-docs/src/arc-lang/Assign.md deleted file mode 100644 index d52cc0921..000000000 --- a/arc-docs/src/arc-lang/Assign.md +++ /dev/null @@ -1,15 +0,0 @@ -# Assignments - -Variables can be assigned as mutable with `var` and immutable with `val`. - -```grammar -Assign ::= - | "val" [Pattern] (":" [Type])? "=" [Expr] ";" - | "var" [Pattern] (":" [Type])? "=" [Expr] ";" -``` - -## Examples - -```arc-lang -{{#include ../../../arc-lang/examples/assign.arc:example}} -``` diff --git a/arc-docs/src/arc-lang/Block.md b/arc-docs/src/arc-lang/Block.md deleted file mode 100644 index e755c7e63..000000000 --- a/arc-docs/src/arc-lang/Block.md +++ /dev/null @@ -1,13 +0,0 @@ -# Blocks - -A **block** is a sequence of statements optionally terminated by an expression which the block evaluates into. If no expression is specified, then the block evaluates into unit. - -```grammar -Block ::= "{" [Stmt]* [Expr]? "}" -``` - -## Examples - -```arc-lang -{{#include ../../../arc-lang/examples/blocks.arc:example}} -``` diff --git a/arc-docs/src/arc-lang/Body.md b/arc-docs/src/arc-lang/Body.md deleted file mode 100644 index 4a77c42aa..000000000 --- a/arc-docs/src/arc-lang/Body.md +++ /dev/null @@ -1,15 +0,0 @@ -# Body - -The body of a function or task can be written either inline using `=` syntax or directly as a block. - -``` -Body ::= - | "=" [Expr] ";" - | [Block] -``` - -## Examples - -```arc-lang -{{#include ../../../arc-lang/examples/body.arc:example}} -``` diff --git a/arc-docs/src/arc-lang/Def.md b/arc-docs/src/arc-lang/Def.md deleted file mode 100644 index 44830810e..000000000 --- a/arc-docs/src/arc-lang/Def.md +++ /dev/null @@ -1,27 +0,0 @@ -# Functions - -Functions are written with the `def` keyword. - -```grammar -Def ::= "def" [Name] [Generics]? [Params] ":" [Type] [Body] -``` - -## Examples - -### Functional functions - -```arc-lang -{{#include ../../../arc-lang/examples/fib-functional.arc:example}} -``` - -### Imperative functions - -```arc-lang -{{#include ../../../arc-lang/examples/fib-imperative.arc:example}} -``` - -### Declare-after-use - -```arc-lang -{{#include ../../../arc-lang/examples/even-odd.arc:example}} -``` diff --git a/arc-docs/src/arc-lang/Enum.md b/arc-docs/src/arc-lang/Enum.md deleted file mode 100644 index 9bfce346d..000000000 --- a/arc-docs/src/arc-lang/Enum.md +++ /dev/null @@ -1,15 +0,0 @@ -# Enums - -An **enum** is a nominal type which is a disjoint set (tagged union) of values. Each item of the disjoint set is referred to as a **variant**. - -```grammar -Enum ::= "enum" [Name] [Generics]? "{" [[Variant]]","* "}" - -Variant ::= [Name] "(" [Type] ")" -``` - -## Examples - -```arc-lang -{{#include ../../../arc-lang/examples/shapes.arc:example}} -``` diff --git a/arc-docs/src/arc-lang/Expr.md b/arc-docs/src/arc-lang/Expr.md deleted file mode 100644 index 65c21bcf0..000000000 --- a/arc-docs/src/arc-lang/Expr.md +++ /dev/null @@ -1,160 +0,0 @@ -# Expressions - -An **expression** is syntactic construct which can be evaluated into a **value**. - -```grammar -Expr ::= - | [Name] # Variable reference - | [Path] # Item reference - | [Value] # Value literal - | "(" [[BinOp]] ")" # Binary operator reference - | "_" # Placeholder - | [[Query]] # Query expression - | [[Constructor]] # Constructor expression - | [[Operation]] # Operation expression - | [[ControlFlow]] # Control flow expression - | [[DataFlow]] # Dataflow expression - -Constructor ::= - | "#{" ([Name] ":" [Expr])","* "}" # Record-construction - | "(" [Expr]","+ ")" # Tuple-construction - | "[" [Expr]","* "]" # Array-construction - | [Expr]? ".." ("="? [Expr])? # Range-construction - | "fun" [Params] (":" [Type])? "=" [Expr] # Lambda-function construction - | "task" [Params]? ":" [Params] "=" [Expr] # Lambda-task construction - | [Path] "(" [Expr] ")" # Enum-variant construction - -Operation ::= - | [Expr] [[BinOp]] [Expr] # Binary operation - | [Expr] [[UnOp]] # Unary operator - | [Expr] "(" [Expr]","* ")" # Function call - | [Expr] "." [Name] # Field projection - | [Expr] "." [0-9]+ # Index projection - | [Expr] "as" [Type] # Type cast - | [Expr] "in" [Expr] # Contains - | [Expr] "not" "in" [Expr] # Does not contain - -UnOp ::= - | "-" # Arithmetic negation - | "not" # Logical negation - -BinOp ::= - | "+" | "-" | "*" | "/" | "**" | "%" # Arithmetic - | "==" | "!=" | "<" | ">" | "<=" | ">=" # Equality and comparison - | "and" | "or" | "xor" | "band" | "bor" | "bxor" # Logical and bitwise - -ControlFlow ::= - | "if" [Expr] [Block] ("else" [Block])? # If-else-expression - | "match" [Expr] "{" ([Pattern] ("if" [Expr])? "=>" [Expr])","+ "}" # Match-expression - | "for" [Pattern] "in" [Expr] "{" [Expr] "}" # For-loop - | "while" [Expr] [Block] # While-loop - | "loop" [Block] # Infinite loop - | "break" | "continue" | "return" [Expr]? # Jumps - | "try" [Expr] "catch" ([Pattern] "=>" [Expr])","+ ("finally" [Expr])? # Exceptions - | "[" [Expr] "for" [Pattern] "in" [Expr] ("if" [Expr])* "]" # Comprehension - -DataFlow ::= - | "receive" [Expr] # Selective receive - | "on" "{" ([Pattern] "in" [Expr] "=>" [Expr])","+ "}" # Non-selective receive - | [Expr] "!" [Expr] # Emit event - -Query ::= "from" ([Pattern] "in" [Expr])","+ [[QueryStmt]]+ - -QueryStmt ::= - | "yield" [Expr] # Select - | "where" [Expr] # Filter - | "join" [Expr] ("on" [Expr])? # Join - | "keyby" (([Name] "=")? [Expr])","* # Partition - | "compute" ([Name] "=")? [Expr] ("of" [Expr])? # Aggregation - | "sort" [Expr] "desc"? # Sort - | "window" [Expr] ("every" [Expr])? ("at" [Expr])? # Sliding or tumbling window -``` - -## Operators - -Operators are defined as follows, with precedence from highest to lowest: - -| Operator | Arity | Affix | Associativity | Overloadable? | -| ---------------------------------------------- | ----- | ----- | ------------- | ------------ | -| `return` `break` | Unary | Prefix* | | No | -| `fun` `task` `on` | Unary | Prefix | | No | -| `=` `!` `+=` `-=` `%=` `*=` `/=` `**=` | Binary | Infix | None | No | -| `in` `not in` | Binary | Infix | Left | No | -| `..` `..=` | Binary | Infix | None | No | -| `and` `or` `xor` `bor` `band` `bxor` | Binary | Infix | Left | Yes | -| `==` `!=` | Binary | Infix | None | No | -| `<` `>` `<=` `>=` | Binary | Infix | None | No | -| `-` `+` `%` | Binary | Infix | Left | Yes | -| `*` `/` | Binary | Infix | Left | Yes | -| `**` | Binary | Infix | Right | Yes | -| `not` `-` | Unary | Prefix | | Yes | -| `as` | Binary | Infix | Left | No | -| `(exprs)` `[exprs]` | Unary | Postfix | | No | -| `.index` `.name` `.name(exprs)` `.name[exprs]` | Unary | Postfix | | No | -| Primary expressions | Nullary | | | No | - -(*) Operand is optional. - -## Builtin Functions - -The builtin functions of Arc-Lang are listed here. - -```arc-lang -{{#exec grep -F 'extern def' ../arc-lang/stdlib/stdlib.arc}} -``` - -## Examples - -### Basic function calls - -```arc-lang -{{#include ../../../arc-lang/examples/basic.arc:example}} -``` - -### Lambda functions - -```arc-lang -{{#include ../../../arc-lang/examples/lambda.arc:example}} -``` - -### Binary operators - -```arc-lang -{{#include ../../../arc-lang/examples/binops.arc:example}} -``` - -### Comprehensions - -```arc-lang -{{#include ../../../arc-lang/examples/comprehensions.arc:example}} -``` - -### Placeholders - -```arc-lang -{{#include ../../../arc-lang/examples/placeholder.arc:example}} -``` - -### Binary operator lifting - -```arc-lang -{{#include ../../../arc-lang/examples/binopref.arc:example}} -``` - -### String interpolation - -```arc-lang -{{#include ../../../arc-lang/examples/interpolate.arc:example}} -``` - -### Query (with explicit variables) - -```arc-lang -{{#include ../../../arc-lang/examples/query.arc:explicit}} -``` - -### Query (with implicit variables) - -```arc-lang -{{#include ../../../arc-lang/examples/query.arc:implicit}} -``` diff --git a/arc-docs/src/arc-lang/ExternDef.md b/arc-docs/src/arc-lang/ExternDef.md deleted file mode 100644 index bd39da50c..000000000 --- a/arc-docs/src/arc-lang/ExternDef.md +++ /dev/null @@ -1,13 +0,0 @@ -# Extern Functions - -An **extern function** is a function-declaration whose implementation is defined externally, outside of Arc-Lang, inside Rust. - -```grammar -ExternDef ::= "extern" "def" [Name] [Generics]? "(" [Type]","* ")" ":" [Type] ";" -``` - -## Examples - -```arc-lang -{{#include ../../../arc-lang/stdlib/stdlib.arc:string}} -``` diff --git a/arc-docs/src/arc-lang/ExternType.md b/arc-docs/src/arc-lang/ExternType.md deleted file mode 100644 index e0fa219bd..000000000 --- a/arc-docs/src/arc-lang/ExternType.md +++ /dev/null @@ -1,15 +0,0 @@ -# Extern types - -An **extern type** is an abstract data type with methods whose implementations are defined in Rust. - -```grammar -ExternType ::= "extern" "type" [Name] [Generics]? ";" -``` - -## Example - -The following code shows how to define an extern type `String` in arc-lang. - -```arc-lang -{{#include ../../../arc-lang/stdlib/stdlib.arc:array}} -``` diff --git a/arc-docs/src/arc-lang/Generics.md b/arc-docs/src/arc-lang/Generics.md deleted file mode 100644 index f5b22312a..000000000 --- a/arc-docs/src/arc-lang/Generics.md +++ /dev/null @@ -1,25 +0,0 @@ -# Generics - -Items can be parameterised by generic types. Generics can in addition be bounded by type class constraints. - -```grammar -Generics ::= "[" [[Generic]]","+ "]" - -Generic ::= [Name] [[Bounds]]? - -Bounds ::= ":" [Path]"&"+ -``` - -## Examples - -### Explicit generic function - -```arc-lang -{{#include ../../../arc-lang/examples/generic-function.arc:example}} -``` - -### Inferred generic function - -```arc-lang -{{#include ../../../arc-lang/examples/inferred.arc:example}} -``` diff --git a/arc-docs/src/arc-lang/Global.md b/arc-docs/src/arc-lang/Global.md deleted file mode 100644 index a4c32dd2f..000000000 --- a/arc-docs/src/arc-lang/Global.md +++ /dev/null @@ -1,15 +0,0 @@ -# Globals - -A **global** is an *immutable* variable which can be referenced by-path. - -```grammar -Global ::= "val" [Name] "=" [Value] ";" -``` - -## Example - -The following code initializes two global variables, one by a literal, and another by calling a function. - -```arc-lang -{{#include ../../../arc-lang/examples/global.arc:example}} -``` diff --git a/arc-docs/src/arc-lang/Instance.md b/arc-docs/src/arc-lang/Instance.md deleted file mode 100644 index ec28a946a..000000000 --- a/arc-docs/src/arc-lang/Instance.md +++ /dev/null @@ -1,13 +0,0 @@ -# Type Class Instances - -Type class instances are written with the `instance` keyword. - -```grammar -TypeClass ::= "class" [Name] [Generics]? "{" [Def]","+ "}" -``` - -## Examples - -```arc-lang -{{#include ../../../arc-lang/examples/type-class.arc:instance}} -``` diff --git a/arc-docs/src/arc-lang/Item.md b/arc-docs/src/arc-lang/Item.md deleted file mode 100644 index 5ed3983e4..000000000 --- a/arc-docs/src/arc-lang/Item.md +++ /dev/null @@ -1,16 +0,0 @@ -# Items - -An **item** is a named top-level definition which can be referenced by path. The ordering of how items are defined in the source code insignificant. Items can be prefixed by annotations for configuration. - -```grammar -Item ::= - | [Annots]? [Global] # Global immutable value - | [Annots]? [Def] # Function definition - | [Annots]? [Task] # Task definition - | [Annots]? [TypeAlias] # Type alias - | [Annots]? [ExternDef] # Extern function declaration - | [Annots]? [ExternType] # Extern type declaration - | [Annots]? [Enum] # Disjoint union - | [Annots]? [Use] # Import - | [Annots]? [Module] # Module -``` diff --git a/arc-docs/src/arc-lang/Module.md b/arc-docs/src/arc-lang/Module.md deleted file mode 100644 index f7a87207d..000000000 --- a/arc-docs/src/arc-lang/Module.md +++ /dev/null @@ -1,27 +0,0 @@ -# Modules - -A **module** is a named unit of encapsulation which may contain items and other modules. - -```grammar -Module ::= "mod" [Name] "{" [Item]* "}" -``` - -Modules form a hierarchy through nesting. This hierarchy is in addition tied to the file system hierarchy (similar to Rust): - -```text -my-project/ - src/ - main.arc # :: (root module) - foo/ - mod.arc # ::foo - bar/ - mod.arc # ::foo::bar - baz/ - mod.arc # ::foo::baz -``` - -## Examples - -```arc-lang -{{#include ../../../arc-lang/examples/modules.arc:example}} -``` diff --git a/arc-docs/src/arc-lang/Name.md b/arc-docs/src/arc-lang/Name.md deleted file mode 100644 index ed40fcad5..000000000 --- a/arc-docs/src/arc-lang/Name.md +++ /dev/null @@ -1,13 +0,0 @@ -# Names - -A **name** is a symbolic identifier which can be assigned to a **variable** or **item**. - -```grammar -Name ::= [a-zA-Z_][a-zA-Z_0-9]* -``` - -## Examples - -```arc-lang -{{#include ../../../arc-lang/examples/names.arc:example}} -``` diff --git a/arc-docs/src/arc-lang/Params.md b/arc-docs/src/arc-lang/Params.md deleted file mode 100644 index 8c2ca7d8d..000000000 --- a/arc-docs/src/arc-lang/Params.md +++ /dev/null @@ -1,15 +0,0 @@ -# Parameters - -Parameters are used in function and task definitions. In general, they do not need to be type annotated. - -```grammar -Params ::= "(" [Param]","+ ")" - -Param ::= [Pattern] (":" [Type] )? -``` - -### Examples - -```arc-lang -{{#include ../../../arc-lang/examples/params.arc:example}} -``` diff --git a/arc-docs/src/arc-lang/Path.md b/arc-docs/src/arc-lang/Path.md deleted file mode 100644 index 006f5b7bf..000000000 --- a/arc-docs/src/arc-lang/Path.md +++ /dev/null @@ -1,20 +0,0 @@ -# Paths - -A **path** is a list of names which point to an **item** in the module hierarchy. - -```grammar -Path ::= "::"? [Name]"::"* [Name] -``` - -Paths can be both *relative* and *absolute*. Absolute paths are absolute with respect to the root of the module hierarchy. Relative paths are relative with respect to the current namespace. - -```arc-lang -mod1::mod2::MyItem # Relative path -::mod1::mod2::MyItem # Absolute path -``` - -### Examples - -```arc-lang -{{#include ../../../arc-lang/examples/paths.arc:example}} -``` diff --git a/arc-docs/src/arc-lang/Pattern.md b/arc-docs/src/arc-lang/Pattern.md deleted file mode 100644 index 6bb62db2c..000000000 --- a/arc-docs/src/arc-lang/Pattern.md +++ /dev/null @@ -1,40 +0,0 @@ -# Patterns - -A **pattern** is a syntactic construct for deconstructing a **value** and binding its parts to variables. - -```grammar -Pattern ::= - | [Name] # Variable binding - | [Value] # Value comparison - | "{" ([Name] (":" [Pattern])?)","+ "}" # Record deconstruction - | "(" [Pattern]","+ ")" # Tuple deconstruction - | [Pattern]? ".." ("="? [Pattern])? # Range deconstruction - | [Path] "(" [Pattern] ")" # Variant deconstruction - | [Pattern] "or" [Pattern] # Alternation -``` - -## Examples - -### Tuples - -```arc-lang -{{#include ../../../arc-lang/examples/tuple-patterns.arc:example}} -``` - -### Records - -```arc-lang -{{#include ../../../arc-lang/examples/record-patterns.arc:example}} -``` - -### Enums - -```arc-lang -{{#include ../../../arc-lang/examples/enum-patterns.arc:example}} -``` - -### Enums - -```arc-lang -{{#include ../../../arc-lang/examples/vector-patterns.arc:example}} -``` diff --git a/arc-docs/src/arc-lang/Program.md b/arc-docs/src/arc-lang/Program.md deleted file mode 100644 index d5b7503aa..000000000 --- a/arc-docs/src/arc-lang/Program.md +++ /dev/null @@ -1,15 +0,0 @@ -# Programs - -An Arc-Lang program is a sequence of items. Programs start their execution from a main function. - -```grammar -Program ::= [Item]* -``` - -Source files are suffixed with the `.arc` file extension. - -### Examples - -```arc-lang -{{#include ../../../arc-lang/examples/program.arc:example}} -``` diff --git a/arc-docs/src/arc-lang/Query.md b/arc-docs/src/arc-lang/Query.md deleted file mode 100644 index 3140b87f7..000000000 --- a/arc-docs/src/arc-lang/Query.md +++ /dev/null @@ -1,11 +0,0 @@ -# Queries - -Queries can be formulated over data streams using the `from` keyword, followed by a list of statements. - -``` -Query ::= - -``` - -### Examples - diff --git a/arc-docs/src/arc-lang/Stmt.md b/arc-docs/src/arc-lang/Stmt.md deleted file mode 100644 index 169521132..000000000 --- a/arc-docs/src/arc-lang/Stmt.md +++ /dev/null @@ -1,10 +0,0 @@ -# Statements - -A **statement** is either a variable assignment or an expression whose result is ignored. - -```grammar -Stmt ::= - | ";" - | [Expr] ";" - | [Assign] -``` diff --git a/arc-docs/src/arc-lang/Task.md b/arc-docs/src/arc-lang/Task.md deleted file mode 100644 index dd2c44d96..000000000 --- a/arc-docs/src/arc-lang/Task.md +++ /dev/null @@ -1,29 +0,0 @@ -# Tasks - -A **task** is an asynchronous function which can suspend its execution to wait for events. The `receive`, `on`, and `!` expressions can (for now) only be used inside tasks. - -```grammar -Task ::= "task" [Name] [Generics]? [Params] ":" [Params] [Block] -``` - -## Examples - -### Basic task - -```arc-lang -{{#include ../../../arc-lang/examples/task-identity.arc:example}} -``` - -### Lambda tasks - -```arc-lang -{{#include ../../../arc-lang/examples/task-lambda.arc:example}} -``` - -### Multi-Input Tasks - -```arc-lang -{{#include ../../../arc-lang/examples/task-merge.arc:example}} -``` - -### Multi-Output Tasks diff --git a/arc-docs/src/arc-lang/Type.md b/arc-docs/src/arc-lang/Type.md deleted file mode 100644 index bd6803415..000000000 --- a/arc-docs/src/arc-lang/Type.md +++ /dev/null @@ -1,32 +0,0 @@ -# Types - -All expressions in arc-lang have a statically inferred type which indicates what set of values they evaluate into. Types of items and variables can be inferred, and thus do not need to be annotated unless desired. - -```grammar -Type ::= - | "#{" ([Name] ":" [Type])","+ "}" # Record-type - | "(" [Type]","+ ")" # Tuple-type - | "fun" "(" [Type]","+ ")" ":" [Type] # Function-type - | [Type]? ".." ("="? [Type])? # Range-type - | [Path] ("[" [Type]","* "]")? # Item-type (with optional type parameters) -``` - -## Examples - -Some examples of different types: - -```arc-lang -{{#include ../../../arc-lang/examples/types.arc:record}} -{{#include ../../../arc-lang/examples/types.arc:tuple}} -{{#include ../../../arc-lang/examples/types.arc:function}} -{{#include ../../../arc-lang/examples/types.arc:inclusive_range}} -{{#include ../../../arc-lang/examples/types.arc:exclusive_range}} -``` - -# Standard types - -The following types are provided in the [standard library](https://github.com/cda-group/arc/blob/master/arc-lang/stdlib/stdlib.arc) of Arc-Lang: - -```arc-lang -{{#exec grep -F 'extern type' ../arc-lang/stdlib/stdlib.arc}} -``` diff --git a/arc-docs/src/arc-lang/TypeAlias.md b/arc-docs/src/arc-lang/TypeAlias.md deleted file mode 100644 index cc9f91ac9..000000000 --- a/arc-docs/src/arc-lang/TypeAlias.md +++ /dev/null @@ -1,15 +0,0 @@ -# Type Aliases - -A **type alias** is a purely cosmetic alias of a type. - -```grammar -TypeAlias ::= "type" [Name] [Generics]? "=" [Type] ";" -``` - -## Example - -The following code defines type aliases for representing lines on a two-dimensional plane, and a function for calculating the length of a line. - -```arc-lang -{{#include ../../../arc-lang/examples/type-alias.arc:example}} -``` diff --git a/arc-docs/src/arc-lang/TypeClass.md b/arc-docs/src/arc-lang/TypeClass.md deleted file mode 100644 index 8db7e1a0a..000000000 --- a/arc-docs/src/arc-lang/TypeClass.md +++ /dev/null @@ -1,15 +0,0 @@ -# Type Classes - -Type classes are written with the `class` keyword. - -```grammar -TypeClass ::= "class" [Name] [Generics]? "{" [[Decl]]","+ "}" - -Decl ::= "def" [Name] [Generics]? "(" [Type]","+ ")" -``` - -## Examples - -```arc-lang -{{#include ../../../arc-lang/examples/type-class.arc:class}} -``` diff --git a/arc-docs/src/arc-lang/Use.md b/arc-docs/src/arc-lang/Use.md deleted file mode 100644 index 290cd0b50..000000000 --- a/arc-docs/src/arc-lang/Use.md +++ /dev/null @@ -1,16 +0,0 @@ -# Uses - -A **use**-item imports a name into the current namespace and optionally aliases it. - - -```grammar -Use ::= "use" [Path] ("as" [Name])?; -``` - -## Examples - -The following code creates a `Person`-type and an alias and use it as a `Human`. - -```arc-lang -{{#include ../../../arc-lang/examples/uses.arc:example}} -``` diff --git a/arc-docs/src/arc-lang/Value.md b/arc-docs/src/arc-lang/Value.md deleted file mode 100644 index dc94399f0..000000000 --- a/arc-docs/src/arc-lang/Value.md +++ /dev/null @@ -1,47 +0,0 @@ -# Values - -A **value** is the result of evaluating an **expression**. - -```grammar -Value ::= - | "#{" ([Name] ":" [Value])","+ "}" # Record-value - | "(" [Value]","+ ")" # Tuple-value - | "fun" "(" ([Pattern] ":" [Type])","+ ")" ":" [Expr] # Lambda-value - | [Value]? ".." ("="? [Value])? # Range-value - | [Path] # Item-value - | [Path] "(" [Value] ")" # Enum-value - | [Literal] - -Literal ::= - | "true" | "false" # Literal boolean - | "unit" # Literal unit - | "'"[^"'"]"'" # Literal character - | """[^"""]*""" # Literal string - | ["1"-"9"]["0"-"9"]* # Literal integer - | ["1"-"9"]["0"-"9"]*"."["0"-"9"]* # Literal floating point - | [[DateTime]] - | [[Duration]] - -DateTime ::= - | ["0"-"9"]+"-"["0"-"9"]+"-"["0"-"9"]+ # Date - | ["0"-"9"]+"-"["0"-"9"]+"-"["0"-"9"]+"T"["0"-"9"]+":"["0"-"9"]+":"["0"-"9"]+ # Date + Time - | ["0"-"9"]+"-"["0"-"9"]+"-"["0"-"9"]+"T"["0"-"9"]+":"["0"-"9"]+":"["0"-"9"]+("+"|"-")["0"-"9"]+":"["0"-"9"]+ # Date + Time + Zone - -Duration ::= - | ["0"-"9"]+"ns" # Nanosecond - | ["0"-"9"]+"us" # Microsecond - | ["0"-"9"]+"ms" # Millisecond - | ["0"-"9"]+"s" # Second - | ["0"-"9"]+"m" # Minute - | ["0"-"9"]+"h" # Hour - | ["0"-"9"]+"d" # Day - | ["0"-"9"]+"w" # Week -``` - -## Examples - -Some examples of different values: - -```arc-lang -{{#include ../../../arc-lang/examples/values.arc:example}} -``` diff --git a/arc-docs/src/arc-lang/mod.md b/arc-docs/src/arc-lang/mod.md deleted file mode 100644 index a96ae0404..000000000 --- a/arc-docs/src/arc-lang/mod.md +++ /dev/null @@ -1,26 +0,0 @@ -# Language Reference - -The core concepts of Arc are: - -* [**Names**](Name.md) -* [**Paths**](Path.md) -* [**Values**](Value.md) -* [**Types**](Type.md) -* [**Expressions**](Expr.md) -* [**Patterns**](Pattern.md) -* [**Items**](Item.md) - -In the following sections, we will explain each concept by presenting its syntax and discussing its semantics through examples. Syntax will be explained using a Regex-based variation of the BNF grammar where: - -* `+` and `*` denote repetition. -* `?` is for optional rules. -* `(` `)` indicates grouping. -* `|` is for alternation. -* `[` `]` for is character-alternation (e.g., `abc`). -* `-` is for ranges (e.g., `a-zA-Z`). -* `.` is for matching any character. -* `\` is for escaping characters. -* Non-terminals are written as uppercase (e.g., `Expr`). -* Terminals are written in blue text (e.g., ) - -Some code examples do not yet compile. These are highlighted with an orange background. diff --git a/arc-docs/src/command-line-interface.md b/arc-docs/src/command-line-interface.md deleted file mode 100644 index 93c42785f..000000000 --- a/arc-docs/src/command-line-interface.md +++ /dev/null @@ -1 +0,0 @@ -# Command Line Interface diff --git a/arc-docs/src/dev/arc-mlir/Block.md b/arc-docs/src/dev/arc-mlir/Block.md deleted file mode 100644 index fa45aae6f..000000000 --- a/arc-docs/src/dev/arc-mlir/Block.md +++ /dev/null @@ -1,7 +0,0 @@ -# Blocks - -A **block** is a sequence of operations. - -```grammar -Block ::= "{" [Operation]* "}" -``` diff --git a/arc-docs/src/dev/arc-mlir/Func.md b/arc-docs/src/dev/arc-mlir/Func.md deleted file mode 100644 index 65e9dc2fd..000000000 --- a/arc-docs/src/dev/arc-mlir/Func.md +++ /dev/null @@ -1,5 +0,0 @@ -# Functions - -```grammar -Func ::= "func" [Path] "(" [Params] ")" "->" [Type] [Block] -``` diff --git a/arc-docs/src/dev/arc-mlir/Item.md b/arc-docs/src/dev/arc-mlir/Item.md deleted file mode 100644 index 2eaf2f79d..000000000 --- a/arc-docs/src/dev/arc-mlir/Item.md +++ /dev/null @@ -1,6 +0,0 @@ -# Items - -```grammar -Item ::= - | [Func] -``` diff --git a/arc-docs/src/dev/arc-mlir/Name.md b/arc-docs/src/dev/arc-mlir/Name.md deleted file mode 100644 index eb710ac00..000000000 --- a/arc-docs/src/dev/arc-mlir/Name.md +++ /dev/null @@ -1,7 +0,0 @@ -# Names - -A **name** is a symbolic identifier which can be assigned to a **variable** or **item**. - -```grammar -Name ::= [a-zA-Z_][a-zA-Z_0-9]* -``` diff --git a/arc-docs/src/dev/arc-mlir/Operation.md b/arc-docs/src/dev/arc-mlir/Operation.md deleted file mode 100644 index e104c40b3..000000000 --- a/arc-docs/src/dev/arc-mlir/Operation.md +++ /dev/null @@ -1,80 +0,0 @@ -# Operations - -This section describes the operations of Arc-MLIR. - -```grammar -Operation ::= - | [[Arc]] - | [[Std]] - | [[Deprecated]] - -Arc ::= - | "arc.keep" "(" [Value] ")" ":" "(" [Type] ")" "->" "()" - | "arc.tan" [Value] ":" [Type] - | "arc.acos" [Value] ":" [Type] - | "arc.asin" [Value] ":" [Type] - | "arc.cosh" [Value] ":" [Type] - | "arc.sinh" [Value] ":" [Type] - | "arc.erf" [Value] ":" [Type] - | "arc.make_struct" "(" [Value]","* ":" [Type]","* ")" ":" [Type] - | "arc.make_enum" [Value] "(" [Value] ":" [Type] ")" ":" [Type] - | "arc.if" "(" [Value] ")" "(" [Block]"," [Block] ")" - | "arc.loop.break" "(" [Value]","+ ")" ":" "(" [Type]","+ ")" "->" "()" - | "arc.adt_constant" [[String]] ":" [Type] - | "arc.constant" [Literal] ":" [Type] - | "arc.cmpi" [[Cmp]]"," [Value]"," [Value] ":" [Type] - | "arc.receive" "(" [Value] ")" ":" "(" [Type] ")" "->" [Type] - | "arc.select" [Value]"," [Value]"," [Value] ":" [Type] - | "arc.send" "(" [Value]"," [Value] ")" "->" "()" - | "arc.enum_access" [[String]] "in" "(" [Value] ":" [Type] ")" ":" [Type] - | "arc.enum_check" "(" [Value] ":" [Type] ")" "is" [[String]] ":" [Type] - | "arc.struct_access" "(" [Value] ")" "{" "field" "=" [[String]] "}" ":" "(" [Type] ")" "->" [Type] - | "arc.addi" [Value]"," [Value] ":" [Type] - | "arc.and" [Value]"," [Value] ":" [Type] - | "arc.divi" [Value]"," [Value] ":" [Type] - | "arc.or" [Value]"," [Value] ":" [Type] - | "arc.muli" [Value]"," [Value] ":" [Type] - | "arc.subi" [Value]"," [Value] ":" [Type] - | "arc.remi" [Value]"," [Value] ":" [Type] - | "arc.xor" [Value]"," [Value] ":" [Type] - | "arc.panic" "()" ("msg" "=" [[String]])? : "()" "->" "()" - -Std ::= - | "call" [Path] "(" [Value]","+ ")" ":" "(" [Type]","+ ")" "->" [Type] - | "call_indirect" [Value] "(" [Value]","+ ")" ":" "(" [Type]","+ ")" "->" [Type] - | "return" "(" [Value] ")" ":" "(" [Type] ")" "->" "()" - -Deprecated ::= # Deprecated and unused operations - | "arc.emit" "(" [Value]"," [Value] ")" "->" "(" [Type]"," [Type] ")" "->" "()" - | "arc.make_vector" "(" [Value]","* ")" ":" ([Type]","*) "->" [Type] - | "arc.make_tuple" "(" [Value]","* ")" ":" "(" [Type]","* ")" "->" [Type] - | "arc.make_tensor" "(" [Value]","* ")" ":" "(" [Type]","* ")" - | "arc.index_tuple" "(" [Value] ")" "{" "index" "=" [[Int]] "}" ":" "(" [Type] ")" "->" [Type] - | "arc.make_appender" "()" ":" "()" -> [Type] - | "arc.merge" "(" [Value]"," [Value] ")" ":" "(" [Type]","* ")" "->" [Type] - | "arc.result" "(" [Value] ")" ":" "(" [Type]","* ")" "->" [Type] - | "arc.appender_push" "(" [Value]"," [Value] ")" ":" "(" [Type]"," [Type] ")" "->" "()" - | "arc.appender_fold" "(" [Value]"," [Value] ")" ":" "(" [Type]"," [Type] ")" "->" [Type] - | "arc.map_contains" "(" [Value]"," [Value] ")" ":" "(" [Type]"," [Type] ")" "->" [Type] - | "arc.map_get" "(" [Value]"," [Value] ")" ":" "(" [Type]"," [Type] ")" "->" [Type] - | "arc.map_insert" "(" [Value]"," [Value]"," [Value] ")" ":" "(" [Type]"," [Type]"," [Type] ")" "->" [Type] - | "arc.map_remove" "(" [Value]"," [Value] ")" ":" "(" [Type]"," [Type] ")" "->" [Type] - | "arc.value_write" "(" [Value]"," [Value] ")" ":" "(" [Type]"," [Type] ")" "->" [Type] - | "arc.value_read" "(" [Value] ")" ":" "(" [Type] ")" "->" [Type] - -Int ::= ["1"-"9"]["0"-"9"]*"."["0"-"9"]* - -String ::= """[^"""]*""" - -Literal ::= - | Int - | String - -Cmp ::= "eq" | "ne" | "lt" | "le" | "gt" | "ge" -``` - -## Builtin functions - -```arc-lang -{{#exec grep -h -o 'func [^{]*' ../arc-lang/stdlib/stdlib.mlir}} -``` diff --git a/arc-docs/src/dev/arc-mlir/Params.md b/arc-docs/src/dev/arc-mlir/Params.md deleted file mode 100644 index f4a30cadd..000000000 --- a/arc-docs/src/dev/arc-mlir/Params.md +++ /dev/null @@ -1,7 +0,0 @@ -# Parameters - -```grammar -Params ::= [[Param]]","* - -Param ::= [Value] ":" [Type] -``` diff --git a/arc-docs/src/dev/arc-mlir/Program.md b/arc-docs/src/dev/arc-mlir/Program.md deleted file mode 100644 index 0a00c8021..000000000 --- a/arc-docs/src/dev/arc-mlir/Program.md +++ /dev/null @@ -1,5 +0,0 @@ -# Programs - -```grammar -Program ::= "mod" [Path] "{" [Item]","* "}" -``` diff --git a/arc-docs/src/dev/arc-mlir/Type.md b/arc-docs/src/dev/arc-mlir/Type.md deleted file mode 100644 index cc215a6db..000000000 --- a/arc-docs/src/dev/arc-mlir/Type.md +++ /dev/null @@ -1,21 +0,0 @@ -# Types - -Unlike Arc-Lang, Arc-MLIR has no nominal types. - -```grammar -Type ::= - | "!arc.struct" "<" ([Name] ":" [Type])","* ">" - | "!arc.enum" "<" ([Name] ":" [Type])","* ">" - | "!arc.adt" "<" [String] ">" - | "!arc.stream" "<" [Type] ">" - | "f32" | "f64" | "i32" | "i64" | "si32" | "si64" - | "()" - | [[Deprecated]] - -Deprecated ::= # Deprecated and unused types - | "!arc.arcon.value" "<" [Type] ">" - | "!arc.arcon.appender" "<" [Type] ">" - | "!arc.arcon.map" "<" [Type]"," [Type] ">" - -String ::= """[^"""]*""" -``` diff --git a/arc-docs/src/dev/arc-mlir/Value.md b/arc-docs/src/dev/arc-mlir/Value.md deleted file mode 100644 index 8d8cca3a9..000000000 --- a/arc-docs/src/dev/arc-mlir/Value.md +++ /dev/null @@ -1,5 +0,0 @@ -# Values - -```grammar -Value ::= "%" [Name] -``` diff --git a/arc-docs/src/dev/arc-mlir/mod.md b/arc-docs/src/dev/arc-mlir/mod.md deleted file mode 100644 index fceaf1272..000000000 --- a/arc-docs/src/dev/arc-mlir/mod.md +++ /dev/null @@ -1,3 +0,0 @@ -# Language Reference - -This section gives a definition of Arc-MLIR's grammar. diff --git a/arc-docs/src/dev/arc-runtime/data-model.md b/arc-docs/src/dev/arc-runtime/data-model.md deleted file mode 100644 index cdaf25e09..000000000 --- a/arc-docs/src/dev/arc-runtime/data-model.md +++ /dev/null @@ -1,26 +0,0 @@ -# Data Model - -Values in Arc-Lang appear -Values in Arc-Lang are separated into semantic categories. - -## Copying Semantics - -All values in Arc-Lang can be sent over channels - -Those which are fixed-size and - -* Fixed-size vs dynamic-size -* Interior Mutability vs -* QoL: Debug, Clone -* Sharable vs Sendable -* Garbage collection -Values in Arc-Lang appear to the programmer as -Every value in Arc-Runtime Arc-Runtime has two kinds of values - -Now: -* Writing a lot about tasks and channels in Arc-Lang -* Writing about other parts: arc-runtime, language integrated queries -* Reading Martin Klepmann's book to find applications - * Edge vs Cloud - * Fault-tolerance - * Meeting with students diff --git a/arc-docs/src/dev/arc-runtime/execution-model.md b/arc-docs/src/dev/arc-runtime/execution-model.md deleted file mode 100644 index 9658fe4c1..000000000 --- a/arc-docs/src/dev/arc-runtime/execution-model.md +++ /dev/null @@ -1,3 +0,0 @@ -# Execution Model - -Arc-Runtime is implemented on top of the [Kompact](https://github.com/kompics/kompact) framework. To understand how Arc-Runtime executes, diff --git a/arc-docs/src/dev/arc-runtime/mod.md b/arc-docs/src/dev/arc-runtime/mod.md deleted file mode 100644 index e4a138f23..000000000 --- a/arc-docs/src/dev/arc-runtime/mod.md +++ /dev/null @@ -1,7 +0,0 @@ -# Arc-Runtime Reference - -Arc-Runtime is a runtime library, for executing Arc-Lang programs, which focuses on flexibility, portability, native performance, and scalability. Its API provides lower-level abstractions than Arc-Lang that are more general but less safe. Programs written directly in Arc-Runtime can for example deadlock if the programmer is not careful, while Arc-Lang's parser and type system prevents such behavior. Arc-MLIR and Arc-Runtime share different responsibilities in making Arc-Lang programs execute efficiently. - -Arc-MLIR supports ahead-of-time standard compiler optimisations as well as logical and physical optimisations of streaming-relational operators. However, Arc-MLIR makes no assumptions of where programs will execute and what the input data will be. That is, all Arc-MLIR optimisations are based on the source code itself. - -Arc-Runtime supports runtime optimisations which might rely on information that is only known during execution. Streaming programs are expected to run for an indefinite duration and must therefore be able to adapt to changes in their environment. Among its responsibilities, Arc-Runtime must therefore be able to take care of specialisation, scheduling, and scaling decisions. diff --git a/arc-docs/src/dev/ci.md b/arc-docs/src/dev/ci.md deleted file mode 100644 index 2eaa7d14e..000000000 --- a/arc-docs/src/dev/ci.md +++ /dev/null @@ -1,93 +0,0 @@ -Below are instructions for setting up a custom runner, running in a Docker container, for GitHub actions. - -```bash -# Setup docker - -docker pull ubuntu:18.04 -docker run -i -t ubuntu:18.04 /bin/bash - -# Setup user - -passwd # change root password -adduser arc-runner sudo -su -l arc-runner - -# Install apt dependencies - -sudo add-apt-repository ppa:git-core/ppa -y -sudo apt update && apt upgrade -y -sudo apt install -y git vim curl z3 libz3-dev curl libssl-dev gcc pkg-config make ninja-build python zip openjdk-8-jdk software-properties-common texlive-xetex latexmk gettext ccache - -# Install Rust - -curl https://sh.rustup.rs -sSf | sh -source $HOME/.cargo/env -echo 'source $HOME/.cargo/env' >> ~/.bashrc -rustup toolchain add nightly -rustup target add wasm32-unknown-unknown -rustup default nightly -cargo install mdbook -cargo install sccache - -# Install Cmake - -cd ~/ -curl -L https://github.com/Kitware/CMake/releases/download/v3.18.1/cmake-3.18.1.tar.gz --output cmake.tar.gz -tar -xf cmake.tar.gz -cd cmake-3.18.1/ -./bootstrap -make -make install - -# Install LLVM - -curl -L https://releases.llvm.org/9.0.0/clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz --output llvm.tar.xz -tar -xf llvm.tar.xz -mv clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-18.04 llvm -cd llvm -export PATH=~/llvm/bin:$PATH -export LD_LIBRARY_PATH=~/llvm/lib:$LD_LIBRARY_PATH -echo 'export PATH=~/llvm/bin:$PATH' >> ~/.bashrc -echo 'export LD_LIBRARY_PATH=~/llvm/lib:$LD_LIBRARY_PATH' >> ~/.bashrc - -# Install OCaml - -sudo bash -c "sh <(curl -fsSL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh)" -opam init # Make sure to disable sandboxing -eval $(opam env) -opam switch create 4.13.1 -eval $(opam env) -opam install core -opam install dune -opam install menhir - -# Install GitHub Actions Runner - -# Follow this tutorial (Which generates a unique token): -# https://github.com/cda-group/arc/settings/actions/runners/new?arch=x64&os=linux - -# Setup Runner - -./run.sh & -disown - -# To exit the container: - -# [OPTIONAL] Check that everything builds - -cd ~ -git clone https://github.com/cda-group/arc -cd ~/arc -git checkout mlir -git submodule update --init --recursive - -# Check if arc-lang builds - -cd ~/arc/arc-lang -cargo check --all-features --tests --bins --examples --benches - -# Check if arc-mlir builds - -cd ~/arc/arc-mlir/ -./arc-mlir-build -``` diff --git a/arc-docs/src/dev/mod.md b/arc-docs/src/dev/mod.md deleted file mode 100644 index 459110d34..000000000 --- a/arc-docs/src/dev/mod.md +++ /dev/null @@ -1 +0,0 @@ -# Development diff --git a/arc-docs/src/examples/mod.md b/arc-docs/src/examples/mod.md deleted file mode 100644 index 1c0a34766..000000000 --- a/arc-docs/src/examples/mod.md +++ /dev/null @@ -1,3 +0,0 @@ -# Examples - -In this section we describe examples of how to use Arc-Lang. diff --git a/arc-docs/src/examples/oltp.md b/arc-docs/src/examples/oltp.md deleted file mode 100644 index adfb941ef..000000000 --- a/arc-docs/src/examples/oltp.md +++ /dev/null @@ -1 +0,0 @@ -# OLTP diff --git a/arc-docs/src/examples/pulse-detection.md b/arc-docs/src/examples/pulse-detection.md deleted file mode 100644 index 689b6843b..000000000 --- a/arc-docs/src/examples/pulse-detection.md +++ /dev/null @@ -1,79 +0,0 @@ -# [Pulse Detection](https://dl.acm.org/doi/pdf/10.1145/3428251) (Not yet fully supported) - -> Arterial Blood Pressure (ABP) pulse detection [O’Rourke 1971; Zong et al. 2003] is a complex streaming computation, and is difficult to express with existing languages for stream processing. The use of a streaming query language for medical monitoring applications has been considered in [Abbas et al. 2018, 2019]. - -> The ABP signal is collected from the MIT-BIH Polysomnographic database [Ichimaru and Moody 1999]. The signal measurements are of `type VT = {val: V, ts: T}`, where `val` is the value of the signal and `ts` is the timestamp. The signal is uniformly sampled at a frequency of `250Hz`. (...) The ABP waveform contains rich information about the cardiovascular system (e.g., heart rate, systolic, mean, and diastolic arterial pressures). Reliable ABP pulse detection is crucial for extracting this information. -> First, the algorithm preprocesses the signal stream using a low-pass **IIR** filter and a slope sum function (**SSF**), and then it performs the detection of the pulse onset. - -> The low-pass filter **IIR** suppresses high frequency noise, and is defined by `𝑦(𝑛)=2𝑦(𝑛−1)−𝑦(𝑛−2)+𝑥(𝑛)−2𝑥(𝑛−5)+𝑥(𝑛−10)`. The **SSF** is defined by `𝑧(𝑛)=Σ0≤𝑖≤31𝑚𝑎𝑥(0,𝑑(𝑛−𝑖))`, where `𝑑(𝑛)=𝑦(𝑛)−𝑦(𝑛−1)`. It enhances the up-slope of the ABP pulse and restrains the remainder of the pressure waveform. The query `getVTP : Q(VT, VTP)` annotates each item `{val, ts}` of the input stream with an additional component `pval`, which is the result of the preprocessing. The `type VTP = {val: V, ts: T, pval: V}` extends `VT` with this additional component. These preprocessed values have a phase shift of `20ms` (`5` samples), which is introduced by low-pass filtering. - -> The detection of ABP onset is described by the following rules: -> * **R1**. In intervals where the SSF value exceeds a threshold `Thred` (i.e. a tentative pulse), the algorithm selects the *first* and the *maximum* SSF values. -> * **R2**. The pulse detection is accepted only if the *difference* between the first and the maximum SSF values exceeds `100`. -> * **R3**. When the pulse is accepted, the algorithm chooses the first sample that crosses the threshold as the onset point. The detected onset is adjusted by `20ms` (`5` samples) to compensate for the phase shift of low-pass filtering. -> * **R4**. After an onset is detected, to avoid double detection of the same pulse, the detection falls silent for `300ms`. - - -## Implementation (arc-lang) - -```arc-lang -type V = i32; -type T = time; -type VT = {val: V, ts: T}; -type VTP = {val: V, ts: T, pval: V}; - -fun query(stream: ~VT, Thred: V) -> ~PTV { - val lowPass = IIR({−1,2}, {1,0,0,0,0,−2,0,0,0,0,1}); - val diff = SWindow(2, 1, fun(x): x[1] - x[0]); - val sum = SWindow(32, 1, Reduce(fun(x, y): if y > 0 { x + y } else { x })) - val ssf = diff |> sum; - val preProc = Map(fun(x): x.val) |> lowPass |> ssf; - val getVTP = Zip(fun(x, y): {x.val, x.ts, y}) (stream, preProc); - - # R1 - val pulse = TakeWhen(fun(x): x.pval > Thred, fun(x): x.pval < Thred); - val select = Reduce(fun(x): (x, x), ()) - - # TODO - -} -``` - -## Implementation ([StreamQL](https://dl.acm.org/doi/pdf/10.1145/3428251)) - -```text -# Pre-process the signal -lowPass = IIR({−1,2}, {1,0,0,0,0,−2,0,0,0,0,1}) - -diff = sWindow(2, 1, (x, y) -> y − x) - -sum = sWindow(32, 1, reduce((x, y) -> (y > 0) ? (x + y) : x)) - -ssf = diff ≫ sum - -preProc = map(x -> x.val) ≫ lowPass ≫ ssf - -getVTP = annotate(preProc, (x, y) -> ⟨x.val, x.ts, y⟩) - -# select signal interval containing a peak (R1) -pulse = takeWhen(x -> x.pval > Thred, x -> x.pval < Thred) - -# select the first element in interval as the onset sample -# find the measurement with the maximum preprocessed value, -# and store them as a pair ⟨first, max⟩ -select = reduce(x -> ⟨x, x⟩, - ( ⟨f, m⟩, x) -> ⟨f, (x.pval > m.pval) ? x : m⟩) - -# examine the detected pulse (R2) and project the onset -getOnset = filterMap( ⟨f, m⟩ -> m.pval − f.pval > 100, ⟨f, m⟩ -> f) - -detect1 = getVTP ≫ pulse ≫ select ≫ check ≫ getOnset - -rft = skip(75) # after detecting the ABP onset, apply R4 - -detectAll = seq(detect1, iter(rft ≫ detect1)) - -subShift = map(x -> x.ts − 5) # compensate for phase shift - -ABPDetection = detectAll ≫ subShift -``` diff --git a/arc-docs/src/examples/sensor-data-aggregation.md b/arc-docs/src/examples/sensor-data-aggregation.md deleted file mode 100644 index e2160a4ca..000000000 --- a/arc-docs/src/examples/sensor-data-aggregation.md +++ /dev/null @@ -1 +0,0 @@ -# Sensor Data Aggregation diff --git a/arc-docs/src/examples/tf-idf.md b/arc-docs/src/examples/tf-idf.md deleted file mode 100644 index 7bc32fa64..000000000 --- a/arc-docs/src/examples/tf-idf.md +++ /dev/null @@ -1,15 +0,0 @@ -# TF-IDF - -The formula that is used to compute tf-idf is defined as follows: - -* `tf-idf(t, d) = tf(t, d) * idf(t)` - * `t` is a term - * `d` is a document in a document set - * `idf(t) = log [n/df(t)] + 1` is the inverse document frequency - * `n` is the total number of documents in the document set - * `df(t)` is the document frequency of `t` - * i.e., number of documents containing the term `t` - * `tf(t, d)` is the term frequency of `t` in `d` - * i.e., number of occurrences of the term `t` within the document `d` - * `1` is added so that terms which occur in all documents will not be - entirely ignored. diff --git a/arc-docs/src/examples/word-count.md b/arc-docs/src/examples/word-count.md deleted file mode 100644 index 5ffb8c546..000000000 --- a/arc-docs/src/examples/word-count.md +++ /dev/null @@ -1,7 +0,0 @@ -# Word Count - -Word count is a simple way to count the number of words in a text. The code for calculating a wordcount is as follows. - -```arc-lang -{{#include ../../../arc-lang/examples/wordcount.arc:example}} -``` diff --git a/arc-docs/src/getting-started.md b/arc-docs/src/getting-started.md deleted file mode 100644 index 6d0c9d3f6..000000000 --- a/arc-docs/src/getting-started.md +++ /dev/null @@ -1,59 +0,0 @@ -# Getting Started - -This section explains how to get started with Arc-Lang. - -## Prerequisites - -The following dependencies are required to build Arc-Lang from source: - -* CMake -* Clang -* Ninja -* Rust - -### macOS - -On macOS, dependencies can be installed with: - -``` -brew install cmake ninja clang -curl https://sh.rustup.rs -sSf | sh -``` - -### Ubuntu - -On Ubuntu, dependencies can be installed with: - -```bash -sudo apt install cmake ninja-build clang -curl https://sh.rustup.rs -sSf | sh -``` - -## Installation - -To install Arc-Lang, clone the repo and run the build script: - -```bash -git clone https://github.com/cda-group/arc/ -cd arc -git submodule update --init --recursive -./build -``` - -The build script installs the `arc` command-line utility along with the arc-runtime library. - -## Hello World - -Arc-Lang files have the `.arc` file extension. For example: - -```arc-lang -# hello-world.arc - -def main() = print("Hello World") -``` - -To execute the above program, run: - -```bash -arc run hello-world.arc -``` diff --git a/arc-docs/src/history/tasks.md b/arc-docs/src/history/tasks.md deleted file mode 100644 index 559ab74f4..000000000 --- a/arc-docs/src/history/tasks.md +++ /dev/null @@ -1,17 +0,0 @@ -# Evolution of Tasks - -In the original design, tasks were able to accept a single input and output stream. - -``` -task Identity(): ~i32 -> ~i32 { - var x = 0; - on event => { - x += 1; - emit x; - } -} -``` - -This was then extended so that tasks could accept multiple input and output streams. - - diff --git a/arc-docs/src/images/DSL-Hierarchy.jpg b/arc-docs/src/images/DSL-Hierarchy.jpg deleted file mode 100644 index b00bce03d15a2d59ad78b164860b254ba59cffcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 527222 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 z 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⩔x_TK!oR2~ujGc(BTc+IO?ba1o&41A~tsKv= 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

      V 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

      wO2{}}scFf+eQk6z_%nB%U6Fa0vw_l2Qj5u}TX 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

      %B0s9iW6h(GWYKj0@H_!|ux6s*)f%7sTNZA~Ob8 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

      2fa2FB=?=d-S{0 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%0DiPMmtV44-;+Yi7rDt5a(}?yI#{ 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

      mkG<0G`>eB~sR&AUB_? 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 uVYe9Jp1gJ0EU*2i!lo|%6n4XR`, and `C = `. Because channels are multicast, all consumers of a channel will pull the same event sequence. To this end, an offset is stored together with each promise in the pull-queue that indicates which event in the data-queue should be pulled. Events can only be evicted from the data-queue if they have been pulled by all consumers. - -## Ordering of Events - -Tasks are not limited to just one input and output channel. In fact, a task can have a dynamic number of input channels (by for example passing the channels in a vector) and a fixed number of output channels. - -```arc-lang -{{#include ../../../arc-lang/examples/task-merge.arc:example}} -``` - -In the above code, `merge` is a task which can be used to combine events from two channels `s0` and `s1` into one `s2`. By deterministic, we mean the task pulls events from the input channels in a specific order. It is also possible to receive events non-deterministically from a set of channels, as soon as they arrive, using the `on` syntax: - -```arc-lang -{{#include ../../../arc-lang/examples/task-union.arc:example}} -``` - -In the above code, `union` is a task which can be used to combine two channels `s0` and `s1` non-deterministically into one `s2`. No ordering guarantees are made between the two channels. - -## Streaming State - -Streaming state is typically exposed explicitly by stream processors. Users need to declare the type of data they want to persistently store and insert read and write operations in their application code to access the state. In Arc-Lang, state is managed implicitly by automatically translating tasks into FSMs (Finite State Machines) that are persisted by the system. - -```arc-lang -{{#include ../../../arc-lang/examples/task-state.arc:example}} -``` - -The code above shows a rolling `reduce` task which reduces a stream using an aggregation function `f`, beginning at an initial state `init`. - -Note that state is always encapsulated within a task. It is not possible (as of yet) to share state between tasks. Any value sent over a channel is copied from the producer to the consumer. This allows Arc-Lang programs to be parallelised without having to consider the risk of race conditions. How values are copied is abstracted and can for example be deep (for data with interior mutability), shallow (for immutable data), or lazy (copy-on-write). CRDTs and transactional memory are under consideration for enabling shared state. - -## Parallelism - -Tasks and channels enable three forms of parallelism: -* **Pipeline parallelism**: Multiple tasks can pipeline their execution through channels. -* **Task parallelism**: Multiple tasks can process data from the same channel in parallel. -* **Data parallelism**: The same task can process data from multiple channels in parallel. - -An example of pipeline parallelism: - -```arc-lang -{{#include ../../../arc-lang/examples/parallelism.arc:pipeline}} -``` - -An example of task parallelism: - -```arc-lang -{{#include ../../../arc-lang/examples/parallelism.arc:task}} -``` - -Arc-Lang chooses to make data parallelism implicit since this is the most common form of parallelism. All of the above examples are thus data parallel. The idea of data parallelism is that channels are divided into partitions that can transport events in parallel. Each event has an associated *key* that determines which partition the event is assigned to. A key can for example be the unique identifier of a sensor that generates data, a location tag, or an article number. Events are required to have a key at the point where they enter the system. It is also possible to change the key of an event. This will be covered in the next section. Note that the method for assigning events to partitions is abstract. This allows Arc-Lang to choose the partitioning approach based on the scenario. Though, currently a static partitioning approach is used. - -## Summary - -Channels of Arc-Lang are planned to support the following properties: - -* **Directions**: Channels can be used to either pull or push data, but not both. Tasks which push data are referred to as "producers" and tasks which pull data are referred to as "consumers". A task can simultaneously be both a producer and a consumer but not for the same channel. -* **Bounded**: Channels have a maximum capacity which, when exceeded, will block the producer from pushing events. Similarly, an empty channel will block the consumer from pulling events. -* **SPMC**: Channels have a single producer and possibly multiple consumers. -* **Multicast**: All consumers of a channel will pull the same event sequence. -* **Exceptions**: A channel can be closed by a producer or consumer. When a channel is closed, all tasks waiting on the channel will be notified. -* **Data parallelism**: A logical channel consists of multiple physical channels which are partitioned using consistent hashing. Data can be transferred over different physical channels in parallel. -* **Deadlock avoidance**: Channels can only be created by instantiating tasks. The output channel of a task cannot be passed as an input channel to the same task or any upstream task. This prevents arbitrary cycles from being created in the dataflow graph, and thus prevents deadlocks. -* **Uni-directional**: Channels can only be used to send data in a single direction, i.e., from producer to consumer. Dataflow graphs created through channels and tasks are always directed and acyclic. -* **Network transparency**: Channels can be used for both local and networked communication. Whether the producer and consumer are on the same machine or on different machines is transparent to the user. -* **Persistence**: Channels should be able to snapshot their state and replay it from an earlier offset. - -## Limitations - -The following restrictions are for now enforced on channels and tasks but may eventually be lifted: - -* Tasks cannot create new tasks. Tasks may only be created by the main-thread of a program. This is because -* It is only possible to push and pull events from channels inside of tasks. diff --git a/arc-docs/theme/book.js b/arc-docs/theme/book.js deleted file mode 100644 index d40440c72..000000000 --- a/arc-docs/theme/book.js +++ /dev/null @@ -1,679 +0,0 @@ -"use strict"; - -// Fix back button cache problem -window.onunload = function () { }; - -// Global variable, shared between modules -function playground_text(playground) { - let code_block = playground.querySelector("code"); - - if (window.ace && code_block.classList.contains("editable")) { - let editor = window.ace.edit(code_block); - return editor.getValue(); - } else { - return code_block.textContent; - } -} - -(function codeSnippets() { - function fetch_with_timeout(url, options, timeout = 6000) { - return Promise.race([ - fetch(url, options), - new Promise((_, reject) => setTimeout(() => reject(new Error('timeout')), timeout)) - ]); - } - - var playgrounds = Array.from(document.querySelectorAll(".playground")); - if (playgrounds.length > 0) { - fetch_with_timeout("https://play.rust-lang.org/meta/crates", { - headers: { - 'Content-Type': "application/json", - }, - method: 'POST', - mode: 'cors', - }) - .then(response => response.json()) - .then(response => { - // get list of crates available in the rust playground - let playground_crates = response.crates.map(item => item["id"]); - playgrounds.forEach(block => handle_crate_list_update(block, playground_crates)); - }); - } - - function handle_crate_list_update(playground_block, playground_crates) { - // update the play buttons after receiving the response - update_play_button(playground_block, playground_crates); - - // and install on change listener to dynamically update ACE editors - if (window.ace) { - let code_block = playground_block.querySelector("code"); - if (code_block.classList.contains("editable")) { - let editor = window.ace.edit(code_block); - editor.addEventListener("change", function (e) { - update_play_button(playground_block, playground_crates); - }); - // add Ctrl-Enter command to execute rust code - editor.commands.addCommand({ - name: "run", - bindKey: { - win: "Ctrl-Enter", - mac: "Ctrl-Enter" - }, - exec: _editor => run_rust_code(playground_block) - }); - } - } - } - - // updates the visibility of play button based on `no_run` class and - // used crates vs ones available on http://play.rust-lang.org - function update_play_button(pre_block, playground_crates) { - var play_button = pre_block.querySelector(".play-button"); - - // skip if code is `no_run` - if (pre_block.querySelector('code').classList.contains("no_run")) { - play_button.classList.add("hidden"); - return; - } - - // get list of `extern crate`'s from snippet - var txt = playground_text(pre_block); - var re = /extern\s+crate\s+([a-zA-Z_0-9]+)\s*;/g; - var snippet_crates = []; - var item; - while (item = re.exec(txt)) { - snippet_crates.push(item[1]); - } - - // check if all used crates are available on play.rust-lang.org - var all_available = snippet_crates.every(function (elem) { - return playground_crates.indexOf(elem) > -1; - }); - - if (all_available) { - play_button.classList.remove("hidden"); - } else { - play_button.classList.add("hidden"); - } - } - - function run_rust_code(code_block) { - var result_block = code_block.querySelector(".result"); - if (!result_block) { - result_block = document.createElement('code'); - result_block.className = 'result hljs language-bash'; - - code_block.append(result_block); - } - - let text = playground_text(code_block); - let classes = code_block.querySelector('code').classList; - let edition = "2015"; - if(classes.contains("edition2018")) { - edition = "2018"; - } else if(classes.contains("edition2021")) { - edition = "2021"; - } - var params = { - version: "stable", - optimize: "0", - code: text, - edition: edition - }; - - if (text.indexOf("#![feature") !== -1) { - params.version = "nightly"; - } - - result_block.innerText = "Running..."; - - fetch_with_timeout("https://play.rust-lang.org/evaluate.json", { - headers: { - 'Content-Type': "application/json", - }, - method: 'POST', - mode: 'cors', - body: JSON.stringify(params) - }) - .then(response => response.json()) - .then(response => { - if (response.result.trim() === '') { - result_block.innerText = "No output"; - result_block.classList.add("result-no-output"); - } else { - result_block.innerText = response.result; - result_block.classList.remove("result-no-output"); - } - }) - .catch(error => result_block.innerText = "Playground Communication: " + error.message); - } - - // Syntax highlighting Configuration - hljs.configure({ - tabReplace: ' ', // 4 spaces - languages: [], // Languages used for auto-detection - }); - - let code_nodes = Array - .from(document.querySelectorAll('code')) - // Don't highlight `inline code` blocks in headers. - .filter(function (node) {return !node.parentElement.classList.contains("header"); }); - - if (window.ace) { - // language-rust class needs to be removed for editable - // blocks or highlightjs will capture events - code_nodes - .filter(function (node) {return node.classList.contains("editable"); }) - .forEach(function (block) { block.classList.remove('language-rust'); }); - - Array - code_nodes - .filter(function (node) {return !node.classList.contains("editable"); }) - .forEach(function (block) { hljs.highlightBlock(block); }); - } else { - code_nodes.forEach(function (block) { hljs.highlightBlock(block); }); - } - - // Adding the hljs class gives code blocks the color css - // even if highlighting doesn't apply - code_nodes.forEach(function (block) { block.classList.add('hljs'); }); - - Array.from(document.querySelectorAll("code.language-rust")).forEach(function (block) { - - var lines = Array.from(block.querySelectorAll('.boring')); - // If no lines were hidden, return - if (!lines.length) { return; } - block.classList.add("hide-boring"); - - var buttons = document.createElement('div'); - buttons.className = 'buttons'; - buttons.innerHTML = ""; - - // add expand button - var pre_block = block.parentNode; - pre_block.insertBefore(buttons, pre_block.firstChild); - - pre_block.querySelector('.buttons').addEventListener('click', function (e) { - if (e.target.classList.contains('fa-eye')) { - e.target.classList.remove('fa-eye'); - e.target.classList.add('fa-eye-slash'); - e.target.title = 'Hide lines'; - e.target.setAttribute('aria-label', e.target.title); - - block.classList.remove('hide-boring'); - } else if (e.target.classList.contains('fa-eye-slash')) { - e.target.classList.remove('fa-eye-slash'); - e.target.classList.add('fa-eye'); - e.target.title = 'Show hidden lines'; - e.target.setAttribute('aria-label', e.target.title); - - block.classList.add('hide-boring'); - } - }); - }); - - if (window.playground_copyable) { - Array.from(document.querySelectorAll('pre code')).forEach(function (block) { - var pre_block = block.parentNode; - if (!pre_block.classList.contains('playground')) { - var buttons = pre_block.querySelector(".buttons"); - if (!buttons) { - buttons = document.createElement('div'); - buttons.className = 'buttons'; - pre_block.insertBefore(buttons, pre_block.firstChild); - } - - var clipButton = document.createElement('button'); - clipButton.className = 'fa fa-copy clip-button'; - clipButton.title = 'Copy to clipboard'; - clipButton.setAttribute('aria-label', clipButton.title); - clipButton.innerHTML = ''; - - buttons.insertBefore(clipButton, buttons.firstChild); - } - }); - } - - // Process playground code blocks - Array.from(document.querySelectorAll(".playground")).forEach(function (pre_block) { - // Add play button - var buttons = pre_block.querySelector(".buttons"); - if (!buttons) { - buttons = document.createElement('div'); - buttons.className = 'buttons'; - pre_block.insertBefore(buttons, pre_block.firstChild); - } - - var runCodeButton = document.createElement('button'); - runCodeButton.className = 'fa fa-play play-button'; - runCodeButton.hidden = true; - runCodeButton.title = 'Run this code'; - runCodeButton.setAttribute('aria-label', runCodeButton.title); - - buttons.insertBefore(runCodeButton, buttons.firstChild); - runCodeButton.addEventListener('click', function (e) { - run_rust_code(pre_block); - }); - - if (window.playground_copyable) { - var copyCodeClipboardButton = document.createElement('button'); - copyCodeClipboardButton.className = 'fa fa-copy clip-button'; - copyCodeClipboardButton.innerHTML = ''; - copyCodeClipboardButton.title = 'Copy to clipboard'; - copyCodeClipboardButton.setAttribute('aria-label', copyCodeClipboardButton.title); - - buttons.insertBefore(copyCodeClipboardButton, buttons.firstChild); - } - - let code_block = pre_block.querySelector("code"); - if (window.ace && code_block.classList.contains("editable")) { - var undoChangesButton = document.createElement('button'); - undoChangesButton.className = 'fa fa-history reset-button'; - undoChangesButton.title = 'Undo changes'; - undoChangesButton.setAttribute('aria-label', undoChangesButton.title); - - buttons.insertBefore(undoChangesButton, buttons.firstChild); - - undoChangesButton.addEventListener('click', function () { - let editor = window.ace.edit(code_block); - editor.setValue(editor.originalCode); - editor.clearSelection(); - }); - } - }); -})(); - -(function themes() { - var html = document.querySelector('html'); - var themeToggleButton = document.getElementById('theme-toggle'); - var themePopup = document.getElementById('theme-list'); - var themeColorMetaTag = document.querySelector('meta[name="theme-color"]'); - var stylesheets = { - ayuHighlight: document.querySelector("[href$='ayu-highlight.css']"), - tomorrowNight: document.querySelector("[href$='tomorrow-night.css']"), - highlight: document.querySelector("[href$='highlight.css']"), - }; - - function showThemes() { - themePopup.style.display = 'block'; - themeToggleButton.setAttribute('aria-expanded', true); - themePopup.querySelector("button#" + get_theme()).focus(); - } - - function hideThemes() { - themePopup.style.display = 'none'; - themeToggleButton.setAttribute('aria-expanded', false); - themeToggleButton.focus(); - } - - function get_theme() { - var theme; - try { theme = localStorage.getItem('mdbook-theme'); } catch (e) { } - if (theme === null || theme === undefined) { - return default_theme; - } else { - return theme; - } - } - - function set_theme(theme, store = true) { - let ace_theme; - - if (theme == 'coal' || theme == 'navy') { - stylesheets.ayuHighlight.disabled = true; - stylesheets.tomorrowNight.disabled = false; - stylesheets.highlight.disabled = true; - - ace_theme = "ace/theme/tomorrow_night"; - } else if (theme == 'ayu') { - stylesheets.ayuHighlight.disabled = false; - stylesheets.tomorrowNight.disabled = true; - stylesheets.highlight.disabled = true; - ace_theme = "ace/theme/tomorrow_night"; - } else { - stylesheets.ayuHighlight.disabled = true; - stylesheets.tomorrowNight.disabled = true; - stylesheets.highlight.disabled = false; - ace_theme = "ace/theme/dawn"; - } - - setTimeout(function () { - themeColorMetaTag.content = getComputedStyle(document.body).backgroundColor; - }, 1); - - if (window.ace && window.editors) { - window.editors.forEach(function (editor) { - editor.setTheme(ace_theme); - }); - } - - var previousTheme = get_theme(); - - if (store) { - try { localStorage.setItem('mdbook-theme', theme); } catch (e) { } - } - - html.classList.remove(previousTheme); - html.classList.add(theme); - } - - // Set theme - var theme = get_theme(); - - set_theme(theme, false); - - themeToggleButton.addEventListener('click', function () { - if (themePopup.style.display === 'block') { - hideThemes(); - } else { - showThemes(); - } - }); - - themePopup.addEventListener('click', function (e) { - var theme; - if (e.target.className === "theme") { - theme = e.target.id; - } else if (e.target.parentElement.className === "theme") { - theme = e.target.parentElement.id; - } else { - return; - } - set_theme(theme); - }); - - themePopup.addEventListener('focusout', function(e) { - // e.relatedTarget is null in Safari and Firefox on macOS (see workaround below) - if (!!e.relatedTarget && !themeToggleButton.contains(e.relatedTarget) && !themePopup.contains(e.relatedTarget)) { - hideThemes(); - } - }); - - // Should not be needed, but it works around an issue on macOS & iOS: https://github.com/rust-lang/mdBook/issues/628 - document.addEventListener('click', function(e) { - if (themePopup.style.display === 'block' && !themeToggleButton.contains(e.target) && !themePopup.contains(e.target)) { - hideThemes(); - } - }); - - document.addEventListener('keydown', function (e) { - if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) { return; } - if (!themePopup.contains(e.target)) { return; } - - switch (e.key) { - case 'Escape': - e.preventDefault(); - hideThemes(); - break; - case 'ArrowUp': - e.preventDefault(); - var li = document.activeElement.parentElement; - if (li && li.previousElementSibling) { - li.previousElementSibling.querySelector('button').focus(); - } - break; - case 'ArrowDown': - e.preventDefault(); - var li = document.activeElement.parentElement; - if (li && li.nextElementSibling) { - li.nextElementSibling.querySelector('button').focus(); - } - break; - case 'Home': - e.preventDefault(); - themePopup.querySelector('li:first-child button').focus(); - break; - case 'End': - e.preventDefault(); - themePopup.querySelector('li:last-child button').focus(); - break; - } - }); -})(); - -(function sidebar() { - var html = document.querySelector("html"); - var sidebar = document.getElementById("sidebar"); - var sidebarLinks = document.querySelectorAll('#sidebar a'); - var sidebarToggleButton = document.getElementById("sidebar-toggle"); - var sidebarResizeHandle = document.getElementById("sidebar-resize-handle"); - var firstContact = null; - - function showSidebar() { - html.classList.remove('sidebar-hidden') - html.classList.add('sidebar-visible'); - Array.from(sidebarLinks).forEach(function (link) { - link.setAttribute('tabIndex', 0); - }); - sidebarToggleButton.setAttribute('aria-expanded', true); - sidebar.setAttribute('aria-hidden', false); - try { localStorage.setItem('mdbook-sidebar', 'visible'); } catch (e) { } - } - - - var sidebarAnchorToggles = document.querySelectorAll('#sidebar a.toggle'); - - function toggleSection(ev) { - ev.currentTarget.parentElement.classList.toggle('expanded'); - } - - Array.from(sidebarAnchorToggles).forEach(function (el) { - el.addEventListener('click', toggleSection); - }); - - function hideSidebar() { - html.classList.remove('sidebar-visible') - html.classList.add('sidebar-hidden'); - Array.from(sidebarLinks).forEach(function (link) { - link.setAttribute('tabIndex', -1); - }); - sidebarToggleButton.setAttribute('aria-expanded', false); - sidebar.setAttribute('aria-hidden', true); - try { localStorage.setItem('mdbook-sidebar', 'hidden'); } catch (e) { } - } - - // Toggle sidebar - sidebarToggleButton.addEventListener('click', function sidebarToggle() { - if (html.classList.contains("sidebar-hidden")) { - var current_width = parseInt( - document.documentElement.style.getPropertyValue('--sidebar-width'), 10); - if (current_width < 150) { - document.documentElement.style.setProperty('--sidebar-width', '150px'); - } - showSidebar(); - } else if (html.classList.contains("sidebar-visible")) { - hideSidebar(); - } else { - if (getComputedStyle(sidebar)['transform'] === 'none') { - hideSidebar(); - } else { - showSidebar(); - } - } - }); - - sidebarResizeHandle.addEventListener('mousedown', initResize, false); - - function initResize(e) { - window.addEventListener('mousemove', resize, false); - window.addEventListener('mouseup', stopResize, false); - html.classList.add('sidebar-resizing'); - } - function resize(e) { - var pos = (e.clientX - sidebar.offsetLeft); - if (pos < 20) { - hideSidebar(); - } else { - if (html.classList.contains("sidebar-hidden")) { - showSidebar(); - } - pos = Math.min(pos, window.innerWidth - 100); - document.documentElement.style.setProperty('--sidebar-width', pos + 'px'); - } - } - //on mouseup remove windows functions mousemove & mouseup - function stopResize(e) { - html.classList.remove('sidebar-resizing'); - window.removeEventListener('mousemove', resize, false); - window.removeEventListener('mouseup', stopResize, false); - } - - document.addEventListener('touchstart', function (e) { - firstContact = { - x: e.touches[0].clientX, - time: Date.now() - }; - }, { passive: true }); - - document.addEventListener('touchmove', function (e) { - if (!firstContact) - return; - - var curX = e.touches[0].clientX; - var xDiff = curX - firstContact.x, - tDiff = Date.now() - firstContact.time; - - if (tDiff < 250 && Math.abs(xDiff) >= 150) { - if (xDiff >= 0 && firstContact.x < Math.min(document.body.clientWidth * 0.25, 300)) - showSidebar(); - else if (xDiff < 0 && curX < 300) - hideSidebar(); - - firstContact = null; - } - }, { passive: true }); - - // Scroll sidebar to current active section - var activeSection = document.getElementById("sidebar").querySelector(".active"); - if (activeSection) { - // https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView - activeSection.scrollIntoView({ block: 'center' }); - } -})(); - -(function chapterNavigation() { - document.addEventListener('keydown', function (e) { - if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) { return; } - if (window.search && window.search.hasFocus()) { return; } - - switch (e.key) { - case 'ArrowRight': - e.preventDefault(); - var nextButton = document.querySelector('.nav-chapters.next'); - if (nextButton) { - window.location.href = nextButton.href; - } - break; - case 'ArrowLeft': - e.preventDefault(); - var previousButton = document.querySelector('.nav-chapters.previous'); - if (previousButton) { - window.location.href = previousButton.href; - } - break; - } - }); -})(); - -(function clipboard() { - var clipButtons = document.querySelectorAll('.clip-button'); - - function hideTooltip(elem) { - elem.firstChild.innerText = ""; - elem.className = 'fa fa-copy clip-button'; - } - - function showTooltip(elem, msg) { - elem.firstChild.innerText = msg; - elem.className = 'fa fa-copy tooltipped'; - } - - var clipboardSnippets = new ClipboardJS('.clip-button', { - text: function (trigger) { - hideTooltip(trigger); - let playground = trigger.closest("pre"); - return playground_text(playground); - } - }); - - Array.from(clipButtons).forEach(function (clipButton) { - clipButton.addEventListener('mouseout', function (e) { - hideTooltip(e.currentTarget); - }); - }); - - clipboardSnippets.on('success', function (e) { - e.clearSelection(); - showTooltip(e.trigger, "Copied!"); - }); - - clipboardSnippets.on('error', function (e) { - showTooltip(e.trigger, "Clipboard error!"); - }); -})(); - -(function scrollToTop () { - var menuTitle = document.querySelector('.menu-title'); - - menuTitle.addEventListener('click', function () { - document.scrollingElement.scrollTo({ top: 0, behavior: 'smooth' }); - }); -})(); - -(function controllMenu() { - var menu = document.getElementById('menu-bar'); - - (function controllPosition() { - var scrollTop = document.scrollingElement.scrollTop; - var prevScrollTop = scrollTop; - var minMenuY = -menu.clientHeight - 50; - // When the script loads, the page can be at any scroll (e.g. if you reforesh it). - menu.style.top = scrollTop + 'px'; - // Same as parseInt(menu.style.top.slice(0, -2), but faster - var topCache = menu.style.top.slice(0, -2); - menu.classList.remove('sticky'); - var stickyCache = false; // Same as menu.classList.contains('sticky'), but faster - document.addEventListener('scroll', function () { - scrollTop = Math.max(document.scrollingElement.scrollTop, 0); - // `null` means that it doesn't need to be updated - var nextSticky = null; - var nextTop = null; - var scrollDown = scrollTop > prevScrollTop; - var menuPosAbsoluteY = topCache - scrollTop; - if (scrollDown) { - nextSticky = false; - if (menuPosAbsoluteY > 0) { - nextTop = prevScrollTop; - } - } else { - if (menuPosAbsoluteY > 0) { - nextSticky = true; - } else if (menuPosAbsoluteY < minMenuY) { - nextTop = prevScrollTop + minMenuY; - } - } - if (nextSticky === true && stickyCache === false) { - menu.classList.add('sticky'); - stickyCache = true; - } else if (nextSticky === false && stickyCache === true) { - menu.classList.remove('sticky'); - stickyCache = false; - } - if (nextTop !== null) { - menu.style.top = nextTop + 'px'; - topCache = nextTop; - } - prevScrollTop = scrollTop; - }, { passive: true }); - })(); - (function controllBorder() { - menu.classList.remove('bordered'); - document.addEventListener('scroll', function () { - if (menu.offsetTop === 0) { - menu.classList.remove('bordered'); - } else { - menu.classList.add('bordered'); - } - }, { passive: true }); - })(); -})(); diff --git a/arc-docs/theme/css/chrome.css b/arc-docs/theme/css/chrome.css deleted file mode 100644 index 21c08b930..000000000 --- a/arc-docs/theme/css/chrome.css +++ /dev/null @@ -1,495 +0,0 @@ -/* CSS for UI elements (a.k.a. chrome) */ - -@import 'variables.css'; - -::-webkit-scrollbar { - background: var(--bg); -} -::-webkit-scrollbar-thumb { - background: var(--scrollbar); -} -html { - scrollbar-color: var(--scrollbar) var(--bg); -} -#searchresults a, -.content a:link, -a:visited, -a > .hljs { - color: var(--links); -} - -/* Menu Bar */ - -#menu-bar, -#menu-bar-hover-placeholder { - z-index: 101; - margin: auto calc(0px - var(--page-padding)); -} -#menu-bar { - position: relative; - display: flex; - flex-wrap: wrap; - background-color: var(--bg); - border-bottom-color: var(--bg); - border-bottom-width: 1px; - border-bottom-style: solid; -} -#menu-bar.sticky, -.js #menu-bar-hover-placeholder:hover + #menu-bar, -.js #menu-bar:hover, -.js.sidebar-visible #menu-bar { - position: -webkit-sticky; - position: sticky; - top: 0 !important; -} -#menu-bar-hover-placeholder { - position: sticky; - position: -webkit-sticky; - top: 0; - height: var(--menu-bar-height); -} -#menu-bar.bordered { - border-bottom-color: var(--table-border-color); -} -#menu-bar i, #menu-bar .icon-button { - position: relative; - padding: 0 8px; - z-index: 10; - line-height: var(--menu-bar-height); - cursor: pointer; - transition: color 0.5s; -} -@media only screen and (max-width: 420px) { - #menu-bar i, #menu-bar .icon-button { - padding: 0 5px; - } -} - -.icon-button { - border: none; - background: none; - padding: 0; - color: inherit; -} -.icon-button i { - margin: 0; -} - -.right-buttons { - margin: 0 15px; -} -.right-buttons a { - text-decoration: none; -} - -.left-buttons { - display: flex; - margin: 0 5px; -} -.no-js .left-buttons { - display: none; -} - -.menu-title { - display: inline-block; - font-weight: 200; - font-size: 2.4rem; - line-height: var(--menu-bar-height); - text-align: center; - margin: 0; - flex: 1; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} -.js .menu-title { - cursor: pointer; -} - -.menu-bar, -.menu-bar:visited, -.nav-chapters, -.nav-chapters:visited, -.mobile-nav-chapters, -.mobile-nav-chapters:visited, -.menu-bar .icon-button, -.menu-bar a i { - color: var(--icons); -} - -.menu-bar i:hover, -.menu-bar .icon-button:hover, -.nav-chapters:hover, -.mobile-nav-chapters i:hover { - color: var(--icons-hover); -} - -/* Nav Icons */ - -.nav-chapters { - font-size: 2.5em; - text-align: center; - text-decoration: none; - - position: fixed; - top: 0; - bottom: 0; - margin: 0; - max-width: 150px; - min-width: 90px; - - display: flex; - justify-content: center; - align-content: center; - flex-direction: column; - - transition: color 0.5s, background-color 0.5s; -} - -.nav-chapters:hover { - text-decoration: none; - background-color: var(--theme-hover); - transition: background-color 0.15s, color 0.15s; -} - -.nav-wrapper { - margin-top: 50px; - display: none; -} - -.mobile-nav-chapters { - font-size: 2.5em; - text-align: center; - text-decoration: none; - width: 90px; - border-radius: 5px; - background-color: var(--sidebar-bg); -} - -.previous { - float: left; -} - -.next { - float: right; - right: var(--page-padding); -} - -@media only screen and (max-width: 1080px) { - .nav-wide-wrapper { display: none; } - .nav-wrapper { display: block; } -} - -@media only screen and (max-width: 1380px) { - .sidebar-visible .nav-wide-wrapper { display: none; } - .sidebar-visible .nav-wrapper { display: block; } -} - -/* Inline code */ - -:not(pre) > .hljs { - display: inline; - padding: 0.1em 0.3em; - border-radius: 3px; -} - -:not(pre):not(a) > .hljs { - color: var(--inline-code-color); - overflow-x: initial; -} - -a:hover > .hljs { - text-decoration: underline; -} - -pre { - position: relative; -} -pre > .buttons { - position: absolute; - z-index: 100; - right: 5px; - top: 5px; - - color: var(--sidebar-fg); - cursor: pointer; -} -pre > .buttons :hover { - color: var(--sidebar-active); -} -pre > .buttons i { - margin-left: 8px; -} -pre > .buttons button { - color: inherit; - background: transparent; - border: none; - cursor: inherit; -} -pre > .result { - margin-top: 10px; -} - -/* Search */ - -#searchresults a { - text-decoration: none; -} - -mark { - border-radius: 2px; - padding: 0 3px 1px 3px; - margin: 0 -3px -1px -3px; - background-color: var(--search-mark-bg); - transition: background-color 300ms linear; - cursor: pointer; -} - -mark.fade-out { - background-color: rgba(0,0,0,0) !important; - cursor: auto; -} - -.searchbar-outer { - margin-left: auto; - margin-right: auto; - max-width: var(--content-max-width); -} - -#searchbar { - width: 100%; - margin: 5px auto 0px auto; - padding: 10px 16px; - transition: box-shadow 300ms ease-in-out; - border: 1px solid var(--searchbar-border-color); - border-radius: 3px; - background-color: var(--searchbar-bg); - color: var(--searchbar-fg); -} -#searchbar:focus, -#searchbar.active { - box-shadow: 0 0 3px var(--searchbar-shadow-color); -} - -.searchresults-header { - font-weight: bold; - font-size: 1em; - padding: 18px 0 0 5px; - color: var(--searchresults-header-fg); -} - -.searchresults-outer { - margin-left: auto; - margin-right: auto; - max-width: var(--content-max-width); - border-bottom: 1px dashed var(--searchresults-border-color); -} - -ul#searchresults { - list-style: none; - padding-left: 20px; -} -ul#searchresults li { - margin: 10px 0px; - padding: 2px; - border-radius: 2px; -} -ul#searchresults li.focus { - background-color: var(--searchresults-li-bg); -} -ul#searchresults span.teaser { - display: block; - clear: both; - margin: 5px 0 0 20px; - font-size: 0.8em; -} -ul#searchresults span.teaser em { - font-weight: bold; - font-style: normal; -} - -/* Sidebar */ - -.sidebar { - position: fixed; - left: 0; - top: 0; - bottom: 0; - width: var(--sidebar-width); - font-size: 0.875em; - box-sizing: border-box; - -webkit-overflow-scrolling: touch; - overscroll-behavior-y: contain; - background-color: var(--sidebar-bg); - color: var(--sidebar-fg); -} -.sidebar-resizing { - -moz-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; - user-select: none; -} -.js:not(.sidebar-resizing) .sidebar { - transition: transform 0.3s; /* Animation: slide away */ -} -.sidebar code { - line-height: 2em; -} -.sidebar .sidebar-scrollbox { - overflow-y: auto; - position: absolute; - top: 0; - bottom: 0; - left: 0; - right: 0; - padding: 10px 10px; -} -.sidebar .sidebar-resize-handle { - position: absolute; - cursor: col-resize; - width: 0; - right: 0; - top: 0; - bottom: 0; -} -.js .sidebar .sidebar-resize-handle { - cursor: col-resize; - width: 5px; -} -.sidebar-hidden .sidebar { - transform: translateX(calc(0px - var(--sidebar-width))); -} -.sidebar::-webkit-scrollbar { - background: var(--sidebar-bg); -} -.sidebar::-webkit-scrollbar-thumb { - background: var(--scrollbar); -} - -.sidebar-visible .page-wrapper { - transform: translateX(var(--sidebar-width)); -} -@media only screen and (min-width: 620px) { - .sidebar-visible .page-wrapper { - transform: none; - margin-left: var(--sidebar-width); - } -} - -.chapter { - list-style: none outside none; - padding-left: 0; - line-height: 2.2em; -} - -.chapter ol { - width: 100%; -} - -.chapter li { - display: flex; - color: var(--sidebar-non-existant); -} -.chapter li a { - display: block; - padding: 0; - text-decoration: none; - color: var(--sidebar-fg); -} - -.chapter li a:hover { - color: var(--sidebar-active); -} - -.chapter li a.active { - color: var(--sidebar-active); -} - -.chapter li > a.toggle { - cursor: pointer; - display: block; - margin-left: auto; - padding: 0 10px; - user-select: none; - opacity: 0.68; -} - -.chapter li > a.toggle div { - transition: transform 0.5s; -} - -/* collapse the section */ -.chapter li:not(.expanded) + li > ol { - display: none; -} - -.chapter li.chapter-item { - line-height: 1.5em; - margin-top: 0.6em; -} - -.chapter li.expanded > a.toggle div { - transform: rotate(90deg); -} - -.spacer { - width: 100%; - height: 3px; - margin: 5px 0px; -} -.chapter .spacer { - background-color: var(--sidebar-spacer); -} - -@media (-moz-touch-enabled: 1), (pointer: coarse) { - .chapter li a { padding: 5px 0; } - .spacer { margin: 10px 0; } -} - -.section { - list-style: none outside none; - padding-left: 20px; - line-height: 1.9em; -} - -/* Theme Menu Popup */ - -.theme-popup { - position: absolute; - left: 10px; - top: var(--menu-bar-height); - z-index: 1000; - border-radius: 4px; - font-size: 0.7em; - color: var(--fg); - background: var(--theme-popup-bg); - border: 1px solid var(--theme-popup-border); - margin: 0; - padding: 0; - list-style: none; - display: none; -} -.theme-popup .default { - color: var(--icons); -} -.theme-popup .theme { - width: 100%; - border: 0; - margin: 0; - padding: 2px 10px; - line-height: 25px; - white-space: nowrap; - text-align: left; - cursor: pointer; - color: inherit; - background: inherit; - font-size: inherit; -} -.theme-popup .theme:hover { - background-color: var(--theme-hover); -} -.theme-popup .theme:hover:first-child, -.theme-popup .theme:hover:last-child { - border-top-left-radius: inherit; - border-top-right-radius: inherit; -} diff --git a/arc-docs/theme/css/general.css b/arc-docs/theme/css/general.css deleted file mode 100644 index 02aff1e31..000000000 --- a/arc-docs/theme/css/general.css +++ /dev/null @@ -1,270 +0,0 @@ -@font-face { - font-family: "Computer Modern"; - src: url('../fonts/computer-modern/cmunss.woff2') format('woff2'); - font-display: swap; -} - -@font-face { - font-family: "Computer Modern"; - src: url('../fonts/computer-modern/cmunsx.woff2') format('woff2'); - font-weight: bold; - font-display: swap; -} - -@font-face { - font-family: "Computer Modern"; - src: url('../fonts/computer-modern/cmunsi.woff2') format('woff2'); - font-style: italic, oblique; - font-display: swap; -} - -@font-face { - font-family: "Computer Modern"; - src: url('../fonts/computer-modern/cmunobx.woff2') format('woff2'); - font-weight: bold; - font-style: italic, oblique; - font-display: swap; -} - -@font-face { - font-family: 'Fira Code'; - src: url('../fonts/Fira_Code_v6.2/woff2/FiraCode-Light.woff2') format('woff2'); - font-weight: 300; - font-style: normal; -} - -@font-face { - font-family: 'Fira Code'; - src: url('../fonts/Fira_Code_v6.2/woff2/FiraCode-Regular.woff2') format('woff2'); - font-weight: 400; - font-style: normal; -} - -@font-face { - font-family: 'Fira Code'; - src: url('../fonts/Fira_Code_v6.2/woff2/FiraCode-Medium.woff2') format('woff2'); - font-weight: 500; - font-style: normal; -} - -@font-face { - font-family: 'Fira Code'; - src: url('../fonts/Fira_Code_v6.2/woff2/FiraCode-SemiBold.woff2') format('woff2'); - font-weight: 600; - font-style: normal; -} - -@font-face { - font-family: 'Fira Code'; - src: url('../fonts/Fira_Code_v6.2/woff2/FiraCode-Bold.woff2') format('woff2'); - font-weight: 700; - font-style: normal; -} - -@font-face { - font-family: 'Fira Code VF'; - src: url('../fonts/Fira_Code_v6.2/woff2/FiraCode-VF.woff2') format('woff2-variations'); - font-weight: 300 700; - font-style: normal; -} - -/* Base styles and content styles */ - -@import 'variables.css'; - -:root { - /* Browser default font-size is 16px, this way 1 rem = 10px */ - font-size: 62.5%; -} - -html { - font-family: "Computer Modern", serif; - color: var(--fg); - background-color: var(--bg); - text-size-adjust: none; - -webkit-text-size-adjust: none; -} - -body { - margin: 0; - font-size: 1.6rem; - font-spacing: -1rem; - font-family: "Computer Modern", serif; - overflow-x: hidden; -} - -pre.output { - white-space: pre-wrap; /* Since CSS 2.1 */ - white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - word-wrap: break-word; /* Internet Explorer 5.5+ */ - color: var(--bg); - background-color: var(--fg); - font-family: "Fira Code", "Source Code Pro", Consolas, "Ubuntu Mono", Menlo, "DejaVu Sans Mono", monospace !important; - font-size: 0.666em; - padding: 0.5em; - margin: 3rem 0; - border-radius: 4px; -} - -code { - font-family: "Fira Code", "Source Code Pro", Consolas, "Ubuntu Mono", Menlo, "DejaVu Sans Mono", monospace, monospace !important; - font-size: 0.875em; /* please adjust the ace font size accordingly in editor.js */ -} - -/* Don't change font size in headers. */ -h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { - font-size: unset; - font-family: "Computer Modern", serif; -} - -.left { float: left; } -.right { float: right; } -.boring { opacity: 0.6; } -.hide-boring .boring { display: none; } -.hidden { display: none !important; } - -h2, h3 { margin-top: 2.5em; } -h4, h5 { margin-top: 2em; } - -.header + .header h3, -.header + .header h4, -.header + .header h5 { - margin-top: 1em; -} - -h1:target::before, -h2:target::before, -h3:target::before, -h4:target::before, -h5:target::before, -h6:target::before { - display: inline-block; - content: "»"; - margin-left: -30px; - width: 30px; -} - -/* This is broken on Safari as of version 14, but is fixed - in Safari Technology Preview 117 which I think will be Safari 14.2. - https://bugs.webkit.org/show_bug.cgi?id=218076 -*/ -:target { - scroll-margin-top: calc(var(--menu-bar-height) + 0.5em); -} - -.page { - outline: 0; - padding: 0 var(--page-padding); - margin-top: calc(0px - var(--menu-bar-height)); /* Compensate for the #menu-bar-hover-placeholder */ -} -.page-wrapper { - box-sizing: border-box; -} -.js:not(.sidebar-resizing) .page-wrapper { - transition: margin-left 0.3s ease, transform 0.3s ease; /* Animation: slide away */ -} - -.content { - overflow-y: auto; - padding: 0 15px; - padding-bottom: 50px; -} -.content main { - margin-left: auto; - margin-right: auto; - max-width: var(--content-max-width); -} -.content p { line-height: 1.45em; } -.content ol { line-height: 1.45em; } -.content ul { line-height: 1.45em; } -.content a { text-decoration: none; } -.content a:hover { text-decoration: underline; } -.content img, .content video { max-width: 100%; } -.content .header:link, -.content .header:visited { - color: var(--fg); -} -.content .header:link, -.content .header:visited:hover { - text-decoration: none; -} - -table { - margin: 0 auto; - border-collapse: collapse; -} -table td { - padding: 3px 20px; - border: 1px var(--table-border-color) solid; -} -table thead { - background: var(--table-header-bg); -} -table thead td { - font-weight: 700; - border: none; -} -table thead th { - padding: 3px 20px; -} -table thead tr { - border: 1px var(--table-header-bg) solid; -} -/* Alternate background colors for rows */ -table tbody tr:nth-child(2n) { - background: var(--table-alternate-bg); -} - - -blockquote { - margin: 20px 0; - padding: 0 20px; - color: var(--fg); - background-color: var(--quote-bg); - border-top: .1em solid var(--quote-border); - border-bottom: .1em solid var(--quote-border); -} - - -:not(.footnote-definition) + .footnote-definition, -.footnote-definition + :not(.footnote-definition) { - margin-top: 2em; -} -.footnote-definition { - font-size: 0.9em; - margin: 0.5em 0; -} -.footnote-definition p { - display: inline; -} - -.tooltiptext { - position: absolute; - visibility: hidden; - color: #fff; - background-color: #333; - transform: translateX(-50%); /* Center by moving tooltip 50% of its width left */ - left: -8px; /* Half of the width of the icon */ - top: -35px; - font-size: 0.8em; - text-align: center; - border-radius: 6px; - padding: 5px 8px; - margin: 5px; - z-index: 1000; -} -.tooltipped .tooltiptext { - visibility: visible; -} - -.chapter li.part-title { - color: var(--sidebar-fg); - margin: 5px 0px; - font-weight: bold; -} - -.result-no-output { - font-style: italic; -} diff --git a/arc-docs/theme/css/print.css b/arc-docs/theme/css/print.css deleted file mode 100644 index 5e690f755..000000000 --- a/arc-docs/theme/css/print.css +++ /dev/null @@ -1,54 +0,0 @@ - -#sidebar, -#menu-bar, -.nav-chapters, -.mobile-nav-chapters { - display: none; -} - -#page-wrapper.page-wrapper { - transform: none; - margin-left: 0px; - overflow-y: initial; -} - -#content { - max-width: none; - margin: 0; - padding: 0; -} - -.page { - overflow-y: initial; -} - -code { - background-color: #666666; - border-radius: 5px; - - /* Force background to be printed in Chrome */ - -webkit-print-color-adjust: exact; -} - -pre > .buttons { - z-index: 2; -} - -a, a:visited, a:active, a:hover { - color: #4183c4; - text-decoration: none; -} - -h1, h2, h3, h4, h5, h6 { - page-break-inside: avoid; - page-break-after: avoid; -} - -pre, code { - page-break-inside: avoid; - white-space: pre-wrap; -} - -.fa { - display: none !important; -} diff --git a/arc-docs/theme/css/variables.css b/arc-docs/theme/css/variables.css deleted file mode 100644 index 56b634bc3..000000000 --- a/arc-docs/theme/css/variables.css +++ /dev/null @@ -1,253 +0,0 @@ - -/* Globals */ - -:root { - --sidebar-width: 300px; - --page-padding: 15px; - --content-max-width: 750px; - --menu-bar-height: 50px; -} - -/* Themes */ - -.ayu { - --bg: hsl(210, 25%, 8%); - --fg: #c5c5c5; - - --sidebar-bg: #14191f; - --sidebar-fg: #c8c9db; - --sidebar-non-existant: #5c6773; - --sidebar-active: #ffb454; - --sidebar-spacer: #2d334f; - - --scrollbar: var(--sidebar-fg); - - --icons: #737480; - --icons-hover: #b7b9cc; - - --links: #0096cf; - - --inline-code-color: #ffb454; - - --theme-popup-bg: #14191f; - --theme-popup-border: #5c6773; - --theme-hover: #191f26; - - --quote-bg: hsl(226, 15%, 17%); - --quote-border: hsl(226, 15%, 22%); - - --table-border-color: hsl(210, 25%, 13%); - --table-header-bg: hsl(210, 25%, 28%); - --table-alternate-bg: hsl(210, 25%, 11%); - - --searchbar-border-color: #848484; - --searchbar-bg: #424242; - --searchbar-fg: #fff; - --searchbar-shadow-color: #d4c89f; - --searchresults-header-fg: #666; - --searchresults-border-color: #888; - --searchresults-li-bg: #252932; - --search-mark-bg: #e3b171; -} - -.coal { - --bg: hsl(200, 7%, 8%); - --fg: #98a3ad; - - --sidebar-bg: #292c2f; - --sidebar-fg: #a1adb8; - --sidebar-non-existant: #505254; - --sidebar-active: #3473ad; - --sidebar-spacer: #393939; - - --scrollbar: var(--sidebar-fg); - - --icons: #43484d; - --icons-hover: #b3c0cc; - - --links: #2b79a2; - - --inline-code-color: #c5c8c6; - - --theme-popup-bg: #141617; - --theme-popup-border: #43484d; - --theme-hover: #1f2124; - - --quote-bg: hsl(234, 21%, 18%); - --quote-border: hsl(234, 21%, 23%); - - --table-border-color: hsl(200, 7%, 13%); - --table-header-bg: hsl(200, 7%, 28%); - --table-alternate-bg: hsl(200, 7%, 11%); - - --searchbar-border-color: #aaa; - --searchbar-bg: #b7b7b7; - --searchbar-fg: #000; - --searchbar-shadow-color: #aaa; - --searchresults-header-fg: #666; - --searchresults-border-color: #98a3ad; - --searchresults-li-bg: #2b2b2f; - --search-mark-bg: #355c7d; -} - -.light { - --bg: hsl(0, 0%, 100%); - --fg: hsl(0, 0%, 0%); - - --sidebar-bg: #fafafa; - --sidebar-fg: hsl(0, 0%, 0%); - --sidebar-non-existant: #aaaaaa; - --sidebar-active: #1f1fff; - --sidebar-spacer: #f4f4f4; - - --scrollbar: #8F8F8F; - - --icons: #747474; - --icons-hover: #000000; - - --links: #20609f; - - --inline-code-color: #301900; - - --theme-popup-bg: #fafafa; - --theme-popup-border: #cccccc; - --theme-hover: #e6e6e6; - - --quote-bg: hsl(197, 37%, 96%); - --quote-border: hsl(197, 37%, 91%); - - --table-border-color: hsl(0, 0%, 95%); - --table-header-bg: hsl(0, 0%, 80%); - --table-alternate-bg: hsl(0, 0%, 97%); - - --searchbar-border-color: #aaa; - --searchbar-bg: #fafafa; - --searchbar-fg: #000; - --searchbar-shadow-color: #aaa; - --searchresults-header-fg: #666; - --searchresults-border-color: #888; - --searchresults-li-bg: #e4f2fe; - --search-mark-bg: #a2cff5; -} - -.navy { - --bg: hsl(226, 23%, 11%); - --fg: #bcbdd0; - - --sidebar-bg: #282d3f; - --sidebar-fg: #c8c9db; - --sidebar-non-existant: #505274; - --sidebar-active: #2b79a2; - --sidebar-spacer: #2d334f; - - --scrollbar: var(--sidebar-fg); - - --icons: #737480; - --icons-hover: #b7b9cc; - - --links: #2b79a2; - - --inline-code-color: #c5c8c6; - - --theme-popup-bg: #161923; - --theme-popup-border: #737480; - --theme-hover: #282e40; - - --quote-bg: hsl(226, 15%, 17%); - --quote-border: hsl(226, 15%, 22%); - - --table-border-color: hsl(226, 23%, 16%); - --table-header-bg: hsl(226, 23%, 31%); - --table-alternate-bg: hsl(226, 23%, 14%); - - --searchbar-border-color: #aaa; - --searchbar-bg: #aeaec6; - --searchbar-fg: #000; - --searchbar-shadow-color: #aaa; - --searchresults-header-fg: #5f5f71; - --searchresults-border-color: #5c5c68; - --searchresults-li-bg: #242430; - --search-mark-bg: #a2cff5; -} - -.rust { - --bg: hsl(60, 9%, 87%); - --fg: #262625; - - --sidebar-bg: #3b2e2a; - --sidebar-fg: #c8c9db; - --sidebar-non-existant: #505254; - --sidebar-active: #e69f67; - --sidebar-spacer: #45373a; - - --scrollbar: var(--sidebar-fg); - - --icons: #737480; - --icons-hover: #262625; - - --links: #2b79a2; - - --inline-code-color: #6e6b5e; - - --theme-popup-bg: #e1e1db; - --theme-popup-border: #b38f6b; - --theme-hover: #99908a; - - --quote-bg: hsl(60, 5%, 75%); - --quote-border: hsl(60, 5%, 70%); - - --table-border-color: hsl(60, 9%, 82%); - --table-header-bg: #b3a497; - --table-alternate-bg: hsl(60, 9%, 84%); - - --searchbar-border-color: #aaa; - --searchbar-bg: #fafafa; - --searchbar-fg: #000; - --searchbar-shadow-color: #aaa; - --searchresults-header-fg: #666; - --searchresults-border-color: #888; - --searchresults-li-bg: #dec2a2; - --search-mark-bg: #e69f67; -} - -@media (prefers-color-scheme: dark) { - .light.no-js { - --bg: hsl(200, 7%, 8%); - --fg: #98a3ad; - - --sidebar-bg: #292c2f; - --sidebar-fg: #a1adb8; - --sidebar-non-existant: #505254; - --sidebar-active: #3473ad; - --sidebar-spacer: #393939; - - --scrollbar: var(--sidebar-fg); - - --icons: #43484d; - --icons-hover: #b3c0cc; - - --links: #2b79a2; - - --inline-code-color: #c5c8c6; - - --theme-popup-bg: #141617; - --theme-popup-border: #43484d; - --theme-hover: #1f2124; - - --quote-bg: hsl(234, 21%, 18%); - --quote-border: hsl(234, 21%, 23%); - - --table-border-color: hsl(200, 7%, 13%); - --table-header-bg: hsl(200, 7%, 28%); - --table-alternate-bg: hsl(200, 7%, 11%); - - --searchbar-border-color: #aaa; - --searchbar-bg: #b7b7b7; - --searchbar-fg: #000; - --searchbar-shadow-color: #aaa; - --searchresults-header-fg: #666; - --searchresults-border-color: #98a3ad; - --searchresults-li-bg: #2b2b2f; - --search-mark-bg: #355c7d; - } -} diff --git a/arc-docs/theme/favicon.png b/arc-docs/theme/favicon.png deleted file mode 100644 index a5b1aa16c4dcb6c872cb5af799bfc9b5552c7b9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5679 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 A;{X5v diff --git a/arc-docs/theme/favicon.svg b/arc-docs/theme/favicon.svg deleted file mode 100644 index 90e0ea58b..000000000 --- a/arc-docs/theme/favicon.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - diff --git a/arc-docs/theme/highlight.css b/arc-docs/theme/highlight.css deleted file mode 100644 index c23432272..000000000 --- a/arc-docs/theme/highlight.css +++ /dev/null @@ -1,83 +0,0 @@ -/* - * An increased contrast highlighting scheme loosely based on the - * "Base16 Atelier Dune Light" theme by Bram de Haan - * (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) - * Original Base16 color scheme by Chris Kempson - * (https://github.com/chriskempson/base16) - */ - -/* Comment */ -.hljs-comment, -.hljs-quote { - color: #575757; -} - -/* Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-attribute, -.hljs-tag, -.hljs-name, -.hljs-regexp, -.hljs-link, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class { - color: #d70025; -} - -/* Orange */ -.hljs-number, -.hljs-meta, -.hljs-built_in, -.hljs-builtin-name, -.hljs-literal, -.hljs-type, -.hljs-params { - color: #b21e00; -} - -/* Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet { - color: #008200; -} - -/* Blue */ -.hljs-title, -.hljs-section { - color: #0030f2; -} - -/* Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #9d00ec; -} - -.hljs { - display: block; - overflow-x: auto; - background: #f6f7f6; - color: #000; - padding: 0.5em; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} - -.hljs-addition { - color: #22863a; - background-color: #f0fff4; -} - -.hljs-deletion { - color: #b31d28; - background-color: #ffeef0; -} diff --git a/arc-docs/theme/highlight.js b/arc-docs/theme/highlight.js deleted file mode 100644 index 180385b70..000000000 --- a/arc-docs/theme/highlight.js +++ /dev/null @@ -1,6 +0,0 @@ -/* - Highlight.js 10.1.1 (93fd0d73) - License: BSD-3-Clause - Copyright (c) 2006-2020, Ivan Sagalaev -*/ -var hljs=function(){"use strict";function e(n){Object.freeze(n);var t="function"==typeof n;return Object.getOwnPropertyNames(n).forEach((function(r){!Object.hasOwnProperty.call(n,r)||null===n[r]||"object"!=typeof n[r]&&"function"!=typeof n[r]||t&&("caller"===r||"callee"===r||"arguments"===r)||Object.isFrozen(n[r])||e(n[r])})),n}class n{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data}ignoreMatch(){this.ignore=!0}}function t(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function r(e,...n){var t={};for(const n in e)t[n]=e[n];return n.forEach((function(e){for(const n in e)t[n]=e[n]})),t}function a(e){return e.nodeName.toLowerCase()}var i=Object.freeze({__proto__:null,escapeHTML:t,inherit:r,nodeStream:function(e){var n=[];return function e(t,r){for(var i=t.firstChild;i;i=i.nextSibling)3===i.nodeType?r+=i.nodeValue.length:1===i.nodeType&&(n.push({event:"start",offset:r,node:i}),r=e(i,r),a(i).match(/br|hr|img|input/)||n.push({event:"stop",offset:r,node:i}));return r}(e,0),n},mergeStreams:function(e,n,r){var i=0,s="",o=[];function l(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset"}function u(e){s+=""}function d(e){("start"===e.event?c:u)(e.node)}for(;e.length||n.length;){var g=l();if(s+=t(r.substring(i,g[0].offset)),i=g[0].offset,g===e){o.reverse().forEach(u);do{d(g.splice(0,1)[0]),g=l()}while(g===e&&g.length&&g[0].offset===i);o.reverse().forEach(c)}else"start"===g[0].event?o.push(g[0].node):o.pop(),d(g.splice(0,1)[0])}return s+t(r.substr(i))}});const s="",o=e=>!!e.kind;class l{constructor(e,n){this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){this.buffer+=t(e)}openNode(e){if(!o(e))return;let n=e.kind;e.sublanguage||(n=`${this.classPrefix}${n}`),this.span(n)}closeNode(e){o(e)&&(this.buffer+=s)}value(){return this.buffer}span(e){this.buffer+=``}}class c{constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const n={kind:e,children:[]};this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n),n.children.forEach(n=>this._walk(e,n)),e.closeNode(n)),e}static _collapse(e){"string"!=typeof e&&e.children&&(e.children.every(e=>"string"==typeof e)?e.children=[e.children.join("")]:e.children.forEach(e=>{c._collapse(e)}))}}class u extends c{constructor(e){super(),this.options=e}addKeyword(e,n){""!==e&&(this.openNode(n),this.addText(e),this.closeNode())}addText(e){""!==e&&this.add(e)}addSublanguage(e,n){const t=e.root;t.kind=n,t.sublanguage=!0,this.add(t)}toHTML(){return new l(this,this.options).value()}finalize(){return!0}}function d(e){return e?"string"==typeof e?e:e.source:null}const g="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",h={begin:"\\\\[\\s\\S]",relevance:0},f={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[h]},p={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[h]},b={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},m=function(e,n,t={}){var a=r({className:"comment",begin:e,end:n,contains:[]},t);return a.contains.push(b),a.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",relevance:0}),a},v=m("//","$"),x=m("/\\*","\\*/"),E=m("#","$");var _=Object.freeze({__proto__:null,IDENT_RE:"[a-zA-Z]\\w*",UNDERSCORE_IDENT_RE:"[a-zA-Z_]\\w*",NUMBER_RE:"\\b\\d+(\\.\\d+)?",C_NUMBER_RE:g,BINARY_NUMBER_RE:"\\b(0b[01]+)",RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{const n=/^#![ ]*\//;return e.binary&&(e.begin=function(...e){return e.map(e=>d(e)).join("")}(n,/.*\b/,e.binary,/\b.*/)),r({className:"meta",begin:n,end:/$/,relevance:0,"on:begin":(e,n)=>{0!==e.index&&n.ignoreMatch()}},e)},BACKSLASH_ESCAPE:h,APOS_STRING_MODE:f,QUOTE_STRING_MODE:p,PHRASAL_WORDS_MODE:b,COMMENT:m,C_LINE_COMMENT_MODE:v,C_BLOCK_COMMENT_MODE:x,HASH_COMMENT_MODE:E,NUMBER_MODE:{className:"number",begin:"\\b\\d+(\\.\\d+)?",relevance:0},C_NUMBER_MODE:{className:"number",begin:g,relevance:0},BINARY_NUMBER_MODE:{className:"number",begin:"\\b(0b[01]+)",relevance:0},CSS_NUMBER_MODE:{className:"number",begin:"\\b\\d+(\\.\\d+)?(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[h,{begin:/\[/,end:/\]/,relevance:0,contains:[h]}]}]},TITLE_MODE:{className:"title",begin:"[a-zA-Z]\\w*",relevance:0},UNDERSCORE_TITLE_MODE:{className:"title",begin:"[a-zA-Z_]\\w*",relevance:0},METHOD_GUARD:{begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{n.data._beginMatch!==e[1]&&n.ignoreMatch()}})}}),N="of and for in not or if then".split(" ");function w(e,n){return n?+n:function(e){return N.includes(e.toLowerCase())}(e)?0:1}const R=t,y=r,{nodeStream:k,mergeStreams:O}=i,M=Symbol("nomatch");return function(t){var a=[],i={},s={},o=[],l=!0,c=/(^(<[^>]+>|\t|)+|\n)/gm,g="Could not find the language '{}', did you forget to load/include a language module?";const h={disableAutodetect:!0,name:"Plain text",contains:[]};var f={noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:null,__emitter:u};function p(e){return f.noHighlightRe.test(e)}function b(e,n,t,r){var a={code:n,language:e};S("before:highlight",a);var i=a.result?a.result:m(a.language,a.code,t,r);return i.code=a.code,S("after:highlight",i),i}function m(e,t,a,s){var o=t;function c(e,n){var t=E.case_insensitive?n[0].toLowerCase():n[0];return Object.prototype.hasOwnProperty.call(e.keywords,t)&&e.keywords[t]}function u(){null!=y.subLanguage?function(){if(""!==A){var e=null;if("string"==typeof y.subLanguage){if(!i[y.subLanguage])return void O.addText(A);e=m(y.subLanguage,A,!0,k[y.subLanguage]),k[y.subLanguage]=e.top}else e=v(A,y.subLanguage.length?y.subLanguage:null);y.relevance>0&&(I+=e.relevance),O.addSublanguage(e.emitter,e.language)}}():function(){if(!y.keywords)return void O.addText(A);let e=0;y.keywordPatternRe.lastIndex=0;let n=y.keywordPatternRe.exec(A),t="";for(;n;){t+=A.substring(e,n.index);const r=c(y,n);if(r){const[e,a]=r;O.addText(t),t="",I+=a,O.addKeyword(n[0],e)}else t+=n[0];e=y.keywordPatternRe.lastIndex,n=y.keywordPatternRe.exec(A)}t+=A.substr(e),O.addText(t)}(),A=""}function h(e){return e.className&&O.openNode(e.className),y=Object.create(e,{parent:{value:y}})}function p(e){return 0===y.matcher.regexIndex?(A+=e[0],1):(L=!0,0)}var b={};function x(t,r){var i=r&&r[0];if(A+=t,null==i)return u(),0;if("begin"===b.type&&"end"===r.type&&b.index===r.index&&""===i){if(A+=o.slice(r.index,r.index+1),!l){const n=Error("0 width match regex");throw n.languageName=e,n.badRule=b.rule,n}return 1}if(b=r,"begin"===r.type)return function(e){var t=e[0],r=e.rule;const a=new n(r),i=[r.__beforeBegin,r["on:begin"]];for(const n of i)if(n&&(n(e,a),a.ignore))return p(t);return r&&r.endSameAsBegin&&(r.endRe=RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")),r.skip?A+=t:(r.excludeBegin&&(A+=t),u(),r.returnBegin||r.excludeBegin||(A=t)),h(r),r.returnBegin?0:t.length}(r);if("illegal"===r.type&&!a){const e=Error('Illegal lexeme "'+i+'" for mode "'+(y.className||"")+'"');throw e.mode=y,e}if("end"===r.type){var s=function(e){var t=e[0],r=o.substr(e.index),a=function e(t,r,a){let i=function(e,n){var t=e&&e.exec(n);return t&&0===t.index}(t.endRe,a);if(i){if(t["on:end"]){const e=new n(t);t["on:end"](r,e),e.ignore&&(i=!1)}if(i){for(;t.endsParent&&t.parent;)t=t.parent;return t}}if(t.endsWithParent)return e(t.parent,r,a)}(y,e,r);if(!a)return M;var i=y;i.skip?A+=t:(i.returnEnd||i.excludeEnd||(A+=t),u(),i.excludeEnd&&(A=t));do{y.className&&O.closeNode(),y.skip||y.subLanguage||(I+=y.relevance),y=y.parent}while(y!==a.parent);return a.starts&&(a.endSameAsBegin&&(a.starts.endRe=a.endRe),h(a.starts)),i.returnEnd?0:t.length}(r);if(s!==M)return s}if("illegal"===r.type&&""===i)return 1;if(B>1e5&&B>3*r.index)throw Error("potential infinite loop, way more iterations than matches");return A+=i,i.length}var E=T(e);if(!E)throw console.error(g.replace("{}",e)),Error('Unknown language: "'+e+'"');var _=function(e){function n(n,t){return RegExp(d(n),"m"+(e.case_insensitive?"i":"")+(t?"g":""))}class t{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,n){n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]),this.matchAt+=function(e){return RegExp(e.toString()+"|").exec("").length-1}(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map(e=>e[1]);this.matcherRe=n(function(e,n="|"){for(var t=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,r=0,a="",i=0;i0&&(a+=n),a+="(";o.length>0;){var l=t.exec(o);if(null==l){a+=o;break}a+=o.substring(0,l.index),o=o.substring(l.index+l[0].length),"\\"===l[0][0]&&l[1]?a+="\\"+(+l[1]+s):(a+=l[0],"("===l[0]&&r++)}a+=")"}return a}(e),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const n=this.matcherRe.exec(e);if(!n)return null;const t=n.findIndex((e,n)=>n>0&&void 0!==e),r=this.matchIndexes[t];return n.splice(0,t),Object.assign(n,r)}}class a{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const n=new t;return this.rules.slice(e).forEach(([e,t])=>n.addRule(e,t)),n.compile(),this.multiRegexes[e]=n,n}considerAll(){this.regexIndex=0}addRule(e,n){this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){const n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex;const t=n.exec(e);return t&&(this.regexIndex+=t.position+1,this.regexIndex===this.count&&(this.regexIndex=0)),t}}function i(e,n){const t=e.input[e.index-1],r=e.input[e.index+e[0].length];"."!==t&&"."!==r||n.ignoreMatch()}if(e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return function t(s,o){const l=s;if(s.compiled)return l;s.compiled=!0,s.__beforeBegin=null,s.keywords=s.keywords||s.beginKeywords;let c=null;if("object"==typeof s.keywords&&(c=s.keywords.$pattern,delete s.keywords.$pattern),s.keywords&&(s.keywords=function(e,n){var t={};return"string"==typeof e?r("keyword",e):Object.keys(e).forEach((function(n){r(n,e[n])})),t;function r(e,r){n&&(r=r.toLowerCase()),r.split(" ").forEach((function(n){var r=n.split("|");t[r[0]]=[e,w(r[0],r[1])]}))}}(s.keywords,e.case_insensitive)),s.lexemes&&c)throw Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ");return l.keywordPatternRe=n(s.lexemes||c||/\w+/,!0),o&&(s.beginKeywords&&(s.begin="\\b("+s.beginKeywords.split(" ").join("|")+")(?=\\b|\\s)",s.__beforeBegin=i),s.begin||(s.begin=/\B|\b/),l.beginRe=n(s.begin),s.endSameAsBegin&&(s.end=s.begin),s.end||s.endsWithParent||(s.end=/\B|\b/),s.end&&(l.endRe=n(s.end)),l.terminator_end=d(s.end)||"",s.endsWithParent&&o.terminator_end&&(l.terminator_end+=(s.end?"|":"")+o.terminator_end)),s.illegal&&(l.illegalRe=n(s.illegal)),void 0===s.relevance&&(s.relevance=1),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map((function(e){return function(e){return e.variants&&!e.cached_variants&&(e.cached_variants=e.variants.map((function(n){return r(e,{variants:null},n)}))),e.cached_variants?e.cached_variants:function e(n){return!!n&&(n.endsWithParent||e(n.starts))}(e)?r(e,{starts:e.starts?r(e.starts):null}):Object.isFrozen(e)?r(e):e}("self"===e?s:e)}))),s.contains.forEach((function(e){t(e,l)})),s.starts&&t(s.starts,o),l.matcher=function(e){const n=new a;return e.contains.forEach(e=>n.addRule(e.begin,{rule:e,type:"begin"})),e.terminator_end&&n.addRule(e.terminator_end,{type:"end"}),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n}(l),l}(e)}(E),N="",y=s||_,k={},O=new f.__emitter(f);!function(){for(var e=[],n=y;n!==E;n=n.parent)n.className&&e.unshift(n.className);e.forEach(e=>O.openNode(e))}();var A="",I=0,S=0,B=0,L=!1;try{for(y.matcher.considerAll();;){B++,L?L=!1:(y.matcher.lastIndex=S,y.matcher.considerAll());const e=y.matcher.exec(o);if(!e)break;const n=x(o.substring(S,e.index),e);S=e.index+n}return x(o.substr(S)),O.closeAllNodes(),O.finalize(),N=O.toHTML(),{relevance:I,value:N,language:e,illegal:!1,emitter:O,top:y}}catch(n){if(n.message&&n.message.includes("Illegal"))return{illegal:!0,illegalBy:{msg:n.message,context:o.slice(S-100,S+100),mode:n.mode},sofar:N,relevance:0,value:R(o),emitter:O};if(l)return{illegal:!1,relevance:0,value:R(o),emitter:O,language:e,top:y,errorRaised:n};throw n}}function v(e,n){n=n||f.languages||Object.keys(i);var t=function(e){const n={relevance:0,emitter:new f.__emitter(f),value:R(e),illegal:!1,top:h};return n.emitter.addText(e),n}(e),r=t;return n.filter(T).filter(I).forEach((function(n){var a=m(n,e,!1);a.language=n,a.relevance>r.relevance&&(r=a),a.relevance>t.relevance&&(r=t,t=a)})),r.language&&(t.second_best=r),t}function x(e){return f.tabReplace||f.useBR?e.replace(c,e=>"\n"===e?f.useBR?"
      ":e:f.tabReplace?e.replace(/\t/g,f.tabReplace):e):e}function E(e){let n=null;const t=function(e){var n=e.className+" ";n+=e.parentNode?e.parentNode.className:"";const t=f.languageDetectRe.exec(n);if(t){var r=T(t[1]);return r||(console.warn(g.replace("{}",t[1])),console.warn("Falling back to no-highlight mode for this block.",e)),r?t[1]:"no-highlight"}return n.split(/\s+/).find(e=>p(e)||T(e))}(e);if(p(t))return;S("before:highlightBlock",{block:e,language:t}),f.useBR?(n=document.createElement("div")).innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n"):n=e;const r=n.textContent,a=t?b(t,r,!0):v(r),i=k(n);if(i.length){const e=document.createElement("div");e.innerHTML=a.value,a.value=O(i,k(e),r)}a.value=x(a.value),S("after:highlightBlock",{block:e,result:a}),e.innerHTML=a.value,e.className=function(e,n,t){var r=n?s[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),e.includes(r)||a.push(r),a.join(" ").trim()}(e.className,t,a.language),e.result={language:a.language,re:a.relevance,relavance:a.relevance},a.second_best&&(e.second_best={language:a.second_best.language,re:a.second_best.relevance,relavance:a.second_best.relevance})}const N=()=>{if(!N.called){N.called=!0;var e=document.querySelectorAll("pre code");a.forEach.call(e,E)}};function T(e){return e=(e||"").toLowerCase(),i[e]||i[s[e]]}function A(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach(e=>{s[e]=n})}function I(e){var n=T(e);return n&&!n.disableAutodetect}function S(e,n){var t=e;o.forEach((function(e){e[t]&&e[t](n)}))}Object.assign(t,{highlight:b,highlightAuto:v,fixMarkup:x,highlightBlock:E,configure:function(e){f=y(f,e)},initHighlighting:N,initHighlightingOnLoad:function(){window.addEventListener("DOMContentLoaded",N,!1)},registerLanguage:function(e,n){var r=null;try{r=n(t)}catch(n){if(console.error("Language definition for '{}' could not be registered.".replace("{}",e)),!l)throw n;console.error(n),r=h}r.name||(r.name=e),i[e]=r,r.rawDefinition=n.bind(null,t),r.aliases&&A(r.aliases,{languageName:e})},listLanguages:function(){return Object.keys(i)},getLanguage:T,registerAliases:A,requireLanguage:function(e){var n=T(e);if(n)return n;throw Error("The '{}' language is required, but not loaded.".replace("{}",e))},autoDetection:I,inherit:y,addPlugin:function(e){o.push(e)}}),t.debugMode=function(){l=!1},t.safeMode=function(){l=!0},t.versionString="10.1.1";for(const n in _)"object"==typeof _[n]&&e(_[n]);return Object.assign(t,_),t}({})}();"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);hljs.registerLanguage("php",function(){"use strict";return function(e){var r={begin:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},t={className:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?[=]?/},{begin:/\?>/}]},a={className:"string",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:'b"',end:'"'},{begin:"b'",end:"'"},e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},n={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]},i={keyword:"__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__ die echo exit include include_once print require require_once array abstract and as binary bool boolean break callable case catch class clone const continue declare default do double else elseif empty enddeclare endfor endforeach endif endswitch endwhile eval extends final finally float for foreach from global goto if implements instanceof insteadof int integer interface isset iterable list new object or private protected public real return string switch throw trait try unset use var void while xor yield",literal:"false null true",built_in:"Error|0 AppendIterator ArgumentCountError ArithmeticError ArrayIterator ArrayObject AssertionError BadFunctionCallException BadMethodCallException CachingIterator CallbackFilterIterator CompileError Countable DirectoryIterator DivisionByZeroError DomainException EmptyIterator ErrorException Exception FilesystemIterator FilterIterator GlobIterator InfiniteIterator InvalidArgumentException IteratorIterator LengthException LimitIterator LogicException MultipleIterator NoRewindIterator OutOfBoundsException OutOfRangeException OuterIterator OverflowException ParentIterator ParseError RangeException RecursiveArrayIterator RecursiveCachingIterator RecursiveCallbackFilterIterator RecursiveDirectoryIterator RecursiveFilterIterator RecursiveIterator RecursiveIteratorIterator RecursiveRegexIterator RecursiveTreeIterator RegexIterator RuntimeException SeekableIterator SplDoublyLinkedList SplFileInfo SplFileObject SplFixedArray SplHeap SplMaxHeap SplMinHeap SplObjectStorage SplObserver SplObserver SplPriorityQueue SplQueue SplStack SplSubject SplSubject SplTempFileObject TypeError UnderflowException UnexpectedValueException ArrayAccess Closure Generator Iterator IteratorAggregate Serializable Throwable Traversable WeakReference Directory __PHP_Incomplete_Class parent php_user_filter self static stdClass"};return{aliases:["php","php3","php4","php5","php6","php7"],case_insensitive:!0,keywords:i,contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[t]}),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler"}),{className:"string",begin:/<<<['"]?\w+['"]?$/,end:/^\w+;?$/,contains:[e.BACKSLASH_ESCAPE,{className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]}]},t,{className:"keyword",begin:/\$this\b/},r,{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:i,contains:["self",r,e.C_BLOCK_COMMENT_MODE,a,n]}]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:/[:\(\$"]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",end:";",illegal:/[\.']/,contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",end:";",contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"=>"},a,n]}}}());hljs.registerLanguage("nginx",function(){"use strict";return function(e){var n={className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{/,end:/}/},{begin:"[\\$\\@]"+e.UNDERSCORE_IDENT_RE}]},a={endsWithParent:!0,keywords:{$pattern:"[a-z/_]+",literal:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[n]},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:"\\s\\^",end:"\\s|{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|{|;",returnEnd:!0},{begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+[kKmMgGdshdwy]*\\b",relevance:0},n]};return{name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{begin:e.UNDERSCORE_IDENT_RE+"\\s+{",returnBegin:!0,end:"{",contains:[{className:"section",begin:e.UNDERSCORE_IDENT_RE}],relevance:0},{begin:e.UNDERSCORE_IDENT_RE+"\\s",end:";|{",returnBegin:!0,contains:[{className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:a}],relevance:0}],illegal:"[^\\s\\}]"}}}());hljs.registerLanguage("csharp",function(){"use strict";return function(e){var n={keyword:"abstract as base bool break byte case catch char checked const continue decimal default delegate do double enum event explicit extern finally fixed float for foreach goto if implicit in int interface internal is lock long object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this try typeof uint ulong unchecked unsafe ushort using virtual void volatile while add alias ascending async await by descending dynamic equals from get global group into join let nameof on orderby partial remove select set value var when where yield",literal:"null false true"},i=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),a={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},s={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},t=e.inherit(s,{illegal:/\n/}),l={className:"subst",begin:"{",end:"}",keywords:n},r=e.inherit(l,{illegal:/\n/}),c={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:"{{"},{begin:"}}"},e.BACKSLASH_ESCAPE,r]},o={className:"string",begin:/\$@"/,end:'"',contains:[{begin:"{{"},{begin:"}}"},{begin:'""'},l]},g=e.inherit(o,{illegal:/\n/,contains:[{begin:"{{"},{begin:"}}"},{begin:'""'},r]});l.contains=[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_BLOCK_COMMENT_MODE],r.contains=[g,c,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];var d={variants:[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},E={begin:"<",end:">",contains:[{beginKeywords:"in out"},i]},_=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",b={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"\x3c!--|--\x3e"},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"if else elif endif define undef warning error line region endregion pragma checksum"}},d,a,{beginKeywords:"class interface",end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},i,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",end:/[{;=]/,illegal:/[^\s:]/,contains:[i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"meta-string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+_+"\\s+)+"+e.IDENT_RE+"\\s*(\\<.+\\>)?\\s*\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{begin:e.IDENT_RE+"\\s*(\\<.+\\>)?\\s*\\(",returnBegin:!0,contains:[e.TITLE_MODE,E],relevance:0},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0,contains:[d,a,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},b]}}}());hljs.registerLanguage("perl",function(){"use strict";return function(e){var n={$pattern:/[\w.]+/,keyword:"getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qq fileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmget sub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedir ioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when"},t={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:n},s={begin:"->{",end:"}"},r={variants:[{begin:/\$\d/},{begin:/[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},{begin:/[\$%@][^\s\w{]/,relevance:0}]},i=[e.BACKSLASH_ESCAPE,t,r],a=[r,e.HASH_COMMENT_MODE,e.COMMENT("^\\=\\w","\\=cut",{endsWithParent:!0}),s,{className:"string",contains:i,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*\\<",end:"\\>",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:"{\\w+}",contains:[],relevance:0},{begin:"-?\\w+\\s*\\=\\>",contains:[],relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",begin:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",relevance:10},{className:"regexp",begin:"(m|qr)?/",end:"/[a-z]*",contains:[e.BACKSLASH_ESCAPE],relevance:0}]},{className:"function",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return t.contains=a,s.contains=a,{name:"Perl",aliases:["pl","pm"],keywords:n,contains:a}}}());hljs.registerLanguage("swift",function(){"use strict";return function(e){var i={keyword:"#available #colorLiteral #column #else #elseif #endif #file #fileLiteral #function #if #imageLiteral #line #selector #sourceLocation _ __COLUMN__ __FILE__ __FUNCTION__ __LINE__ Any as as! as? associatedtype associativity break case catch class continue convenience default defer deinit didSet do dynamic dynamicType else enum extension fallthrough false fileprivate final for func get guard if import in indirect infix init inout internal is lazy left let mutating nil none nonmutating open operator optional override postfix precedence prefix private protocol Protocol public repeat required rethrows return right self Self set static struct subscript super switch throw throws true try try! try? Type typealias unowned var weak where while willSet",literal:"true false nil",built_in:"abs advance alignof alignofValue anyGenerator assert assertionFailure bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c compactMap contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal fatalError filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare map max maxElement min minElement numericCast overlaps partition posix precondition preconditionFailure print println quickSort readLine reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith stride strideof strideofValue swap toString transcode underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers withUnsafePointer withUnsafePointers withVaList zip"},n=e.COMMENT("/\\*","\\*/",{contains:["self"]}),t={className:"subst",begin:/\\\(/,end:"\\)",keywords:i,contains:[]},a={className:"string",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:/"""/,end:/"""/},{begin:/"/,end:/"/}]},r={className:"number",begin:"\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b",relevance:0};return t.contains=[r],{name:"Swift",keywords:i,contains:[a,e.C_LINE_COMMENT_MODE,n,{className:"type",begin:"\\b[A-Z][\\wÀ-ʸ']*[!?]"},{className:"type",begin:"\\b[A-Z][\\wÀ-ʸ']*",relevance:0},r,{className:"function",beginKeywords:"func",end:"{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{begin://},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:i,contains:["self",r,a,e.C_BLOCK_COMMENT_MODE,{begin:":"}],illegal:/["']/}],illegal:/\[|%/},{className:"class",beginKeywords:"struct protocol class extension enum",keywords:i,end:"\\{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/})]},{className:"meta",begin:"(@discardableResult|@warn_unused_result|@exported|@lazy|@noescape|@NSCopying|@NSManaged|@objc|@objcMembers|@convention|@required|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix|@autoclosure|@testable|@available|@nonobjc|@NSApplicationMain|@UIApplicationMain|@dynamicMemberLookup|@propertyWrapper)\\b"},{beginKeywords:"import",end:/$/,contains:[e.C_LINE_COMMENT_MODE,n]}]}}}());hljs.registerLanguage("makefile",function(){"use strict";return function(e){var i={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,contains:[{className:"meta",begin:"",relevance:10,contains:[a,i,t,s,{begin:"\\[",end:"\\]",contains:[{className:"meta",begin:"",contains:[a,s,i,t]}]}]},e.COMMENT("\x3c!--","--\x3e",{relevance:10}),{begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",relevance:10},n,{className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{className:"tag",begin:")",end:">",keywords:{name:"style"},contains:[c],starts:{end:"",returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:")",end:">",keywords:{name:"script"},contains:[c],starts:{end:"<\/script>",returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:"",contains:[{className:"name",begin:/[^\/><\s]+/,relevance:0},c]}]}}}());hljs.registerLanguage("bash",function(){"use strict";return function(e){const s={};Object.assign(s,{className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{/,end:/\}/,contains:[{begin:/:-/,contains:[s]}]}]});const t={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},n={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,t]};t.contains.push(n);const a={begin:/\$\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,s]},i=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10}),c={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b-?[a-z\._]+\b/,keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},contains:[i,e.SHEBANG(),c,a,e.HASH_COMMENT_MODE,n,{className:"",begin:/\\"/},{className:"string",begin:/'/,end:/'/},s]}}}());hljs.registerLanguage("c-like",function(){"use strict";return function(e){function t(e){return"(?:"+e+")?"}var n="(decltype\\(auto\\)|"+t("[a-zA-Z_]\\w*::")+"[a-zA-Z_]\\w*"+t("<.*?>")+")",r={className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},a={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},i={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},s={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(a,{className:"meta-string"}),{className:"meta-string",begin:/<.*?>/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},o={className:"title",begin:t("[a-zA-Z_]\\w*::")+e.IDENT_RE,relevance:0},c=t("[a-zA-Z_]\\w*::")+e.IDENT_RE+"\\s*\\(",l={keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary",literal:"true false nullptr NULL"},d=[r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i,a],_={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:l,contains:d.concat([{begin:/\(/,end:/\)/,keywords:l,contains:d.concat(["self"]),relevance:0}]),relevance:0},u={className:"function",begin:"("+n+"[\\*&\\s]+)+"+c,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:l,illegal:/[^\w\s\*&:<>]/,contains:[{begin:"decltype\\(auto\\)",keywords:l,relevance:0},{begin:c,returnBegin:!0,contains:[o],relevance:0},{className:"params",begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,i,r,{begin:/\(/,end:/\)/,keywords:l,relevance:0,contains:["self",e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,i,r]}]},r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s]};return{aliases:["c","cc","h","c++","h++","hpp","hh","hxx","cxx"],keywords:l,disableAutodetect:!0,illegal:"",keywords:l,contains:["self",r]},{begin:e.IDENT_RE+"::",keywords:l},{className:"class",beginKeywords:"class struct",end:/[{;:]/,contains:[{begin://,contains:["self"]},e.TITLE_MODE]}]),exports:{preprocessor:s,strings:a,keywords:l}}}}());hljs.registerLanguage("coffeescript",function(){"use strict";const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);return function(r){var t={keyword:e.concat(["then","unless","until","loop","by","when","and","or","is","isnt","not"]).filter((e=>n=>!e.includes(n))(["var","const","let","function","static"])).join(" "),literal:n.concat(["yes","no","on","off"]).join(" "),built_in:a.concat(["npm","print"]).join(" ")},i="[A-Za-z$_][0-9A-Za-z$_]*",s={className:"subst",begin:/#\{/,end:/}/,keywords:t},o=[r.BINARY_NUMBER_MODE,r.inherit(r.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",relevance:0}}),{className:"string",variants:[{begin:/'''/,end:/'''/,contains:[r.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[r.BACKSLASH_ESCAPE]},{begin:/"""/,end:/"""/,contains:[r.BACKSLASH_ESCAPE,s]},{begin:/"/,end:/"/,contains:[r.BACKSLASH_ESCAPE,s]}]},{className:"regexp",variants:[{begin:"///",end:"///",contains:[s,r.HASH_COMMENT_MODE]},{begin:"//[gim]{0,3}(?=\\W)",relevance:0},{begin:/\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)/}]},{begin:"@"+i},{subLanguage:"javascript",excludeBegin:!0,excludeEnd:!0,variants:[{begin:"```",end:"```"},{begin:"`",end:"`"}]}];s.contains=o;var c=r.inherit(r.TITLE_MODE,{begin:i}),l={className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:t,contains:["self"].concat(o)}]};return{name:"CoffeeScript",aliases:["coffee","cson","iced"],keywords:t,illegal:/\/\*/,contains:o.concat([r.COMMENT("###","###"),r.HASH_COMMENT_MODE,{className:"function",begin:"^\\s*"+i+"\\s*=\\s*(\\(.*\\))?\\s*\\B[-=]>",end:"[-=]>",returnBegin:!0,contains:[c,l]},{begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function",begin:"(\\(.*\\))?\\s*\\B[-=]>",end:"[-=]>",returnBegin:!0,contains:[l]}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[c]},c]},{begin:i+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}}());hljs.registerLanguage("ruby",function(){"use strict";return function(e){var n="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",a={keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",literal:"true false nil"},s={className:"doctag",begin:"@[A-Za-z]+"},i={begin:"#<",end:">"},r=[e.COMMENT("#","$",{contains:[s]}),e.COMMENT("^\\=begin","^\\=end",{contains:[s],relevance:10}),e.COMMENT("^__END__","\\n$")],c={className:"subst",begin:"#\\{",end:"}",keywords:a},t={className:"string",contains:[e.BACKSLASH_ESCAPE,c],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%[qQwWx]?\\(",end:"\\)"},{begin:"%[qQwWx]?\\[",end:"\\]"},{begin:"%[qQwWx]?{",end:"}"},{begin:"%[qQwWx]?<",end:">"},{begin:"%[qQwWx]?/",end:"/"},{begin:"%[qQwWx]?%",end:"%"},{begin:"%[qQwWx]?-",end:"-"},{begin:"%[qQwWx]?\\|",end:"\\|"},{begin:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/},{begin:/<<[-~]?'?(\w+)(?:.|\n)*?\n\s*\1\b/,returnBegin:!0,contains:[{begin:/<<[-~]?'?/},e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,c]})]}]},b={className:"params",begin:"\\(",end:"\\)",endsParent:!0,keywords:a},d=[t,i,{className:"class",beginKeywords:"class module",end:"$|;",illegal:/=/,contains:[e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{begin:"<\\s*",contains:[{begin:"("+e.IDENT_RE+"::)?"+e.IDENT_RE}]}].concat(r)},{className:"function",beginKeywords:"def",end:"$|;",contains:[e.inherit(e.TITLE_MODE,{begin:n}),b].concat(r)},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(\\!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[t,{begin:n}],relevance:0},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{className:"params",begin:/\|/,end:/\|/,keywords:a},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[i,{className:"regexp",contains:[e.BACKSLASH_ESCAPE,c],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r{",end:"}[a-z]*"},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(r),relevance:0}].concat(r);c.contains=d,b.contains=d;var g=[{begin:/^\s*=>/,starts:{end:"$",contains:d}},{className:"meta",begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>)",starts:{end:"$",contains:d}}];return{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:a,illegal:/\/\*/,contains:r.concat(g).concat(d)}}}());hljs.registerLanguage("yaml",function(){"use strict";return function(e){var n="true false yes no null",a="[\\w#;/?:@&=+$,.~*\\'()[\\]]+",s={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",variants:[{begin:"{{",end:"}}"},{begin:"%{",end:"}"}]}]},i=e.inherit(s,{variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),l={end:",",endsWithParent:!0,excludeEnd:!0,contains:[],keywords:n,relevance:0},t={begin:"{",end:"}",contains:[l],illegal:"\\n",relevance:0},g={begin:"\\[",end:"\\]",contains:[l],illegal:"\\n",relevance:0},b=[{className:"attr",variants:[{begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---s*$",relevance:10},{className:"string",begin:"[\\|>]([0-9]?[+-])?[ ]*\\n( *)[\\S ]+\\n(\\2[\\S ]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type",begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"\\-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{className:"number",begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"},{className:"number",begin:e.C_NUMBER_RE+"\\b"},t,g,s],c=[...b];return c.pop(),c.push(i),l.contains=c,{name:"YAML",case_insensitive:!0,aliases:["yml","YAML"],contains:b}}}());hljs.registerLanguage("d",function(){"use strict";return function(e){var a={$pattern:e.UNDERSCORE_IDENT_RE,keyword:"abstract alias align asm assert auto body break byte case cast catch class const continue debug default delete deprecated do else enum export extern final finally for foreach foreach_reverse|10 goto if immutable import in inout int interface invariant is lazy macro mixin module new nothrow out override package pragma private protected public pure ref return scope shared static struct super switch synchronized template this throw try typedef typeid typeof union unittest version void volatile while with __FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__",built_in:"bool cdouble cent cfloat char creal dchar delegate double dstring float function idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar wstring",literal:"false null true"},d="((0|[1-9][\\d_]*)|0[bB][01_]+|0[xX]([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*))",n="\\\\(['\"\\?\\\\abfnrtv]|u[\\dA-Fa-f]{4}|[0-7]{1,3}|x[\\dA-Fa-f]{2}|U[\\dA-Fa-f]{8})|&[a-zA-Z\\d]{2,};",t={className:"number",begin:"\\b"+d+"(L|u|U|Lu|LU|uL|UL)?",relevance:0},_={className:"number",begin:"\\b(((0[xX](([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)\\.([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)|\\.?([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*))[pP][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d))|((0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)(\\.\\d*|([eE][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)))|\\d+\\.(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)|\\.(0|[1-9][\\d_]*)([eE][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d))?))([fF]|L|i|[fF]i|Li)?|"+d+"(i|[fF]i|Li))",relevance:0},r={className:"string",begin:"'("+n+"|.)",end:"'",illegal:"."},i={className:"string",begin:'"',contains:[{begin:n,relevance:0}],end:'"[cwd]?'},s=e.COMMENT("\\/\\+","\\+\\/",{contains:["self"],relevance:10});return{name:"D",keywords:a,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s,{className:"string",begin:'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',relevance:10},i,{className:"string",begin:'[rq]"',end:'"[cwd]?',relevance:5},{className:"string",begin:"`",end:"`[cwd]?"},{className:"string",begin:'q"\\{',end:'\\}"'},_,t,r,{className:"meta",begin:"^#!",end:"$",relevance:5},{className:"meta",begin:"#(line)",end:"$",relevance:5},{className:"keyword",begin:"@[a-zA-Z_][a-zA-Z_\\d]*"}]}}}());hljs.registerLanguage("properties",function(){"use strict";return function(e){var n="[ \\t\\f]*",t="("+n+"[:=]"+n+"|[ \\t\\f]+)",a="([^\\\\:= \\t\\f\\n]|\\\\.)+",s={end:t,relevance:0,starts:{className:"string",end:/$/,relevance:0,contains:[{begin:"\\\\\\n"}]}};return{name:".properties",case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT("^\\s*[!#]","$"),{begin:"([^\\\\\\W:= \\t\\f\\n]|\\\\.)+"+t,returnBegin:!0,contains:[{className:"attr",begin:"([^\\\\\\W:= \\t\\f\\n]|\\\\.)+",endsParent:!0,relevance:0}],starts:s},{begin:a+t,returnBegin:!0,relevance:0,contains:[{className:"meta",begin:a,endsParent:!0,relevance:0}],starts:s},{className:"attr",relevance:0,begin:a+n+"$"}]}}}());hljs.registerLanguage("http",function(){"use strict";return function(e){var n="HTTP/[0-9\\.]+";return{name:"HTTP",aliases:["https"],illegal:"\\S",contains:[{begin:"^"+n,end:"$",contains:[{className:"number",begin:"\\b\\d{3}\\b"}]},{begin:"^[A-Z]+ (.*?) "+n+"$",returnBegin:!0,end:"$",contains:[{className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{begin:n},{className:"keyword",begin:"[A-Z]+"}]},{className:"attribute",begin:"^\\w",end:": ",excludeEnd:!0,illegal:"\\n|\\s|=",starts:{end:"$",relevance:0}},{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}]}}}());hljs.registerLanguage("haskell",function(){"use strict";return function(e){var n={variants:[e.COMMENT("--","$"),e.COMMENT("{-","-}",{contains:["self"]})]},i={className:"meta",begin:"{-#",end:"#-}"},a={className:"meta",begin:"^#",end:"$"},s={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},l={begin:"\\(",end:"\\)",illegal:'"',contains:[i,a,{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TITLE_MODE,{begin:"[_a-z][\\w']*"}),n]};return{name:"Haskell",aliases:["hs"],keywords:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec",contains:[{beginKeywords:"module",end:"where",keywords:"module where",contains:[l,n],illegal:"\\W\\.|;"},{begin:"\\bimport\\b",end:"$",keywords:"import qualified as hiding",contains:[l,n],illegal:"\\W\\.|;"},{className:"class",begin:"^(\\s*)?(class|instance)\\b",end:"where",keywords:"class family instance where",contains:[s,l,n]},{className:"class",begin:"\\b(data|(new)?type)\\b",end:"$",keywords:"data family type newtype deriving",contains:[i,s,l,{begin:"{",end:"}",contains:l.contains},n]},{beginKeywords:"default",end:"$",contains:[s,l,n]},{beginKeywords:"infix infixl infixr",end:"$",contains:[e.C_NUMBER_MODE,n]},{begin:"\\bforeign\\b",end:"$",keywords:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe",contains:[s,e.QUOTE_STRING_MODE,n]},{className:"meta",begin:"#!\\/usr\\/bin\\/env runhaskell",end:"$"},i,a,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,s,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),n,{begin:"->|<-"}]}}}());hljs.registerLanguage("handlebars",function(){"use strict";function e(...e){return e.map(e=>(function(e){return e?"string"==typeof e?e:e.source:null})(e)).join("")}return function(n){const a={"builtin-name":"action bindattr collection component concat debugger each each-in get hash if in input link-to loc log lookup mut outlet partial query-params render template textarea unbound unless view with yield"},t=/\[.*?\]/,s=/[^\s!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]+/,i=e("(",/'.*?'/,"|",/".*?"/,"|",t,"|",s,"|",/\.|\//,")+"),r=e("(",t,"|",s,")(?==)"),l={begin:i,lexemes:/[\w.\/]+/},c=n.inherit(l,{keywords:{literal:"true false undefined null"}}),o={begin:/\(/,end:/\)/},m={className:"attr",begin:r,relevance:0,starts:{begin:/=/,end:/=/,starts:{contains:[n.NUMBER_MODE,n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,c,o]}}},d={contains:[n.NUMBER_MODE,n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,{begin:/as\s+\|/,keywords:{keyword:"as"},end:/\|/,contains:[{begin:/\w+/}]},m,c,o],returnEnd:!0},g=n.inherit(l,{className:"name",keywords:a,starts:n.inherit(d,{end:/\)/})});o.contains=[g];const u=n.inherit(l,{keywords:a,className:"name",starts:n.inherit(d,{end:/}}/})}),b=n.inherit(l,{keywords:a,className:"name"}),h=n.inherit(l,{className:"name",keywords:a,starts:n.inherit(d,{end:/}}/})});return{name:"Handlebars",aliases:["hbs","html.hbs","html.handlebars","htmlbars"],case_insensitive:!0,subLanguage:"xml",contains:[{begin:/\\\{\{/,skip:!0},{begin:/\\\\(?=\{\{)/,skip:!0},n.COMMENT(/\{\{!--/,/--\}\}/),n.COMMENT(/\{\{!/,/\}\}/),{className:"template-tag",begin:/\{\{\{\{(?!\/)/,end:/\}\}\}\}/,contains:[u],starts:{end:/\{\{\{\{\//,returnEnd:!0,subLanguage:"xml"}},{className:"template-tag",begin:/\{\{\{\{\//,end:/\}\}\}\}/,contains:[b]},{className:"template-tag",begin:/\{\{#/,end:/\}\}/,contains:[u]},{className:"template-tag",begin:/\{\{(?=else\}\})/,end:/\}\}/,keywords:"else"},{className:"template-tag",begin:/\{\{\//,end:/\}\}/,contains:[b]},{className:"template-variable",begin:/\{\{\{/,end:/\}\}\}/,contains:[h]},{className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:[h]}]}}}());hljs.registerLanguage("rust",function(){"use strict";return function(e){var n="([ui](8|16|32|64|128|size)|f(32|64))?",t="drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!";return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",keyword:"abstract as async await become box break const continue crate do dyn else enum extern false final fn for if impl in let loop macro match mod move mut override priv pub ref return self Self static struct super trait true try type typeof unsafe unsized use virtual where while yield",literal:"true false Some None Ok Err",built_in:t},illegal:""}]}}}());hljs.registerLanguage("cpp",function(){"use strict";return function(e){var t=e.getLanguage("c-like").rawDefinition();return t.disableAutodetect=!1,t.name="C++",t.aliases=["cc","c++","h++","hpp","hh","hxx","cxx"],t}}());hljs.registerLanguage("ini",function(){"use strict";function e(e){return e?"string"==typeof e?e:e.source:null}function n(...n){return n.map(n=>e(n)).join("")}return function(a){var s={className:"number",relevance:0,variants:[{begin:/([\+\-]+)?[\d]+_[\d_]+/},{begin:a.NUMBER_RE}]},i=a.COMMENT();i.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];var t={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)}/}]},r={className:"literal",begin:/\bon|off|true|false|yes|no\b/},l={className:"string",contains:[a.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},c={begin:/\[/,end:/\]/,contains:[i,r,t,l,s,"self"],relevance:0},g="("+[/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/].map(n=>e(n)).join("|")+")";return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[i,{className:"section",begin:/\[+/,end:/\]+/},{begin:n(g,"(\\s*\\.\\s*",g,")*",n("(?=",/\s*=\s*[^#\s]/,")")),className:"attr",starts:{end:/$/,contains:[i,c,r,t,l,s]}}]}}}());hljs.registerLanguage("objectivec",function(){"use strict";return function(e){var n=/[a-zA-Z@][a-zA-Z0-9_]*/,_={$pattern:n,keyword:"@interface @class @protocol @implementation"};return{name:"Objective-C",aliases:["mm","objc","obj-c"],keywords:{$pattern:n,keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"},illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+_.keyword.split(" ").join("|")+")\\b",end:"({|$)",excludeEnd:!0,keywords:_,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}}());hljs.registerLanguage("apache",function(){"use strict";return function(e){var n={className:"number",begin:"\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?"};return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"section",begin:"",contains:[n,{className:"number",begin:":\\d{1,5}"},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",begin:/\w+/,relevance:0,keywords:{nomarkup:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},contains:[{className:"meta",begin:"\\s\\[",end:"\\]$"},{className:"variable",begin:"[\\$%]\\{",end:"\\}",contains:["self",{className:"number",begin:"[\\$%]\\d+"}]},n,{className:"number",begin:"\\d+"},e.QUOTE_STRING_MODE]}}],illegal:/\S/}}}());hljs.registerLanguage("java",function(){"use strict";function e(e){return e?"string"==typeof e?e:e.source:null}function n(e){return a("(",e,")?")}function a(...n){return n.map(n=>e(n)).join("")}function s(...n){return"("+n.map(n=>e(n)).join("|")+")"}return function(e){var t="false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",i={className:"meta",begin:"@[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},r=e=>a("[",e,"]+([",e,"_]*[",e,"]+)?"),c={className:"number",variants:[{begin:`\\b(0[bB]${r("01")})[lL]?`},{begin:`\\b(0${r("0-7")})[dDfFlL]?`},{begin:a(/\b0[xX]/,s(a(r("a-fA-F0-9"),/\./,r("a-fA-F0-9")),a(r("a-fA-F0-9"),/\.?/),a(/\./,r("a-fA-F0-9"))),/([pP][+-]?(\d+))?/,/[fFdDlL]?/)},{begin:a(/\b/,s(a(/\d*\./,r("\\d")),r("\\d")),/[eE][+-]?[\d]+[dDfF]?/)},{begin:a(/\b/,r(/\d/),n(/\.?/),n(r(/\d/)),/[dDfFlL]?/)}],relevance:0};return{name:"Java",aliases:["jsp"],keywords:t,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"new throw return else",relevance:0},{className:"function",begin:"([À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(<[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(\\s*,\\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*)*>)?\\s+)+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:t,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:t,relevance:0,contains:[i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},c,i]}}}());hljs.registerLanguage("x86asm",function(){"use strict";return function(s){return{name:"Intel x86 Assembly",case_insensitive:!0,keywords:{$pattern:"[.%]?"+s.IDENT_RE,keyword:"lock rep repe repz repne repnz xaquire xrelease bnd nobnd aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63",built_in:"ip eip rip al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 cs ds es fs gs ss st st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 k0 k1 k2 k3 k4 k5 k6 k7 bnd0 bnd1 bnd2 bnd3 cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d r0h r1h r2h r3h r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l db dw dd dq dt ddq do dy dz resb resw resd resq rest resdq reso resy resz incbin equ times byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr",meta:"%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif %if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep %endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment .nolist __FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ __UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend align alignb sectalign daz nodaz up down zero default option assume public bits use16 use32 use64 default section segment absolute extern global common cpu float __utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ __Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__"},contains:[s.COMMENT(";","$",{relevance:0}),{className:"number",variants:[{begin:"\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|(0[Xx])?[0-9][0-9_]*\\.?[0-9_]*(?:[pP](?:[+-]?[0-9_]+)?)?)\\b",relevance:0},{begin:"\\$[0-9][0-9A-Fa-f]*",relevance:0},{begin:"\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b"},{begin:"\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b"}]},s.QUOTE_STRING_MODE,{className:"string",variants:[{begin:"'",end:"[^\\\\]'"},{begin:"`",end:"[^\\\\]`"}],relevance:0},{className:"symbol",variants:[{begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)"},{begin:"^\\s*%%[A-Za-z0-9_$#@~.?]*:"}],relevance:0},{className:"subst",begin:"%[0-9]+",relevance:0},{className:"subst",begin:"%!S+",relevance:0},{className:"meta",begin:/^\s*\.[\w_-]+/}]}}}());hljs.registerLanguage("kotlin",function(){"use strict";return function(e){var n={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual trait volatile transient native default",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},a={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},i={className:"subst",begin:"\\${",end:"}",contains:[e.C_NUMBER_MODE]},s={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},t={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[s,i]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,s,i]}]};i.contains.push(t);var r={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},l={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(t,{className:"meta-string"})]}]},c=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),o={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},d=o;return d.variants[1].contains=[o],o.variants[1].contains=[d],{name:"Kotlin",aliases:["kt"],keywords:n,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,c,{className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},a,r,l,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:n,illegal:/fun\s+(<.*>)?[^\s\(]+(\s+[^\s\(]+)\s*=/,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[o,e.C_LINE_COMMENT_MODE,c],relevance:0},e.C_LINE_COMMENT_MODE,c,r,l,t,e.C_NUMBER_MODE]},c]},{className:"class",beginKeywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,]|$/,excludeBegin:!0,returnEnd:!0},r,l]},t,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},{className:"number",begin:"\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",relevance:0}]}}}());hljs.registerLanguage("armasm",function(){"use strict";return function(s){const e={variants:[s.COMMENT("^[ \\t]*(?=#)","$",{relevance:0,excludeBegin:!0}),s.COMMENT("[;@]","$",{relevance:0}),s.C_LINE_COMMENT_MODE,s.C_BLOCK_COMMENT_MODE]};return{name:"ARM Assembly",case_insensitive:!0,aliases:["arm"],keywords:{$pattern:"\\.?"+s.IDENT_RE,meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @"},contains:[{className:"keyword",begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?(?=\\s)"},e,s.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"[#$=]?0x[0-9a-f]+"},{begin:"[#$=]?0b[01]+"},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"symbol",variants:[{begin:"^[ \\t]*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"[=#]\\w+"}],relevance:0}]}}}());hljs.registerLanguage("go",function(){"use strict";return function(e){var n={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",literal:"true false iota nil",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{name:"Go",aliases:["golang"],keywords:n,illegal:">>|\.\.\.) /},i={className:"subst",begin:/\{/,end:/\}/,keywords:n,illegal:/#/},s={begin:/\{\{/,relevance:0},r={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/(fr|rf|f)'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/(fr|rf|f)"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)"/,end:/"/},{begin:/(fr|rf|f)'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,s,i]},{begin:/(fr|rf|f)"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,i]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},l={className:"number",relevance:0,variants:[{begin:e.BINARY_NUMBER_RE+"[lLjJ]?"},{begin:"\\b(0o[0-7]+)[lLjJ]?"},{begin:e.C_NUMBER_RE+"[lLjJ]?"}]},t={className:"params",variants:[{begin:/\(\s*\)/,skip:!0,className:null},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:["self",a,l,r,e.HASH_COMMENT_MODE]}]};return i.contains=[r,l,a],{name:"Python",aliases:["py","gyp","ipython"],keywords:n,illegal:/(<\/|->|\?)|=>/,contains:[a,l,{beginKeywords:"if",relevance:0},r,e.HASH_COMMENT_MODE,{variants:[{className:"function",beginKeywords:"def"},{className:"class",beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,contains:[e.UNDERSCORE_TITLE_MODE,t,{begin:/->/,endsWithParent:!0,keywords:"None"}]},{className:"meta",begin:/^[\t ]*@/,end:/$/},{begin:/\b(print|exec)\(/}]}}}());hljs.registerLanguage("shell",function(){"use strict";return function(s){return{name:"Shell Session",aliases:["console"],contains:[{className:"meta",begin:"^\\s{0,3}[/\\w\\d\\[\\]()@-]*[>%$#]",starts:{end:"$",subLanguage:"bash"}}]}}}());hljs.registerLanguage("scala",function(){"use strict";return function(e){var n={className:"subst",variants:[{begin:"\\$[A-Za-z0-9_]+"},{begin:"\\${",end:"}"}]},a={className:"string",variants:[{begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:'"""',end:'"""',relevance:10},{begin:'[a-z]+"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,n]},{className:"string",begin:'[a-z]+"""',end:'"""',contains:[n],relevance:10}]},s={className:"type",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},t={className:"title",begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,relevance:0},i={className:"class",beginKeywords:"class object trait type",end:/[:={\[\n;]/,excludeEnd:!0,contains:[{beginKeywords:"extends with",relevance:10},{begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[s]},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[s]},t]},l={className:"function",beginKeywords:"def",end:/[:={\[(\n;]/,excludeEnd:!0,contains:[t]};return{name:"Scala",keywords:{literal:"true false null",keyword:"type yield lazy override def with val var sealed abstract private trait object if forSome for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,{className:"symbol",begin:"'\\w[\\w\\d_]*(?!')"},s,l,i,e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"}]}}}());hljs.registerLanguage("julia",function(){"use strict";return function(e){var r="[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*",t={$pattern:r,keyword:"in isa where baremodule begin break catch ccall const continue do else elseif end export false finally for function global if import importall let local macro module quote return true try using while type immutable abstract bitstype typealias ",literal:"true false ARGS C_NULL DevNull ENDIAN_BOM ENV I Inf Inf16 Inf32 Inf64 InsertionSort JULIA_HOME LOAD_PATH MergeSort NaN NaN16 NaN32 NaN64 PROGRAM_FILE QuickSort RoundDown RoundFromZero RoundNearest RoundNearestTiesAway RoundNearestTiesUp RoundToZero RoundUp STDERR STDIN STDOUT VERSION catalan e|0 eu|0 eulergamma golden im nothing pi γ π φ ",built_in:"ANY AbstractArray AbstractChannel AbstractFloat AbstractMatrix AbstractRNG AbstractSerializer AbstractSet AbstractSparseArray AbstractSparseMatrix AbstractSparseVector AbstractString AbstractUnitRange AbstractVecOrMat AbstractVector Any ArgumentError Array AssertionError Associative Base64DecodePipe Base64EncodePipe Bidiagonal BigFloat BigInt BitArray BitMatrix BitVector Bool BoundsError BufferStream CachingPool CapturedException CartesianIndex CartesianRange Cchar Cdouble Cfloat Channel Char Cint Cintmax_t Clong Clonglong ClusterManager Cmd CodeInfo Colon Complex Complex128 Complex32 Complex64 CompositeException Condition ConjArray ConjMatrix ConjVector Cptrdiff_t Cshort Csize_t Cssize_t Cstring Cuchar Cuint Cuintmax_t Culong Culonglong Cushort Cwchar_t Cwstring DataType Date DateFormat DateTime DenseArray DenseMatrix DenseVecOrMat DenseVector Diagonal Dict DimensionMismatch Dims DirectIndexString Display DivideError DomainError EOFError EachLine Enum Enumerate ErrorException Exception ExponentialBackOff Expr Factorization FileMonitor Float16 Float32 Float64 Function Future GlobalRef GotoNode HTML Hermitian IO IOBuffer IOContext IOStream IPAddr IPv4 IPv6 IndexCartesian IndexLinear IndexStyle InexactError InitError Int Int128 Int16 Int32 Int64 Int8 IntSet Integer InterruptException InvalidStateException Irrational KeyError LabelNode LinSpace LineNumberNode LoadError LowerTriangular MIME Matrix MersenneTwister Method MethodError MethodTable Module NTuple NewvarNode NullException Nullable Number ObjectIdDict OrdinalRange OutOfMemoryError OverflowError Pair ParseError PartialQuickSort PermutedDimsArray Pipe PollingFileWatcher ProcessExitedException Ptr QuoteNode RandomDevice Range RangeIndex Rational RawFD ReadOnlyMemoryError Real ReentrantLock Ref Regex RegexMatch RemoteChannel RemoteException RevString RoundingMode RowVector SSAValue SegmentationFault SerializationState Set SharedArray SharedMatrix SharedVector Signed SimpleVector Slot SlotNumber SparseMatrixCSC SparseVector StackFrame StackOverflowError StackTrace StepRange StepRangeLen StridedArray StridedMatrix StridedVecOrMat StridedVector String SubArray SubString SymTridiagonal Symbol Symmetric SystemError TCPSocket Task Text TextDisplay Timer Tridiagonal Tuple Type TypeError TypeMapEntry TypeMapLevel TypeName TypeVar TypedSlot UDPSocket UInt UInt128 UInt16 UInt32 UInt64 UInt8 UndefRefError UndefVarError UnicodeError UniformScaling Union UnionAll UnitRange Unsigned UpperTriangular Val Vararg VecElement VecOrMat Vector VersionNumber Void WeakKeyDict WeakRef WorkerConfig WorkerPool "},a={keywords:t,illegal:/<\//},n={className:"subst",begin:/\$\(/,end:/\)/,keywords:t},o={className:"variable",begin:"\\$"+r},i={className:"string",contains:[e.BACKSLASH_ESCAPE,n,o],variants:[{begin:/\w*"""/,end:/"""\w*/,relevance:10},{begin:/\w*"/,end:/"\w*/}]},l={className:"string",contains:[e.BACKSLASH_ESCAPE,n,o],begin:"`",end:"`"},s={className:"meta",begin:"@"+r};return a.name="Julia",a.contains=[{className:"number",begin:/(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/,relevance:0},{className:"string",begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},i,l,s,{className:"comment",variants:[{begin:"#=",end:"=#",relevance:10},{begin:"#",end:"$"}]},e.HASH_COMMENT_MODE,{className:"keyword",begin:"\\b(((abstract|primitive)\\s+)type|(mutable\\s+)?struct)\\b"},{begin:/<:/}],n.contains=a.contains,a}}());hljs.registerLanguage("php-template",function(){"use strict";return function(n){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},n.inherit(n.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),n.inherit(n.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}}());hljs.registerLanguage("scss",function(){"use strict";return function(e){var t={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b"},i={className:"number",begin:"#[0-9A-Fa-f]+"};return e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"selector-id",begin:"\\#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},{className:"selector-attr",begin:"\\[",end:"\\]",illegal:"$"},{className:"selector-tag",begin:"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b",relevance:0},{className:"selector-pseudo",begin:":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)"},{className:"selector-pseudo",begin:"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)"},t,{className:"attribute",begin:"\\b(src|z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b",illegal:"[^\\s]"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:":",end:";",contains:[t,i,e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{className:"meta",begin:"!important"}]},{begin:"@(page|font-face)",lexemes:"@[a-z-]+",keywords:"@page @font-face"},{begin:"@",end:"[{;]",returnBegin:!0,keywords:"and or not only",contains:[{begin:"@[a-z-]+",className:"keyword"},t,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,i,e.CSS_NUMBER_MODE]}]}}}());hljs.registerLanguage("r",function(){"use strict";return function(e){var n="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{name:"R",contains:[e.HASH_COMMENT_MODE,{begin:n,keywords:{$pattern:n,keyword:"function if in break next repeat else for return switch while try tryCatch stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...",literal:"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10"},relevance:0},{className:"number",begin:"0[xX][0-9a-fA-F]+[Li]?\\b",relevance:0},{className:"number",begin:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",relevance:0},{className:"number",begin:"\\d+\\.(?!\\d)(?:i\\b)?",relevance:0},{className:"number",begin:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{className:"number",begin:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{begin:"`",end:"`",relevance:0},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:'"',end:'"'},{begin:"'",end:"'"}]}]}}}());hljs.registerLanguage("sql",function(){"use strict";return function(e){var t=e.COMMENT("--","$");return{name:"SQL",case_insensitive:!0,illegal:/[<>{}*]/,contains:[{beginKeywords:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment values with",end:/;/,endsWithParent:!0,keywords:{$pattern:/[\w\.]+/,keyword:"as abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias all allocate allow alter always analyze ancillary and anti any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound bucket buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain explode export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force foreign form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour hours http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lateral lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minutes minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notnull notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second seconds section securefile security seed segment select self semi sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tablesample tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unnest unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace window with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null unknown",built_in:"array bigint binary bit blob bool boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text time timestamp tinyint varchar varchar2 varying void"},contains:[{className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},{className:"string",begin:'"',end:'"',contains:[{begin:'""'}]},{className:"string",begin:"`",end:"`"},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,e.HASH_COMMENT_MODE]},e.C_BLOCK_COMMENT_MODE,t,e.HASH_COMMENT_MODE]}}}());hljs.registerLanguage("c",function(){"use strict";return function(e){var n=e.getLanguage("c-like").rawDefinition();return n.name="C",n.aliases=["c","h"],n}}());hljs.registerLanguage("json",function(){"use strict";return function(n){var e={literal:"true false null"},i=[n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],t=[n.QUOTE_STRING_MODE,n.C_NUMBER_MODE],a={end:",",endsWithParent:!0,excludeEnd:!0,contains:t,keywords:e},l={begin:"{",end:"}",contains:[{className:"attr",begin:/"/,end:/"/,contains:[n.BACKSLASH_ESCAPE],illegal:"\\n"},n.inherit(a,{begin:/:/})].concat(i),illegal:"\\S"},s={begin:"\\[",end:"\\]",contains:[n.inherit(a)],illegal:"\\S"};return t.push(l,s),i.forEach((function(n){t.push(n)})),{name:"JSON",contains:t,keywords:e,illegal:"\\S"}}}());hljs.registerLanguage("python-repl",function(){"use strict";return function(n){return{aliases:["pycon"],contains:[{className:"meta",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}}());hljs.registerLanguage("markdown",function(){"use strict";return function(n){const e={begin:"<",end:">",subLanguage:"xml",relevance:0},a={begin:"\\[.+?\\][\\(\\[].*?[\\)\\]]",returnBegin:!0,contains:[{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0,relevance:0},{className:"link",begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}],relevance:10},i={className:"strong",contains:[],variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},s={className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{begin:/_(?!_)/,end:/_/,relevance:0}]};i.contains.push(s),s.contains.push(i);var c=[e,a];return i.contains=i.contains.concat(c),s.contains=s.contains.concat(c),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:c=c.concat(i,s)},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:c}]}]},e,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},i,s,{className:"quote",begin:"^>\\s+",contains:c,end:"$"},{className:"code",variants:[{begin:"(`{3,})(.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})(.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},a,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}}());hljs.registerLanguage("javascript",function(){"use strict";const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);function s(e){return r("(?=",e,")")}function r(...e){return e.map(e=>(function(e){return e?"string"==typeof e?e:e.source:null})(e)).join("")}return function(t){var i="[A-Za-z$_][0-9A-Za-z$_]*",c={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/},o={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:e.join(" "),literal:n.join(" "),built_in:a.join(" ")},l={className:"number",variants:[{begin:"\\b(0[bB][01]+)n?"},{begin:"\\b(0[oO][0-7]+)n?"},{begin:t.C_NUMBER_RE+"n?"}],relevance:0},E={className:"subst",begin:"\\$\\{",end:"\\}",keywords:o,contains:[]},d={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,E],subLanguage:"xml"}},g={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,E],subLanguage:"css"}},u={className:"string",begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE,E]};E.contains=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,d,g,u,l,t.REGEXP_MODE];var b=E.contains.concat([{begin:/\(/,end:/\)/,contains:["self"].concat(E.contains,[t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE])},t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]),_={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:b};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:o,contains:[t.SHEBANG({binary:"node",relevance:5}),{className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,d,g,u,t.C_LINE_COMMENT_MODE,t.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+",contains:[{className:"type",begin:"\\{",end:"\\}",relevance:0},{className:"variable",begin:i+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),t.C_BLOCK_COMMENT_MODE,l,{begin:r(/[{,\n]\s*/,s(r(/(((\/\/.*)|(\/\*(.|\n)*\*\/))\s*)*/,i+"\\s*:"))),relevance:0,contains:[{className:"attr",begin:i+s("\\s*:"),relevance:0}]},{begin:"("+t.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,t.REGEXP_MODE,{className:"function",begin:"(\\([^(]*(\\([^(]*(\\([^(]*\\))?\\))?\\)|"+t.UNDERSCORE_IDENT_RE+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t.UNDERSCORE_IDENT_RE},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:b}]}]},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{variants:[{begin:"<>",end:""},{begin:c.begin,end:c.end}],subLanguage:"xml",contains:[{begin:c.begin,end:c.end,skip:!0,contains:["self"]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[t.inherit(t.TITLE_MODE,{begin:i}),_],illegal:/\[|%/},{begin:/\$[(.]/},t.METHOD_GUARD,{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends"},t.UNDERSCORE_TITLE_MODE]},{beginKeywords:"constructor",end:/\{/,excludeEnd:!0},{begin:"(get|set)\\s+(?="+i+"\\()",end:/{/,keywords:"get set",contains:[t.inherit(t.TITLE_MODE,{begin:i}),{begin:/\(\)/},_]}],illegal:/#(?!!)/}}}());hljs.registerLanguage("typescript",function(){"use strict";const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);return function(r){var t={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:e.concat(["type","namespace","typedef","interface","public","private","protected","implements","declare","abstract","readonly"]).join(" "),literal:n.join(" "),built_in:a.concat(["any","void","number","boolean","string","object","never","enum"]).join(" ")},s={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},i={className:"number",variants:[{begin:"\\b(0[bB][01]+)n?"},{begin:"\\b(0[oO][0-7]+)n?"},{begin:r.C_NUMBER_RE+"n?"}],relevance:0},o={className:"subst",begin:"\\$\\{",end:"\\}",keywords:t,contains:[]},c={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[r.BACKSLASH_ESCAPE,o],subLanguage:"xml"}},l={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[r.BACKSLASH_ESCAPE,o],subLanguage:"css"}},E={className:"string",begin:"`",end:"`",contains:[r.BACKSLASH_ESCAPE,o]};o.contains=[r.APOS_STRING_MODE,r.QUOTE_STRING_MODE,c,l,E,i,r.REGEXP_MODE];var d={begin:"\\(",end:/\)/,keywords:t,contains:["self",r.QUOTE_STRING_MODE,r.APOS_STRING_MODE,r.NUMBER_MODE]},u={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,contains:[r.C_LINE_COMMENT_MODE,r.C_BLOCK_COMMENT_MODE,s,d]};return{name:"TypeScript",aliases:["ts"],keywords:t,contains:[r.SHEBANG(),{className:"meta",begin:/^\s*['"]use strict['"]/},r.APOS_STRING_MODE,r.QUOTE_STRING_MODE,c,l,E,r.C_LINE_COMMENT_MODE,r.C_BLOCK_COMMENT_MODE,i,{begin:"("+r.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[r.C_LINE_COMMENT_MODE,r.C_BLOCK_COMMENT_MODE,r.REGEXP_MODE,{className:"function",begin:"(\\([^(]*(\\([^(]*(\\([^(]*\\))?\\))?\\)|"+r.UNDERSCORE_IDENT_RE+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:r.UNDERSCORE_IDENT_RE},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,contains:d.contains}]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/[\{;]/,excludeEnd:!0,keywords:t,contains:["self",r.inherit(r.TITLE_MODE,{begin:"[A-Za-z$_][0-9A-Za-z$_]*"}),u],illegal:/%/,relevance:0},{beginKeywords:"constructor",end:/[\{;]/,excludeEnd:!0,contains:["self",u]},{begin:/module\./,keywords:{built_in:"module"},relevance:0},{beginKeywords:"module",end:/\{/,excludeEnd:!0},{beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:"interface extends"},{begin:/\$[(.]/},{begin:"\\."+r.IDENT_RE,relevance:0},s,d]}}}());hljs.registerLanguage("plaintext",function(){"use strict";return function(t){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}}());hljs.registerLanguage("less",function(){"use strict";return function(e){var n="([\\w-]+|@{[\\w-]+})",a=[],s=[],t=function(e){return{className:"string",begin:"~?"+e+".*?"+e}},r=function(e,n,a){return{className:e,begin:n,relevance:a}},i={begin:"\\(",end:"\\)",contains:s,relevance:0};s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t("'"),t('"'),e.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},r("number","#[0-9A-Fa-f]+\\b"),i,r("variable","@@?[\\w-]+",10),r("variable","@{[\\w-]+}"),r("built_in","~?`[^`]*?`"),{className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0},{className:"meta",begin:"!important"});var c=s.concat({begin:"{",end:"}",contains:a}),l={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(s)},o={begin:n+"\\s*:",returnBegin:!0,end:"[;}]",relevance:0,contains:[{className:"attribute",begin:n,end:":",excludeEnd:!0,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:s}}]},g={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",returnEnd:!0,contains:s,relevance:0}},d={className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:c}},b={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:n,end:"{"}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,l,r("keyword","all\\b"),r("variable","@{[\\w-]+}"),r("selector-tag",n+"%?",0),r("selector-id","#"+n),r("selector-class","\\."+n,0),r("selector-tag","&",0),{className:"selector-attr",begin:"\\[",end:"\\]"},{className:"selector-pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"\\(",end:"\\)",contains:c},{begin:"!important"}]};return a.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,g,d,o,b),{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:a}}}());hljs.registerLanguage("lua",function(){"use strict";return function(e){var t={begin:"\\[=*\\[",end:"\\]=*\\]",contains:["self"]},a=[e.COMMENT("--(?!\\[=*\\[)","$"),e.COMMENT("--\\[=*\\[","\\]=*\\]",{contains:[t],relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:a.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:a}].concat(a)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"\\[=*\\[",end:"\\]=*\\]",contains:[t],relevance:5}])}}}()); diff --git a/arc-docs/theme/index.hbs b/arc-docs/theme/index.hbs deleted file mode 100644 index 18d984a2b..000000000 --- a/arc-docs/theme/index.hbs +++ /dev/null @@ -1,314 +0,0 @@ - - - - - - {{ title }} - {{#if is_print }} - - {{/if}} - {{#if base_url}} - - {{/if}} - - - - {{> head}} - - - - - - - {{#if favicon_svg}} - - {{/if}} - {{#if favicon_png}} - - {{/if}} - - - - {{#if print_enable}} - - {{/if}} - - - - {{#if copy_fonts}} - - {{/if}} - - - - - - - - {{#each additional_css}} - - {{/each}} - - {{#if mathjax_support}} - - - {{/if}} - - - - - - - - - - - - - - -

      - -
      - - {{#if live_reload_endpoint}} - - - {{/if}} - - {{#if google_analytics}} - - - {{/if}} - - {{#if playground_line_numbers}} - - {{/if}} - - {{#if playground_copyable}} - - {{/if}} - - {{#if playground_js}} - - - - - - {{/if}} - - {{#if search_js}} - - - - {{/if}} - - - - - - - {{#each additional_js}} - - {{/each}} - - {{#if is_print}} - {{#if mathjax_support}} - - {{else}} - - {{/if}} - {{/if}} - - - diff --git a/arc-lang/Cargo.lock b/arc-lang/Cargo.lock new file mode 100644 index 000000000..b68684f47 --- /dev/null +++ b/arc-lang/Cargo.lock @@ -0,0 +1,5484 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "ahash" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +dependencies = [ + "getrandom", + "once_cell", + "version_check", +] + +[[package]] +name = "ahash" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", +] + +[[package]] +name = "aho-corasick" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" +dependencies = [ + "memchr", +] + +[[package]] +name = "ammonia" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64e6d1c7838db705c9b756557ee27c384ce695a1c51a6fe528784cb1c6840170" +dependencies = [ + "html5ever", + "maplit", + "once_cell", + "tendril", + "url", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "anstream" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is-terminal", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd" + +[[package]] +name = "anstyle-parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "anstyle-wincon" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188" +dependencies = [ + "anstyle", + "windows-sys 0.48.0", +] + +[[package]] +name = "anyhow" +version = "1.0.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" + +[[package]] +name = "api" +version = "0.1.0" +dependencies = [ + "halfbrown", + "indexmap 1.9.3", + "serde", +] + +[[package]] +name = "arc-lang" +version = "0.0.0" +dependencies = [ + "anyhow", + "ast", + "ast-prelude", + "clap 4.3.23", + "compiler", + "config", + "hir-interpreter", + "logging", + "repl", + "runtime", + "tokio", + "tracing", + "version", +] + +[[package]] +name = "ariadne" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72fe02fc62033df9ba41cba57ee19acf5e742511a140c7dbc3a873e19a19a1bd" +dependencies = [ + "unicode-width", + "yansi", +] + +[[package]] +name = "ascii-canvas" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" +dependencies = [ + "term", +] + +[[package]] +name = "ast" +version = "0.0.0" +dependencies = [ + "codegen", + "im-rc", + "info", + "lexer", + "syn 2.0.29", +] + +[[package]] +name = "ast-prelude" +version = "0.0.0" +dependencies = [ + "ast", + "im-rc", + "info", + "utils", +] + +[[package]] +name = "ast-to-hir" +version = "0.0.0" +dependencies = [ + "ast", + "ast-prelude", + "codegen", + "diagnostics", + "hir", + "im-rc", + "info", + "lazy_static", + "name-gen", + "parser", + "regex", + "stack", + "utils", +] + +[[package]] +name = "async-trait" +version = "0.1.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b2d0f03b3640e3a630367e40c468cb7f309529c708ed1d88597047b0e7c6ef7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.29", +] + +[[package]] +name = "atoi" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" +dependencies = [ + "num-traits", +] + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi 0.1.19", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "axum" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8175979259124331c1d7bf6586ee7e0da434155e4b2d48ec2c8386281d8df39" +dependencies = [ + "async-trait", + "axum-core", + "bitflags 1.3.2", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + +[[package]] +name = "backtrace" +version = "0.3.68" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" + +[[package]] +name = "beef" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bit_field" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" + +[[package]] +name = "bitflags" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" + +[[package]] +name = "bitmaps" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" +dependencies = [ + "typenum", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bstr" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05" +dependencies = [ + "memchr", + "regex-automata 0.3.6", + "serde", +] + +[[package]] +name = "build" +version = "0.0.0" +dependencies = [ + "anyhow", + "diagnostics", + "directories", + "indoc 2.0.3", + "names", + "time", + "tracing", +] + +[[package]] +name = "built" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b99c4cdc7b2c2364182331055623bdf45254fcb679fea565c40c3c11c101889a" +dependencies = [ + "cargo-lock", + "chrono", +] + +[[package]] +name = "builtins" +version = "0.0.0" +dependencies = [ + "derive_more", + "float-cmp", + "formats", + "futures", + "hyper", + "image", + "macros", + "minus", + "ndarray", + "num 0.4.1", + "num-traits", + "once_cell", + "ort", + "serde", + "time", + "tokio", + "tokio-stream", + "tokio-util", + "tracing", + "url", +] + +[[package]] +name = "bumpalo" +version = "3.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" + +[[package]] +name = "bytemuck" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "bytes" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" + +[[package]] +name = "cargo-lock" +version = "9.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e11c675378efb449ed3ce8de78d75d0d80542fc98487c26aba28eb3b82feac72" +dependencies = [ + "semver", + "serde", + "toml 0.7.6", + "url", +] + +[[package]] +name = "cc" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "num-traits", + "winapi 0.3.9", +] + +[[package]] +name = "clap" +version = "3.2.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5" +dependencies = [ + "atty", + "bitflags 1.3.2", + "clap_derive 3.2.18", + "clap_lex 0.2.4", + "indexmap 1.9.3", + "once_cell", + "strsim", + "termcolor", + "textwrap", +] + +[[package]] +name = "clap" +version = "4.3.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03aef18ddf7d879c15ce20f04826ef8418101c7e528014c3eeea13321047dca3" +dependencies = [ + "clap_builder", + "clap_derive 4.3.12", + "once_cell", +] + +[[package]] +name = "clap_builder" +version = "4.3.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ce6fffb678c9b80a70b6b6de0aad31df727623a70fd9a842c30cd573e2fa98" +dependencies = [ + "anstream", + "anstyle", + "clap_lex 0.5.0", + "once_cell", + "strsim", + "terminal_size", +] + +[[package]] +name = "clap_complete" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fc443334c81a804575546c5a8a79b4913b50e28d69232903604cada1de817ce" +dependencies = [ + "clap 4.3.23", +] + +[[package]] +name = "clap_derive" +version = "3.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea0c8bce528c4be4da13ea6fead8965e95b6073585a2f05204bd8f4119f82a65" +dependencies = [ + "heck", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "clap_derive" +version = "4.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.29", +] + +[[package]] +name = "clap_lex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +dependencies = [ + "os_str_bytes", +] + +[[package]] +name = "clap_lex" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b" + +[[package]] +name = "client" +version = "0.0.0" +dependencies = [ + "api", + "axum", + "clap 4.3.23", + "futures", + "io", + "reqwest", + "serde", + "serde_json", + "tokio", + "tokio-futures", + "tokio-serde", + "tokio-stream", + "tokio-util", + "tracing", + "tracing-subscriber", + "which", +] + +[[package]] +name = "clipboard-win" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" +dependencies = [ + "error-code", + "str-buf", + "winapi 0.3.9", +] + +[[package]] +name = "codegen" +version = "0.0.0" +dependencies = [ + "colored", + "colors", + "config", +] + +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + +[[package]] +name = "colored" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6" +dependencies = [ + "is-terminal", + "lazy_static", + "windows-sys 0.48.0", +] + +[[package]] +name = "colors" +version = "0.0.0" +dependencies = [ + "colored", +] + +[[package]] +name = "compiler" +version = "0.0.0" +dependencies = [ + "anyhow", + "ast", + "ast-prelude", + "ast-to-hir", + "build", + "codegen", + "config", + "diagnostics", + "hir", + "hir-interpreter", + "hir-lambda-lift", + "hir-monomorphise", + "hir-patcomp", + "hir-reachable", + "hir-to-mlir", + "hir-to-rust", + "hir-type-inference", + "im-rc", + "info", + "lexer", + "logging", + "mlir", + "parser", + "rust", + "sources", + "value", + "write-ast", + "write-hir", + "write-mlir", + "write-rust", + "write-value", +] + +[[package]] +name = "completer" +version = "0.1.0" +dependencies = [ + "clap 4.3.23", + "lexer", + "rustyline", +] + +[[package]] +name = "config" +version = "0.0.0" +dependencies = [ + "clap 4.3.23", +] + +[[package]] +name = "console-api" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2895653b4d9f1538a83970077cb01dfc77a4810524e51a110944688e916b18e" +dependencies = [ + "prost", + "prost-types", + "tonic", + "tracing-core", +] + +[[package]] +name = "console-subscriber" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4cf42660ac07fcebed809cfe561dd8730bcd35b075215e6479c516bcd0d11cb" +dependencies = [ + "console-api", + "crossbeam-channel", + "crossbeam-utils", + "futures", + "hdrhistogram", + "humantime", + "prost-types", + "serde", + "serde_json", + "thread_local", + "tokio", + "tokio-stream", + "tonic", + "tracing", + "tracing-core", + "tracing-subscriber", +] + +[[package]] +name = "const_format" +version = "0.2.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c990efc7a285731f9a4378d81aff2f0e85a2c8781a05ef0f8baa8dac54d0ff48" +dependencies = [ + "const_format_proc_macros", +] + +[[package]] +name = "const_format_proc_macros" +version = "0.2.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e026b6ce194a874cb9cf32cd5772d1ef9767cc8fcb5765948d74f37a9d8b2bf6" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "coordinator" +version = "0.0.0" +dependencies = [ + "api", + "axum", + "clap 4.3.23", + "futures", + "halfbrown", + "io", + "query-compiler", + "raw-cpuid", + "rustls 0.20.8", + "rustls-pemfile", + "serde", + "serde_json", + "tokio", + "tokio-futures", + "tokio-rustls", + "tokio-serde", + "tokio-stream", + "tokio-util", + "tracing", + "which", +] + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" + +[[package]] +name = "cpufeatures" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crepe" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a572c5a5165c71c6a34cd5391521faf590f0e216031574375149fd9666ec5cad" +dependencies = [ + "petgraph", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.29", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossterm" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a84cda67535339806297f1b331d6dd6320470d2a0fe65381e79ee9e156dd3d13" +dependencies = [ + "bitflags 1.3.2", + "crossterm_winapi", + "libc", + "mio", + "parking_lot 0.12.1", + "signal-hook", + "signal-hook-mio", + "winapi 0.3.9", +] + +[[package]] +name = "crossterm_winapi" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "csv-core" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90" +dependencies = [ + "memchr", +] + +[[package]] +name = "daemon" +version = "0.0.0" + +[[package]] +name = "deranged" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7684a49fb1af197853ef7b2ee694bc1f5b4179556f1e5710e1760c5db6f5e929" +dependencies = [ + "serde", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn 1.0.109", +] + +[[package]] +name = "diagnostics" +version = "0.0.0" +dependencies = [ + "ariadne", + "backtrace", + "config", + "info", + "sources", + "syn 2.0.29", +] + +[[package]] +name = "diff" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "directories" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi 0.3.9", +] + +[[package]] +name = "educe" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "079044df30bb07de7d846d41a184c4b00e66ebdac93ee459253474f3a47e50ae" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "either" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" + +[[package]] +name = "elasticlunr-rs" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41e83863a500656dfa214fee6682de9c5b9f03de6860fec531235ed2ae9f6571" +dependencies = [ + "regex", + "serde", + "serde_derive", + "serde_json", +] + +[[package]] +name = "ena" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c533630cf40e9caa44bd91aadc88a75d75a4c3a12b4cfde353cbed41daa1e1f1" +dependencies = [ + "log", +] + +[[package]] +name = "encoding_rs" +version = "0.8.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "endian-type" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" + +[[package]] +name = "enum-ordinalize" +version = "3.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4f76552f53cefc9a7f64987c3701b99d982f7690606fd67de1d09712fbf52f1" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.29", +] + +[[package]] +name = "env_logger" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" +dependencies = [ + "errno-dragonfly", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "errno" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" +dependencies = [ + "errno-dragonfly", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "errno-dragonfly" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "error-code" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21" +dependencies = [ + "libc", + "str-buf", +] + +[[package]] +name = "exr" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1e481eb11a482815d3e9d618db8c42a93207134662873809335a92327440c18" +dependencies = [ + "bit_field", + "flume", + "half", + "lebe", + "miniz_oxide", + "rayon-core", + "smallvec", + "zune-inflate", +] + +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + +[[package]] +name = "fd-lock" +version = "3.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef033ed5e9bad94e55838ca0ca906db0e043f517adda0c8b79c7a8c66c93c1b5" +dependencies = [ + "cfg-if", + "rustix 0.38.4", + "windows-sys 0.48.0", +] + +[[package]] +name = "fdeflate" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "filetime" +version = "0.2.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.3.5", + "windows-sys 0.48.0", +] + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "flink" +version = "0.1.0" + +[[package]] +name = "float-cmp" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" +dependencies = [ + "num-traits", +] + +[[package]] +name = "flume" +version = "0.10.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577" +dependencies = [ + "futures-core", + "futures-sink", + "nanorand", + "pin-project", + "spin 0.9.8", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "formats" +version = "0.0.0" +dependencies = [ + "atoi", + "csv-core", + "itoa", + "lexical-parse-float", + "ryu", + "serde", + "serde_json", + "tracing", +] + +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "fsevent-sys" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" +dependencies = [ + "libc", +] + +[[package]] +name = "futf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" +dependencies = [ + "mac", + "new_debug_unreachable", +] + +[[package]] +name = "futures" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" + +[[package]] +name = "futures-executor" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" + +[[package]] +name = "futures-macro" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.29", +] + +[[package]] +name = "futures-sink" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" + +[[package]] +name = "futures-task" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" + +[[package]] +name = "futures-util" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "gif" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045" +dependencies = [ + "color_quant", + "weezl", +] + +[[package]] +name = "gimli" +version = "0.27.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" + +[[package]] +name = "globset" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d" +dependencies = [ + "aho-corasick", + "bstr", + "fnv", + "log", + "regex", +] + +[[package]] +name = "h2" +version = "0.3.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 1.9.3", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "half" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02b4af3693f1b705df946e9fe5631932443781d0aabb423b62fcd4d73f6d2fd0" +dependencies = [ + "crunchy", +] + +[[package]] +name = "halfbrown" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e2a3c70a9c00cc1ee87b54e89f9505f73bb17d63f1b25c9a462ba8ef885444f" +dependencies = [ + "hashbrown 0.13.2", + "serde", +] + +[[package]] +name = "handlebars" +version = "4.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83c3372087601b532857d332f5957cbae686da52bb7810bf038c3e3c3cc2fa0d" +dependencies = [ + "log", + "pest", + "pest_derive", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash 0.7.6", +] + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.3", +] + +[[package]] +name = "hashbrown" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" + +[[package]] +name = "hdrhistogram" +version = "7.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f19b9f54f7c7f55e31401bb647626ce0cf0f67b0004982ce815b3ee72a02aa8" +dependencies = [ + "base64 0.13.1", + "byteorder", + "flate2", + "nom", + "num-traits", +] + +[[package]] +name = "headers" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584" +dependencies = [ + "base64 0.13.1", + "bitflags 1.3.2", + "bytes", + "headers-core", + "http", + "httpdate", + "mime", + "sha1", +] + +[[package]] +name = "headers-core" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +dependencies = [ + "http", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" + +[[package]] +name = "hexf" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6618f4550dcd7d9ddb5126ab18d48dfa31aa952159cb832390bda464d3bc827e" +dependencies = [ + "hexf-parse", + "syn 1.0.109", +] + +[[package]] +name = "hexf-parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" + +[[package]] +name = "highlighter" +version = "0.0.0" +dependencies = [ + "clap 4.3.23", + "colored", + "colors", + "lexer", + "regex", + "rustyline", +] + +[[package]] +name = "hir" +version = "0.0.0" +dependencies = [ + "codegen", + "im-rc", + "info", + "utils", +] + +[[package]] +name = "hir-interpreter" +version = "0.0.0" +dependencies = [ + "anyhow", + "ast", + "ast-prelude", + "build", + "builtins", + "codegen", + "derive_more", + "diagnostics", + "hir", + "hir-reachable", + "hir-to-mlir", + "hir-to-rust", + "im-rc", + "info", + "kafka", + "minus", + "name-gen", + "num-traits", + "serde", + "stack", + "time", + "utils", + "value", + "write-ast", + "write-hir", + "write-rust", +] + +[[package]] +name = "hir-lambda-lift" +version = "0.0.0" +dependencies = [ + "codegen", + "diagnostics", + "hir", + "im-rc", + "info", + "name-gen", + "stack", + "utils", +] + +[[package]] +name = "hir-monomorphise" +version = "0.0.0" +dependencies = [ + "diagnostics", + "hir", + "im-rc", + "info", + "stack", + "utils", +] + +[[package]] +name = "hir-patcomp" +version = "0.0.0" +dependencies = [ + "diagnostics", + "hir", + "im-rc", + "info", + "name-gen", + "stack", + "utils", +] + +[[package]] +name = "hir-reachable" +version = "0.0.0" +dependencies = [ + "builtins", + "diagnostics", + "hir", + "im-rc", + "info", + "stack", + "utils", + "value", +] + +[[package]] +name = "hir-to-flink" +version = "0.1.0" + +[[package]] +name = "hir-to-mlir" +version = "0.0.0" +dependencies = [ + "codegen", + "diagnostics", + "hir", + "im-rc", + "info", + "lazy_static", + "mlir", + "name-gen", + "parser", + "regex", + "stack", + "utils", + "value", +] + +[[package]] +name = "hir-to-rust" +version = "0.0.0" +dependencies = [ + "diagnostics", + "hir", + "im-rc", + "info", + "name-gen", + "rust", + "stack", + "utils", +] + +[[package]] +name = "hir-type-inference" +version = "0.0.0" +dependencies = [ + "codegen", + "diagnostics", + "hir", + "im-rc", + "info", + "name-gen", + "stack", + "tracing", + "utils", + "write-hir", +] + +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "html5ever" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7" +dependencies = [ + "log", + "mac", + "markup5ever", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "http" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hwloc" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2934f84993b8b4bcae9b6a4e5f0aca638462dda9c7b4f26a570241494f21e0f4" +dependencies = [ + "bitflags 0.7.0", + "errno 0.2.8", + "kernel32-sys", + "libc", + "num 0.1.42", + "pkg-config", + "winapi 0.2.8", +] + +[[package]] +name = "hyper" +version = "0.14.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.4.9", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper", + "pin-project-lite", + "tokio", + "tokio-io-timeout", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "idna" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "ignore" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492" +dependencies = [ + "globset", + "lazy_static", + "log", + "memchr", + "regex", + "same-file", + "thread_local", + "walkdir", + "winapi-util", +] + +[[package]] +name = "im-rc" +version = "15.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1955a75fa080c677d3972822ec4bad316169ab1cfc6c257a942c2265dbe5fe" +dependencies = [ + "bitmaps", + "rand_core", + "rand_xoshiro", + "serde", + "sized-chunks", + "typenum", + "version_check", +] + +[[package]] +name = "image" +version = "0.24.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "exr", + "gif", + "jpeg-decoder", + "num-rational", + "num-traits", + "png", + "qoi", + "tiff", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +dependencies = [ + "equivalent", + "hashbrown 0.14.0", +] + +[[package]] +name = "indoc" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306" + +[[package]] +name = "indoc" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c785eefb63ebd0e33416dfcb8d6da0bf27ce752843a45632a67bf10d4d4b5c4" + +[[package]] +name = "info" +version = "0.0.0" +dependencies = [ + "text-size", +] + +[[package]] +name = "inotify" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" +dependencies = [ + "bitflags 1.3.2", + "inotify-sys", + "libc", +] + +[[package]] +name = "inotify-sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +dependencies = [ + "libc", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "io" +version = "0.0.0" +dependencies = [ + "console-subscriber", + "const_format", + "halfbrown", + "indexmap 1.9.3", + "raw-cpuid", + "serde", + "serde_json", + "tokio", + "tokio-serde", + "tokio-util", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" +dependencies = [ + "hermit-abi 0.3.1", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "ipnet" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" + +[[package]] +name = "is-terminal" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" +dependencies = [ + "hermit-abi 0.3.1", + "io-lifetimes", + "rustix 0.37.11", + "windows-sys 0.48.0", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" + +[[package]] +name = "jpeg-decoder" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e" +dependencies = [ + "rayon", +] + +[[package]] +name = "js-sys" +version = "0.3.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "kafka" +version = "0.0.0" +dependencies = [ + "anyhow", + "rdkafka", + "tokio", +] + +[[package]] +name = "kernel32-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] + +[[package]] +name = "kqueue" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" +dependencies = [ + "kqueue-sys", + "libc", +] + +[[package]] +name = "kqueue-sys" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" +dependencies = [ + "bitflags 1.3.2", + "libc", +] + +[[package]] +name = "lalrpop" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da4081d44f4611b66c6dd725e6de3169f9f63905421e8626fcb86b6a898998b8" +dependencies = [ + "ascii-canvas", + "bit-set", + "diff", + "ena", + "is-terminal", + "itertools", + "lalrpop-util", + "petgraph", + "pico-args", + "regex", + "regex-syntax 0.7.4", + "string_cache", + "term", + "tiny-keccak", + "unicode-xid", +] + +[[package]] +name = "lalrpop-util" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f35c735096c0293d313e8f2a641627472b83d01b937177fe76e5e2708d31e0d" +dependencies = [ + "regex", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "lebe" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" + +[[package]] +name = "lexer" +version = "0.0.0" +dependencies = [ + "diagnostics", + "info", + "logos", + "quote", + "regex", + "syn 2.0.29", +] + +[[package]] +name = "lexical-parse-float" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f" +dependencies = [ + "lexical-parse-integer", + "lexical-util", + "static_assertions", +] + +[[package]] +name = "lexical-parse-integer" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9" +dependencies = [ + "lexical-util", + "static_assertions", +] + +[[package]] +name = "lexical-util" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc" +dependencies = [ + "static_assertions", +] + +[[package]] +name = "libc" +version = "0.2.147" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" + +[[package]] +name = "libz-sys" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "line-wrap" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9" +dependencies = [ + "safemem", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + +[[package]] +name = "linux-raw-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d59d8c75012853d2e872fb56bc8a2e53718e2cafe1a4c823143141c6d90c322f" + +[[package]] +name = "linux-raw-sys" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0" + +[[package]] +name = "lock_api" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "logging" +version = "0.0.0" +dependencies = [ + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "logos" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c000ca4d908ff18ac99b93a062cb8958d331c3220719c52e77cb19cc6ac5d2c1" +dependencies = [ + "logos-derive", +] + +[[package]] +name = "logos-codegen" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc487311295e0002e452025d6b580b77bb17286de87b57138f3b5db711cded68" +dependencies = [ + "beef", + "fnv", + "proc-macro2", + "quote", + "regex-syntax 0.6.29", + "syn 2.0.29", +] + +[[package]] +name = "logos-derive" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbfc0d229f1f42d790440136d941afd806bc9e949e2bcb8faa813b0f00d1267e" +dependencies = [ + "logos-codegen", +] + +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + +[[package]] +name = "macros" +version = "0.0.0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.29", +] + +[[package]] +name = "maplit" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" + +[[package]] +name = "markup5ever" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016" +dependencies = [ + "log", + "phf", + "phf_codegen", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matchit" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40" + +[[package]] +name = "matrixmultiply" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77" +dependencies = [ + "autocfg", + "rawpointer", +] + +[[package]] +name = "mdbook" +version = "0.4.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c55eb7c4dad20cc5bc15181c2aaf43d5689d5c3e0b80b50cc4cf0b7fe72a26d9" +dependencies = [ + "ammonia", + "anyhow", + "chrono", + "clap 4.3.23", + "clap_complete", + "elasticlunr-rs", + "env_logger", + "futures-util", + "handlebars", + "ignore", + "log", + "memchr", + "notify", + "notify-debouncer-mini", + "once_cell", + "opener", + "pulldown-cmark", + "regex", + "serde", + "serde_json", + "shlex", + "tempfile", + "tokio", + "toml 0.5.11", + "topological-sort", + "warp", +] + +[[package]] +name = "mdbook-arc-lang" +version = "0.0.0" +dependencies = [ + "anyhow", + "colored", + "colors", + "highlighter", + "indoc 2.0.3", + "lexer", + "mdbook", + "regex", + "serde_json", +] + +[[package]] +name = "mdbook-exec" +version = "0.0.0" +dependencies = [ + "anyhow", + "mdbook", + "regex", + "serde_json", +] + +[[package]] +name = "mdbook-grammar" +version = "0.0.0" +dependencies = [ + "anyhow", + "mdbook", + "regex", + "serde_json", +] + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime_guess" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", + "simd-adler32", +] + +[[package]] +name = "minus" +version = "5.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c3b2098701d3565543b4deca8290a10337dbc585e0e356ca46ffd1b6f7e0d6a" +dependencies = [ + "crossbeam-channel", + "crossterm", + "once_cell", + "parking_lot 0.12.1", + "regex", + "textwrap", + "thiserror", +] + +[[package]] +name = "mio" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" +dependencies = [ + "libc", + "log", + "wasi", + "windows-sys 0.45.0", +] + +[[package]] +name = "mlir" +version = "0.0.0" +dependencies = [ + "codegen", + "im-rc", + "info", + "value", +] + +[[package]] +name = "name-gen" +version = "0.0.0" + +[[package]] +name = "names" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bddcd3bf5144b6392de80e04c347cd7fab2508f6df16a85fc496ecd5cec39bc" +dependencies = [ + "clap 3.2.23", + "rand", +] + +[[package]] +name = "nanorand" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" +dependencies = [ + "getrandom", +] + +[[package]] +name = "native-tls" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "ndarray" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32" +dependencies = [ + "matrixmultiply", + "num-complex", + "num-integer", + "num-traits", + "rawpointer", + "serde", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" + +[[package]] +name = "nibble_vec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" +dependencies = [ + "smallvec", +] + +[[package]] +name = "nix" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc", + "static_assertions", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "normpath" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec60c60a693226186f5d6edf073232bfb6464ed97eb22cf3b01c1e8198fd97f5" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "notify" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" +dependencies = [ + "bitflags 2.3.3", + "crossbeam-channel", + "filetime", + "fsevent-sys", + "inotify", + "kqueue", + "libc", + "log", + "mio", + "walkdir", + "windows-sys 0.48.0", +] + +[[package]] +name = "notify-debouncer-mini" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e55ee272914f4563a2f8b8553eb6811f3c0caea81c756346bad15b7e3ef969f0" +dependencies = [ + "crossbeam-channel", + "notify", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi 0.3.9", +] + +[[package]] +name = "num" +version = "0.1.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e" +dependencies = [ + "num-integer", + "num-iter", + "num-traits", +] + +[[package]] +name = "num" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" +dependencies = [ + "hermit-abi 0.2.6", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "object" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +dependencies = [ + "parking_lot_core 0.9.7", +] + +[[package]] +name = "onig" +version = "6.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f" +dependencies = [ + "bitflags 1.3.2", + "libc", + "once_cell", + "onig_sys", +] + +[[package]] +name = "onig_sys" +version = "69.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7" +dependencies = [ + "cc", + "pkg-config", +] + +[[package]] +name = "opener" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c62dcb6174f9cb326eac248f07e955d5d559c272730b6c03e396b443b562788" +dependencies = [ + "bstr", + "normpath", + "winapi 0.3.9", +] + +[[package]] +name = "openssl" +version = "0.10.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.29", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "ort" +version = "1.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5e56c9c4185ee949ef961aca8777d1dbd52cb104b444669adad63e8181820a7" +dependencies = [ + "flate2", + "half", + "lazy_static", + "libc", + "ndarray", + "tar", + "thiserror", + "tracing", + "ureq", + "vswhom", + "winapi 0.3.9", + "zip", +] + +[[package]] +name = "os_str_bytes" +version = "6.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.6", +] + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.7", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "winapi 0.3.9", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "windows-sys 0.45.0", +] + +[[package]] +name = "parser" +version = "0.0.0" +dependencies = [ + "ast", + "diagnostics", + "im-rc", + "info", + "lalrpop", + "lalrpop-util", + "lexer", + "sources", + "syn 2.0.29", +] + +[[package]] +name = "percent-encoding" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" + +[[package]] +name = "pest" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1acb4a4365a13f749a93f1a094a7805e5cfa0955373a9de860d962eaa3a5fe5a" +dependencies = [ + "thiserror", + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "666d00490d4ac815001da55838c500eafb0320019bbaa44444137c48b443a853" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68ca01446f50dbda87c1786af8770d535423fa8a53aec03b8f4e3d7eb10e0929" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2", + "quote", + "syn 2.0.29", +] + +[[package]] +name = "pest_meta" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56af0a30af74d0445c0bf6d9d051c979b516a1a5af790d251daee76005420a48" +dependencies = [ + "once_cell", + "pest", + "sha2", +] + +[[package]] +name = "petgraph" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" +dependencies = [ + "fixedbitset", + "indexmap 1.9.3", +] + +[[package]] +name = "phf" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +dependencies = [ + "phf_shared", +] + +[[package]] +name = "phf_codegen" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" +dependencies = [ + "phf_generator", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +dependencies = [ + "phf_shared", + "rand", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pico-args" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" + +[[package]] +name = "pin-project" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c95a7476719eab1e366eaf73d0260af3021184f18177925b07f54b30089ceead" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39407670928234ebc5e6e580247dd567ad73a3578460c5990f9503df207e8f07" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.29", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" + +[[package]] +name = "plist" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdc0001cfea3db57a2e24bc0d818e9e20e554b5f97fabb9bc231dc240269ae06" +dependencies = [ + "base64 0.21.2", + "indexmap 1.9.3", + "line-wrap", + "quick-xml", + "serde", + "time", +] + +[[package]] +name = "png" +version = "0.17.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "prettyplease" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c64d9ba0963cdcea2e1b2230fbae2bab30eb25a174be395c41e764bfb65dd62" +dependencies = [ + "proc-macro2", + "syn 2.0.29", +] + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prost" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-derive" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" +dependencies = [ + "anyhow", + "itertools", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "prost-types" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" +dependencies = [ + "prost", +] + +[[package]] +name = "pulldown-cmark" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a1a2f1f0a7ecff9c31abbe177637be0e97a0aef46cf8738ece09327985d998" +dependencies = [ + "bitflags 1.3.2", + "memchr", + "unicase", +] + +[[package]] +name = "qoi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "query-compiler" +version = "0.0.0" +dependencies = [ + "api", + "crepe", + "halfbrown", + "indoc 1.0.9", + "itertools", + "proc-macro2", + "quote", + "regex", + "rust-format", + "serde_json", + "tracing", +] + +[[package]] +name = "quick-xml" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81b9228215d82c7b61490fec1de287136b5de6f5700f6e58ea9ad61a7964ca51" +dependencies = [ + "memchr", +] + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radix_trie" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" +dependencies = [ + "endian-type", + "nibble_vec", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_xoshiro" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" +dependencies = [ + "rand_core", +] + +[[package]] +name = "raw-cpuid" +version = "10.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332" +dependencies = [ + "bitflags 1.3.2", + "serde", +] + +[[package]] +name = "rawpointer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + +[[package]] +name = "rayon" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "num_cpus", +] + +[[package]] +name = "rdkafka" +version = "0.33.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da18026aad1c24033da3da726200de7e911e75c2e2cc2f77ffb9b4502720faae" +dependencies = [ + "futures-channel", + "futures-util", + "libc", + "log", + "rdkafka-sys", + "serde", + "serde_derive", + "serde_json", + "slab", + "tokio", +] + +[[package]] +name = "rdkafka-sys" +version = "4.5.0+1.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bb0676c2112342ac7165decdedbc4e7086c0af384479ccce534546b10687a5d" +dependencies = [ + "libc", + "libz-sys", + "num_enum", + "pkg-config", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_users" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +dependencies = [ + "getrandom", + "redox_syscall 0.2.16", + "thiserror", +] + +[[package]] +name = "regex" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.3.6", + "regex-syntax 0.7.4", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.7.4", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" + +[[package]] +name = "repl" +version = "0.0.0" +dependencies = [ + "anyhow", + "build", + "clap 4.3.23", + "codegen", + "colored", + "colors", + "compiler", + "completer", + "config", + "highlighter", + "im-rc", + "info", + "lexer", + "regex", + "rustyline", + "shlex", + "validator", +] + +[[package]] +name = "reqwest" +version = "0.11.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" +dependencies = [ + "base64 0.21.2", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-tls", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted", + "web-sys", + "winapi 0.3.9", +] + +[[package]] +name = "runner" +version = "0.0.0" +dependencies = [ + "cfg-if", + "hwloc", + "libc", + "logging", + "num_cpus", + "tokio", +] + +[[package]] +name = "runtime" +version = "0.0.0" +dependencies = [ + "builtins", + "formats", + "hexf", + "macros", + "runner", + "serde", + "state", + "time", + "tokio", +] + +[[package]] +name = "rust" +version = "0.0.0" +dependencies = [ + "im-rc", + "info", + "value", +] + +[[package]] +name = "rust-format" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60e7c00b6c3bf5e38a880eec01d7e829d12ca682079f8238a464def3c4b31627" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.37.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85597d61f83914ddeba6a47b3b8ffe7365107221c2e557ed94426489fefb5f77" +dependencies = [ + "bitflags 1.3.2", + "errno 0.3.1", + "io-lifetimes", + "libc", + "linux-raw-sys 0.3.1", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustix" +version = "0.38.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5" +dependencies = [ + "bitflags 2.3.3", + "errno 0.3.1", + "libc", + "linux-raw-sys 0.4.3", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustls" +version = "0.20.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" +dependencies = [ + "log", + "ring", + "sct", + "webpki", +] + +[[package]] +name = "rustls" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8" +dependencies = [ + "log", + "ring", + "rustls-webpki 0.101.4", + "sct", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" +dependencies = [ + "base64 0.21.2", +] + +[[package]] +name = "rustls-webpki" +version = "0.100.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e98ff011474fa39949b7e5c0428f9b4937eda7da7848bbb947786b7be0b27dab" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d93931baf2d282fff8d3a532bbfd7653f734643161b87e3e01e59a04439bf0d" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" + +[[package]] +name = "rustyline" +version = "12.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "994eca4bca05c87e86e15d90fc7a91d1be64b4482b38cb2d27474568fe7c9db9" +dependencies = [ + "bitflags 2.3.3", + "cfg-if", + "clipboard-win", + "fd-lock", + "home", + "libc", + "log", + "memchr", + "nix", + "radix_trie", + "rustyline-derive", + "scopeguard", + "unicode-segmentation", + "unicode-width", + "utf8parse", + "winapi 0.3.9", +] + +[[package]] +name = "rustyline-derive" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a32af5427251d2e4be14fc151eabe18abb4a7aad5efee7044da9f096c906a43" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.29", +] + +[[package]] +name = "ryu" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" + +[[package]] +name = "safemem" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "sct" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "security-framework" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" +dependencies = [ + "serde", +] + +[[package]] +name = "serde" +version = "1.0.185" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be9b6f69f1dfd54c3b568ffa45c310d6973a5e5148fd40cf515acaf38cf5bc31" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.185" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc59dfdcbad1437773485e0367fea4b090a2e0a16d9ffc46af47764536a298ec" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.29", +] + +[[package]] +name = "serde_json" +version = "1.0.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360" +dependencies = [ + "indexmap 2.0.0", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_path_to_error" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b1b6471d7496b051e03f1958802a73f88b947866f5146f329e47e36554f4e55" +dependencies = [ + "itoa", + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sha1" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha2" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sharded-slab" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shlex" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" + +[[package]] +name = "signal-hook" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-mio" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" +dependencies = [ + "libc", + "mio", + "signal-hook", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "siphasher" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" + +[[package]] +name = "sized-chunks" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" +dependencies = [ + "bitmaps", + "typenum", +] + +[[package]] +name = "slab" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +dependencies = [ + "autocfg", +] + +[[package]] +name = "sled" +version = "0.34.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f96b4737c2ce5987354855aed3797279def4ebf734436c6aa4552cf8e169935" +dependencies = [ + "crc32fast", + "crossbeam-epoch", + "crossbeam-utils", + "fs2", + "fxhash", + "libc", + "log", + "parking_lot 0.11.2", +] + +[[package]] +name = "smallvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" + +[[package]] +name = "socket2" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "socket2" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "sources" +version = "0.0.0" +dependencies = [ + "ariadne", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "stack" +version = "0.0.0" + +[[package]] +name = "state" +version = "0.1.0" +dependencies = [ + "builtins", + "serde", + "serde_json", + "sled", + "tokio", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "str-buf" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" + +[[package]] +name = "string_cache" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot 0.12.1", + "phf_shared", + "precomputed-hash", + "serde", +] + +[[package]] +name = "string_cache_codegen" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "syntect" +version = "5.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e02b4b303bf8d08bfeb0445cba5068a3d306b6baece1d5582171a9bf49188f91" +dependencies = [ + "bincode", + "bitflags 1.3.2", + "flate2", + "fnv", + "once_cell", + "onig", + "plist", + "regex-syntax 0.7.4", + "serde", + "serde_json", + "thiserror", + "walkdir", + "yaml-rust", +] + +[[package]] +name = "tar" +version = "0.4.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "tempfile" +version = "3.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6" +dependencies = [ + "autocfg", + "cfg-if", + "fastrand", + "redox_syscall 0.3.5", + "rustix 0.37.11", + "windows-sys 0.48.0", +] + +[[package]] +name = "tendril" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" +dependencies = [ + "futf", + "mac", + "utf-8", +] + +[[package]] +name = "term" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +dependencies = [ + "dirs-next", + "rustversion", + "winapi 0.3.9", +] + +[[package]] +name = "termcolor" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "terminal_size" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237" +dependencies = [ + "rustix 0.37.11", + "windows-sys 0.48.0", +] + +[[package]] +name = "text-size" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f18aa187839b2bdb1ad2fa35ead8c4c2976b64e4363c386d45ac0f7ee85c9233" + +[[package]] +name = "textwrap" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "thiserror" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.29", +] + +[[package]] +name = "thread_local" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "tiff" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d172b0f4d3fba17ba89811858b9d3d97f928aece846475bbda076ca46736211" +dependencies = [ + "flate2", + "jpeg-decoder", + "weezl", +] + +[[package]] +name = "time" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fdd63d58b18d663fbdf70e049f00a22c8e42be082203be7f26589213cd75ea" +dependencies = [ + "deranged", + "itoa", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" + +[[package]] +name = "time-macros" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb71511c991639bb078fd5bf97757e03914361c48100d52878b8e52b46fb92cd" +dependencies = [ + "time-core", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot 0.12.1", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.5.3", + "tokio-macros", + "tracing", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-futures" +version = "0.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5c8ea7f4c1ea9cdb9fb03cba1522c23e9fb97eb1518c92b952093f93f86cd" + +[[package]] +name = "tokio-io-timeout" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +dependencies = [ + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-macros" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.29", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.23.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" +dependencies = [ + "rustls 0.20.8", + "tokio", + "webpki", +] + +[[package]] +name = "tokio-serde" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "911a61637386b789af998ee23f50aa30d5fd7edcec8d6d3dedae5e5815205466" +dependencies = [ + "bytes", + "educe", + "futures-core", + "futures-sink", + "pin-project", + "serde", + "serde_json", +] + +[[package]] +name = "tokio-stream" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54319c93411147bced34cb5609a80e0a8e44c5999c93903a81cd866630ec0bfd" +dependencies = [ + "futures-util", + "log", + "tokio", + "tungstenite", +] + +[[package]] +name = "tokio-util" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" +dependencies = [ + "bytes", + "futures-core", + "futures-io", + "futures-sink", + "futures-util", + "hashbrown 0.12.3", + "pin-project-lite", + "slab", + "tokio", + "tracing", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" +dependencies = [ + "indexmap 2.0.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tonic" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a" +dependencies = [ + "async-trait", + "axum", + "base64 0.21.2", + "bytes", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "topological-sort" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea68304e134ecd095ac6c3574494fc62b909f416c4fca77e440530221e549d3d" + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand", + "slab", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +dependencies = [ + "cfg-if", + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.29", +] + +[[package]] +name = "tracing-core" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +dependencies = [ + "lazy_static", + "log", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "tree-sitter" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e747b1f9b7b931ed39a548c1fae149101497de3c1fc8d9e18c62c1a66c683d3d" +dependencies = [ + "cc", + "regex", +] + +[[package]] +name = "tree-sitter-arclang" +version = "0.0.1" +dependencies = [ + "ansi_term", + "cc", + "tree-sitter", + "tree-sitter-highlight", +] + +[[package]] +name = "tree-sitter-highlight" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "042342584c5a7a0b833d9fc4e2bdab3f9868ddc6c4b339a1e01451c6720868bc" +dependencies = [ + "regex", + "thiserror", + "tree-sitter", +] + +[[package]] +name = "try-lock" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" + +[[package]] +name = "tungstenite" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30ee6ab729cd4cf0fd55218530c4522ed30b7b6081752839b68fcec8d0960788" +dependencies = [ + "base64 0.13.1", + "byteorder", + "bytes", + "http", + "httparse", + "log", + "rand", + "sha1", + "thiserror", + "url", + "utf-8", +] + +[[package]] +name = "typenum" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" + +[[package]] +name = "ucd-trie" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" + +[[package]] +name = "unicase" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" + +[[package]] +name = "unicode-ident" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" + +[[package]] +name = "unicode-width" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "ureq" +version = "2.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b11c96ac7ee530603dcdf68ed1557050f374ce55a5a07193ebf8cbc9f8927e9" +dependencies = [ + "base64 0.21.2", + "log", + "once_cell", + "rustls 0.21.7", + "rustls-webpki 0.100.2", + "url", + "webpki-roots", +] + +[[package]] +name = "url" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + +[[package]] +name = "utils" +version = "0.0.0" +dependencies = [ + "im-rc", +] + +[[package]] +name = "validator" +version = "0.0.0" +dependencies = [ + "colored", + "rustyline", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "value" +version = "0.0.0" +dependencies = [ + "ast", + "builtins", + "hir", + "im-rc", + "info", + "serde", + "serde_json", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version" +version = "0.0.0" +dependencies = [ + "built", +] + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "vswhom" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" +dependencies = [ + "libc", + "vswhom-sys", +] + +[[package]] +name = "vswhom-sys" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "walkdir" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "warp" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba431ef570df1287f7f8b07e376491ad54f84d26ac473489427231e1718e1f69" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "headers", + "http", + "hyper", + "log", + "mime", + "mime_guess", + "percent-encoding", + "pin-project", + "rustls-pemfile", + "scoped-tls", + "serde", + "serde_json", + "serde_urlencoded", + "tokio", + "tokio-stream", + "tokio-tungstenite", + "tokio-util", + "tower-service", + "tracing", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.29", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.29", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" + +[[package]] +name = "web-sys" +version = "0.3.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "webpki-roots" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" +dependencies = [ + "rustls-webpki 0.100.2", +] + +[[package]] +name = "weezl" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" + +[[package]] +name = "which" +version = "4.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +dependencies = [ + "either", + "libc", + "once_cell", +] + +[[package]] +name = "winapi" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-build" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "winnow" +version = "0.5.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d09770118a7eb1ccaf4a594a221334119a44a814fcb0d31c5b85e83e97227a97" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "worker" +version = "0.0.0" +dependencies = [ + "api", + "axum", + "clap 4.3.23", + "futures", + "io", + "num_cpus", + "raw-cpuid", + "serde", + "tokio", + "tokio-futures", + "tokio-serde", + "tokio-stream", + "tokio-util", + "tracing", +] + +[[package]] +name = "write-ast" +version = "0.0.0" +dependencies = [ + "ast", + "codegen", + "im-rc", + "prettyplease", + "quote", + "syntect", +] + +[[package]] +name = "write-flink" +version = "0.1.0" + +[[package]] +name = "write-hir" +version = "0.0.0" +dependencies = [ + "codegen", + "colors", + "hir", + "im-rc", +] + +[[package]] +name = "write-mlir" +version = "0.0.0" +dependencies = [ + "ast-prelude", + "codegen", + "hir-interpreter", + "im-rc", + "info", + "mlir", + "name-gen", + "stack", + "utils", +] + +[[package]] +name = "write-rust" +version = "0.0.0" +dependencies = [ + "builtins", + "codegen", + "im-rc", + "rust", + "time", + "utils", + "value", +] + +[[package]] +name = "write-value" +version = "0.0.0" +dependencies = [ + "builtins", + "codegen", + "colors", + "hir", + "value", + "write-hir", +] + +[[package]] +name = "xattr" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985" +dependencies = [ + "libc", +] + +[[package]] +name = "yaml-rust" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "yansi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + +[[package]] +name = "zip" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" +dependencies = [ + "byteorder", + "crc32fast", + "crossbeam-utils", + "flate2", +] + +[[package]] +name = "zune-inflate" +version = "0.2.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02" +dependencies = [ + "simd-adler32", +] diff --git a/arc-lang/Cargo.toml b/arc-lang/Cargo.toml new file mode 100644 index 000000000..113e59706 --- /dev/null +++ b/arc-lang/Cargo.toml @@ -0,0 +1,224 @@ +[workspace] +members = [ + "crates/repl", + "crates/compiler", + "crates/compiler/infra/build", + "crates/compiler/infra/codegen", + "crates/compiler/infra/diagnostics", + "crates/compiler/infra/info", + "crates/compiler/infra/name-gen", + "crates/compiler/infra/sources", + "crates/compiler/infra/stack", + "crates/compiler/infra/utils", + "crates/compiler/infra/kafka", + "crates/compiler/irs/ast", + "crates/compiler/irs/hir", + "crates/compiler/irs/mlir", + "crates/compiler/irs/rust", + "crates/compiler/irs/flink", + "crates/compiler/irs/value", + "crates/compiler/passes/ast-prelude", + "crates/compiler/passes/ast-to-hir", + "crates/compiler/passes/hir-lambda-lift", + "crates/compiler/passes/hir-type-inference", + "crates/compiler/passes/hir-patcomp", + "crates/compiler/passes/hir-monomorphise", + "crates/compiler/passes/hir-interpreter", + "crates/compiler/passes/hir-reachable", + "crates/compiler/passes/hir-to-mlir", + "crates/compiler/passes/hir-to-rust", + "crates/compiler/passes/hir-to-flink", + "crates/compiler/codegen/write-ast", + "crates/compiler/codegen/write-hir", + "crates/compiler/codegen/write-value", + "crates/compiler/codegen/write-mlir", + "crates/compiler/codegen/write-rust", + "crates/compiler/codegen/write-flink", + "crates/manager", + "crates/runtime", + "crates/cloud/api", + "crates/cloud/client", + "crates/cloud/coordinator", + "crates/cloud/io", + "crates/cloud/query-compiler", + "crates/cloud/worker", + "crates/tree-sitter", + "crates/logging", + "crates/config", + "crates/book/mdbook-arc-lang", + "crates/book/mdbook-grammar", + "crates/book/mdbook-exec", + "crates/colors", + "crates/repl/completer", + "crates/repl/validator", + "crates/repl/highlighter", + "crates/version", +] + +[workspace.package] +version = "0.0.0" +edition = "2021" +authors = ["Klas Segeljakt", "Frej Drejhammar"] +homepage = "https://cda-group.github.io/arc" +repository = "https://github.com/cda-group/arc" +readme = "README.md" + +[workspace.dependencies] +repl = { path = "crates/repl" } +completer = { path = "crates/repl/completer" } +validator = { path = "crates/repl/validator" } +highlighter = { path = "crates/repl/highlighter" } +compiler = { path = "crates/compiler" } +config = { path = "crates/config" } +info = { path = "crates/compiler/infra/info" } +codegen = { path = "crates/compiler/infra/codegen" } +build = { path = "crates/compiler/infra/build" } +diagnostics = { path = "crates/compiler/infra/diagnostics" } +name-gen = { path = "crates/compiler/infra/name-gen" } +sources = { path = "crates/compiler/infra/sources" } +stack = { path = "crates/compiler/infra/stack" } +utils = { path = "crates/compiler/infra/utils" } +kafka = { path = "crates/compiler/infra/kafka" } +ast = { path = "crates/compiler/irs/ast" } +hir = { path = "crates/compiler/irs/hir" } +rust = { path = "crates/compiler/irs/rust" } +mlir = { path = "crates/compiler/irs/mlir" } +value = { path = "crates/compiler/irs/value" } +parser = { path = "crates/compiler/passes/parser" } +lexer = { path = "crates/compiler/passes/lexer" } +ast-prelude = { path = "crates/compiler/passes/ast-prelude" } +ast-to-hir = { path = "crates/compiler/passes/ast-to-hir" } +hir-lambda-lift = { path = "crates/compiler/passes/hir-lambda-lift" } +hir-type-inference = { path = "crates/compiler/passes/hir-type-inference" } +hir-patcomp = { path = "crates/compiler/passes/hir-patcomp" } +hir-monomorphise = { path = "crates/compiler/passes/hir-monomorphise" } +hir-interpreter = { path = "crates/compiler/passes/hir-interpreter" } +hir-reachable = { path = "crates/compiler/passes/hir-reachable" } +hir-to-mlir = { path = "crates/compiler/passes/hir-to-mlir" } +hir-to-rust = { path = "crates/compiler/passes/hir-to-rust" } +hir-to-flink = { path = "crates/compiler/passes/hir-to-flink" } +write-ast = { path = "crates/compiler/codegen/write-ast" } +write-hir = { path = "crates/compiler/codegen/write-hir" } +write-value = { path = "crates/compiler/codegen/write-value" } +write-rust = { path = "crates/compiler/codegen/write-rust" } +write-mlir = { path = "crates/compiler/codegen/write-mlir" } +write-flink = { path = "crates/compiler/codegen/write-flink" } +manager = { path = "crates/manager" } + +runtime = { path = "crates/runtime" } +builtins = { path = "crates/runtime/builtins" } +formats = { path = "crates/runtime/formats" } +macros = { path = "crates/runtime/macros" } +runner = { path = "crates/runtime/runner" } +state = { path = "crates/runtime/state" } +timer = { path = "crates/runtime/timer" } + +logging = { path = "crates/logging" } +version = { path = "crates/version" } + +mdbook-arc-lang = { path = "crates/book/mdbook-arc-lang" } +mdbook-grammar = { path = "crates/book/mdbook-grammar" } +mdbook-exec = { path = "crates/book/mdbook-exec" } +colors = { path = "crates/colors" } + +im-rc = { version = "15.1.0", features = ["serde"] } +uuid = { version = "1.4.1" } +rustyline = { version = "12.0.0", features = ["derive", "custom-bindings"] } +ariadne = { version = "0.3.0" } +indoc = { version = "2.0.3" } +colored = { version = "2.0.4" } +regex = { version = "1.9.3" } +clap = { version = "4.3.23", features = ["derive", "string"] } +shlex = { version = "1.1.0" } +anyhow = { version = "1.0.75" } +rdkafka = { version = "0.33.2" } +tokio = { version = "1.32.0", features = ["full"] } +time = { version = "0.3.25", features = ["serde-human-readable", "std", "macros"] } +backtrace = { version = "0.3.68" } +text-size = { version = "1.1.1" } +lalrpop = { version = "0.20.0", features = [ "lexer" ] } +lalrpop-util = { version = "0.20.0" } +logos = { version = "0.13.0" } +lazy_static = { version = "1.4.0" } +syn = { version = "2.0.29", features = ["full", "derive", "extra-traits"] } +prettyplease = { version = "0.2.12" } +syntect = { version = "5.1.0" } +proc-macro2 = { version = "1.0.66" } +quote = { version = "1.0.33" } +url = { version = "2.4.0", features = ["serde"] } +derive_more = { version = "0.99.17", default-features = false, features = ["from", "into", "deref", "deref_mut", "constructor", "as_ref", "unwrap"] } +rust-format = { version = "0.3.4", features = ["token_stream"] } +names = { version = "0.14.0" } +csv-core = { version = "0.1.10" } +ryu = { version = "1.0.15" } +lexical-parse-float = { version = "0.8.5", default-features = false, features = ["compact"] } +itoa = { version = "1.0.9" } +atoi = { version = "2.0.0", default-features = false } +prost = { version = "0.11.9" } +hexf = { version = "0.2.1" } +bytes = { version = "1.4.0" } +serde = { version = "=1.0.185", features = ["derive", "rc"] } +serde_derive = { version = "=1.0.185" } +float-cmp = { version = "0.9.0" } +ort = { version = "1.15.2" } +ndarray = { version = "0.15.6", features = ["serde"] } +image = { version = "0.24.7" } +sled = { version = "0.34.7" } +# tikv-client = { version = "0.1.0", optional = true } +serde_json = { version = "1.0.105" } +num = { version = "0.4.1" } +num-traits = { version = "0.2.16" } +tokio-stream = { version = "0.1.14" } +tokio-util = { version = "0.7.8", features = ["full"] } +futures = { version = "0.3.28" } +async-tempfile = { version = "0.4.0" } +tokio-serde = { version = "0.8.0", features = ["json"] } +tracing = { version = "0.1.37" } +tracing-subscriber = { version = "0.3.17", features = ["env-filter"] } +arrayvec = { version = "0.7.4" } +cfg-if = { version = "1.0.0" } +built = { version = "0.6.1", features = ["chrono"] } +mdbook = { version = "0.4.25" } +directories = { version = "5.0.1" } +once_cell = { version = "1.18.0" } +polars = { version = "0.32.1" } +# ouroboros = { version = "0.18.0" } +minus = { version = "5.4.0", features = ["static_output", "search"] } +hyper = { version = "0.14.27" } + +[package] +name = "arc-lang" +version.workspace = true +edition.workspace = true + +[dependencies] +compiler.workspace = true +config.workspace = true +clap.workspace = true +anyhow.workspace = true +tokio.workspace = true +repl.workspace = true +logging.workspace = true +version.workspace = true +tracing.workspace = true + +[dev-dependencies] +runtime.workspace = true +ast-prelude.workspace = true +hir-interpreter.workspace = true +ast.workspace = true + +[profile.dev] +debug-assertions = false +rpath = true # ONNX + +[profile.release] +rpath = true # ONNX + +[[example]] +name = "manual" +path = "examples/manual.rs" + +[[example]] +name = "predict" +path = "examples/predict.rs" diff --git a/arc-lang/arc_lang.opam b/arc-lang/arc_lang.opam deleted file mode 100644 index e69de29bb..000000000 diff --git a/arc-lang/crates/cloud/api/Cargo.toml b/arc-lang/crates/cloud/api/Cargo.toml new file mode 100644 index 000000000..d0afd2566 --- /dev/null +++ b/arc-lang/crates/cloud/api/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "api" +version = "0.1.0" +edition = "2021" + +[dependencies] +halfbrown = { version = "0.1.18", features = ["serde"] } +indexmap = { version = "1.9.2", features = ["serde"] } +serde = { version = "1.0.152", features = ["derive", "rc"] } diff --git a/arc-lang/crates/cloud/api/src/lib.rs b/arc-lang/crates/cloud/api/src/lib.rs new file mode 100644 index 000000000..6dbf9a416 --- /dev/null +++ b/arc-lang/crates/cloud/api/src/lib.rs @@ -0,0 +1,139 @@ +use halfbrown::HashMap; +use indexmap::IndexMap; +use std::collections::BTreeSet; +use std::net::IpAddr; +use std::net::SocketAddr; +use std::sync::Arc; + +use serde::Deserialize; +use serde::Serialize; + +/// Messages that can be sent to a worker. +#[derive(Clone, Debug, Deserialize, Serialize)] +pub enum WorkerAPI { + /// Execute a program on the worker. + Execute { + name: Arc, + binary: Arc>, + }, + /// Shutdown the worker. + Shutdown, +} + +/// Messages that can be sent to a coordinator. +#[derive(Clone, Debug, Deserialize, Serialize)] +pub enum CoordinatorAPI { + /// Register a new worker. + RegisterWorker { arch: Architecture }, + /// Register a new client. + RegisterClient, + /// Post a new query. + Query { source: String, config: Query }, + /// Shutdown the coordinator (and consequently the whole system). + Shutdown, +} + +/// Messages that can be sent to a client. +#[derive(Clone, Debug, Deserialize, Serialize)] +pub enum ClientAPI { + /// Request to execute query. + Query { source: String }, + /// Result of the query. + QueryResponse { data: String }, +} + +/// Responses that can be sent to an interpreter. +#[derive(Clone, Debug, Deserialize, Serialize)] +pub enum InterpreterAPI { + /// Begin interpreting file. + InterpretFile { path: String }, + /// Result of a query. + QueryResponse { data: String }, +} + +/// Requests that can be sent to a runtime. +#[derive(Clone, Debug, Deserialize, Serialize)] +pub enum RuntimeAPI { + /// Shutdown the runtime. + Shutdown, +} + +#[derive(Copy, Clone, Debug, Eq, PartialEq, Hash)] +pub struct ClientId(pub u32); + +/// The config of a query +#[derive(Clone, Copy, Debug, Deserialize, Serialize)] +pub struct Query { + pub parallelism: usize, + pub state_backend: StateBackend, +} + +/// The state backend to use for a query. +#[derive(Clone, Copy, Debug, Deserialize, Serialize)] +pub enum StateBackend { + Sled, + TiKV, +} + +/// The config of a worker, created by the coordinator. +pub struct Worker { + pub id: WorkerId, + pub arch: Architecture, + pub available_cpus: BTreeSet, + pub available_ports: BTreeSet, + pub ip: IpAddr, +} + +pub struct Cluster { + pub workers: HashMap, + pub broker: SocketAddr, +} + +#[derive(Copy, Clone, Debug, Eq, PartialEq, Hash)] +pub struct WorkerId(pub u32); + +/// Architecture of a machine. +#[derive(Clone, Debug, Deserialize, Serialize)] +pub struct Architecture { + pub target_triple: String, + pub num_cpus: usize, +} + +/// A dataflow graph. +#[derive(Clone, Debug, Serialize, Deserialize)] +pub struct Graph { + pub nodes: IndexMap, +} + +/// Possible nodes in the dataflow graph. +#[derive(Clone, Debug, Serialize, Deserialize)] +pub enum Node { + Filter { + input: String, // Input stream variable name + fun: String, // Predicate function name + }, + Map { + input: String, // Input stream variable name + fun: String, // Mapping function name + }, + Source { + key_type: String, // Key type name + data_type: String, // Data type name + topic: String, // Kafka topic + }, + Sink { + input: String, // Input stream variable name + topic: String, // Kafka topic + }, + Group { + input: String, // Input stream + fun: String, // Key extractor + }, + Union { + input0: String, // Input stream 0 variable name + input1: String, // Input stream 1 variable name + }, + Window { + input: String, // Input stream variable name + }, +} diff --git a/arc-lang/crates/cloud/client/Cargo.toml b/arc-lang/crates/cloud/client/Cargo.toml new file mode 100644 index 000000000..88d0dc197 --- /dev/null +++ b/arc-lang/crates/cloud/client/Cargo.toml @@ -0,0 +1,22 @@ +[package] +name = "client" +version = "0.0.0" +edition = "2021" + +[dependencies] +io = { path = "../io" } +api = { path = "../api" } +axum = { version = "0.6.3" } +clap = { version = "4.1.3", features = ["derive"] } +futures = { version = "0.3.25" } +serde = { version = "1.0.152", features = ["derive"] } +tokio = { version = "1.24.2", features = ["full"] } +tokio-futures = { version = "0.0.0" } +tokio-serde = { version = "0.8.0", features = ["json"] } +tokio-stream = { version = "0.1.11" } +tokio-util = { version = "0.7.4", features = ["full"] } +tracing = { version = "0.1.37" } +tracing-subscriber = { version = "0.3.16" } +reqwest = { version = "0.11.14", features = ["json"] } +serde_json = { version = "1.0.91" } +which = { version = "4.4.0" } diff --git a/arc-lang/crates/cloud/client/src/coordinator_connector.rs b/arc-lang/crates/cloud/client/src/coordinator_connector.rs new file mode 100644 index 000000000..e30a99416 --- /dev/null +++ b/arc-lang/crates/cloud/client/src/coordinator_connector.rs @@ -0,0 +1,68 @@ +use std::net::SocketAddr; + +use api::ClientAPI; +use api::CoordinatorAPI; +use futures::SinkExt; +use tokio::net::TcpStream; +use tokio_serde::formats::Json; +use tokio_serde::Framed; +use tokio_util::codec::FramedRead; +use tokio_util::codec::FramedWrite; +use tokio_util::codec::LengthDelimitedCodec; +use io::tcp; + +use crate::coordinator_rx::CoordinatorRx; +use crate::coordinator_tx::CoordinatorTx; + +use super::server::Server; + +struct Actor { + addr: SocketAddr, + server: Server, +} + +impl Actor { + fn new(addr: SocketAddr, server: Server) -> Self { + Self { addr, server } + } + + async fn run(mut self) { + tracing::info!("Connecting to {}", self.addr); + loop { + match TcpStream::connect(self.addr).await { + Ok(msg) => { + self.handle(msg).await; + break; + } + Err(err) => { + tracing::error!("Connection failed: {}", err); + tokio::time::sleep(tokio::time::Duration::from_secs(1)).await; + } + } + } + } + + async fn handle(&mut self, stream: TcpStream) { + let (rx, tx) = stream.into_split(); + let rx = FramedRead::new(rx, LengthDelimitedCodec::new()); + let rx: tcp::Rx = Framed::new(rx, Json::default()); + let tx = FramedWrite::new(tx, LengthDelimitedCodec::new()); + let mut tx: tcp::Tx = Framed::new(tx, Json::default()); + tx.send(CoordinatorAPI::RegisterClient) + .await + .expect("Failed to send register message"); + tracing::info!("Handshake successful"); + + self.server.connect(CoordinatorTx::start(tx)).await; + CoordinatorRx::start(rx, self.server.clone()); + } +} + +pub struct CoordinatorConnector; + +impl CoordinatorConnector { + pub fn start(addr: SocketAddr, server: Server) -> Self { + tokio::spawn(Actor::new(addr, server).run()); + Self + } +} diff --git a/arc-lang/crates/cloud/client/src/coordinator_rx.rs b/arc-lang/crates/cloud/client/src/coordinator_rx.rs new file mode 100644 index 000000000..3b269497d --- /dev/null +++ b/arc-lang/crates/cloud/client/src/coordinator_rx.rs @@ -0,0 +1,41 @@ +use api::ClientAPI; +use io::tcp; +use tokio_stream::StreamExt; + +use crate::server::Server; + +struct Actor { + mailbox: tcp::Rx, + server: Server, +} + +impl Actor { + fn new(mailbox: tcp::Rx, server: Server) -> Self { + Self { mailbox, server } + } + + async fn run(mut self) { + while let Some(msg) = self.mailbox.next().await { + match msg { + Ok(msg) => self.handle(msg).await, + Err(err) => println!("Error: {}", err), + } + } + } + + async fn handle(&mut self, msg: ClientAPI) { + match msg { + ClientAPI::Query { source: _ } => unreachable!(), + ClientAPI::QueryResponse { data } => self.server.query_response(data).await, + } + } +} + +pub struct CoordinatorRx; + +impl CoordinatorRx { + pub fn start(rx: tcp::Rx, server: Server) -> Self { + tokio::spawn(Actor::new(rx, server).run()); + Self + } +} diff --git a/arc-lang/crates/cloud/client/src/coordinator_tx.rs b/arc-lang/crates/cloud/client/src/coordinator_tx.rs new file mode 100644 index 000000000..9b7d7411e --- /dev/null +++ b/arc-lang/crates/cloud/client/src/coordinator_tx.rs @@ -0,0 +1,45 @@ +use futures::SinkExt; +use api::CoordinatorAPI; +use io::tcp; +use tokio::sync::mpsc; + +struct Actor { + mailbox: mpsc::Receiver, + tx: tcp::Tx, +} + +#[allow(unused)] +enum Message { + Cast(CoordinatorAPI), +} + +impl Actor { + fn new(mailbox: mpsc::Receiver, tx: tcp::Tx) -> Self { + Self { mailbox, tx } + } + + async fn run(mut self) { + while let Some(msg) = self.mailbox.recv().await { + self.handle(msg).await; + } + } + + async fn handle(&mut self, msg: Message) { + match msg { + Message::Cast(msg) => { + self.tx.send(msg).await.expect("failed sending message"); + } + } + } +} + +#[derive(Clone, Debug)] +pub struct CoordinatorTx(mpsc::Sender); + +impl CoordinatorTx { + pub fn start(tx_tcp: tcp::Tx) -> Self { + let (tx, rx) = mpsc::channel(10); + tokio::spawn(Actor::new(rx, tx_tcp).run()); + Self(tx) + } +} diff --git a/arc-lang/crates/cloud/client/src/driver_rx.rs b/arc-lang/crates/cloud/client/src/driver_rx.rs new file mode 100644 index 000000000..d51668381 --- /dev/null +++ b/arc-lang/crates/cloud/client/src/driver_rx.rs @@ -0,0 +1,41 @@ +use futures::StreamExt; +use api::ClientAPI; +use io::term; + +use crate::server::Server; + +struct Actor { + mailbox: term::Rx, + server: Server, +} + +impl Actor { + fn new(mailbox: term::Rx, server: Server) -> Self { + Self { mailbox, server } + } + + async fn run(mut self) { + while let Some(msg) = self.mailbox.next().await { + match msg { + Ok(msg) => self.handle(msg).await, + Err(_) => todo!(), + } + } + } + + async fn handle(&mut self, msg: ClientAPI) { + match msg { + ClientAPI::Query { source } => self.server.query(source).await, + ClientAPI::QueryResponse { .. } => unreachable!(), + } + } +} + +pub struct DriverRx; + +impl DriverRx { + pub fn start(rx: term::Rx, server: Server) -> Self { + tokio::spawn(Actor::new(rx, server).run()); + Self + } +} diff --git a/arc-lang/crates/cloud/client/src/driver_tx.rs b/arc-lang/crates/cloud/client/src/driver_tx.rs new file mode 100644 index 000000000..58b0145f5 --- /dev/null +++ b/arc-lang/crates/cloud/client/src/driver_tx.rs @@ -0,0 +1,53 @@ +use futures::SinkExt; +use api::InterpreterAPI; +use io::term; +use tokio::sync::mpsc; + +struct Actor { + mailbox: mpsc::Receiver, + tx: term::Tx, +} + +#[allow(unused)] +#[derive(Debug)] +enum Message { + Cast(InterpreterAPI), +} + +impl Actor { + fn new(mailbox: mpsc::Receiver, tx: term::Tx) -> Self { + Self { mailbox, tx } + } + + async fn run(mut self) { + while let Some(msg) = self.mailbox.recv().await { + self.handle(msg).await; + } + } + + async fn handle(&mut self, msg: Message) { + match msg { + Message::Cast(msg) => { + self.tx.send(msg).await.expect("Failed to send message"); + } + } + } +} + +#[derive(Clone, Debug)] +pub struct DriverTx(mpsc::Sender); + +impl DriverTx { + pub fn start(tx_tcp: term::Tx) -> Self { + let (tx, rx) = mpsc::channel(8); + tokio::spawn(Actor::new(rx, tx_tcp).run()); + Self(tx) + } + + pub async fn query_response(&self, data: String) { + self.0 + .send(Message::Cast(InterpreterAPI::QueryResponse { data })) + .await + .expect("Failed to send message"); + } +} diff --git a/arc-lang/crates/cloud/client/src/main.rs b/arc-lang/crates/cloud/client/src/main.rs new file mode 100644 index 000000000..1ade08709 --- /dev/null +++ b/arc-lang/crates/cloud/client/src/main.rs @@ -0,0 +1,29 @@ +use std::net::SocketAddr; +use std::path::PathBuf; + +use clap::Parser; +use io::config::DEFAULT_COORDINATOR_TCP_ADDR; +use io::socket::parse_addr; +use server::Server; + +mod coordinator_connector; +pub mod coordinator_rx; +pub mod coordinator_tx; +pub mod driver_rx; +pub mod driver_tx; +mod server; + +#[derive(Parser)] +pub struct Args { + #[clap(short, long, value_parser = parse_addr, default_value = DEFAULT_COORDINATOR_TCP_ADDR)] + coordinator: SocketAddr, + + #[clap(short, long)] + file: PathBuf, +} + +#[tokio::main] +async fn main() { + io::tracing::init(); + Server::new(Args::parse()).await; +} diff --git a/arc-lang/crates/cloud/client/src/rest.rs b/arc-lang/crates/cloud/client/src/rest.rs new file mode 100644 index 000000000..8522ee5c2 --- /dev/null +++ b/arc-lang/crates/cloud/client/src/rest.rs @@ -0,0 +1,34 @@ +#![allow(unused)] + +use shared::api::CoordinatorAPI; +use shared::api::QueryConfig; +use shared::api::RestAPI; +use shared::api::StateBackend; + +async fn rest_call(parallelism: usize, source: String) { + let client = reqwest::Client::new(); + let res = client + .post(format!( + "https://{}/api", + shared::config::DEFAULT_COORDINATOR_REST_ADDR + )) + .json(&CoordinatorAPI::Query { + source, + config: QueryConfig { + parallelism, + state_backend: StateBackend::Sled, + }, + }) + .send() + .await + .expect("Failed to send request"); + match res.status() { + reqwest::StatusCode::OK => match res.json::().await { + Ok(ClientAPI::QueryResponse { data }) => println!("{}", data), + Err(e) => eprintln!("Failed to parse response: {}", e), + }, + _ => { + println!("Error: {}", res.status()); + } + } +} diff --git a/arc-lang/crates/cloud/client/src/server.rs b/arc-lang/crates/cloud/client/src/server.rs new file mode 100644 index 000000000..c64310fd1 --- /dev/null +++ b/arc-lang/crates/cloud/client/src/server.rs @@ -0,0 +1,100 @@ +#![allow(unused)] + +use crate::coordinator_connector::CoordinatorConnector; +use crate::coordinator_tx::CoordinatorTx; +use crate::driver_rx::DriverRx; +use crate::driver_tx::DriverTx; +use crate::Args; +use tokio::process::Command; +use tokio::sync::mpsc::Receiver; +use tokio::sync::mpsc::Sender; +use tokio_serde::formats::Json; +use tokio_serde::Framed; +use tokio_util::codec::FramedRead; +use tokio_util::codec::FramedWrite; +use tokio_util::codec::LengthDelimitedCodec; + +struct Actor { + mailbox: Receiver, + tx: Option, + server: Server, + args: Args, +} + +#[derive(Debug)] +enum Message { + Query { source: String }, + QueryResponse { data: String }, + Connect { tx: CoordinatorTx }, + Execute { source: String }, + Shutdown, +} + +#[derive(Clone)] +pub struct Server(Sender); + +impl Actor { + fn new(mailbox: Receiver, server: Server, args: Args) -> Self { + Self { + mailbox, + tx: None, + server, + args, + } + } + + async fn run(mut self) { + CoordinatorConnector::start(self.args.coordinator, self.server.clone()); + + todo!() + // let tx = DriverSender::start(tx); + // DriverReceiver::start(rx, self.server.clone()); + // + // while let Some(msg) = self.mailbox.recv().await { + // self.handle(msg); + // } + } + + fn handle(&mut self, msg: Message) { + match msg { + Message::Query { source } => { + println!("Query: {}", source); + } + Message::Shutdown => { + println!("Shutdown"); + } + Message::Connect { tx } => todo!(), + Message::Execute { source } => todo!(), + Message::QueryResponse { data } => todo!(), + } + } +} + +impl Server { + pub async fn new(args: Args) { + let (tx, rx) = tokio::sync::mpsc::channel(100); + let server = Self(tx); + tokio::spawn(Actor::new(rx, server, args).run()) + .await + .expect("Failed to spawn"); + } + + pub async fn connect(&self, tx: CoordinatorTx) { + self.0.send(Message::Connect { tx }).await.unwrap(); + } + + pub async fn query(&self, source: String) { + self.0 + .send(Message::Execute { source }) + .await + .expect("failed to forward"); + } + + pub async fn shutdown(&self) { + self.0.send(Message::Shutdown).await.unwrap(); + } + + pub(crate) async fn query_response(&self, data: String) { + self.0.send(Message::QueryResponse { data }).await.unwrap(); + } +} diff --git a/arc-lang/crates/cloud/coordinator/Cargo.lock b/arc-lang/crates/cloud/coordinator/Cargo.lock new file mode 100644 index 000000000..27bbf162f --- /dev/null +++ b/arc-lang/crates/cloud/coordinator/Cargo.lock @@ -0,0 +1,1190 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "ahash" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +dependencies = [ + "getrandom", + "once_cell", + "version_check", +] + +[[package]] +name = "async-trait" +version = "0.1.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e6e93155431f3931513b243d371981bb2770112b370c82745a1d19d2f99364" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "axum" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08b108ad2665fa3f6e6a517c3d80ec3e77d224c47d605167aefaa5d7ef97fa48" +dependencies = [ + "async-trait", + "axum-core", + "bitflags", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tower", + "tower-http", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79b8558f5a0581152dc94dcd289132a1d377494bdeafcd41869b3258e3e2ad92" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bytes" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c" + +[[package]] +name = "cc" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "clap" +version = "4.0.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d63b9e9c07271b9957ad22c173bae2a4d9a81127680962039296abcd2f8251d" +dependencies = [ + "bitflags", + "clap_derive", + "clap_lex", + "is-terminal", + "once_cell", + "strsim", + "termcolor", +] + +[[package]] +name = "clap_derive" +version = "4.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0177313f9f02afc995627906bbd8967e2be069f5261954222dac78290c2b9014" +dependencies = [ + "heck", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "clap_lex" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8" +dependencies = [ + "os_str_bytes", +] + +[[package]] +name = "coordinator" +version = "0.1.0" +dependencies = [ + "axum", + "clap", + "futures", + "serde", + "tokio", + "tokio-futures", + "tokio-serde", + "tokio-stream", + "tokio-util", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "educe" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb0188e3c3ba8df5753894d54461f0e39bc91741dc5b22e1c46999ec2c71f4e4" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "enum-ordinalize" +version = "3.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a62bb1df8b45ecb7ffa78dca1c17a438fb193eb083db0b1b494d2a61bcb5096a" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "rustc_version", + "syn", +] + +[[package]] +name = "errno" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" +dependencies = [ + "errno-dragonfly", + "libc", + "winapi", +] + +[[package]] +name = "errno-dragonfly" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "form_urlencoded" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" + +[[package]] +name = "futures-executor" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" + +[[package]] +name = "futures-macro" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" + +[[package]] +name = "futures-task" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" + +[[package]] +name = "futures-util" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "getrandom" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash", +] + +[[package]] +name = "heck" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" +dependencies = [ + "libc", +] + +[[package]] +name = "http" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "http-range-header" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29" + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" + +[[package]] +name = "hyper" +version = "0.14.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46112a93252b123d31a119a8d1a1ac19deac4fac6e0e8b0df58f0d4e5870e63c" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "is-terminal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "927609f78c2913a6f6ac3c27a4fe87f43e2a35367c0c4b0f8265e8f49a104330" +dependencies = [ + "hermit-abi 0.2.6", + "io-lifetimes", + "rustix", + "windows-sys", +] + +[[package]] +name = "itoa" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.138" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8" + +[[package]] +name = "linux-raw-sys" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" + +[[package]] +name = "lock_api" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "matchit" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40" + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "mime" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" + +[[package]] +name = "mio" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" +dependencies = [ + "libc", + "log", + "wasi", + "windows-sys", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num-bigint" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5" +dependencies = [ + "hermit-abi 0.1.19", + "libc", +] + +[[package]] +name = "once_cell" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" + +[[package]] +name = "os_str_bytes" +version = "6.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-sys", +] + +[[package]] +name = "percent-encoding" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" + +[[package]] +name = "pin-project" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.36.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3807b5d10909833d3e9acd1eb5fb988f79376ff10fce42937de71a449c4c588" +dependencies = [ + "bitflags", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "rustversion" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" + +[[package]] +name = "ryu" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "semver" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" + +[[package]] +name = "serde" +version = "1.0.150" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e326c9ec8042f1b5da33252c8a37e9ffbd2c9bef0155215b6e6c80c790e05f91" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.150" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42a3df25b0713732468deadad63ab9da1f1fd75a48a15024b50363f128db627e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "020ff22c755c2ed3f8cf162dbb41a7268d934702f3ed3631656ea597e08fc3db" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_path_to_error" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "184c643044780f7ceb59104cef98a5a6f12cb2288a7bc701ab93a362b49fd47d" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sharded-slab" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +dependencies = [ + "libc", +] + +[[package]] +name = "slab" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" + +[[package]] +name = "socket2" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "syn" +version = "1.0.105" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b9b43d45702de4c839cb9b51d9f529c5dd26a4aff255b42b1ebc03e88ee908" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20518fe4a4c9acf048008599e464deb21beeae3d3578418951a189c235a7a9a8" + +[[package]] +name = "termcolor" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "thread_local" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +dependencies = [ + "once_cell", +] + +[[package]] +name = "tokio" +version = "1.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab6d665857cc6ca78d6e80303a02cea7a7851e85dfbd77cbdc09bd129f1ef46" +dependencies = [ + "autocfg", + "bytes", + "libc", + "memchr", + "mio", + "num_cpus", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys", +] + +[[package]] +name = "tokio-futures" +version = "0.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5c8ea7f4c1ea9cdb9fb03cba1522c23e9fb97eb1518c92b952093f93f86cd" + +[[package]] +name = "tokio-macros" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-serde" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "911a61637386b789af998ee23f50aa30d5fd7edcec8d6d3dedae5e5815205466" +dependencies = [ + "bytes", + "educe", + "futures-core", + "futures-sink", + "pin-project", + "serde", + "serde_json", +] + +[[package]] +name = "tokio-stream" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d660770404473ccd7bc9f8b28494a811bc18542b915c0855c51e8f419d5223ce" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" +dependencies = [ + "bytes", + "futures-core", + "futures-io", + "futures-sink", + "futures-util", + "hashbrown", + "pin-project-lite", + "slab", + "tokio", + "tracing", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" +dependencies = [ + "bitflags", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-range-header", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +dependencies = [ + "cfg-if", + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +dependencies = [ + "lazy_static", + "log", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" +dependencies = [ + "nu-ansi-term", + "sharded-slab", + "smallvec", + "thread_local", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "try-lock" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" + +[[package]] +name = "unicode-ident" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "want" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +dependencies = [ + "log", + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" diff --git a/arc-lang/crates/cloud/coordinator/Cargo.toml b/arc-lang/crates/cloud/coordinator/Cargo.toml new file mode 100644 index 000000000..f7095c955 --- /dev/null +++ b/arc-lang/crates/cloud/coordinator/Cargo.toml @@ -0,0 +1,29 @@ +[package] +name = "coordinator" +version = "0.0.0" +edition = "2021" + +[dependencies] +io = { path = "../io" } +api = { path = "../api" } +query-compiler = { path = "../query-compiler" } +axum = { version = "0.6.3" } +clap = { version = "4.1.3", features = ["derive"] } +futures = { version = "0.3.25" } +serde = { version = "1.0.152", features = ["derive"] } +tokio = { version = "1.24.2", features = ["full"] } +tokio-futures = { version = "0.0.0" } +tokio-serde = { version = "0.8.0", features = ["json"] } +tokio-stream = { version = "0.1.11" } +tokio-util = { version = "0.7.4", features = ["full"] } +raw-cpuid = { version = "10.6.0", features = ["serde"] } +halfbrown = { version = "0.1.18", features = ["serde"] } +which = { version = "4.4.0" } +serde_json = { version = "1.0.91", features = ["preserve_order"] } +rustls = { version = "0.20.8" } +tokio-rustls = { version = "0.23.4" } +rustls-pemfile = { version = "1.0.2" } +tracing = { version = "0.1.37" } + +[build-dependencies] +which = "4.4.0" diff --git a/arc-lang/crates/cloud/coordinator/build.rs b/arc-lang/crates/cloud/coordinator/build.rs new file mode 100644 index 000000000..334079bf3 --- /dev/null +++ b/arc-lang/crates/cloud/coordinator/build.rs @@ -0,0 +1,38 @@ +use std::io::BufRead; +use std::path::Path; +use std::process::exit; +use std::process::Command; +use std::process::Stdio; + +fn main() {} + +#[allow(unused)] +fn build_mlir() { + if std::env::var("ARC_MLIR_CMD").is_ok() { + return; + } else if let Ok(path) = which::which("arc-mlir") { + println!("cargo:rustc-env=ARC_MLIR_CMD={}", path.display()); + } else { + let out_dir = std::env::var("OUT_DIR").unwrap(); + let arc_mlir_cmd = Path::new(&out_dir).join("arc-mlir/llvm-build/bin/arc-mlir"); + if !arc_mlir_cmd.exists() { + which::which("cmake").expect("dune not found in PATH"); + let mut child = Command::new("../../build") + .env("ARC_MLIR_BUILD", Path::new(&out_dir).join("arc-mlir")) + .stderr(Stdio::piped()) + .spawn() + .expect("CMake failed"); + if std::env::var("ARC_COORDINATOR_DEBUG").is_ok() { + println!("cargo:warning=Building Arc-MLIR ..."); + for line in std::io::BufReader::new(child.stderr.as_mut().unwrap()).lines() { + println!("cargo:warning={}", line.unwrap()); + } + } + let status = child.wait().expect("CMake failed"); + if !status.success() { + exit(status.code().expect("CMake was terminated")); + } + } + println!("cargo:rustc-env=ARC_MLIR_CMD={}", arc_mlir_cmd.display()); + } +} diff --git a/arc-lang/crates/cloud/coordinator/src/client_listener.rs b/arc-lang/crates/cloud/coordinator/src/client_listener.rs new file mode 100644 index 000000000..0bbf615c5 --- /dev/null +++ b/arc-lang/crates/cloud/coordinator/src/client_listener.rs @@ -0,0 +1,69 @@ +// use api::CoordinatorAPI; +use std::net::SocketAddr; +use tokio::net::TcpListener; +use tokio::net::TcpStream; +// use tokio_serde::formats::Json; +// use tokio_serde::Framed; +// use tokio_stream::StreamExt; +// use tokio_util::codec::FramedRead; +// use tokio_util::codec::FramedWrite; +// use tokio_util::codec::LengthDelimitedCodec; + +// use crate::client_tx::ClientTx; +use api::ClientId; + +use crate::server::Server; +// use crate::worker_rx::WorkerRx; + +struct Actor { + port: u16, + server: Server, + id: ClientId, +} + +impl Actor { + fn new(port: u16, server: Server) -> Self { + Self { + port, + server, + id: ClientId(0), + } + } + + async fn run(mut self) { + let addr = SocketAddr::from(([0, 0, 0, 0], self.port)); + // let acceptor = tls_acceptor().expect("Failed to create TLS acceptor"); + let rx = TcpListener::bind(&addr).await.expect("Failed to bind"); + tracing::info!("Listening for clients on {}", addr); + loop { + match rx.accept().await { + Ok((stream, addr)) => self.handle(stream, addr).await, + Err(err) => println!("Error: {}", err), + } + } + } + + async fn handle(&mut self, _stream: TcpStream, _addr: SocketAddr) { + let _id = self.id; + self.id.0 += 1; + let _server = self.server.clone(); + tokio::spawn(async move { + todo!() + // let (rx, tx) = stream.into_split(); + // let rx = FramedRead::new(rx, LengthDelimitedCodec::new()); + // let mut rx = Framed::new(rx, Json::default()); + // let tx = FramedWrite::new(tx, LengthDelimitedCodec::new()); + // let tx = Framed::new(tx, Json::default()); + // server.register_client(id, addr.ip(), ClientTx::start(tx)); + // ClientRx::start(rx, id, server); + }); + } +} + +pub struct ClientListener; + +impl ClientListener { + pub fn start(port: u16, server: Server) { + tokio::spawn(Actor::new(port, server).run()); + } +} diff --git a/arc-lang/crates/cloud/coordinator/src/client_rx.rs b/arc-lang/crates/cloud/coordinator/src/client_rx.rs new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/arc-lang/crates/cloud/coordinator/src/client_rx.rs @@ -0,0 +1 @@ + diff --git a/arc-lang/crates/cloud/coordinator/src/client_tx.rs b/arc-lang/crates/cloud/coordinator/src/client_tx.rs new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/arc-lang/crates/cloud/coordinator/src/client_tx.rs @@ -0,0 +1 @@ + diff --git a/arc-lang/crates/cloud/coordinator/src/main.rs b/arc-lang/crates/cloud/coordinator/src/main.rs new file mode 100644 index 000000000..1c5b2e77b --- /dev/null +++ b/arc-lang/crates/cloud/coordinator/src/main.rs @@ -0,0 +1,45 @@ +// #![feature(arbitrary_self_types)] + +pub mod client_listener; +pub mod client_rx; +pub mod client_tx; +pub mod rest_listener; +pub mod server; +pub mod tls; +pub mod worker_listener; +pub mod worker_rx; +pub mod worker_tx; + +use clap::Parser; +use io::config::DEFAULT_COORDAINTOR_REST_PORT; +use io::config::DEFAULT_COORDINATOR_BROKER_ADDR; +use io::config::DEFAULT_COORDINATOR_TCP_PORT; +use io::socket::parse_addr; +use server::Server; +use std::net::SocketAddr; +use std::path::PathBuf; + +#[derive(Parser, Debug)] +pub struct Args { + #[clap(short, long, default_value_t = DEFAULT_COORDINATOR_TCP_PORT)] + tcp_listener_port: u16, + + #[clap(short, long, default_value_t = DEFAULT_COORDAINTOR_REST_PORT)] + rest_listener_port: u16, + + #[clap(short, long, value_parser = parse_addr, default_value = DEFAULT_COORDINATOR_BROKER_ADDR)] + broker: SocketAddr, + + #[clap(long)] + certificate: Option, + + #[clap(long)] + key: Option, +} + +#[tokio::main(flavor = "current_thread")] +async fn main() { + // which::which("arc-mlir").expect("arc-mlir not found in PATH"); + io::tracing::init(); + Server::start(Args::parse()).await; +} diff --git a/arc-lang/crates/cloud/coordinator/src/rest_listener.rs b/arc-lang/crates/cloud/coordinator/src/rest_listener.rs new file mode 100644 index 000000000..280635dfc --- /dev/null +++ b/arc-lang/crates/cloud/coordinator/src/rest_listener.rs @@ -0,0 +1,49 @@ +use crate::server::Server; +use api::CoordinatorAPI; +use axum::extract::State; +use axum::http::StatusCode; +use axum::response::IntoResponse; +use axum::routing::post; +use axum::Json; +use axum::Router; +use std::net::SocketAddr; + +#[derive(Clone)] +struct Actor { + server: Server, +} + +impl Actor { + pub fn new(server: Server) -> Self { + Self { server } + } + + async fn handle(actor: State, Json(msg): Json) -> impl IntoResponse { + match msg { + CoordinatorAPI::Shutdown => { + actor.server.shutdown().await; + StatusCode::OK.into_response() + } + _ => StatusCode::BAD_REQUEST.into_response(), + } + } +} + +pub struct RestListener; + +impl RestListener { + pub fn start(port: u16, server: Server) { + tokio::spawn(async move { + let router = Router::new() + .route("/", post(Actor::handle)) + .with_state(Actor::new(server)); + + tracing::info!("Listening for clients on {}", port); + + axum::Server::bind(&SocketAddr::from(([127, 0, 0, 1], port))) + .serve(router.into_make_service()) + .await + .unwrap(); + }); + } +} diff --git a/arc-lang/crates/cloud/coordinator/src/server.rs b/arc-lang/crates/cloud/coordinator/src/server.rs new file mode 100644 index 000000000..6557c2514 --- /dev/null +++ b/arc-lang/crates/cloud/coordinator/src/server.rs @@ -0,0 +1,196 @@ +use api::Architecture; +use api::ClientId; +use api::Cluster; +use api::Query; +use api::Worker; +use api::WorkerId; +use halfbrown::HashMap; +use std::fmt::Debug; +use std::net::IpAddr; +use std::sync::Arc; +use tokio::sync::mpsc; +use tokio::sync::mpsc::Receiver; +use tokio::sync::mpsc::Sender; +use tokio::sync::oneshot; + +use crate::rest_listener::RestListener; +use crate::worker_listener::TcpListener; +use crate::worker_tx::WorkerTx; +use crate::Args; + +struct Actor { + mailbox: Receiver, + worker_txs: HashMap, + cluster: Cluster, + args: Args, + server: Server, + query_counter: usize, +} + +// pub fn dummy_worker(target_triple: &str, num_cores: usize) -> Worker { +// Worker { +// id: WorkerId(0), +// arch: Architecture { +// target_triple: target_triple.to_owned(), +// num_cpus: num_cores, +// }, +// available_cpus: (0..num_cores).into_iter().collect(), +// available_ports: (8000..9000).into_iter().collect(), +// ip: IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), +// } +// } + +#[derive(Clone)] +pub struct Server(Sender); + +#[derive(Debug)] +enum Message { + RegisterWorker { + id: WorkerId, + ip: IpAddr, + arch: Architecture, + tx: WorkerTx, + }, + UnregisterWorker { + id: WorkerId, + }, + #[allow(unused)] + BatchQuery { + source: String, + query: Query, + tx: oneshot::Sender, + }, + StreamQuery { + source: String, + query: Query, + }, + Shutdown, +} + +impl Actor { + fn new(mailbox: Receiver, server: Server, args: Args) -> Self { + Self { + mailbox, + worker_txs: HashMap::new(), + cluster: Cluster { + workers: HashMap::new(), + broker: args.broker, + }, + args, + server, + query_counter: 0, + } + } + + async fn run(mut self) { + TcpListener::start(self.args.tcp_listener_port, self.server.clone()); + RestListener::start(self.args.tcp_listener_port, self.server.clone()); + while let Some(msg) = self.mailbox.recv().await { + self.handle(msg); + } + } + + fn handle(&mut self, msg: Message) { + match msg { + Message::RegisterWorker { id, ip, arch, tx } => { + let worker = Worker { + id, + ip, + available_cpus: (0..arch.num_cpus).into_iter().collect(), + available_ports: (8000..9000).into_iter().collect(), + arch, + }; + self.worker_txs.insert(id, tx); + self.cluster.workers.insert(id, worker); + } + Message::UnregisterWorker { id } => { + self.worker_txs.remove(&id); + self.cluster.workers.remove(&id); + } + Message::BatchQuery { .. } => todo!(), + Message::StreamQuery { source, query } => { + let id = self.query_counter; + self.query_counter += 1; + tokio::runtime::Runtime::new() + .expect("Failed to create tokio runtime") + .block_on(self.stream_query(id, &source, query)) + } + Message::Shutdown => todo!(), + } + } + + pub async fn stream_query(&mut self, id: usize, source: &str, query: Query) { + let name = Arc::new(format!("package{id}")); + let graph = query_compiler::compile(&name, source, query, &mut self.cluster); + for (worker_ids, binary_path) in graph.deployment { + let binary = Arc::new(std::fs::read(binary_path).expect("Failed to read binary")); + for worker_id in worker_ids { + let worker = self.worker_txs.get(&worker_id).unwrap(); + worker.execute(name.clone(), binary.clone()).await; + } + } + } +} + +impl Server { + pub async fn start(args: Args) { + let (tx, rx) = mpsc::channel(100); + tokio::spawn(Actor::new(rx, Self(tx), args).run()) + .await + .expect("Failed to spawn actor"); + } + + pub async fn unregister_worker(&self, id: WorkerId) { + self.0 + .send(Message::UnregisterWorker { id }) + .await + .expect("Failed to send"); + } + + pub async fn register_worker( + &self, + id: WorkerId, + ip: IpAddr, + arch: Architecture, + tx: WorkerTx, + ) { + self.0 + .send(Message::RegisterWorker { id, ip, arch, tx }) + .await + .expect("Failed to send"); + } + + pub async fn batch_query(&self, source: String, config: Query) -> String { + let (tx, rx) = oneshot::channel(); + self.0 + .send(Message::BatchQuery { + source, + query: config, + tx, + }) + .await + .expect("Failed to send"); + rx.await.expect("Server is dead") + } + + pub async fn stream_query(&self, source: String, config: Query) { + self.0 + .send(Message::StreamQuery { + source, + query: config, + }) + .await + .expect("Failed to send"); + } + + pub async fn shutdown(&self) { + self.0 + .send(Message::Shutdown) + .await + .expect("Failed to forward"); + } + + pub async fn register_client(&self, _id: ClientId, _ip: IpAddr) { + todo!() + } +} diff --git a/arc-lang/crates/cloud/coordinator/src/tls.rs b/arc-lang/crates/cloud/coordinator/src/tls.rs new file mode 100644 index 000000000..b12ad5e15 --- /dev/null +++ b/arc-lang/crates/cloud/coordinator/src/tls.rs @@ -0,0 +1,69 @@ +#![allow(unused)] + +use rustls::Certificate; +use rustls::PrivateKey; +use std::fs::File; +use std::io::BufReader; +use std::path::Path; +use std::sync::Arc; +use tokio::io; +use tokio::io::split; +use tokio::io::ReadHalf; +use tokio::io::WriteHalf; +use tokio::net::TcpStream; +use tokio_rustls::server::TlsStream; +use tokio_rustls::TlsAcceptor; +use tokio_serde::formats::Json; +use tokio_serde::Framed; +use tokio_util::codec::FramedRead; +use tokio_util::codec::FramedWrite; +use tokio_util::codec::LengthDelimitedCodec; +use api::CoordinatorAPI; + +use api::WorkerAPI; + +pub type TlsReceiver = + Framed>, LengthDelimitedCodec>, T, T, Json>; + +pub type TlsSender = + Framed>, LengthDelimitedCodec>, T, T, Json>; + +pub async fn tls_stream( + acceptor: TlsAcceptor, + stream: TcpStream, +) -> (TlsReceiver, TlsSender) { + let mut stream = acceptor + .accept(stream) + .await + .expect("Failed to accept TLS stream"); + let (rx, tx) = split(stream); + let rx = FramedRead::new(rx, LengthDelimitedCodec::new()); + let rx = Framed::new(rx, Json::default()); + let tx = FramedWrite::new(tx, LengthDelimitedCodec::new()); + let tx = Framed::new(tx, Json::default()); + (rx, tx) +} + +fn tls_acceptor() -> Result { + let certs = load_certs(Path::new("todo"))?; + let mut keys = load_keys(Path::new("todo"))?; + + rustls::ServerConfig::builder() + .with_safe_defaults() + .with_no_client_auth() + .with_single_cert(certs, keys.remove(0)) + .map(|config| TlsAcceptor::from(Arc::new(config))) + .map_err(|err| io::Error::new(io::ErrorKind::InvalidInput, err)) +} + +fn load_certs(path: &Path) -> io::Result> { + rustls_pemfile::certs(&mut BufReader::new(File::open(path)?)) + .map_err(|_| io::Error::new(io::ErrorKind::InvalidInput, "invalid cert")) + .map(|mut certs| certs.drain(..).map(Certificate).collect()) +} + +fn load_keys(path: &Path) -> io::Result> { + rustls_pemfile::rsa_private_keys(&mut BufReader::new(File::open(path)?)) + .map_err(|_| io::Error::new(io::ErrorKind::InvalidInput, "invalid key")) + .map(|mut keys| keys.drain(..).map(PrivateKey).collect()) +} diff --git a/arc-lang/crates/cloud/coordinator/src/worker_listener.rs b/arc-lang/crates/cloud/coordinator/src/worker_listener.rs new file mode 100644 index 000000000..c96203e51 --- /dev/null +++ b/arc-lang/crates/cloud/coordinator/src/worker_listener.rs @@ -0,0 +1,74 @@ +use crate::server::Server; +use crate::worker_rx::WorkerRx; +use crate::worker_tx::WorkerTx; +use api::CoordinatorAPI; +use api::WorkerAPI; +use api::WorkerId; +use io::tcp; +use std::net::SocketAddr; +use tokio::net::TcpStream; +use tokio_serde::formats::Json; +use tokio_serde::Framed; +use tokio_stream::StreamExt; +use tokio_util::codec::FramedRead; +use tokio_util::codec::FramedWrite; +use tokio_util::codec::LengthDelimitedCodec; + +struct Actor { + port: u16, + server: Server, + id: WorkerId, +} + +impl Actor { + fn new(port: u16, server: Server) -> Self { + Self { + port, + server, + id: WorkerId(0), + } + } + + async fn run(mut self) { + let addr = SocketAddr::from(([0, 0, 0, 0], self.port)); + // let acceptor = tls_acceptor().expect("Failed to create TLS acceptor"); + let rx = tokio::net::TcpListener::bind(&addr) + .await + .expect("Failed to bind"); + tracing::info!("Listening for workers on {}", addr); + loop { + match rx.accept().await { + Ok((stream, addr)) => self.handle(stream, addr).await, + Err(err) => println!("Error: {}", err), + } + } + } + + async fn handle(&mut self, stream: TcpStream, addr: SocketAddr) { + let id = self.id; + self.id.0 += 1; + let server = self.server.clone(); + tokio::spawn(async move { + let (rx, tx) = stream.into_split(); + let rx = FramedRead::new(rx, LengthDelimitedCodec::new()); + let mut rx: tcp::Rx = Framed::new(rx, Json::default()); + let tx = FramedWrite::new(tx, LengthDelimitedCodec::new()); + let tx: tcp::Tx = Framed::new(tx, Json::default()); + if let Some(Ok(CoordinatorAPI::RegisterWorker { arch })) = rx.next().await { + tracing::info!("Handshake successful"); + server + .register_worker(id, addr.ip(), arch, WorkerTx::start(tx)) + .await; + WorkerRx::start(rx, id, server); + } + }); + } +} + +pub struct TcpListener; + +impl TcpListener { + pub fn start(port: u16, server: Server) { + tokio::spawn(Actor::new(port, server).run()); + } +} diff --git a/arc-lang/crates/cloud/coordinator/src/worker_rx.rs b/arc-lang/crates/cloud/coordinator/src/worker_rx.rs new file mode 100644 index 000000000..a890b1eb5 --- /dev/null +++ b/arc-lang/crates/cloud/coordinator/src/worker_rx.rs @@ -0,0 +1,53 @@ +use api::CoordinatorAPI; +use io::tcp; +use tokio_stream::StreamExt; + +use api::WorkerId; + +use crate::server::Server; + +#[allow(unused)] +struct Actor { + mailbox: tcp::Rx, + id: WorkerId, + server: Server, +} + +pub struct WorkerRx; + +impl Actor { + fn new(mailbox: tcp::Rx, id: WorkerId, server: Server) -> Self { + Self { + mailbox, + id, + server, + } + } + + async fn run(mut self) { + while let Some(msg) = self.mailbox.next().await { + match msg { + Ok(msg) => self.handle(msg).await, + Err(err) => { + println!("Error: {}", err); + } + } + } + } + + async fn handle(&mut self, msg: CoordinatorAPI) { + match msg { + CoordinatorAPI::RegisterWorker { .. } => unreachable!(), + CoordinatorAPI::RegisterClient => todo!(), + CoordinatorAPI::Query { .. } => unreachable!(), + CoordinatorAPI::Shutdown => todo!(), + } + } +} + +impl WorkerRx { + pub fn start(rx: tcp::Rx, id: WorkerId, server: Server) -> Self { + tokio::spawn(Actor::new(rx, id, server).run()); + Self + } +} diff --git a/arc-lang/crates/cloud/coordinator/src/worker_tx.rs b/arc-lang/crates/cloud/coordinator/src/worker_tx.rs new file mode 100644 index 000000000..4de16bc6b --- /dev/null +++ b/arc-lang/crates/cloud/coordinator/src/worker_tx.rs @@ -0,0 +1,58 @@ +use futures::SinkExt; +use api::WorkerAPI; +use io::tcp; +use std::sync::Arc; +use tokio::sync::mpsc; + +struct Actor { + mailbox: mpsc::Receiver, + tx: tcp::Tx, +} + +#[derive(Debug)] +enum Message { + Cast(WorkerAPI), +} + +#[derive(Debug, Clone)] +pub struct WorkerTx(mpsc::Sender); + +impl Actor { + fn new(mailbox: mpsc::Receiver, tx: tcp::Tx) -> Self { + Self { mailbox, tx } + } + + async fn run(mut self) { + while let Some(msg) = self.mailbox.recv().await { + self.handle(msg).await; + } + } + + async fn handle(&mut self, msg: Message) { + match msg { + Message::Cast(msg) => { + self.tx.send(msg).await.unwrap(); + } + } + } +} + +impl WorkerTx { + pub fn start(tx_tcp: tcp::Tx) -> Self { + let (tx, rx) = mpsc::channel(100); + tokio::spawn(Actor::new(rx, tx_tcp).run()); + Self(tx) + } + + pub fn dummy() -> Self { + let (tx, _) = mpsc::channel(100); + Self(tx) + } + + pub async fn execute(&self, name: Arc, binary: Arc>) { + self.0 + .send(Message::Cast(WorkerAPI::Execute { name, binary })) + .await + .expect("Failed to send"); + } +} diff --git a/arc-lang/crates/cloud/io/Cargo.toml b/arc-lang/crates/cloud/io/Cargo.toml new file mode 100644 index 000000000..29800b5ae --- /dev/null +++ b/arc-lang/crates/cloud/io/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "io" +version = "0.0.0" +edition = "2021" + +[dependencies] +const_format = { version = "0.2.30" } +halfbrown = { version = "0.1.18", features = ["serde"] } +raw-cpuid = { version = "10.6.0", features = ["serde"] } +serde = { version = "1.0.152", features = ["derive", "rc"] } +serde_json = { version = "1.0.91", features = ["preserve_order"] } +tokio = { version = "1.24.2", features = ["net", "process"] } +tokio-serde = { version = "0.8.0", features = ["json"] } +tokio-util = { version = "0.7.4", features = ["full"] } +console-subscriber = { version = "0.1.8" } +tracing-subscriber = { version = "0.3.16" } +tracing = { version = "0.1.37" } +indexmap = { version = "1.9.2", features = ["serde"] } diff --git a/arc-lang/crates/cloud/io/src/config.rs b/arc-lang/crates/cloud/io/src/config.rs new file mode 100644 index 000000000..7ee8a53dd --- /dev/null +++ b/arc-lang/crates/cloud/io/src/config.rs @@ -0,0 +1,9 @@ +use const_format::formatcp; + +pub const DEFAULT_COORDINATOR_TCP_PORT: u16 = 8000; +pub const DEFAULT_COORDAINTOR_REST_PORT: u16 = 8001; +pub const DEFAULT_BROKER_PORT: u16 = 9092; + +pub const DEFAULT_COORDINATOR_TCP_ADDR: &str = + formatcp!("localhost:{}", DEFAULT_COORDINATOR_TCP_PORT); +pub const DEFAULT_COORDINATOR_BROKER_ADDR: &str = formatcp!("localhost:{}", DEFAULT_BROKER_PORT); diff --git a/arc-lang/crates/cloud/io/src/lib.rs b/arc-lang/crates/cloud/io/src/lib.rs new file mode 100644 index 000000000..4c46aba5c --- /dev/null +++ b/arc-lang/crates/cloud/io/src/lib.rs @@ -0,0 +1,7 @@ +#![allow(unused)] + +pub mod config; +pub mod term; +pub mod socket; +pub mod tcp; +pub mod tracing; diff --git a/arc-lang/crates/cloud/io/src/socket.rs b/arc-lang/crates/cloud/io/src/socket.rs new file mode 100644 index 000000000..8dbaaee11 --- /dev/null +++ b/arc-lang/crates/cloud/io/src/socket.rs @@ -0,0 +1,7 @@ +use std::net::SocketAddr; +use std::net::ToSocketAddrs; + +pub fn parse_addr(s: &str) -> Result { + s.to_socket_addrs() + .map(|mut addrs| addrs.next().expect("no address")) +} diff --git a/arc-lang/crates/cloud/io/src/tcp.rs b/arc-lang/crates/cloud/io/src/tcp.rs new file mode 100644 index 000000000..3d5a47ab9 --- /dev/null +++ b/arc-lang/crates/cloud/io/src/tcp.rs @@ -0,0 +1,11 @@ +use serde::de::DeserializeOwned; +use tokio::net::tcp::OwnedReadHalf; +use tokio::net::tcp::OwnedWriteHalf; +use tokio_serde::formats::Json; +use tokio_serde::Framed; +use tokio_util::codec::FramedRead; +use tokio_util::codec::FramedWrite; +use tokio_util::codec::LengthDelimitedCodec; + +pub type Rx = Framed, I, I, Json>; +pub type Tx = Framed, O, O, Json>; diff --git a/arc-lang/crates/cloud/io/src/term.rs b/arc-lang/crates/cloud/io/src/term.rs new file mode 100644 index 000000000..c4f1f135c --- /dev/null +++ b/arc-lang/crates/cloud/io/src/term.rs @@ -0,0 +1,10 @@ +use tokio::process::ChildStdin; +use tokio::process::ChildStdout; +use tokio_serde::formats::Json; +use tokio_serde::Framed; +use tokio_util::codec::FramedRead; +use tokio_util::codec::FramedWrite; +use tokio_util::codec::LengthDelimitedCodec; + +pub type Rx = Framed, I, I, Json>; +pub type Tx = Framed, O, O, Json>; diff --git a/arc-lang/crates/cloud/io/src/tracing.rs b/arc-lang/crates/cloud/io/src/tracing.rs new file mode 100644 index 000000000..91a153377 --- /dev/null +++ b/arc-lang/crates/cloud/io/src/tracing.rs @@ -0,0 +1,28 @@ +use std::time::Duration; + +use tracing::log::LevelFilter; +use tracing::Level; +use tracing_subscriber::filter::Directive; +use tracing_subscriber::prelude::*; +use tracing_subscriber::EnvFilter; + +pub fn init() { + // let console_layer = console_subscriber::ConsoleLayer::builder() + // .server_addr(([127, 0, 0, 1], 5555)) + // .spawn(); + + let fmt_layer = tracing_subscriber::fmt::layer() + .compact() + .with_filter(EnvFilter::from_default_env().add_directive(Directive::from(Level::INFO))); + // .with_target(true) + // .with_thread_ids(true) + // .with_line_number(true) + // .with_file(true) + // .with_thread_names(true) + // .with_ansi(true); + + tracing_subscriber::registry() + // .with(console_layer) + .with(fmt_layer) + .init(); +} diff --git a/arc-lang/crates/cloud/query-compiler/Cargo.toml b/arc-lang/crates/cloud/query-compiler/Cargo.toml new file mode 100644 index 000000000..347e2d12e --- /dev/null +++ b/arc-lang/crates/cloud/query-compiler/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "query-compiler" +version = "0.0.0" +edition = "2021" + +[dependencies] +quote = { version = "1.0.23" } +api = { path = "../api" } +crepe = { version = "0.1.7" } +itertools = { version = "0.10.5" } +indoc = { version = "1.0.8" } +proc-macro2 = { version = "1.0.50" } +serde_json = { version = "1.0.91", features = ["preserve_order"] } +halfbrown = { version = "0.1.18", features = ["serde"] } +regex = { version = "1.7.1" } +tracing = { version = "0.1.37" } +rust-format = { version = "0.3.4", features = ["token_stream"] } diff --git a/arc-lang/crates/cloud/query-compiler/src/lib.rs b/arc-lang/crates/cloud/query-compiler/src/lib.rs new file mode 100644 index 000000000..cd1c1a34d --- /dev/null +++ b/arc-lang/crates/cloud/query-compiler/src/lib.rs @@ -0,0 +1,129 @@ +pub mod lowering1; +pub mod lowering2; +pub mod lowering3; +pub mod lowering4; +pub mod lowering5; +pub mod lowering6; +pub mod lowering7; + +use api::Cluster; +use api::Query; + +use self::lowering7::Graph7; + +pub fn compile(name: &str, source: &str, query_config: Query, cluster: &mut Cluster) -> Graph7 { + // Compile MLIR source code to Rust and a dataflow graph. + let graph1 = lowering1::lower(source); + // Compile logical operators into physical operators. + let graph2 = lowering2::lower(graph1); + // Topologically sort nodes. + let graph3 = lowering3::lower(graph2); + // Extract pipelines. + let graph4 = lowering4::lower(graph3); + // Allocate cpus and sockets to pipelines. + let graph5 = lowering5::lower(graph4, cluster, query_config); + // Compile pipelines to source code. + let graph6 = lowering6::lower(graph5, cluster); + // Compile source code to binaries. + let graph7 = lowering7::lower(&name, graph6, cluster); + graph7 +} + +// #[test] +// fn test_compile() { +// use crate::compiler::lowering1::Graph1; +// use crate::compiler::lowering6::Graph6; +// use crate::server::Worker; +// use crate::server::WorkerId; +// use api::Node; +// use api::StateBackend; +// use std::net::ToSocketAddrs; +// fn lower( +// graph1: Graph1, +// query_config: &QueryConfig, +// server_config: &mut ServerConfig, +// ) -> Graph6 { +// // Compile logical operators into physical operators. +// let graph2 = lowering2::lower(graph1); +// // Topologically sort nodes. +// let graph3 = lowering3::lower(graph2); +// // Extract pipelines. +// let graph4 = lowering4::lower(graph3); +// // Allocate cpus and sockets to pipelines. +// let graph5 = lowering5::lower(graph4, server_config, query_config); +// // Compile pipelines to source code. +// let graph6 = lowering6::lower(graph5, server_config); +// graph6 +// } +// lower( +// Graph1 { +// code: quote::quote!( +// fn filter_udf(x: i32) -> bool { +// x > 0 +// } +// fn map_udf(x: i32) -> i32 { +// x + 1 +// } +// fn key_udf(x: i32) -> i32 { +// x % 2 +// } +// ) +// .to_string(), +// nodes: vec![ +// ( +// "x0".to_string(), +// Node::Source { +// key_type: "i32".to_string(), +// data_type: "i32".to_string(), +// topic: "my-topic-1".to_string(), +// }, +// ), +// ( +// "x1".to_string(), +// Node::Filter { +// input: "x0".to_string(), +// fun: "filter_udf".to_string(), +// }, +// ), +// ( +// "x2".to_string(), +// Node::Group { +// input: "x1".to_string(), +// fun: "key_udf".to_string(), +// }, +// ), +// ( +// "x3".to_string(), +// Node::Map { +// input: "x2".to_string(), +// fun: "map_udf".to_string(), +// }, +// ), +// ( +// "x4".to_string(), +// Node::Sink { +// input: "x3".to_string(), +// topic: "my-topic-2".to_string(), +// }, +// ), +// ] +// .into_iter() +// .collect(), +// }, +// &QueryConfig { +// parallelism: 2, +// state_backend: StateBackend::Sled, +// }, +// &mut ServerConfig { +// broker: "localhost:9092".to_socket_addrs().unwrap().next().unwrap(), +// workers: vec![ +// (WorkerId(0), Worker::dummy("aarch64-unknown-linux-gnu", 2)), +// (WorkerId(1), Worker::dummy("aarch64-unknown-linux-gnu", 2)), +// (WorkerId(2), Worker::dummy("aarch64-unknown-linux-gnu", 2)), +// (WorkerId(3), Worker::dummy("aarch64-unknown-linux-gnu", 2)), +// ] +// .into_iter() +// .collect(), +// }, +// ); +// } diff --git a/arc-lang/crates/cloud/query-compiler/src/lowering1.rs b/arc-lang/crates/cloud/query-compiler/src/lowering1.rs new file mode 100644 index 000000000..1ab02b057 --- /dev/null +++ b/arc-lang/crates/cloud/query-compiler/src/lowering1.rs @@ -0,0 +1,133 @@ +use std::io::Write; +use std::process::Command; +use std::process::Stdio; + +use api::Graph; +use api::Node; +use halfbrown::HashMap; +use regex::Regex; + +pub struct Graph1 { + pub code: String, + pub nodes: HashMap, +} + +/// Compile MLIR source code into Rust and extract the dataflow graph. +pub fn lower(source: &str) -> Graph1 { + let mut cmd = Command::new("TODO") //env!("ARC_MLIR_CMD") + .arg("-arc-to-rust") + .arg("-inline-rust") + .stdin(Stdio::piped()) + .stderr(Stdio::piped()) + .spawn() + .expect("Failed to execute process"); + + cmd.stdin + .take() + .as_mut() + .unwrap() + .write_all(source.as_bytes()) + .unwrap(); + + let output = cmd + .wait_with_output() + .expect("Failed to read stdout") + .stdout; + + let code = std::str::from_utf8(&output).unwrap().to_owned(); + let json = extract_json(&code); + let graph = serde_json::from_str::(json).unwrap(); + Graph1 { + code, + nodes: graph.nodes.into_iter().collect(), + } +} + +fn extract_json(rust: &str) -> &str { + let regex = Regex::new( + r"(?xms) # x: Enable insignificant whitespace + # m: Enable multi-line mode + # s: Enable matching \n with . + + ^JSON_START_MARKER$ + + (?P.*) # JSON code + + ^JSON_END_MARKER$ + ", + ) + .unwrap(); + let captures = regex.captures(rust).unwrap(); + captures.name("json").unwrap().as_str() +} + +#[test] +fn test_regex() { + let source = indoc::indoc! { + r#" + fn map(x: i32) -> i32 { + x + 1 + } + /* + JSON_START_MARKER + { "hello": "world" } + JSON_END_MARKER + */ + "#}; + + let json = extract_json(source); + + assert_eq!( + json.split_whitespace().collect::(), + r#"{ "hello": "world" }"#.split_whitespace().collect::() + ); +} + +#[test] +fn test_serde() { + let graph = Graph { + nodes: vec![ + ( + "x0".to_string(), + Node::Source { + key_type: "i32".to_string(), + data_type: "i32".to_string(), + topic: "topic".to_string(), + }, + ), + ( + "x1".to_string(), + Node::Map { + input: "x0".to_string(), + fun: "map".to_string(), + }, + ), + ( + "x2".to_string(), + Node::Sink { + input: "map".to_string(), + topic: "topic".to_string(), + }, + ), + ] + .into_iter() + .collect(), + }; + + let json = serde_json::to_string(&graph).unwrap(); + + assert_eq!( + json.split_whitespace().collect::(), + r#" +{ + "nodes": { + "x0": { "Source": { "key_type": "i32", "data_type": "i32", "topic": "topic", "num_partitions": 1 } }, + "x1": { "Map": { "input": "x0", "fun": "map" } }, + "x2": { "Sink": { "input": "map", "topic": "topic", "fun": "x1" } } + } +} + "# + .split_whitespace() + .collect::() + ) +} diff --git a/arc-lang/crates/cloud/query-compiler/src/lowering2.rs b/arc-lang/crates/cloud/query-compiler/src/lowering2.rs new file mode 100644 index 000000000..46c120e0a --- /dev/null +++ b/arc-lang/crates/cloud/query-compiler/src/lowering2.rs @@ -0,0 +1,156 @@ +use api::Node; +use std::collections::hash_map::Entry; +use std::collections::HashMap; + +use crate::lowering1::Graph1; + +#[derive(Clone, Debug)] +pub struct Graph2 { + pub code: String, + pub nodes: HashMap, +} + +#[derive(Clone, Copy, Debug, Ord, PartialOrd, Eq, Hash, PartialEq)] +pub struct NodeId(pub u32); + +#[derive(Clone, Debug)] +pub enum Node2 { + Filter { + input: NodeId, + fun: String, + }, + Map { + input: NodeId, + fun: String, + }, + KafkaSource { + key_type: String, + data_type: String, + topic: String, + }, + KafkaSink { + input: NodeId, + topic: String, + }, + ShuffleSink { + input: NodeId, + fun: String, + }, + ShuffleSource { + input: NodeId, + fun: String, + }, + Union { + input0: NodeId, + input1: NodeId, + }, + Window { + input: NodeId, + }, +} + +struct IdIntern { + map: HashMap, + counter: NodeId, +} + +impl IdIntern { + fn new() -> Self { + Self { + map: HashMap::new(), + counter: NodeId(0), + } + } + fn intern(&mut self, name: String) -> NodeId { + match self.map.entry(name) { + Entry::Occupied(v) => *v.get(), + Entry::Vacant(v) => { + let id = self.counter; + v.insert(id); + self.counter.0 += 1; + id + } + } + } + fn create(&mut self) -> NodeId { + let id = self.counter; + self.counter.0 += 1; + id + } +} + +// 1. Split Group into ShuffleSink and ShuffleSource +// 2. Replace symbolic identifiers (String) with numerical ones (NodeId) +// NOTE: We currently assume that the graph is already topologically sorted +pub fn lower(graph: Graph1) -> Graph2 { + let mut nodes = HashMap::new(); + let mut ids = IdIntern::new(); + for (name, node) in graph.nodes.into_iter() { + match node { + Node::Map { input, fun } => { + let id = ids.intern(name); + let input = ids.intern(input); + nodes.insert(id, Node2::Map { input, fun }); + } + Node::Sink { input, topic } => { + let id = ids.intern(name); + let input = ids.intern(input); + nodes.insert(id, Node2::KafkaSink { input, topic }); + } + Node::Union { input0, input1 } => { + let id = ids.intern(name); + let input0 = ids.intern(input0); + let input1 = ids.intern(input1); + nodes.insert(id, Node2::Union { input0, input1 }); + } + Node::Group { input, fun } => { + let source_id = ids.create(); + let sink_id = ids.intern(name); + let input = ids.intern(input); + nodes.insert( + source_id, + Node2::ShuffleSink { + input, + fun: fun.clone(), + }, + ); + nodes.insert( + sink_id, + Node2::ShuffleSource { + input: source_id, + fun, + }, + ); + } + Node::Filter { input, fun } => { + let id = ids.intern(name); + let input = ids.intern(input); + nodes.insert(id, Node2::Filter { input, fun }); + } + Node::Source { + key_type, + data_type, + topic, + } => { + let id = ids.intern(name); + nodes.insert( + id, + Node2::KafkaSource { + key_type, + data_type, + topic, + }, + ); + } + Node::Window { input } => { + let id = ids.intern(name); + let input = ids.intern(input); + nodes.insert(id, Node2::Window { input }); + } + } + } + Graph2 { + code: graph.code, + nodes, + } +} diff --git a/arc-lang/crates/cloud/query-compiler/src/lowering3.rs b/arc-lang/crates/cloud/query-compiler/src/lowering3.rs new file mode 100644 index 000000000..25c8fbe63 --- /dev/null +++ b/arc-lang/crates/cloud/query-compiler/src/lowering3.rs @@ -0,0 +1,114 @@ +use crate::lowering2::Graph2; +use crate::lowering2::Node2; +use crate::lowering2::NodeId; + +use halfbrown::HashMap; + +#[derive(Clone, Debug)] +pub struct Graph3 { + pub code: String, + pub pipelines: HashMap, +} + +#[derive(Clone, Copy, Debug, Ord, PartialOrd, Eq, Hash, PartialEq)] +pub struct PipelineId(pub u32); + +#[derive(Clone, Debug, Default)] +pub struct Pipeline2 { + pub nodes: HashMap, +} + +mod datalog { + + use crate::lowering2::Graph2; + use crate::lowering2::NodeId; + + crepe::crepe! { + @input + struct Edge(NodeId, NodeId); + + @input + struct Node(NodeId, bool); + + struct Reachable(NodeId, NodeId); + + Reachable(x, y) <- Edge(x, y); + Reachable(x, z) <- Reachable(x, y), Edge(y, z); + + struct PipelineBreaker(NodeId); + + PipelineBreaker(x) <- Node(x, true); + + @output + #[derive(Debug, Ord, PartialOrd)] + struct Pipeline(NodeId, NodeId); + + Pipeline(x, x) <- PipelineBreaker(x); + Pipeline(x, y) <- Reachable(x, y), PipelineBreaker(y); + } + + pub fn run(graph1: &Graph2) -> impl Iterator { + let nodes = graph1 + .nodes + .iter() + .map(|(id, node)| Node(*id, node.is_sink())); + + let edges = graph1 + .nodes + .iter() + .flat_map(|(id, node)| node.data_inputs().map(|input| Edge(*input, *id))); + + let mut runtime = Crepe::new(); + runtime.extend(edges); + runtime.extend(nodes); + let (pairs,) = runtime.run(); + pairs.into_iter().map(|Pipeline(x, y)| (x, y)) + } +} + +// 1. Break graph into pipelines +// e.g., source -> filter -> shuffle-sink -> shuffle-source -> map -> sink +// becomes (source -> filter -> shuffle-sink) -> (shuffle-source -> map -> sink) +// NOTE: Currently we assume the graph is linear, +pub(crate) fn lower(mut graph: Graph2) -> Graph3 { + let mut pipelines = HashMap::new(); + for (node_id, NodeId(pipeline_id)) in datalog::run(&graph) { + pipelines + .entry(PipelineId(pipeline_id)) + .or_insert_with(Pipeline2::default) + .nodes + .insert(node_id, graph.nodes.remove(&node_id).unwrap()); + } + Graph3 { + code: graph.code, + pipelines, + } +} + +impl Node2 { + pub fn data_inputs(&self) -> impl Iterator + '_ { + match self { + Node2::Filter { input, .. } => [Some(input), None], + Node2::Map { input, .. } => [Some(input), None], + Node2::KafkaSource { .. } => [None, None], + Node2::KafkaSink { input, .. } => [Some(input), None], + Node2::ShuffleSink { input, .. } => [Some(input), None], + Node2::ShuffleSource { .. } => [None, None], + Node2::Union { input0, input1, .. } => [Some(input0), Some(input1)], + Node2::Window { input } => [Some(input), None], + } + .into_iter() + .flatten() + } + + pub fn is_sink(&self) -> bool { + matches!(self, Node2::KafkaSink { .. } | Node2::ShuffleSink { .. }) + } + + pub fn is_source(&self) -> bool { + matches!( + self, + Node2::KafkaSource { .. } | Node2::ShuffleSource { .. } + ) + } +} diff --git a/arc-lang/crates/cloud/query-compiler/src/lowering4.rs b/arc-lang/crates/cloud/query-compiler/src/lowering4.rs new file mode 100644 index 000000000..60d8ddca4 --- /dev/null +++ b/arc-lang/crates/cloud/query-compiler/src/lowering4.rs @@ -0,0 +1,95 @@ +use std::collections::HashSet; + +use halfbrown::HashMap; + +use crate::lowering2::Node2; +use crate::lowering2::NodeId; +use crate::lowering3::Graph3; +use crate::lowering3::Pipeline2; +use crate::lowering3::PipelineId; + +#[derive(Clone, Debug)] +pub struct Graph4 { + pub code: String, + pub pipelines: HashMap, +} + +#[derive(Clone, Debug)] +pub struct Pipeline3 { + pub nodes: Vec<(NodeId, Node2)>, +} + +pub fn lower(graph: Graph3) -> Graph4 { + let pipelines = graph + .pipelines + .into_iter() + .map(|(id, pipeline)| (id, topological_sort(pipeline))) + .collect(); + Graph4 { + code: graph.code, + pipelines, + } +} + +// Topologically sort the nodes in the pipeline +pub fn topological_sort(mut pipeline: Pipeline2) -> Pipeline3 { + let mut nodes = Vec::new(); + let mut visited = HashSet::new(); + + let mut stack = pipeline + .nodes + .iter() + .filter(|(_, node)| node.is_sink()) + .map(|(id, _)| id) + .copied() + .collect::>(); + + while let Some(id) = stack.pop() { + visited.insert(id); + nodes.push(id); + match pipeline.nodes.get(&id).unwrap() { + Node2::Filter { input, .. } => { + if !visited.contains(input) { + stack.push(*input); + } + } + Node2::Map { input, .. } => { + if !visited.contains(input) { + stack.push(*input); + } + } + Node2::KafkaSource { .. } => {} + Node2::KafkaSink { input, .. } => { + if !visited.contains(input) { + stack.push(*input); + } + } + Node2::ShuffleSink { input, .. } => { + if !visited.contains(input) { + stack.push(*input); + } + } + Node2::ShuffleSource { .. } => {} + Node2::Union { input0, input1 } => { + if !visited.contains(input0) { + stack.push(*input0); + } + if !visited.contains(input0) { + stack.push(*input1); + } + } + Node2::Window { input } => { + if !visited.contains(input) { + stack.push(*input); + } + } + } + } + nodes.reverse(); + Pipeline3 { + nodes: nodes + .into_iter() + .map(|id| (id, pipeline.nodes.remove(&id).unwrap())) + .collect(), + } +} diff --git a/arc-lang/crates/cloud/query-compiler/src/lowering5.rs b/arc-lang/crates/cloud/query-compiler/src/lowering5.rs new file mode 100644 index 000000000..236688da7 --- /dev/null +++ b/arc-lang/crates/cloud/query-compiler/src/lowering5.rs @@ -0,0 +1,96 @@ +use api::Cluster; +use halfbrown::HashMap; +use std::net::IpAddr; +use std::net::SocketAddr; + +use api::Query; +use api::WorkerId; + +use crate::lowering2::Node2; +use crate::lowering2::NodeId; +use crate::lowering3::PipelineId; +use crate::lowering4::Graph4; +use crate::lowering4::Pipeline3; + +#[derive(Debug)] +pub struct Graph5 { + pub code: String, + pub pipelines: HashMap, + pub shards: Vec, + // All sinks need to connect to the same sources. + pub sink_ports: HashMap>, + pub parallelism: usize, +} + +#[derive(Debug)] +pub struct Shard4 { + pub worker_id: WorkerId, + pub pipeline_id: PipelineId, + pub cpu: usize, + pub source_ip: IpAddr, + pub source_ports: HashMap, +} + +/// * Each pipeline is sharded by a parallelism factor, currently specified by the query. +/// * Each shard is mapped to one thread which executes on one CPU. +/// * Multiple threads can be collocated in the same OS-process. +/// * Multiple OS-processes could be collocated on the same worker. +/// * Each machine has one worker and potentially multiple cores. +/// * Each Source and Sink operation needs to be connected to its system (e.g., Kafka). +/// * Each ShuffleSink must open a connection to its respective ShuffleSource operator in the next shard. +pub fn lower(graph: Graph4, cluster: &mut Cluster, query: Query) -> Graph5 { + let mut instances = Vec::new(); + let mut sinks = HashMap::new(); + let mut workers = cluster.workers.iter_mut(); + let (mut worker_id, mut worker) = workers.next().unwrap(); + for (pipeline_id, pipeline) in &graph.pipelines { + // For each physical ShuffleSource we need to allocate one port. + let sources: Vec<_> = pipeline + .nodes + .iter() + .filter_map(|(id, node)| { + if let Node2::ShuffleSource { input, .. } = node { + sinks.insert(*input, Vec::new()); + Some((*id, input)) + } else { + None + } + }) + .collect(); + for _ in 0..query.parallelism { + // Collocate the same pipeline on the same worker if possible. + while worker.available_cpus.is_empty() { + (worker_id, worker) = workers.next().expect("Insufficient cores available"); + } + let cpu = worker.available_cpus.pop_first().unwrap(); + let ports = sources + .iter() + .map(|(id, input)| { + if let Some(port) = worker.available_ports.pop_first() { + sinks + .get_mut(*input) + .unwrap() + .push(SocketAddr::new(worker.ip, port)); + (*id, port) + } else { + panic!("Insufficient ports available"); + } + }) + .collect(); + instances.push(Shard4 { + worker_id: *worker_id, + pipeline_id: *pipeline_id, + source_ip: worker.ip, + cpu, + source_ports: ports, + }); + } + } + Graph5 { + code: graph.code, + sink_ports: sinks, + pipelines: graph.pipelines, + shards: instances, + parallelism: query.parallelism, + } +} diff --git a/arc-lang/crates/cloud/query-compiler/src/lowering6.rs b/arc-lang/crates/cloud/query-compiler/src/lowering6.rs new file mode 100644 index 000000000..0213ec9ed --- /dev/null +++ b/arc-lang/crates/cloud/query-compiler/src/lowering6.rs @@ -0,0 +1,269 @@ +use api::Cluster; +use itertools::multiunzip; +use itertools::Itertools; +use proc_macro2::Ident; +use proc_macro2::Literal; +use proc_macro2::Span; +use proc_macro2::TokenStream; +use quote::quote; +use rust_format::Formatter; + +use api::WorkerId; + +use super::lowering2::Node2; +use super::lowering2::NodeId; +use super::lowering5::Graph5; +use super::lowering5::Shard4; + +#[derive(Debug)] +pub struct Graph6 { + pub code: String, + pub shards: Vec, +} + +pub(crate) fn lower(graph: Graph5, cluster: &Cluster) -> Graph6 { + let (worker_defs, worker_ids): (Vec<_>, Vec<_>) = graph + .shards + .iter() + .group_by(|shard| shard.worker_id) + .into_iter() + .map(|(worker_id, shards)| compile_worker(worker_id, shards, &graph, cluster)) + .unzip(); + let worker_id_strings = worker_ids.iter().map(|i| i.to_string()).collect::>(); + let code: TokenStream = graph.code.parse().unwrap(); + let main = quote! { + use runtime::prelude::*; + + fn main() { + let mut args = std::env::args(); + let _ = args.next(); + let kind = args.next(); + let db = Database::remote("127.0.0.1:2379"); + match kind.unwrap().as_str() { + #( + #worker_id_strings => #worker_ids(db) + ,)* + _ => panic!("Unknown arg, expected instance[N]"), + } + } + + #(#worker_defs)* + + #code + }; + Graph6 { + code: rust_format::RustFmt::default().format_tokens(main).unwrap(), + shards: graph.shards, + } +} + +pub fn compile_worker<'a>( + worker_id: WorkerId, + shards: impl Iterator, + graph: &Graph5, + cluster: &Cluster, +) -> (TokenStream, Ident) { + let worker_id = new_worker_id(worker_id); + let (shard_defs, shard_ids, shard_cpus): (Vec<_>, Vec<_>, Vec<_>) = + multiunzip(shards.map(|s| compile_shard(s, graph, cluster))); + let instance_def = quote! { + fn #worker_id(db: Database) { + Runtime::new()#(.spawn(#shard_ids(db.clone()), #shard_cpus))*; + } + #(#shard_defs)* + }; + (instance_def, worker_id) +} + +pub fn compile_shard( + shard: &Shard4, + graph: &Graph5, + cluster: &Cluster, +) -> (TokenStream, Ident, usize) { + let pipeline = graph.pipelines.get(&shard.pipeline_id).unwrap(); + let mut pre_loop_stmts = Vec::new(); + let mut loop_head_stmts = Vec::new(); + let mut loop_tail_stmts = Vec::new(); + let mut param_ids = Vec::new(); + let mut state_ids = Vec::new(); + let mut source_id = None; + let mut operator_index = 0; + let shard_id = new_shard_id(shard); + let shard_id_string = shard_id.to_string(); + for (id, node) in &pipeline.nodes { + let node_id = new_node_id(id); + match node { + _ if node.is_source() => { + source_id = Some(node_id.clone()); + let init_expr = new(id, node, shard, graph, cluster); + pre_loop_stmts.push(quote!(let mut #node_id = #init_expr;)); + } + _ if node.is_sink() => { + let init_expr = new(id, node, shard, graph, cluster); + let send_expr = send(node, node_id.clone()); + loop_head_stmts.push(quote!(#send_expr;)); + pre_loop_stmts.push(quote!(let mut #node_id = #init_expr;)); + } + _ => { + let node_index = new_index(operator_index); + let param_id = new_param_id(operator_index); + let state_id = new_state_id(operator_index); + let init_expr = new(id, node, shard, graph, cluster); + let process_expr = process(node, node_index.clone()); + param_ids.push(param_id.clone()); + state_ids.push(state_id.clone()); + pre_loop_stmts.push(quote!(let (#param_id, #state_id) = #init_expr;)); + loop_head_stmts.push(quote!(let mut #node_id = #process_expr;)); + loop_tail_stmts.push(quote!(state.#node_index = #node_id.state();)); + operator_index += 1; + } + } + } + loop_tail_stmts.reverse(); + let source_id = source_id.expect("no source node"); + let shard_def = quote! { + async fn #shard_id(db: Database) { + #(#pre_loop_stmts)* + let param = (#(#param_ids,)*); + let mut state = State::new(#shard_id_string, db, (#(#state_ids,)*)); + while let Some((key, mut #source_id)) = #source_id.recv().await { + let mut state = state.get(key); + #(#loop_head_stmts)* + #(#loop_tail_stmts)* + } + } + }; + (shard_def, shard_id, shard.cpu) +} + +fn new( + id: &NodeId, + node: &Node2, + shard: &Shard4, + graph: &Graph5, + cluster: &Cluster, +) -> TokenStream { + match node { + Node2::KafkaSource { + key_type, + data_type, + topic, + } => { + let broker = cluster.broker.to_string(); + let key_type = parse_code(key_type); + let data_type = parse_code(data_type); + quote!(KafkaSource::<#key_type, #data_type>::new(#broker, #topic)) + } + Node2::KafkaSink { topic, .. } => { + let broker = cluster.broker.to_string(); + quote!(KafkaSink::new(#broker, #topic)) + } + Node2::ShuffleSource { fun, .. } => { + let parallellism = graph.parallelism; + let fun = parse_code(fun); + let port = shard.source_ports.get(&id); + quote!(ShuffleSource::new(#port, #parallellism, #fun).await) + } + Node2::ShuffleSink { fun, .. } => { + let fun = parse_code(fun); + let addrs = graph + .sink_ports + .get(id) + .unwrap() + .iter() + .map(|addr| addr.to_string()); + quote!(ShuffleSink::new([#(#addrs),*], #fun).await) + } + Node2::Filter { fun, .. } => { + let fun = parse_code(fun); + quote!(Filter::new(#fun)) + } + Node2::Map { fun, .. } => { + let fun = parse_code(fun); + quote!(Map::new(#fun)) + } + Node2::Union { .. } => { + quote!(Union::new()) + } + Node2::Window { .. } => { + quote!(Window::new()) + } + } +} + +fn process(node: &Node2, node_index: Literal) -> TokenStream { + match node { + Node2::Filter { input, .. } => { + let input = new_node_id(input); + quote!(Filter::process(&mut #input, param.#node_index, state.#node_index)) + } + Node2::Map { input, .. } => { + let input = new_node_id(input); + quote!(Map::process(&mut #input, param.#node_index, state.#node_index)) + } + Node2::Union { input0, input1, .. } => { + let input0 = new_node_id(input0); + let input1 = new_node_id(input1); + quote!(Union::process(&mut #input0, &mut #input1, param.#node_index, state.#node_index)) + } + Node2::Window { input } => { + let input = new_node_id(input); + quote!(Window::process(&mut #input)) + } + Node2::KafkaSource { .. } + | Node2::KafkaSink { .. } + | Node2::ShuffleSource { .. } + | Node2::ShuffleSink { .. } => unreachable!(), + } +} + +fn send(node: &Node2, node_id: Ident) -> TokenStream { + match node { + Node2::ShuffleSink { input, .. } => { + let input = new_node_id(input); + quote!(#node_id.send(&mut #input).await) + } + Node2::KafkaSink { input, .. } => { + let input = new_node_id(input); + quote!(#node_id.send(&mut #input, key).await) + } + Node2::ShuffleSource { .. } + | Node2::Filter { .. } + | Node2::Map { .. } + | Node2::KafkaSource { .. } + | Node2::Union { .. } + | Node2::Window { .. } => unreachable!(), + } +} + +fn new_id(s: &str) -> Ident { + Ident::new(s, Span::call_site()) +} + +fn new_node_id(id: &NodeId) -> Ident { + new_id(&format!("node{}", id.0)) +} + +fn new_param_id(id: usize) -> Ident { + new_id(&format!("param{}", id)) +} + +fn new_state_id(id: usize) -> Ident { + new_id(&format!("state{}", id)) +} + +fn new_index(i: usize) -> Literal { + Literal::usize_unsuffixed(i) +} + +fn parse_code(c: &String) -> TokenStream { + c.parse().unwrap() +} + +fn new_worker_id(id: WorkerId) -> Ident { + new_id(&format!("worker{}", id.0)) +} + +fn new_shard_id(shard: &Shard4) -> Ident { + new_id(&format!("worker{}_shard{}", shard.worker_id.0, shard.cpu)) +} diff --git a/arc-lang/crates/cloud/query-compiler/src/lowering7.rs b/arc-lang/crates/cloud/query-compiler/src/lowering7.rs new file mode 100644 index 000000000..d4a1fa9bb --- /dev/null +++ b/arc-lang/crates/cloud/query-compiler/src/lowering7.rs @@ -0,0 +1,99 @@ +use std::io::BufRead; +use std::io::BufReader; +use std::path::Path; +use std::path::PathBuf; +use std::process::Command; +use std::process::Stdio; + +use api::Cluster; +use itertools::Itertools; + +use crate::lowering6::Graph6; +use api::WorkerId; + +pub struct Graph7 { + pub deployment: Vec<(Vec, PathBuf)>, +} + +const WORKSPACE: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/../workspace"); +const RUNTIME: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/../runtime"); + +pub fn lower(package_name: &str, graph: Graph6, cluster: &mut Cluster) -> Graph7 { + let workspace = Path::new(WORKSPACE); + create_crate(package_name, workspace, &graph); + let target_triples = graph.shards.iter().group_by(|shard| { + &cluster + .workers + .get(&shard.worker_id) + .unwrap() + .arch + .target_triple + }); + let mut deployment = Vec::new(); + for (target_triple, shards) in target_triples.into_iter() { + let path = build_crate(target_triple, package_name, workspace); + let worker_ids = shards.map(|shard| shard.worker_id).collect::>(); + deployment.push((worker_ids, path)); + } + Graph7 { deployment } +} + +fn create_crate(package_name: &str, workspace: &Path, graph: &Graph6) { + let workspace_toml = workspace.join("Cargo.toml"); + let crates = workspace.join("crates"); + let package = crates.join(package_name); + let package_toml = package.join("Cargo.toml"); + let src = package.join("src"); + let main = src.join("main.rs"); + std::fs::create_dir_all(src).expect("Failed to create src directory"); + std::fs::write( + &workspace_toml, + indoc::indoc!( + r#" + [workspace] + members = [ "crates/*" ] + "# + ), + ) + .expect("Unable to write file"); + std::fs::write(&main, &graph.code).expect("Unable to write file"); + std::fs::write( + &package_toml, + indoc::formatdoc!( + r#" + [package] + name = "{package_name}" + version = "0.0.0" + edition = "2021" + + [dependencies] + runtime = {{ path = "{RUNTIME}" }} + "#, + ), + ) + .expect("Unable to write file"); +} + +fn build_crate(target_triple: &str, package_name: &str, workspace: &Path) -> PathBuf { + let mut cmd = Command::new("cargo") + .arg("build") + .arg("--package") + .arg(package_name) + .arg("--target") + .arg(target_triple) + .arg("--release") + .current_dir(workspace) + .stderr(Stdio::piped()) + .spawn() + .expect("Failed to execute process"); + let mut stderr = BufReader::new(cmd.stderr.as_mut().unwrap()).lines(); + while let Some(Ok(line)) = stderr.next() { + tracing::info!("{}", line); + } + cmd.wait().expect("Failed to wait on `cross build`"); + workspace + .join("target") + .join(target_triple) + .join("release") + .join(package_name) +} diff --git a/arc-lang/crates/cloud/worker/Cargo.toml b/arc-lang/crates/cloud/worker/Cargo.toml new file mode 100644 index 000000000..858d9aa90 --- /dev/null +++ b/arc-lang/crates/cloud/worker/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "worker" +version = "0.0.0" +edition = "2021" + +[dependencies] +io = { path = "../io" } +api = { path = "../api" } +axum = { version = "0.6.3" } +clap = { version = "4.1.3", features = ["derive"] } +futures = { version = "0.3.25" } +serde = { version = "1.0.152", features = ["derive"] } +tokio = { version = "1.24.2", features = ["full"] } +tokio-futures = { version = "0.0.0" } +tokio-serde = { version = "0.8.0", features = ["json"] } +tokio-stream = { version = "0.1.11" } +tokio-util = { version = "0.7.4", features = ["full"] } +tracing = { version = "0.1.37" } +raw-cpuid = { version = "10.6.0", features = ["serde"] } +num_cpus = { version = "1.15.0" } diff --git a/arc-lang/crates/cloud/worker/build.rs b/arc-lang/crates/cloud/worker/build.rs new file mode 100644 index 000000000..3a52fcaef --- /dev/null +++ b/arc-lang/crates/cloud/worker/build.rs @@ -0,0 +1,9 @@ +fn main() { + if std::env::var("IGNORE_WORKER_BUILD_SCRIPT").is_ok() { + return; + } + println!( + "cargo:rustc-env=TARGET={}", + std::env::var("TARGET").unwrap() + ); +} diff --git a/arc-lang/crates/cloud/worker/src/coordinator_connector.rs b/arc-lang/crates/cloud/worker/src/coordinator_connector.rs new file mode 100644 index 000000000..31aeb7856 --- /dev/null +++ b/arc-lang/crates/cloud/worker/src/coordinator_connector.rs @@ -0,0 +1,74 @@ +use std::net::SocketAddr; + +use api::Architecture; +use api::CoordinatorAPI; +use api::WorkerAPI; +use futures::SinkExt; +use io::tcp; +use tokio::net::TcpStream; +use tokio_serde::formats::Json; +use tokio_serde::Framed; +use tokio_util::codec::FramedRead; +use tokio_util::codec::FramedWrite; +use tokio_util::codec::LengthDelimitedCodec; + +use crate::coordinator_rx::CoordinatorRx; +use crate::coordinator_tx::CoordinatorTx; + +use super::server::Server; + +struct Actor { + addr: SocketAddr, + server: Server, +} + +impl Actor { + fn new(addr: SocketAddr, server: Server) -> Self { + Self { addr, server } + } + + async fn run(mut self) { + tracing::info!("Connecting to {}", self.addr); + loop { + match TcpStream::connect(self.addr).await { + Ok(msg) => { + self.handle(msg).await; + break; + } + Err(err) => { + tracing::error!("Connection failed: {}", err); + tokio::time::sleep(tokio::time::Duration::from_secs(1)).await; + } + } + } + } + + async fn handle(&mut self, stream: TcpStream) { + let (rx, tx) = stream.into_split(); + let rx = FramedRead::new(rx, LengthDelimitedCodec::new()); + let rx: tcp::Rx = Framed::new(rx, Json::default()); + let tx = FramedWrite::new(tx, LengthDelimitedCodec::new()); + let mut tx: tcp::Tx = Framed::new(tx, Json::default()); + tx.send(CoordinatorAPI::RegisterWorker { + arch: Architecture { + target_triple: crate::TARGET.to_string(), + num_cpus: num_cpus::get(), + }, + }) + .await + .expect("Failed to send register message"); + tracing::info!("Handshake successful"); + + self.server.connect(CoordinatorTx::start(tx)).await; + CoordinatorRx::start(rx, self.server.clone()); + } +} + +pub struct CoordinatorConnector; + +impl CoordinatorConnector { + pub fn start(addr: SocketAddr, server: Server) -> Self { + tokio::spawn(Actor::new(addr, server).run()); + Self + } +} diff --git a/arc-lang/crates/cloud/worker/src/coordinator_rx.rs b/arc-lang/crates/cloud/worker/src/coordinator_rx.rs new file mode 100644 index 000000000..5f02d2a53 --- /dev/null +++ b/arc-lang/crates/cloud/worker/src/coordinator_rx.rs @@ -0,0 +1,49 @@ +use api::WorkerAPI; +use io::tcp; +use std::sync::Arc; +use tokio_stream::StreamExt; + +use crate::server::Server; + +struct Actor { + mailbox: tcp::Rx, + server: Server, +} + +impl Actor { + fn new(mailbox: tcp::Rx, server: Server) -> Self { + Self { mailbox, server } + } + + async fn run(mut self) { + while let Some(msg) = self.mailbox.next().await { + match msg { + Ok(msg) => self.handle(msg).await, + Err(err) => println!("Error: {}", err), + } + } + } + + async fn handle(&mut self, msg: WorkerAPI) { + match msg { + WorkerAPI::Execute { name, binary } => { + self.server + .execute( + Arc::try_unwrap(name).unwrap(), + Arc::try_unwrap(binary).unwrap(), + ) + .await + } + WorkerAPI::Shutdown => self.server.shutdown().await, + } + } +} + +pub struct CoordinatorRx; + +impl CoordinatorRx { + pub fn start(rx: tcp::Rx, server: Server) -> Self { + tokio::spawn(Actor::new(rx, server).run()); + Self + } +} diff --git a/arc-lang/crates/cloud/worker/src/coordinator_tx.rs b/arc-lang/crates/cloud/worker/src/coordinator_tx.rs new file mode 100644 index 000000000..9b7d7411e --- /dev/null +++ b/arc-lang/crates/cloud/worker/src/coordinator_tx.rs @@ -0,0 +1,45 @@ +use futures::SinkExt; +use api::CoordinatorAPI; +use io::tcp; +use tokio::sync::mpsc; + +struct Actor { + mailbox: mpsc::Receiver, + tx: tcp::Tx, +} + +#[allow(unused)] +enum Message { + Cast(CoordinatorAPI), +} + +impl Actor { + fn new(mailbox: mpsc::Receiver, tx: tcp::Tx) -> Self { + Self { mailbox, tx } + } + + async fn run(mut self) { + while let Some(msg) = self.mailbox.recv().await { + self.handle(msg).await; + } + } + + async fn handle(&mut self, msg: Message) { + match msg { + Message::Cast(msg) => { + self.tx.send(msg).await.expect("failed sending message"); + } + } + } +} + +#[derive(Clone, Debug)] +pub struct CoordinatorTx(mpsc::Sender); + +impl CoordinatorTx { + pub fn start(tx_tcp: tcp::Tx) -> Self { + let (tx, rx) = mpsc::channel(10); + tokio::spawn(Actor::new(rx, tx_tcp).run()); + Self(tx) + } +} diff --git a/arc-lang/crates/cloud/worker/src/main.rs b/arc-lang/crates/cloud/worker/src/main.rs new file mode 100644 index 000000000..0603461d4 --- /dev/null +++ b/arc-lang/crates/cloud/worker/src/main.rs @@ -0,0 +1,30 @@ +// #![feature(arc_unwrap_or_clone)] +// #![allow(unused)] + +mod coordinator_connector; +mod coordinator_rx; +mod coordinator_tx; +mod runtime_rx; +mod runtime_tx; +mod server; + +use clap::Parser; +use io::config::DEFAULT_COORDINATOR_TCP_ADDR; +use io::socket::parse_addr; +use server::Server; +use std::net::SocketAddr; + +#[derive(Parser)] +pub struct Args { + #[clap(short, long, value_parser = parse_addr, default_value = DEFAULT_COORDINATOR_TCP_ADDR)] + coordinator: SocketAddr, +} + +pub const TARGET: &str = env!("TARGET"); + +#[tokio::main(flavor = "current_thread")] +async fn main() { + io::tracing::init(); + tracing::info!("Starting worker on {TARGET}"); + Server::start(Args::parse()).await; +} diff --git a/arc-lang/crates/cloud/worker/src/runtime_rx.rs b/arc-lang/crates/cloud/worker/src/runtime_rx.rs new file mode 100644 index 000000000..2d3f06331 --- /dev/null +++ b/arc-lang/crates/cloud/worker/src/runtime_rx.rs @@ -0,0 +1,46 @@ +use api::RuntimeAPI; +use futures::StreamExt; +use io::term; + +use crate::server::Server; + +#[allow(unused)] +struct Actor { + mailbox: term::Rx, + id: u64, + server: Server, +} + +impl Actor { + fn new(mailbox: term::Rx, id: u64, server: Server) -> Self { + Self { + mailbox, + id, + server, + } + } + + async fn run(mut self) { + while let Some(msg) = self.mailbox.next().await { + match msg { + Ok(msg) => self.handle(msg).await, + Err(_) => todo!(), + } + } + } + + async fn handle(&mut self, msg: RuntimeAPI) { + match msg { + RuntimeAPI::Shutdown => {} + } + } +} + +pub struct RuntimeRx; + +impl RuntimeRx { + pub fn start(rx: term::Rx, id: u64, server: Server) -> Self { + tokio::spawn(Actor::new(rx, id, server).run()); + Self + } +} diff --git a/arc-lang/crates/cloud/worker/src/runtime_tx.rs b/arc-lang/crates/cloud/worker/src/runtime_tx.rs new file mode 100644 index 000000000..e796b5a70 --- /dev/null +++ b/arc-lang/crates/cloud/worker/src/runtime_tx.rs @@ -0,0 +1,45 @@ +use api::RuntimeAPI; +use futures::SinkExt; +use io::term; +use tokio::sync::mpsc; + +struct Actor { + mailbox: mpsc::Receiver, + tx: term::Tx, +} + +#[allow(unused)] +enum Message { + Cast(RuntimeAPI), +} + +impl Actor { + fn new(mailbox: mpsc::Receiver, tx: term::Tx) -> Self { + Self { mailbox, tx } + } + + async fn run(mut self) { + while let Some(msg) = self.mailbox.recv().await { + self.handle(msg).await; + } + } + + async fn handle(&mut self, msg: Message) { + match msg { + Message::Cast(msg) => { + self.tx.send(msg).await.expect("Failed to send message"); + } + } + } +} + +#[derive(Clone, Debug)] +pub struct RuntimeTx(mpsc::Sender); + +impl RuntimeTx { + pub fn start(tx_tcp: term::Tx) -> Self { + let (tx, rx) = mpsc::channel(8); + tokio::spawn(Actor::new(rx, tx_tcp).run()); + Self(tx) + } +} diff --git a/arc-lang/crates/cloud/worker/src/server.rs b/arc-lang/crates/cloud/worker/src/server.rs new file mode 100644 index 000000000..c0f42da94 --- /dev/null +++ b/arc-lang/crates/cloud/worker/src/server.rs @@ -0,0 +1,111 @@ +use std::collections::HashMap; +use std::env::temp_dir; +use std::fs::File; +use std::io::Write; +use tokio::process::Command; +use tokio::sync::mpsc; +use tokio_serde::formats::Json; +use tokio_serde::Framed; +use tokio_util::codec::FramedRead; +use tokio_util::codec::FramedWrite; +use tokio_util::codec::LengthDelimitedCodec; + +use crate::coordinator_connector::CoordinatorConnector; +use crate::coordinator_tx::CoordinatorTx; +use crate::runtime_rx::RuntimeRx; +use crate::runtime_tx::RuntimeTx; +use crate::Args; + +struct Actor { + mailbox: mpsc::Receiver, + tx: Option, + txs: HashMap, + server: Server, + args: Args, + id: u64, +} + +#[derive(Clone)] +pub struct Server(mpsc::Sender); + +#[derive(Debug)] +enum Message { + Connect { tx: CoordinatorTx }, + Execute { name: String, binary: Vec }, + Shutdown, +} + +impl Actor { + fn new(mailbox: mpsc::Receiver, server: Server, args: Args) -> Self { + Self { + mailbox, + tx: None, + txs: HashMap::new(), + server, + id: 0, + args, + } + } + + async fn run(mut self) { + CoordinatorConnector::start(self.args.coordinator, self.server.clone()); + while let Some(msg) = self.mailbox.recv().await { + self.handle(msg); + } + } + + fn handle(&mut self, msg: Message) { + match msg { + Message::Connect { tx } => { + self.tx = Some(tx); + } + Message::Execute { name, binary } => { + let path = temp_dir().join("arc-lang").join(name); + + let mut file = File::create(&path).unwrap(); + file.write_all(&binary).unwrap(); + file.flush().unwrap(); + drop(file); + + let mut child = Command::new(path).spawn().expect("Spawning failed"); + + let rx = child.stdout.take().expect("Failed to get stdin"); + let tx = child.stdin.take().expect("Failed to get stdin"); + + let rx = FramedRead::new(rx, LengthDelimitedCodec::new()); + let rx = Framed::new(rx, Json::default()); + let tx = FramedWrite::new(tx, LengthDelimitedCodec::new()); + let tx = Framed::new(tx, Json::default()); + + self.txs.insert(self.id, RuntimeTx::start(tx)); + RuntimeRx::start(rx, self.id, self.server.clone()); + } + Message::Shutdown => self.mailbox.close(), + } + } +} + +impl Server { + pub async fn start(args: Args) { + let (tx, rx) = mpsc::channel(100); + let server = Self(tx); + tokio::spawn(Actor::new(rx, server, args).run()) + .await + .expect("Failed to spawn"); + } + + pub async fn connect(&self, tx: CoordinatorTx) { + self.0.send(Message::Connect { tx }).await.unwrap(); + } + + pub async fn execute(&self, name: String, binary: Vec) { + self.0 + .send(Message::Execute { name, binary }) + .await + .expect("failed to forward"); + } + + pub async fn shutdown(&self) { + self.0.send(Message::Shutdown).await.unwrap(); + } +} diff --git a/arc-lang/crates/colors/Cargo.toml b/arc-lang/crates/colors/Cargo.toml new file mode 100644 index 000000000..d94aa1e04 --- /dev/null +++ b/arc-lang/crates/colors/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "colors" +version.workspace = true +edition.workspace = true +authors.workspace = true +homepage.workspace = true +repository.workspace = true +readme.workspace = true + +[dependencies] +colored.workspace = true diff --git a/arc-lang/crates/colors/src/lib.rs b/arc-lang/crates/colors/src/lib.rs new file mode 100644 index 000000000..22f39e422 --- /dev/null +++ b/arc-lang/crates/colors/src/lib.rs @@ -0,0 +1,26 @@ +use colored::Color; +use colored::Color::TrueColor; + +const fn rgb(r: u8, g: u8, b: u8) -> Color { + Color::TrueColor { r, g, b } +} + +pub fn html(c: Color) -> String { + if let TrueColor { r, g, b } = c { + format!("rgb({},{},{})", r, g, b) + } else { + c.to_fg_str().to_string() + } +} + +pub const KEYWORD_COLOR: Color = rgb(0, 95, 135); +pub const MACRO_COLOR: Color = rgb(95, 135, 0); +pub const VAR_COLOR: Color = rgb(215, 95, 0); +pub const VAL_COLOR: Color = rgb(68, 68, 68); +pub const TYPE_COLOR: Color = rgb(0, 135, 0); +pub const DEF_COLOR: Color = rgb(0, 135, 175); +pub const NUMERIC_COLOR: Color = rgb(215, 95, 0); +pub const STRING_COLOR: Color = rgb(95, 135, 0); +pub const BUILTIN_COLOR: Color = rgb(0, 135, 0); +pub const COMMENT_COLOR: Color = rgb(135, 135, 135); + diff --git a/arc-lang/crates/compiler/Cargo.toml b/arc-lang/crates/compiler/Cargo.toml new file mode 100644 index 000000000..6188ac32b --- /dev/null +++ b/arc-lang/crates/compiler/Cargo.toml @@ -0,0 +1,42 @@ +[package] +name = "compiler" +version.workspace = true +edition.workspace = true + +[dependencies] +im-rc.workspace = true +anyhow.workspace = true + +info.workspace = true +codegen.workspace = true +config.workspace = true +build.workspace = true +diagnostics.workspace = true +ast.workspace = true +hir.workspace = true +rust.workspace = true +mlir.workspace = true +sources.workspace = true + +write-ast.workspace = true +write-hir.workspace = true +write-mlir.workspace = true +write-rust.workspace = true +write-value.workspace = true + +parser.workspace = true +lexer.workspace = true +ast-prelude.workspace = true +ast-to-hir.workspace = true +hir-to-mlir.workspace = true +hir-to-rust.workspace = true +hir-lambda-lift.workspace = true +hir-type-inference.workspace = true +hir-patcomp.workspace = true +hir-monomorphise.workspace = true +hir-reachable.workspace = true +hir-interpreter.workspace = true + +logging.workspace = true + +value.workspace = true diff --git a/arc-lang/crates/compiler/codegen/write-ast/Cargo.toml b/arc-lang/crates/compiler/codegen/write-ast/Cargo.toml new file mode 100644 index 000000000..5ab59ea78 --- /dev/null +++ b/arc-lang/crates/compiler/codegen/write-ast/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "write-ast" +version.workspace = true +edition.workspace = true + +[dependencies] +ast.workspace = true +codegen.workspace = true +im-rc.workspace = true +quote.workspace = true +prettyplease.workspace = true +syntect.workspace = true diff --git a/arc-lang/crates/compiler/codegen/write-ast/src/lib.rs b/arc-lang/crates/compiler/codegen/write-ast/src/lib.rs new file mode 100644 index 000000000..5ede8e30e --- /dev/null +++ b/arc-lang/crates/compiler/codegen/write-ast/src/lib.rs @@ -0,0 +1,863 @@ +#![allow(unused)] + +use codegen::Context; +use std::io::Result; +use std::io::Write; +use syntect::easy::HighlightLines; +use syntect::highlighting::ThemeSet; +use syntect::parsing::SyntaxSet; +use syntect::util::as_24_bit_terminal_escaped; + +use ast::*; + +use im_rc::Vector; + +pub fn write(ctx: &mut Context, ss: &Vector) -> Result<()> { + ctx.each(ss, write_stmt) +} + +pub fn write_stmt(ctx: &mut Context, s: &Stmt) -> Result<()> { + match &s.kind { + SDef(m, x, gs, ps, t, bs, b) => { + write_meta(ctx, m)?; + ctx.keyword("def")?; + ctx.space()?; + ctx.def(x)?; + write_generics(ctx, gs)?; + write_patterns(ctx, ps)?; + ctx.then(t, |ctx, t| { + ctx.colon()?; + write_type(ctx, t) + })?; + write_bounds(ctx, bs)?; + ctx.space()?; + match b { + BExpr(e) => { + ctx.lit("=")?; + ctx.space()?; + write_expr(ctx, e)?; + ctx.lit(";")?; + } + BBlock(b) => { + write_block(ctx, b)?; + } + } + } + SEnum(m, x, gs, bs, xts) => { + write_meta(ctx, m)?; + ctx.keyword("enum")?; + ctx.space()?; + ctx.lit(x)?; + ctx.space()?; + write_generics(ctx, gs)?; + write_bounds(ctx, bs)?; + ctx.brace(|ctx| ctx.indented_comma_seq(xts, write_variant))?; + } + SType(m, x, gs, t) => { + write_meta(ctx, m)?; + ctx.keyword("type")?; + ctx.space()?; + ctx.def(x)?; + ctx.space()?; + ctx.lit("=")?; + ctx.space()?; + write_generics(ctx, gs)?; + write_type(ctx, t)?; + ctx.lit(";")?; + } + SNoop => { + ctx.lit(";")?; + } + SVal(p, e) => { + ctx.keyword("val")?; + ctx.space()?; + write_pat(ctx, p)?; + ctx.space()?; + ctx.lit("=")?; + ctx.space()?; + write_expr(ctx, e)?; + ctx.lit(";")?; + } + SVar(p, e) => { + ctx.keyword("var")?; + ctx.space()?; + write_pat(ctx, p)?; + ctx.space()?; + ctx.lit("=")?; + ctx.space()?; + write_expr(ctx, e)?; + ctx.lit(";")?; + } + SExpr(e) => { + write_expr(ctx, e)?; + ctx.lit(";")?; + } + SBuiltinDef(m, x, gs, ts, t, bs) => { + // write_meta(ctx, m)?; + ctx.keyword("def")?; + ctx.space()?; + ctx.def(x)?; + write_generics(ctx, gs)?; + ctx.paren(|ctx| ctx.seq(ts, write_type))?; + ctx.then(t, |ctx, t| { + ctx.colon()?; + write_type(ctx, t) + })?; + write_bounds(ctx, bs)?; + ctx.lit(";")?; + } + SBuiltinType(m, x, gs, bs) => { + // write_meta(ctx, m)?; + ctx.keyword("type")?; + ctx.space()?; + ctx.def(x)?; + write_generics(ctx, gs)?; + write_bounds(ctx, bs)?; + ctx.lit(";")?; + } + SBuiltinClass(m, x, gs, bs) => { + write_meta(ctx, m)?; + ctx.keyword("trait")?; + ctx.space()?; + ctx.lit(x)?; + write_generics(ctx, gs)?; + write_bounds(ctx, bs)?; + ctx.lit(";")?; + } + SBuiltinInstance(m, x, gs, bs, t) => { + write_meta(ctx, m)?; + ctx.keyword("impl")?; + ctx.space()?; + ctx.lit(x)?; + write_generics(ctx, gs)?; + write_bounds(ctx, bs)?; + ctx.space()?; + ctx.keyword("for")?; + ctx.space()?; + write_type(ctx, t)?; + ctx.space()?; + ctx.lit(";")?; + } + SInject(lang, code) => { + ctx.comment("---")?; + ctx.lit(lang)?; + ctx.lit(code)?; + } + } + ctx.newline()?; + Ok(()) +} + +pub fn write_variant(ctx: &mut Context, v: &Variant) -> Result<()> { + match v { + VUnit(x) => { + ctx.lit(x)?; + } + VRecord(x, xts) => { + ctx.lit(x)?; + ctx.space()?; + write_type_record(ctx, xts)?; + } + VTuple(x, ts) => { + ctx.lit(x)?; + ctx.paren(|ctx| ctx.seq(ts, write_type))?; + } + } + Ok(()) +} + +pub fn write_type_record(ctx: &mut Context, xts: &Vector<(Name, Type)>) -> Result<()> { + ctx.brace(|ctx| { + ctx.seq(xts, |ctx, (x, t)| { + ctx.lit(x)?; + ctx.lit(":")?; + ctx.space()?; + write_type(ctx, t) + }) + }) +} + +pub fn write_patterns(ctx: &mut Context, ps: &Vector) -> Result<()> { + ctx.paren(|ctx| ctx.seq(ps, |ctx, p| write_pat(ctx, p)))?; + Ok(()) +} + +pub fn write_bounds(ctx: &mut Context, bs: &Vector) -> Result<()> { + if !bs.is_empty() { + ctx.keyword("where")?; + ctx.space()?; + ctx.lit(":")?; + ctx.space()?; + ctx.seq(bs, |ctx, (x, ts)| { + ctx.lit(x)?; + ctx.brack(|ctx| ctx.seq(ts, write_type)) + })?; + } + Ok(()) +} + +pub fn write_generics(ctx: &mut Context, gs: &Vector) -> Result<()> { + if !gs.is_empty() { + ctx.brack(|ctx| ctx.seq(gs, |ctx, x| ctx.ty(x))) + } else { + Ok(()) + } +} + +pub fn write_source(ctx: &mut Context, (p, e): &(Pattern, Expr)) -> Result<()> { + write_pat(ctx, p)?; + ctx.space()?; + ctx.keyword("in")?; + ctx.space()?; + write_expr(ctx, e) +} + +pub fn write_meta(ctx: &mut Context, m: &Meta) -> Result<()> { + if !m.is_empty() { + ctx.lit("@")?; + ctx.brace(|ctx| ctx.seq(m, write_attr))?; + ctx.newline()?; + } + Ok(()) +} + +pub fn write_attr(ctx: &mut Context, a: &Attr) -> Result<()> { + ctx.lit(&a.x)?; + ctx.then(&a.c, |ctx, c| { + ctx.lit(":")?; + write_const(ctx, c) + }) +} + +pub fn write_pat(ctx: &mut Context, p: &Pattern) -> Result<()> { + match p.kind.as_ref() { + PParen(p) => { + ctx.paren(|ctx| write_pat(ctx, p))?; + } + PIgnore => { + ctx.lit("_")?; + } + POr(p0, p1) => { + write_pat(ctx, p0)?; + ctx.space()?; + ctx.keyword("or")?; + ctx.space()?; + write_pat(ctx, p1)?; + } + PTypeAnnot(p, t) => { + write_pat(ctx, p)?; + ctx.lit(":")?; + ctx.space()?; + write_type(ctx, t)?; + } + PRecord(xps) => { + write_pat_record(ctx, xps)?; + } + PRecordConcat(p0, p1) => { + write_pat(ctx, p0)?; + ctx.space()?; + ctx.lit("&")?; + ctx.space()?; + write_pat(ctx, p1)?; + } + PTuple(ps) => { + ctx.paren(|ctx| ctx.seq(ps, write_pat))?; + } + PArray(ps) => { + ctx.brack(|ctx| ctx.seq(ps, write_pat))?; + } + PArrayConcat(p0, p1) => { + write_pat(ctx, p0)?; + ctx.space()?; + ctx.lit("++")?; + ctx.space()?; + write_pat(ctx, p1)?; + } + PConst(c) => { + write_const(ctx, c)?; + } + PName(x) => { + ctx.lit(x)?; + } + PVariantTuple(x, ps) => { + ctx.lit(x)?; + ctx.paren(|ctx| ctx.seq(ps, write_pat))?; + } + PVariantRecord(x, xps) => { + ctx.lit(x)?; + write_pat_record(ctx, xps)?; + } + PError => { + ctx.lit("")?; + } + }; + Ok(()) +} + +pub fn write_pat_record( + ctx: &mut Context, + xps: &Vector<(Name, Option)>, +) -> Result<()> { + ctx.brace(|ctx| { + ctx.seq(xps, |ctx, (x, p)| { + ctx.lit(x)?; + ctx.then(p, |ctx, p| { + ctx.lit(":")?; + ctx.space()?; + write_pat(ctx, p) + }) + }) + }) +} + +pub fn write_const(ctx: &mut Context, c: &Const) -> Result<()> { + match c { + CInt(i) => ctx.fmt(format_args!("{i}")), + CFloat(f) => ctx.fmt(format_args!("{f}")), + CString(s) => ctx.fmt(format_args!(r#""{s}""#)), + CBool(b) => ctx.fmt(format_args!("{b}")), + CUnit => ctx.lit("()"), + CChar(c) => ctx.fmt(format_args!("'{c}'")), + } +} + +pub fn write_lit(ctx: &mut Context, c: &Lit) -> Result<()> { + match c { + LInt(i, s) => { + ctx.fmt(format_args!("{i}"))?; + ctx.then(s, |ctx, s| ctx.lit(s)) + } + LFloat(f, s) => { + ctx.fmt(format_args!("{f}"))?; + ctx.then(s, |ctx, s| ctx.lit(s)) + } + LString(s) => ctx.fmt(format_args!(r#""{s}""#)), + LBool(b) => ctx.fmt(format_args!("{b}")), + LUnit => ctx.lit("()"), + LChar(c) => ctx.fmt(format_args!("'{c}'")), + } +} + +pub fn write_expr(ctx: &mut Context, e: &Expr) -> Result<()> { + match e.kind.as_ref() { + EParen(e) => { + ctx.paren(|ctx| write_expr(ctx, e))?; + } + EQuery(p, e, qs) => { + ctx.keyword("from")?; + ctx.space()?; + write_pat(ctx, p)?; + ctx.space()?; + ctx.keyword("in")?; + ctx.space()?; + write_expr(ctx, e)?; + ctx.newline_seq(qs, write_query_stmt)?; + } + ERecordAccess(e, x) => { + write_expr(ctx, e)?; + ctx.lit(".")?; + ctx.lit(x)?; + } + ERecordAccessMulti(e, xs) => { + write_expr(ctx, e)?; + ctx.lit(".")?; + ctx.brace(|ctx| ctx.seq(xs, |ctx, x| ctx.lit(x)))?; + } + ERecordConcat(e0, e1) => { + write_expr(ctx, e0)?; + ctx.space()?; + ctx.lit("&")?; + ctx.space()?; + write_expr(ctx, e1)?; + } + EFunCall(e, es) => { + write_expr(ctx, e)?; + ctx.paren(|ctx| ctx.seq(es, write_expr))?; + } + ETypeAnnot(e, t) => { + write_expr(ctx, e)?; + ctx.lit(":")?; + ctx.space()?; + write_type(ctx, t)?; + } + EIfElse(e, b0, b1) => { + ctx.keyword("if")?; + ctx.space()?; + write_expr(ctx, e)?; + ctx.space()?; + write_block(ctx, b0)?; + ctx.then(b1, |ctx, b1| { + ctx.space()?; + ctx.keyword("else")?; + ctx.space()?; + write_block(ctx, b1) + })?; + } + ELit(l) => { + write_lit(ctx, l)?; + } + ELoop(b) => { + ctx.keyword("loop")?; + ctx.space()?; + write_block(ctx, b)?; + } + ERecord(xes) => { + write_expr_record(ctx, xes)?; + } + EVariantRecord(x, xes) => { + ctx.lit(x)?; + ctx.space()?; + write_expr_record(ctx, xes)?; + } + EFunReturn(e) => { + ctx.keyword("return")?; + ctx.then(e, |ctx, e| { + ctx.space()?; + write_expr(ctx, e) + })?; + } + ELoopBreak(e) => { + ctx.keyword("break")?; + ctx.then(e, |ctx, e| { + ctx.space()?; + write_expr(ctx, e) + })?; + } + ELoopContinue => { + ctx.keyword("continue")?; + } + EUnop(op, e) => { + write_unop(ctx, op)?; + write_expr(ctx, e)?; + } + EArray(es) => { + ctx.brack(|ctx| ctx.seq(es, write_expr))?; + } + EArrayConcat(e0, e1) => { + write_expr(ctx, e0)?; + ctx.space()?; + ctx.lit("++")?; + ctx.space()?; + write_expr(ctx, e1)?; + } + EArrayAccess(e, es) => { + write_expr(ctx, e)?; + ctx.brack(|ctx| write_expr(ctx, e))?; + } + EBinop(e0, op, e1) => { + write_expr(ctx, e0)?; + ctx.space()?; + write_binop(ctx, op)?; + ctx.space()?; + write_expr(ctx, e1)?; + } + EMut(e0, op, e1) => { + write_expr(ctx, e0)?; + ctx.then(op, write_binop)?; + ctx.space()?; + ctx.lit("=")?; + ctx.space()?; + write_expr(ctx, e1)?; + } + EDo(b) => { + ctx.keyword("do")?; + ctx.space()?; + write_block(ctx, b)?; + } + EFor(p, e, b) => { + ctx.keyword("for")?; + ctx.space()?; + write_pat(ctx, p)?; + ctx.space()?; + ctx.keyword("in")?; + ctx.space()?; + write_expr(ctx, e)?; + ctx.space()?; + write_block(ctx, b)?; + } + EFun(ps, t, b) => { + ctx.keyword("fun")?; + ctx.paren(|ctx| ctx.seq(ps, write_pat))?; + ctx.then(t, |ctx, t| { + ctx.lit(":")?; + ctx.space()?; + write_type(ctx, t) + })?; + ctx.space()?; + match b { + BExpr(e) => { + ctx.lit("=")?; + ctx.space()?; + write_expr(ctx, e)?; + } + BBlock(b) => { + write_block(ctx, b)?; + } + } + } + EMethodCall(e, x, ts, es) => { + write_expr(ctx, e)?; + ctx.lit(".")?; + ctx.lit(x)?; + write_qualified_types(ctx, ts)?; + ctx.paren(|ctx| ctx.seq(es, write_expr))?; + } + EMatch(e, arms) => { + ctx.keyword("match")?; + ctx.space()?; + write_expr(ctx, e)?; + ctx.space()?; + ctx.brace(|ctx| write_arms(ctx, arms))?; + } + EName(x, ts) => { + ctx.lit(x)?; + write_qualified_types(ctx, ts)?; + } + ETupleAccess(e, i) => { + write_expr(ctx, e)?; + ctx.lit(".")?; + ctx.fmt(format_args!("{i}"))?; + } + EThrow(e) => { + ctx.keyword("throw")?; + ctx.space()?; + write_expr(ctx, e)?; + } + ETry(b0, arms, b1) => { + ctx.keyword("try")?; + ctx.space()?; + write_block(ctx, b0)?; + write_arms(ctx, arms)?; + ctx.then(b1, |ctx, b1| { + ctx.space()?; + ctx.keyword("finally")?; + ctx.space()?; + write_block(ctx, b1) + })?; + } + ETuple(es) => { + ctx.paren(|ctx| ctx.seq(es, write_expr))?; + } + EWhile(e, b) => { + ctx.keyword("while")?; + ctx.space()?; + write_expr(ctx, e)?; + ctx.space()?; + write_block(ctx, b)?; + } + EError => { + ctx.lit("")?; + } + } + Ok(()) +} + +pub fn write_types(ctx: &mut Context, ts: &Vector) -> Result<()> { + if !ts.is_empty() { + ctx.brack(|ctx| ctx.seq(ts, write_type))?; + } + Ok(()) +} + +pub fn write_qualified_types(ctx: &mut Context, ts: &Vector) -> Result<()> { + if !ts.is_empty() { + ctx.lit("::")?; + ctx.brack(|ctx| ctx.seq(ts, write_type))?; + } + Ok(()) +} + +pub fn write_expr_record(ctx: &mut Context, xes: &Vector) -> Result<()> { + ctx.brace(|ctx| { + ctx.seq(xes, |ctx, xe| match xe { + FName(x, e) => { + ctx.lit(x)?; + ctx.then(e, |ctx, e| { + ctx.lit(":")?; + ctx.space()?; + write_expr(ctx, e) + }) + } + FExpr(e, x) => { + write_expr(ctx, e)?; + ctx.lit(".")?; + ctx.lit(x) + } + }) + }) +} + +pub fn write_arms(ctx: &mut Context, arms: &Vector) -> Result<()> { + ctx.indented_comma_seq(arms, |ctx, (p, e)| { + write_pat(ctx, &p)?; + ctx.space()?; + ctx.lit("=>")?; + ctx.space()?; + write_expr(ctx, &e) + }) +} + +pub fn write_query_stmt(ctx: &mut Context, s: &QueryStmt) -> Result<()> { + match s { + QFrom(p, e) => { + ctx.keyword("from")?; + ctx.space()?; + write_pat(ctx, p)?; + ctx.space()?; + ctx.keyword("in")?; + ctx.space()?; + write_expr(ctx, e)?; + } + QWhere(e) => { + ctx.keyword("where")?; + ctx.space()?; + write_expr(ctx, e)?; + } + QWith(p, e) => { + ctx.keyword("with")?; + ctx.space()?; + write_pat(ctx, p)?; + ctx.space()?; + ctx.lit("=")?; + ctx.space()?; + write_expr(ctx, e)?; + } + QJoinOn(p, e0, e1) => { + ctx.keyword("join")?; + ctx.space()?; + write_pat(ctx, p)?; + ctx.space()?; + ctx.keyword("in")?; + ctx.space()?; + write_expr(ctx, e0)?; + ctx.space()?; + ctx.keyword("on")?; + ctx.space()?; + write_expr(ctx, e1)?; + ctx.space()?; + ctx.lit("=")?; + ctx.space()?; + } + QJoinOver(p, e, e0) => { + ctx.keyword("join")?; + ctx.space()?; + write_pat(ctx, p)?; + ctx.space()?; + ctx.keyword("in")?; + ctx.space()?; + write_expr(ctx, e)?; + ctx.space()?; + ctx.keyword("over")?; + ctx.space()?; + write_expr(ctx, e0)?; + } + QJoinOverOn(p, e, e0, e1, e2, qs) => { + ctx.keyword("join")?; + ctx.space()?; + write_pat(ctx, p)?; + ctx.space()?; + ctx.keyword("in")?; + ctx.space()?; + write_expr(ctx, e)?; + ctx.space()?; + ctx.keyword("over")?; + ctx.space()?; + write_expr(ctx, e0)?; + ctx.space()?; + ctx.keyword("on")?; + ctx.space()?; + write_expr(ctx, e1)?; + ctx.space()?; + ctx.lit("=")?; + ctx.space()?; + write_expr(ctx, e2)?; + ctx.space()?; + ctx.brace(|ctx| ctx.newline_seq(qs, write_query_stmt))?; + } + QGroup(e, qs, x) => { + ctx.keyword("group")?; + ctx.space()?; + write_expr(ctx, e)?; + ctx.space()?; + ctx.brace(|ctx| ctx.newline_seq(qs, write_query_stmt))?; + ctx.then(x, |ctx, x| { + ctx.space()?; + ctx.keyword("as")?; + ctx.space()?; + ctx.lit(x) + })?; + } + QCompute(e0, e1, x) => { + ctx.keyword("compute")?; + ctx.space()?; + write_expr(ctx, e0)?; + ctx.then(e1, |ctx, e1| { + ctx.space()?; + ctx.keyword("of")?; + ctx.space()?; + write_expr(ctx, e1) + })?; + ctx.then(x, |ctx, x| { + ctx.space()?; + ctx.keyword("as")?; + ctx.space()?; + ctx.lit(x) + })?; + } + QOver(e, qs, x) => { + ctx.keyword("over")?; + ctx.space()?; + write_expr(ctx, e)?; + ctx.space()?; + ctx.brace(|ctx| ctx.newline_seq(qs, write_query_stmt))?; + ctx.then(x, |ctx, x| { + ctx.space()?; + ctx.keyword("as")?; + ctx.space()?; + ctx.lit(x) + })?; + } + QRoll(e0, e1, x) => { + ctx.keyword("roll")?; + ctx.space()?; + write_expr(ctx, e0)?; + ctx.then(e1, |ctx, e1| { + ctx.space()?; + ctx.keyword("of")?; + ctx.space()?; + write_expr(ctx, e1) + })?; + ctx.then(x, |ctx, x| { + ctx.space()?; + ctx.keyword("as")?; + ctx.space()?; + ctx.lit(x) + })?; + } + QSelect(e) => { + ctx.keyword("select")?; + ctx.space()?; + write_expr(ctx, e)?; + } + QUnion(e) => { + ctx.keyword("union")?; + ctx.space()?; + write_expr(ctx, e)?; + } + QInto(e) => { + ctx.keyword("into")?; + ctx.space()?; + write_expr(ctx, e)?; + } + QVal(p, e) => { + write_pat(ctx, p)?; + ctx.space()?; + ctx.space()?; + ctx.lit("=")?; + ctx.space()?; + write_expr(ctx, e)?; + } + QOrder(e, o) => { + ctx.keyword("order")?; + ctx.space()?; + write_expr(ctx, e)?; + ctx.space()?; + write_order(ctx, o)?; + } + } + Ok(()) +} + +pub fn write_order(ctx: &mut Context, o: &Order) -> Result<()> { + match o { + OAsc => {} + ODesc => ctx.keyword("desc")?, + } + Ok(()) +} + +pub fn write_block(ctx: &mut Context, b: &Block) -> Result<()> { + ctx.brace(|ctx| { + ctx.indented(|ctx| { + ctx.newline_seq(&b.ss, write_stmt)?; + ctx.then(&b.e, |ctx, e| { + ctx.newline()?; + write_expr(ctx, e) + }) + })?; + ctx.newline() + })?; + Ok(()) +} + +pub fn write_type(ctx: &mut Context, t: &Type) -> Result<()> { + match t.kind.as_ref() { + TParen(t) => { + ctx.paren(|ctx| write_type(ctx, t))?; + } + TFun(ts, t) => { + ctx.keyword("fun")?; + ctx.paren(|ctx| ctx.seq(ts, write_type))?; + ctx.lit(":")?; + write_type(ctx, t)?; + } + TTuple(ts) => { + ctx.paren(|ctx| ctx.seq(ts, write_type))?; + } + TRecord(xts) => { + write_type_record(ctx, xts)?; + } + TName(x, ts) => { + ctx.ty(x)?; + write_types(ctx, ts)?; + } + TArray(t, n) => { + ctx.brack(|ctx| { + write_type(ctx, t)?; + ctx.then(n, |ctx, n| { + ctx.lit(";")?; + ctx.fmt(format_args!("{n}")) + }) + })?; + } + TUnit => { + ctx.lit("()")?; + } + TNever => { + ctx.lit("!")?; + } + TIgnore => { + ctx.lit("_")?; + } + TError => { + ctx.lit("")?; + } + TRecordConcat(t0, t1) => { + ctx.brack(|ctx| { + write_type(ctx, t0)?; + ctx.space()?; + ctx.lit("&")?; + ctx.space()?; + write_type(ctx, t1) + })?; + } + TArrayConcat(t0, t1) => { + ctx.brack(|ctx| { + write_type(ctx, t0)?; + ctx.space()?; + ctx.lit("++")?; + ctx.space()?; + write_type(ctx, t1) + })?; + } + } + Ok(()) +} + +pub fn write_unop(ctx: &mut Context, op: &Unop) -> Result<()> { + ctx.fmt(format_args!("{}", &op.token)) +} + +pub fn write_binop(ctx: &mut Context, op: &Binop) -> Result<()> { + ctx.fmt(format_args!("{}", &op.token)) +} diff --git a/arc-runtime/examples/remote/Cargo.toml b/arc-lang/crates/compiler/codegen/write-flink/Cargo.toml similarity index 60% rename from arc-runtime/examples/remote/Cargo.toml rename to arc-lang/crates/compiler/codegen/write-flink/Cargo.toml index b294bdb46..6fe273873 100644 --- a/arc-runtime/examples/remote/Cargo.toml +++ b/arc-lang/crates/compiler/codegen/write-flink/Cargo.toml @@ -1,10 +1,8 @@ [package] -name = "remote" +name = "write-flink" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -arc-runtime = { path = "../../" } -lazy_static = { version = "1.4.0" } diff --git a/arc-lang/crates/compiler/codegen/write-flink/src/lib.rs b/arc-lang/crates/compiler/codegen/write-flink/src/lib.rs new file mode 100644 index 000000000..7d12d9af8 --- /dev/null +++ b/arc-lang/crates/compiler/codegen/write-flink/src/lib.rs @@ -0,0 +1,14 @@ +pub fn add(left: usize, right: usize) -> usize { + left + right +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn it_works() { + let result = add(2, 2); + assert_eq!(result, 4); + } +} diff --git a/arc-lang/crates/compiler/codegen/write-hir/Cargo.toml b/arc-lang/crates/compiler/codegen/write-hir/Cargo.toml new file mode 100644 index 000000000..d65b4bacd --- /dev/null +++ b/arc-lang/crates/compiler/codegen/write-hir/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "write-hir" +version.workspace = true +edition.workspace = true + +[dependencies] +hir.workspace = true +codegen.workspace = true +im-rc.workspace = true +colors.workspace = true diff --git a/arc-lang/crates/compiler/codegen/write-hir/src/lib.rs b/arc-lang/crates/compiler/codegen/write-hir/src/lib.rs new file mode 100644 index 000000000..016dfce9c --- /dev/null +++ b/arc-lang/crates/compiler/codegen/write-hir/src/lib.rs @@ -0,0 +1,543 @@ +#![allow(unused)] + +use codegen::*; +use colors::*; +use std::io::Result; +use std::io::Write; + +use hir::*; + +use im_rc::Vector; + +pub fn write(ctx: &mut Context, ss: &Vector) -> Result<()> { + ctx.each(ss.iter(), write_stmt) +} + +pub fn write_stmt(ctx: &mut Context, s: &Stmt) -> Result<()> { + match &s.kind { + SVal(p, e) => { + if let PVar(x) = p.kind.as_ref() { + ctx.keyword("var ")?; + write_name(ctx, x)?; + } else { + ctx.keyword("val ")?; + write_pattern(ctx, p)?; + } + ctx.lit(" = ")?; + write_expr(ctx, e)?; + ctx.lit(";")?; + ctx.newline()?; + } + SExpr(e) => { + write_expr(ctx, e)?; + ctx.lit(";")?; + ctx.newline()?; + } + SDef(m, x, gs, ps, t, b) => { + write_meta(ctx, &m)?; + ctx.keyword("def ")?; + ctx.colored(x, DEF_COLOR)?; + write_generics(ctx, gs)?; + write_patterns(ctx, ps)?; + ctx.lit(":")?; + write_type(ctx, t)?; + ctx.lit(" ")?; + write_block(ctx, b)?; + ctx.newline()?; + } + SEnum(m, x, gs, vs) => { + write_meta(ctx, &m)?; + ctx.keyword("enum ")?; + ctx.colored(x, TYPE_COLOR)?; + write_generics(ctx, gs)?; + ctx.lit(" ")?; + ctx.brace(|ctx| { + ctx.indented_comma_seq(vs, |ctx, (x, t)| { + write_name(ctx, x)?; + ctx.lit(":")?; + write_type(ctx, t) + }) + })?; + ctx.newline()?; + } + SBif(m, x, gs, ts, t) => { + if ctx.opt.prelude { + write_meta(ctx, &m)?; + ctx.keyword("def ")?; + ctx.colored(x, DEF_COLOR)?; + write_generics(ctx, gs)?; + ctx.paren(|ctx| ctx.seq(ts, write_type))?; + ctx.lit(":")?; + ctx.lit(" ")?; + write_type(ctx, t)?; + ctx.lit(";")?; + ctx.newline()?; + } + } + SBit(m, x, gs) => { + if ctx.opt.prelude { + write_meta(ctx, &m)?; + ctx.keyword("type ")?; + ctx.colored(x, TYPE_COLOR)?; + write_generics(ctx, gs)?; + ctx.lit(";")?; + ctx.newline()?; + } + } + SRecDef(_m, _ds) => todo!(), + SNoop => { + ctx.lit(";")?; + ctx.newline()?; + } + } + Ok(()) +} + +pub fn write_patterns(ctx: &mut Context, ps: &Vector) -> Result<()> { + ctx.paren(|ctx| ctx.seq(ps, write_pattern)) +} + +pub fn write_name(ctx: &mut Context, x: &Name) -> Result<()> { + ctx.lit(x) +} + +pub fn write_generics(ctx: &mut Context, gs: &Vector) -> Result<()> { + if !gs.is_empty() { + ctx.brack(|ctx| ctx.seq(gs, write_name))?; + } + Ok(()) +} + +pub fn write_types(ctx: &mut Context, ts: &Vector) -> Result<()> { + if !ts.is_empty() { + ctx.brack(|ctx| ctx.seq(ts, write_type))?; + } + Ok(()) +} + +pub fn write_qualified_types(ctx: &mut Context, ts: &Vector) -> Result<()> { + if !ts.is_empty() { + ctx.lit("::")?; + ctx.brack(|ctx| ctx.seq(ts, write_type))?; + } + Ok(()) +} + +pub fn write_meta(ctx: &mut Context, d: &Meta) -> Result<()> { + if !d.is_empty() { + ctx.lit("@")?; + ctx.brace(|ctx| { + ctx.seq(d, |ctx, (k, v)| { + write_name(ctx, k)?; + ctx.then(v, |ctx, v| { + ctx.lit(":")?; + write_const(ctx, v) + }) + }) + })?; + ctx.newline()?; + } + Ok(()) +} + +pub fn write_pattern(ctx: &mut Context, p: &Pattern) -> Result<()> { + fn write_pattern(ctx: &mut Context, p: &Pattern) -> Result<()> { + match p.kind.as_ref() { + PIgnore => { + ctx.lit("_")?; + } + POr(p0, p1) => { + write_pattern(ctx, p0)?; + ctx.keyword(" or ")?; + write_pattern(ctx, p1)?; + } + PNoop(p) => { + write_pattern(ctx, p)?; + } + PRecord(xps) => { + ctx.brace(|ctx| { + for (x, p) in xps { + write_name(ctx, x)?; + ctx.lit(":")?; + write_pattern(ctx, p)?; + } + Ok(()) + })?; + } + PArray(ps) => { + ctx.brack(|ctx| { + for p in ps { + write_pattern(ctx, p)?; + } + Ok(()) + })?; + } + PConst(c) => { + write_const(ctx, c)?; + } + PVariant(xs, ts, x, p) => { + write_name(ctx, x)?; + write_qualified_types(ctx, ts)?; + ctx.lit(".")?; + write_name(ctx, x)?; + write_pattern(ctx, p)?; + ctx.paren(|ctx| write_pattern(ctx, p))?; + } + PVar(x) => { + ctx.colored(&x, VAR_COLOR)?; + ctx.lit(":")?; + write_type(ctx, &p.t)?; + } + PVal(x) => { + ctx.colored(&x, VAL_COLOR)?; + ctx.lit(":")?; + write_type(ctx, &p.t)?; + } + PTuple(ps) => { + ctx.paren(|ctx| ctx.seq_trailing(ps, write_pattern))?; + } + PError => { + ctx.lit("")?; + } + PRecordConcat(p0, p1) => { + write_pattern(ctx, p0)?; + ctx.lit(" & ")?; + write_pattern(ctx, p1)?; + } + PArrayConcat(p0, p1) => { + write_pattern(ctx, p0)?; + ctx.lit(" ++ ")?; + write_pattern(ctx, p1)?; + } + }; + Ok(()) + } + if ctx.opt.types { + ctx.paren(|ctx| { + write_pattern(ctx, p)?; + ctx.lit(":")?; + write_type(ctx, &p.t) + }) + } else { + write_pattern(ctx, p) + } +} + +pub fn write_const(ctx: &mut Context, c: &Const) -> Result<()> { + match c { + CInt(c) => ctx.colored(&format!("{c}"), NUMERIC_COLOR), + CFloat(c) => ctx.colored(&format!("{c}"), NUMERIC_COLOR), + CString(c) => { + ctx.colored("\"", STRING_COLOR)?; + ctx.colored(c, STRING_COLOR)?; + ctx.colored("\"", STRING_COLOR) + } + CBool(c) => ctx.bold_colored(&format!("{c}"), BUILTIN_COLOR), + CChar(c) => ctx.colored(&format!("'{c}'"), STRING_COLOR), + CUnit => ctx.lit("()"), + } +} + +pub fn write_expr(ctx: &mut Context, e: &Expr) -> Result<()> { + fn write_expr(ctx: &mut Context, e: &Expr) -> Result<()> { + match e.kind.as_ref() { + EMut(e0, e1) => { + write_expr(ctx, e0)?; + ctx.lit(" = ")?; + write_expr(ctx, e1)?; + } + ELoop(b) => { + ctx.keyword("loop ")?; + write_block(ctx, b)?; + } + ERecord(xes) => { + ctx.brace(|ctx| { + ctx.seq(xes, |ctx, (x, e)| { + write_name(ctx, x)?; + ctx.lit(":")?; + write_expr(ctx, e) + }) + })?; + } + ERecordAccess(e, x) => { + write_expr(ctx, e)?; + ctx.lit(".")?; + write_name(ctx, x)?; + } + ERecordConcat(e0, e1) => { + write_expr(ctx, e0)?; + ctx.lit(" ++ ")?; + write_expr(ctx, e1)?; + } + EFunReturn(e) => { + ctx.keyword("return")?; + ctx.lit(" ")?; + write_expr(ctx, e)?; + } + ELoopBreak(e) => { + ctx.keyword("break")?; + } + ELoopContinue => { + ctx.keyword("continue")?; + } + EMatch(e, arms) => { + ctx.keyword("match ")?; + write_expr(ctx, e)?; + ctx.lit(" ")?; + ctx.brace(|ctx| { + ctx.indented_seq(arms, |ctx, (p, b)| { + write_pattern(ctx, p)?; + ctx.lit(" => ")?; + ctx.keyword("do ")?; + write_block(ctx, b)?; + ctx.lit(",") + }) + })?; + } + EFunCall(e, es) => { + write_expr(ctx, e)?; + ctx.paren(|ctx| ctx.seq(es, write_expr))?; + } + EVariant(x0, ts, x1, e) => { + write_name(ctx, x0)?; + write_qualified_types(ctx, ts)?; + ctx.lit("::")?; + write_name(ctx, x1)?; + ctx.paren(|ctx| write_expr(ctx, e))?; + } + EVariantAccess(x0, ts, x1, e) => { + write_expr(ctx, e)?; + ctx.lit(" as ")?; + write_name(ctx, x0)?; + write_qualified_types(ctx, ts)?; + ctx.lit("::")?; + write_name(ctx, x1)?; + } + EVariantCheck(x0, ts, x, e) => { + write_expr(ctx, e)?; + ctx.lit(" is ")?; + write_name(ctx, x0)?; + write_qualified_types(ctx, ts)?; + ctx.lit("::")?; + write_name(ctx, x)?; + } + EFun(ps, t, b) => { + ctx.keyword("fun")?; + ctx.paren(|ctx| ctx.seq(ps, write_pattern))?; + ctx.lit(":")?; + write_type(ctx, t)?; + ctx.lit(" ")?; + write_block(ctx, b)?; + } + EFunCallDirect(x, ts, es) => { + ctx.colored(x, DEF_COLOR)?; + write_qualified_types(ctx, ts)?; + ctx.paren(|ctx| ctx.seq(es, write_expr))?; + } + EConst(c) => { + write_const(ctx, c)?; + } + EIfElse(e, b0, b1) => { + ctx.keyword("if ")?; + write_expr(ctx, e)?; + ctx.lit(" ")?; + write_block(ctx, b0)?; + ctx.keyword(" else ")?; + write_block(ctx, b1)?; + } + ENoop(e) => { + write_expr(ctx, e)?; + } + EDo(b) => { + ctx.keyword("do ")?; + write_block(ctx, b)?; + } + EArray(es) => { + ctx.brack(|ctx| ctx.seq(es, write_expr))?; + } + EArrayConcat(e0, e1) => { + write_expr(ctx, e0)?; + ctx.lit(" ++ ")?; + write_expr(ctx, e1)?; + } + EArrayAccess(e1, e2) => { + write_expr(ctx, e1)?; + ctx.brack(|ctx| write_expr(ctx, e2))?; + } + EVal(x) => { + ctx.colored(&x, VAL_COLOR)?; + } + EVar(x) => { + ctx.colored(&x, VAR_COLOR)?; + } + EDef(x, ts) => { + ctx.colored(&x, DEF_COLOR)?; + write_qualified_types(ctx, ts)?; + } + ETuple(es) => { + ctx.paren(|ctx| ctx.seq_trailing(es, write_expr))?; + } + ETupleAccess(e, i) => { + write_expr(ctx, e)?; + ctx.lit(".")?; + ctx.fmt(format_args!("{i}"))?; + } + EFor(p, e, b) => { + ctx.keyword("for ")?; + write_pattern(ctx, p)?; + ctx.keyword(" in ")?; + write_expr(ctx, e)?; + ctx.lit(" ")?; + write_block(ctx, b)?; + } + EWhile(e, b) => { + ctx.keyword("while ")?; + write_expr(ctx, e)?; + ctx.lit(" ")?; + write_block(ctx, b)?; + } + EError => { + ctx.lit("")?; + } + } + Ok(()) + } + if ctx.opt.types { + ctx.paren(|ctx| { + write_expr(ctx, e)?; + ctx.lit(":")?; + write_type(ctx, &e.t) + }) + } else { + write_expr(ctx, e) + } +} + +pub fn write_block(ctx: &mut Context, b: &Block) -> Result<()> { + ctx.brace(|ctx| { + ctx.indent(); + ctx.newline(); + for s in &b.ss { + write_stmt(ctx, s)?; + } + write_expr(ctx, &b.e)?; + ctx.dedent(); + ctx.newline() + }) +} + +pub fn write_type(ctx: &mut Context, t: &Type) -> Result<()> { + match t.kind.as_ref() { + TFun(ts, t) => { + ctx.keyword("fun")?; + ctx.paren(|ctx| ctx.seq(ts, write_type))?; + ctx.lit(":")?; + write_type(ctx, t)?; + } + TRecord(t) => { + ctx.brace(|ctx| write_type(ctx, t))?; + } + TRowEmpty => { + ctx.lit("Empty")?; + } + TRowExtend((x, t), r) => { + ctx.lit("Row")?; + ctx.paren(|ctx| { + write_name(ctx, x)?; + ctx.colon()?; + write_type(ctx, t)?; + ctx.comma()?; + write_type(ctx, r) + })?; + } + TRecordConcat(t0, t1) => { + write_type(ctx, t0)?; + ctx.lit(" & ")?; + write_type(ctx, t1)?; + } + TNominal(x, ts) => { + ctx.colored(x, TYPE_COLOR)?; + write_types(ctx, ts)?; + } + TTuple(ts, closed) => { + if *closed { + ctx.paren(|ctx| ctx.seq_trailing(ts, write_type))?; + } else { + ctx.paren(|ctx| { + ctx.seq(ts, write_type)?; + ctx.lit(", ..") + })?; + } + } + TArray(t, n) => { + ctx.brack(|ctx| { + write_type(ctx, t)?; + ctx.lit(";")?; + ctx.then_or( + n, + |ctx, n| ctx.fmt(format_args!("{}", n)), + |ctx| ctx.lit("_"), + ) + })?; + } + TArrayConcat(t0, t1) => { + write_type(ctx, t0)?; + ctx.lit(" ++ ")?; + write_type(ctx, t1)?; + } + TGeneric(x) => { + write_name(ctx, x)?; + } + TVar(x) => { + ctx.lit("'")?; + write_name(ctx, x)?; + } + TAlias(_, _, t) => { + write_type(ctx, t)?; + } + TError => { + ctx.lit("")?; + } + TUnit => { + ctx.lit("()")?; + } + TNever => { + ctx.lit("!")?; + } + } + Ok(()) +} + +pub fn print_type(t: &Type) -> Result<()> { + codegen::Context::stderr().typed().writeln(t, write_type)?; + Ok(()) +} + +pub fn print_pattern(t: &Pattern) -> Result<()> { + codegen::Context::stderr() + .typed() + .writeln(t, write_pattern)?; + Ok(()) +} + +pub fn print_expr(e: &Expr) -> Result<()> { + codegen::Context::stderr().typed().writeln(e, write_expr)?; + Ok(()) +} + +pub fn print_stmt(s: &Stmt) -> Result<()> { + codegen::Context::stderr().typed().writeln(s, write_stmt)?; + Ok(()) +} + +pub fn print_block(b: &Block) -> Result<()> { + codegen::Context::stderr().typed().writeln(b, write_block)?; + Ok(()) +} + +pub fn type_to_string(t: &Type) -> String { + codegen::Context::string() + .write(t, write_type) + .unwrap() + .finish() +} diff --git a/arc-lang/crates/compiler/codegen/write-mlir/Cargo.toml b/arc-lang/crates/compiler/codegen/write-mlir/Cargo.toml new file mode 100644 index 000000000..7eea51fa1 --- /dev/null +++ b/arc-lang/crates/compiler/codegen/write-mlir/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "write-mlir" +version.workspace = true +edition.workspace = true + +[dependencies] +mlir.workspace = true +hir-interpreter.workspace = true +utils.workspace = true +stack.workspace = true +info.workspace = true +name-gen.workspace = true +codegen.workspace = true +im-rc.workspace = true +ast-prelude.workspace = true diff --git a/arc-lang/crates/compiler/codegen/write-mlir/src/lib.rs b/arc-lang/crates/compiler/codegen/write-mlir/src/lib.rs new file mode 100644 index 000000000..b332eb587 --- /dev/null +++ b/arc-lang/crates/compiler/codegen/write-mlir/src/lib.rs @@ -0,0 +1,353 @@ +#![allow(unused)] +use codegen::Context; +use std::io::Result; +use std::io::Write; + +use mlir::*; + +use im_rc::Vector; + +pub fn write(ctx: &mut Context, is: &Vector) -> Result<()> { + ctx.each_newline(is.iter(), write_item) +} + +pub fn write_module(ctx: &mut Context, is: &Vector) -> Result<()> { + ctx.keyword("module")?; + ctx.space()?; + write_symbol(ctx, "@program")?; + ctx.space()?; + ctx.brace(|ctx| { + ctx.newline()?; + ctx.indent(); + for line in ast_prelude::MLIR_PRELUDE.lines() { + ctx.newline()?; + ctx.lit(line)?; + } + ctx.newline()?; + ctx.each_newline(is.iter(), write_item)?; + ctx.dedent(); + ctx.newline() + }) +} + +pub fn write_item(ctx: &mut Context, i: &Item) -> Result<()> { + match &i.kind { + IDef(x, xvs, t, b) => { + ctx.keyword("func.func")?; + ctx.space()?; + write_symbol(ctx, x)?; + write_params(ctx, xvs)?; + ctx.colon()?; + write_type(ctx, t)?; + ctx.lit(" ")?; + write_block(ctx, b)?; + } + IExternDef(x, xvs, t) => { + ctx.keyword("func.func")?; + ctx.space()?; + ctx.keyword("private")?; + ctx.space()?; + write_symbol(ctx, x)?; + write_params(ctx, xvs)?; + ctx.colon()?; + write_type(ctx, t)?; + } + // IDataflow(d) => todo!(), + IError => unreachable!(), + } + Ok(()) +} + +pub fn write_params(ctx: &mut Context, ps: &Vector) -> Result<()> { + ctx.paren(|ctx| { + ctx.seq(ps, |ctx, v| { + write_val(ctx, v)?; + ctx.colon()?; + write_type(ctx, &v.t) + }) + })?; + Ok(()) +} + +pub fn write_stmt(ctx: &mut Context, s: &Stmt) -> Result<()> { + if !s.vs.is_empty() { + ctx.seq(&s.vs, write_val)?; + ctx.lit(" = ")?; + } + match &s.kind { + SRecord(xvs) => { + ctx.keyword("arc.make_struct")?; + ctx.paren(|ctx| { + ctx.seq(xvs, |ctx, (_, v)| write_val(ctx, v))?; + ctx.colon()?; + ctx.seq(xvs, |ctx, (_, v)| write_typeof(ctx, v))?; + Ok(()) + })?; + ctx.colon()?; + ctx.seq(&s.vs, write_typeof)?; + } + SRecordAccess(v, x) => { + ctx.quote(|ctx| ctx.lit("arc.struct_access"))?; + ctx.paren(|ctx| write_val(ctx, v))?; + ctx.brace(|ctx| { + ctx.lit("field")?; + ctx.lit(" = ")?; + ctx.quote(|ctx| ctx.lit(x)) + })?; + ctx.colon()?; + ctx.paren(|ctx| write_type(ctx, &v.t))?; + ctx.lit(" -> ")?; + ctx.seq(&s.vs, write_typeof)?; + } + SWhileBreak(vs) => { + ctx.quote(|ctx| ctx.lit("arc.loop.break"))?; + ctx.paren(|ctx| ctx.seq(vs, write_val))?; + ctx.colon()?; + ctx.paren(|ctx| ctx.seq(vs, write_typeof))?; + ctx.lit(" -> ")?; + ctx.seq(&s.vs, write_typeof)?; + } + SWhileContinue(vs) => { + ctx.quote(|ctx| ctx.lit("arc.loop.continue"))?; + ctx.paren(|ctx| ctx.seq(vs, write_val))?; + ctx.colon()?; + ctx.paren(|ctx| ctx.seq(vs, write_typeof))?; + ctx.lit(" -> ")?; + ctx.seq(&s.vs, write_typeof)?; + } + SWhileYield(vs) => { + ctx.quote(|ctx| ctx.lit("scf.yield"))?; + ctx.paren(|ctx| ctx.seq(vs, write_val))?; + ctx.colon()?; + ctx.paren(|ctx| ctx.seq(vs, write_typeof))?; + ctx.lit(" -> ")?; + ctx.seq(&s.vs, write_typeof)?; + } + SFunCallDirect(x, vs) => { + ctx.lit("call ")?; + write_symbol(ctx, x)?; + ctx.colon()?; + ctx.paren(|ctx| ctx.seq(vs, write_typeof))?; + ctx.lit(" -> ")?; + ctx.seq(&s.vs, write_typeof)?; + } + SFunCallIndirect(v, vs) => { + ctx.lit("call_indirect ")?; + write_val(ctx, v)?; + ctx.paren(|ctx| ctx.seq(vs, write_val))?; + ctx.colon()?; + ctx.paren(|ctx| ctx.seq(vs, write_typeof))?; + ctx.lit(" -> ")?; + ctx.seq(&s.vs, write_typeof)?; + } + SVariant(x, v) => { + ctx.lit("arc.make_enum")?; + ctx.paren(|ctx| write_val(ctx, v))?; + ctx.lit(" as ")?; + ctx.quote(|ctx| ctx.lit(x))?; + ctx.colon()?; + ctx.seq(&s.vs, write_typeof)?; + } + SVariantCheck(x, v) => { + ctx.lit("arc.check_enum")?; + ctx.paren(|ctx| write_val(ctx, v))?; + ctx.lit(" in ")?; + ctx.quote(|ctx| ctx.lit(x))?; + ctx.colon()?; + ctx.seq(&s.vs, write_typeof)?; + } + SVariantAccess(x, v) => { + ctx.lit("arc.enum_access")?; + ctx.quote(|ctx| ctx.lit(x))?; + ctx.lit(" in ")?; + ctx.paren(|ctx| write_val(ctx, v))?; + ctx.colon()?; + ctx.seq(&s.vs, write_typeof)?; + } + SFun(x) => { + ctx.lit("constant ")?; + write_symbol(ctx, x)?; + ctx.colon()?; + ctx.seq(&s.vs, write_typeof)?; + } + SConst(c) => match c { + CInt(c) => { + ctx.lit("arc.constant ")?; + ctx.fmt(format_args!("{c}"))?; + ctx.colon()?; + ctx.seq(&s.vs, write_typeof)?; + } + CFloat(c) => { + ctx.lit("arith.constant ")?; + ctx.fmt(format_args!("{c}"))?; + ctx.colon()?; + ctx.seq(&s.vs, write_typeof)?; + } + CString(c) => { + ctx.lit("arc.adt_constant ")?; + ctx.fmt(format_args!(r#"String::new("{c}")"#))?; + ctx.colon()?; + ctx.seq(&s.vs, write_typeof)?; + } + CBool(c) => { + ctx.lit("arith.constant ")?; + ctx.fmt(format_args!("{c}"))?; + ctx.colon()?; + ctx.seq(&s.vs, write_typeof)?; + } + CChar(c) => { + ctx.lit("arc.adt_constant ")?; + ctx.fmt(format_args!("'{c}'"))?; + ctx.colon()?; + ctx.seq(&s.vs, write_typeof)?; + } + CUnit => { + ctx.lit("arc.make_struct()")?; + ctx.colon()?; + ctx.seq(&s.vs, write_typeof)?; + } + }, + SIfElse(v, b0, b1) => { + ctx.lit("arc.if")?; + ctx.paren(|ctx| write_val(ctx, v))?; + ctx.paren(|ctx| { + write_block(ctx, b0)?; + ctx.lit(",")?; + write_block(ctx, b1) + })?; + ctx.colon()?; + ctx.paren(|ctx| write_type(ctx, &v.t))?; + ctx.lit(" -> ")?; + ctx.seq(&s.vs, write_typeof)?; + } + SFunReturn(v) => { + ctx.lit("return ")?; + write_val(ctx, v)?; + ctx.colon()?; + write_type(ctx, &v.t)?; + } + SBlockResult(v) => { + ctx.quote(|ctx| ctx.lit("arc.block.result"))?; + ctx.paren(|ctx| write_val(ctx, v))?; + ctx.colon()?; + ctx.paren(|ctx| write_type(ctx, &v.t))?; + ctx.lit(" -> ")?; + ctx.seq(&s.vs, write_typeof)?; + } + SWhile(vs0, vs1, b0, b1) => { + ctx.lit("scf.while")?; + ctx.paren(|ctx| { + ctx.seq(vs0.into_iter().zip(vs1), |ctx, (v0, v1)| { + write_val(ctx, v0)?; + ctx.lit(" = ")?; + write_val(ctx, v1) + }) + })?; + ctx.colon()?; + ctx.paren(|ctx| ctx.seq(vs0, write_typeof))?; + ctx.lit(" -> ")?; + ctx.paren(|ctx| ctx.seq(vs1, write_typeof))?; + ctx.brace(|ctx| { + write_block(ctx, b0)?; + ctx.lit(",")?; + write_block(ctx, b1) + })?; + ctx.lit(" do ")?; + ctx.brace(|ctx| { + ctx.lit("bb0^")?; + ctx.paren(|ctx| ctx.seq(vs0, write_val))?; + ctx.indent(); + for s in &b1.ss { + ctx.newline()?; + write_stmt(ctx, s)?; + } + ctx.dedent(); + ctx.newline() + })?; + } + SError => unreachable!(), + } + Ok(()) +} + +pub fn write_block(ctx: &mut Context, b: &Block) -> Result<()> { + ctx.brace(|ctx| { + ctx.indent(); + for s in &b.ss { + ctx.newline()?; + write_stmt(ctx, s)?; + } + ctx.dedent(); + ctx.newline() + }) +} + +pub fn write_type(ctx: &mut Context, t: &Type) -> Result<()> { + match t.kind.as_ref() { + TFun(ts, t) => { + ctx.paren(|ctx| ctx.seq(ts, write_type))?; + ctx.lit(" -> ")?; + write_type(ctx, t)?; + } + TRecord(xts) => { + ctx.lit("!arc.struct")?; + ctx.angle(|ctx| { + ctx.seq(xts, |ctx, (x, t)| { + ctx.lit(x)?; + ctx.lit(": ")?; + write_type(ctx, t) + }) + })?; + } + TNative(x, ts) => { + ctx.lit(x)?; + if !ts.is_empty() { + ctx.angle(|ctx| ctx.seq(ts, write_type))?; + } + } + TEnum(xts) => { + ctx.lit("!arc.enum")?; + ctx.angle(|ctx| { + ctx.seq(xts, |ctx, (x, t)| { + ctx.lit(x)?; + ctx.lit(": ")?; + write_type(ctx, t) + }) + })?; + } + TAdt(x, ts) => { + if ts.is_empty() { + ctx.lit("!arc.adt")?; + ctx.angle(|ctx| ctx.quote(|ctx| ctx.lit(x)))?; + } else { + ctx.lit("!arc.generic_adt")?; + ctx.angle(|ctx| { + ctx.quote(|ctx| ctx.lit(x))?; + ctx.lit(", ")?; + ctx.seq(ts, write_type) + })?; + } + } + TError => unreachable!(), + } + Ok(()) +} + +pub fn write_val(ctx: &mut Context, v: &Val) -> Result<()> { + match &v.kind { + VName(x) => { + ctx.lit("%")?; + ctx.lit(&x) + } + VError => unreachable!(), + } +} + +pub fn write_typeof(ctx: &mut Context, v: &Val) -> Result<()> { + write_type(ctx, &v.t) +} + +pub fn write_symbol(ctx: &mut Context, x: &str) -> Result<()> { + ctx.def("@")?; + ctx.def(&x) +} diff --git a/arc-lang/crates/compiler/codegen/write-rust/Cargo.toml b/arc-lang/crates/compiler/codegen/write-rust/Cargo.toml new file mode 100644 index 000000000..b60f64304 --- /dev/null +++ b/arc-lang/crates/compiler/codegen/write-rust/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "write-rust" +version.workspace = true +edition.workspace = true + +[dependencies] +builtins.workspace = true +rust.workspace = true +utils.workspace = true +im-rc.workspace = true +time.workspace = true +codegen.workspace = true +value.workspace = true diff --git a/arc-lang/crates/compiler/codegen/write-rust/src/context.rs b/arc-lang/crates/compiler/codegen/write-rust/src/context.rs new file mode 100644 index 000000000..f88521248 --- /dev/null +++ b/arc-lang/crates/compiler/codegen/write-rust/src/context.rs @@ -0,0 +1,112 @@ +// use im_rc::Vector; +// +// pub struct Context { +// pub ir: mir::IR, +// functions: Vec, +// structs: Vec, +// enums: Vec, +// +// function_ids: OrdMap<(mir::Name, Vector), syn::Ident>, +// struct_ids: OrdMap, +// enum_ids: OrdMap<(mir::Name, Vector), syn::Ident>, +// } +// +// pub fn id(x: impl AsRef) -> syn::Ident { +// syn::Ident::new(x.as_ref(), proc_macro2::Span::call_site()) +// } +// +// impl Context { +// pub fn new(ir: mir::IR) -> Self { +// Context { +// ir, +// functions: Vec::new(), +// structs: Vec::new(), +// enums: Vec::new(), +// function_ids: OrdMap::new(), +// struct_ids: OrdMap::new(), +// enum_ids: OrdMap::new(), +// } +// } +// +// pub fn add_function(mut self, item: syn::ItemFn) -> Self { +// self.functions.push(item); +// self +// } +// +// pub fn add_struct(mut self, item: syn::ItemStruct) -> Self { +// self.structs.push(item); +// self +// } +// +// pub fn add_enum(mut self, item: syn::ItemEnum) -> Self { +// self.enums.push(item); +// self +// } +// +// pub fn has_function(&self, x: &mir::Name, ts: &Vector) -> bool { +// self.function_ids.contains_key(&(x.clone(), ts.clone())) +// } +// +// pub fn has_struct(&self, id: &mir::Type) -> bool { +// self.struct_ids.contains_key(id) +// } +// +// pub fn has_enum(&self, id: &(mir::Name, Vector)) -> bool { +// self.enum_ids.contains_key(id) +// } +// +// pub fn get_function_id(mut self, x: mir::Name, ts: Vector) -> (Self, Ident) { +// todo!() +// //let len = self.function_ids.len(); +// //let x = self +// // .function_ids +// // .entry((x.clone(), ts)) +// // .or_insert_with(|| id(format!("{x}{len}", x = x.last().unwrap()))) +// // .clone(); +// //(self, x) +// } +// +// pub fn get_struct_id(mut self, t: mir::Type) -> (Self, Ident) { +// let len = self.struct_ids.len(); +// let x = self +// .struct_ids +// .entry(t) +// .or_insert_with(|| syn::Ident::new(&format!("S{len}"), Span::call_site())) +// .clone(); +// (self, x) +// } +// +// pub fn get_enum_id(mut self, x: mir::Name, ts: Vector) -> (Self, Ident) { +// let len = self.enum_ids.len(); +// let x = self +// .enum_ids +// .entry((x.clone(), ts)) +// .or_insert_with(|| syn::Ident::new(&format!("E{len}"), Span::call_site())) +// .clone(); +// (self, x) +// } +// +// pub fn get_func(&self, x: &mir::Name, ts: &Vector) -> mir::ItemFunc { +// self.ir +// .functions +// .get(&(x.clone(), ts.clone())) +// .unwrap() +// .clone() +// } +// +// pub fn get_type(&self, x: &mir::Name, ts: &Vector) -> mir::ItemType { +// self.ir +// .types +// .get(&(x.clone(), ts.clone())) +// .unwrap() +// .clone() +// } +// +// pub fn consume(self) -> Rust { +// Rust { +// functions: self.functions, +// structs: self.structs, +// enums: self.enums, +// } +// } +// } diff --git a/arc-lang/crates/compiler/codegen/write-rust/src/lib.rs b/arc-lang/crates/compiler/codegen/write-rust/src/lib.rs new file mode 100644 index 000000000..6d69f1659 --- /dev/null +++ b/arc-lang/crates/compiler/codegen/write-rust/src/lib.rs @@ -0,0 +1,574 @@ +#![allow(unused)] + +use builtins::aggregator::Aggregator; +use builtins::discretizer::Discretizer; +use builtins::duration::Duration; +use builtins::encoding::Encoding; +use builtins::path::Path; +use builtins::reader::Reader; +use builtins::socket::SocketAddr; +use builtins::time_source::TimeSource; +use builtins::writer::Writer; +use codegen::*; +use std::io::Result; +use std::io::Write; +use value::dynamic::Dataflow; +use value::dynamic::Function; +use value::dynamic::Sink; +use value::dynamic::Stream; +use value::dynamic::StreamKind::DApply; +use value::dynamic::StreamKind::DFilter; +use value::dynamic::StreamKind::DFlatMap; +use value::dynamic::StreamKind::DFlatten; +use value::dynamic::StreamKind::DKeyby; +use value::dynamic::StreamKind::DMap; +use value::dynamic::StreamKind::DMerge; +use value::dynamic::StreamKind::DScan; +use value::dynamic::StreamKind::DSource; +use value::dynamic::StreamKind::DUnkey; +use value::dynamic::StreamKind::DWindow; + +use rust::*; + +use im_rc::Vector; + +pub fn write(ctx: &mut Context, ss: &Vector) -> Result<()> { + ctx.keyword("use")?; + ctx.space()?; + ctx.lit("runtime::prelude::*;")?; + ctx.newline()?; + ctx.each(ss.iter(), write_item) +} + +pub fn write_dataflow(ctx: &mut Context, d: &Dataflow) -> Result<()> { + let cwd = std::env::current_dir()?; + ctx.keyword("fn")?; + ctx.space()?; + ctx.def("main")?; + ctx.paren(|_| Ok(()))?; + ctx.space()?; + ctx.block(|ctx| { + ctx.fmt(format_args!("std::env::set_current_dir({cwd:?}).unwrap();"))?; + ctx.newline()?; + ctx.lit(r#"let db = Database::new(concat!(env!("CARGO_MANIFEST_DIR"), "/db"));"#)?; + ctx.newline()?; + ctx.lit(r#"Runner::new(concat!(env!("CARGO_MANIFEST_DIR"), "/log")).spawn(instance(db.clone()));"#) + })?; + ctx.newline()?; + ctx.keyword("async")?; + ctx.space()?; + ctx.keyword("fn")?; + ctx.space()?; + ctx.def("instance")?; + ctx.paren(|ctx| ctx.lit("_db: Database"))?; + ctx.space()?; + ctx.block(|ctx| { + d.streams.iter().try_for_each(|n| write_stream(ctx, n))?; + d.sinks.iter().try_for_each(|n| write_sink(ctx, n))?; + Ok(()) + })?; + Ok(()) +} + +pub fn write_sink(ctx: &mut Context, s: &Sink) -> Result<()> { + let (x, w, e) = s.0.as_ref(); + ctx.def("Stream::sink")?; + ctx.paren(|ctx| { + ctx.val(&x)?; + ctx.comma()?; + write_writer(ctx, w)?; + ctx.comma()?; + write_encoding(ctx, e)?; + Ok(()) + }) +} + +pub fn write_stream(ctx: &mut Context, s: &Stream) -> Result<()> { + ctx.newline()?; + ctx.keyword("let")?; + ctx.space()?; + ctx.val(&s.name)?; + ctx.lit(" = ")?; + match s.kind.as_ref() { + DSource(a0, a1, a2) => { + ctx.def("Stream::source")?; + ctx.paren(|ctx| { + write_reader(ctx, a0)?; + ctx.comma()?; + write_encoding(ctx, a1)?; + ctx.comma()?; + write_time_source(ctx, a2) + })?; + } + DMap(a0, a1) => { + ctx.def("Stream::map")?; + ctx.paren(|ctx| { + ctx.val(&a0)?; + ctx.comma()?; + write_function(ctx, a1) + })?; + } + DFilter(a0, a1) => { + ctx.def("Stream::filter")?; + ctx.paren(|ctx| { + ctx.val(&a0)?; + ctx.comma()?; + write_function(ctx, a1) + })?; + } + DApply(a0, a1) => { + ctx.def("Stream::apply")?; + ctx.paren(|ctx| { + ctx.val(&a0)?; + ctx.comma()?; + write_function(ctx, a1) + })?; + } + DMerge(a0) => { + ctx.def("Stream::merge")?; + ctx.paren(|ctx| ctx.seq(a0, |ctx, s| ctx.val(&s)))?; + } + DKeyby(a0, a1) => { + ctx.def("Stream::keyby")?; + ctx.paren(|ctx| { + ctx.val(&a0)?; + ctx.comma()?; + write_function(ctx, a1) + })?; + } + DWindow(a0, a1, a2) => { + ctx.def("Stream::window")?; + ctx.paren(|ctx| { + ctx.val(&a0)?; + ctx.comma()?; + write_discretizer(ctx, a1)?; + ctx.comma()?; + write_aggregator(ctx, a2) + })?; + } + DFlatten(a0) => { + ctx.def("Stream::flatten")?; + ctx.paren(|ctx| ctx.val(&a0))?; + } + DFlatMap(a0, a1) => { + ctx.def("Stream::flat_map")?; + ctx.paren(|ctx| { + ctx.val(&a0)?; + ctx.comma()?; + write_function(ctx, a1) + })?; + } + DScan(a0, a1) => { + ctx.def("Stream::scan")?; + ctx.paren(|ctx| { + ctx.val(&a0)?; + ctx.comma()?; + write_function(ctx, a1) + })?; + } + DUnkey(a0) => { + ctx.def("Stream::unkey")?; + ctx.paren(|ctx| ctx.val(&a0))?; + } + DFlatten(x) => { + ctx.def("Stream::flatten")?; + ctx.paren(|ctx| ctx.val(&x))?; + } + } + ctx.lit(";")?; + ctx.newline()?; + Ok(()) +} + +fn write_aggregator( + ctx: &mut Context, + a: &Aggregator, +) -> Result<()> { + match a { + Aggregator::Monoid { + lift, + combine, + identity, + lower, + } => { + ctx.def("monoid")?; + ctx.paren(|ctx| { + write_function(ctx, lift)?; + ctx.comma()?; + write_function(ctx, combine)?; + ctx.comma()?; + write_function(ctx, identity)?; + ctx.comma()?; + write_function(ctx, lower) + }) + } + } +} + +fn write_discretizer(ctx: &mut Context, d: &Discretizer) -> Result<()> { + match d { + Discretizer::Tumbling { length } => { + ctx.def("Discretizer::tumbling")?; + ctx.paren(|ctx| ctx.dbg(length)) + } + Discretizer::Sliding { length, step } => { + ctx.def("Discretizer::sliding")?; + ctx.paren(|ctx| { + ctx.dbg(length)?; + ctx.comma()?; + write_duration(ctx, step) + }) + } + Discretizer::Session { gap } => { + ctx.def("Discretizer::session")?; + ctx.paren(|ctx| write_duration(ctx, gap)) + } + Discretizer::Counting { length } => { + ctx.def("Discretizer::counting")?; + ctx.paren(|ctx| ctx.lit(length)) + } + Discretizer::Moving { length, step } => { + ctx.def("Discretizer::moving")?; + ctx.paren(|ctx| { + ctx.lit(length)?; + ctx.comma()?; + ctx.lit(step) + }) + } + } +} + +fn write_duration(ctx: &mut Context, d: &Duration) -> Result<()> { + ctx.lit("Duration::from_seconds")?; + ctx.paren(|ctx| ctx.lit(d.0.whole_seconds())) +} + +fn write_function(ctx: &mut Context, f: &Function) -> Result<()> { + ctx.def(&f.0) +} + +fn write_time_source(ctx: &mut Context, e: &TimeSource) -> Result<()> { + match e { + TimeSource::Ingestion { watermark_interval } => { + ctx.def("TimeSource::ingestion")?; + ctx.paren(|ctx| write_duration(ctx, watermark_interval)) + } + TimeSource::Event { + extractor, + watermark_interval, + slack, + } => { + ctx.def("TimeSource::event")?; + ctx.paren(|ctx| { + write_function(ctx, extractor)?; + ctx.comma()?; + write_duration(ctx, watermark_interval)?; + ctx.comma()?; + write_duration(ctx, slack) + }) + } + } +} + +pub fn write_reader(ctx: &mut Context, r: &Reader) -> Result<()> { + match r { + Reader::Stdin => { + ctx.def("Reader::stdin")?; + ctx.paren(|_| Ok(()))?; + } + Reader::File { path, watch } => { + ctx.def("Reader::file")?; + ctx.paren(|ctx| { + write_path(ctx, path)?; + ctx.comma()?; + ctx.dbg(watch) + })?; + } + Reader::Http { url } => { + ctx.def("Reader::http")?; + ctx.paren(|ctx| ctx.dbg(url))?; + } + Reader::Tcp { addr } => { + ctx.def("Reader::tcp")?; + ctx.paren(|ctx| write_socket_addr(ctx, addr))?; + } + Reader::Kafka { addr, topic } => { + ctx.def("Reader::kafka")?; + ctx.paren(|ctx| { + ctx.dbg(addr)?; + ctx.comma()?; + ctx.dbg(topic) + })?; + } + } + Ok(()) +} + +pub fn write_writer(ctx: &mut Context, w: &Writer) -> Result<()> { + match w { + Writer::Stdout => { + ctx.def("Writer::stdout")?; + ctx.paren(|_| Ok(()))?; + } + Writer::File { path } => { + ctx.def("Writer::file")?; + ctx.paren(|ctx| write_path(ctx, path))?; + } + Writer::Http { url } => { + ctx.def("Writer::http")?; + ctx.paren(|ctx| ctx.dbg(url))?; + } + Writer::Tcp { addr } => { + ctx.def("Writer::tcp")?; + ctx.paren(|ctx| write_socket_addr(ctx, addr))?; + } + Writer::Kafka { addr, topic } => { + ctx.def("Writer::kafka")?; + ctx.paren(|ctx| { + ctx.dbg(addr)?; + ctx.comma()?; + ctx.lit(topic) + })?; + } + } + Ok(()) +} + +pub fn write_path(ctx: &mut Context, p: &Path) -> Result<()> { + ctx.def("Path::new")?; + ctx.paren(|ctx| ctx.dbg(&p.0)) +} + +pub fn write_socket_addr(ctx: &mut Context, s: &SocketAddr) -> Result<()> { + ctx.def("SocketAddr::new")?; + ctx.paren(|ctx| { + ctx.quote(|ctx| ctx.dbg(s.0.ip()))?; + ctx.comma()?; + ctx.dbg(s.0.port()) + }) +} + +pub fn write_encoding(ctx: &mut Context, e: &Encoding) -> Result<()> { + match e { + Encoding::Json => { + ctx.def("Encoding::json")?; + ctx.paren(|_| Ok(()))?; + } + Encoding::Csv { sep } => { + ctx.def("Encoding::csv")?; + ctx.paren(|ctx| ctx.dbg(sep))?; + } + } + Ok(()) +} + +pub fn write_item(ctx: &mut Context, i: &Item) -> Result<()> { + match &i.kind { + IDef(m, x, vs, t, b) => { + ctx.keyword("fn")?; + ctx.space()?; + ctx.lit(x)?; + write_params(ctx, vs)?; + ctx.lit(" -> ")?; + write_type(ctx, t)?; + ctx.space()?; + write_block(ctx, b)?; + ctx.newline()?; + } + IEnum(m, x, xts) => { + ctx.keyword("enum")?; + ctx.space()?; + ctx.lit(x)?; + ctx.space()?; + ctx.brace(|ctx| { + ctx.indented_comma_seq(xts, |ctx, (x, t)| { + ctx.lit(x)?; + write_type(ctx, t) + }) + })?; + ctx.newline()?; + } + IStruct(x, xts) => { + ctx.lit("#[data]")?; + ctx.keyword("struct")?; + ctx.space()?; + ctx.lit(x)?; + ctx.space()?; + ctx.brace(|ctx| { + ctx.indented_comma_seq(xts, |ctx, (x, t)| { + ctx.lit(x)?; + ctx.lit(":")?; + write_type(ctx, t) + }) + })?; + ctx.newline()?; + } + IError => unreachable!(), + } + Ok(()) +} + +pub fn write_params(ctx: &mut Context, ps: &Vector) -> Result<()> { + ctx.paren(|ctx| { + ctx.seq(ps, |ctx, v| { + write_val(ctx, v)?; + ctx.lit(":")?; + ctx.space()?; + write_type(ctx, &v.t) + }) + })?; + Ok(()) +} + +pub fn write_stmt(ctx: &mut Context, s: &Stmt) -> Result<()> { + if !s.vs.is_empty() { + ctx.keyword("let")?; + ctx.space()?; + ctx.seq(&s.vs, write_val)?; + ctx.lit(" = ")?; + } + match &s.kind { + SStruct(x, xvs) => { + ctx.lit(x)?; + ctx.space()?; + ctx.brace(|ctx| { + ctx.seq(xvs, |ctx, (x, v)| { + ctx.lit(x)?; + ctx.lit(":")?; + write_val(ctx, &v) + }) + })?; + } + SStructAccess(v, x) => { + write_val(ctx, v)?; + ctx.lit(".")?; + ctx.lit(x)?; + } + SWhileBreak(vs) => { + ctx.keyword("break")?; + } + SWhileContinue(vs) => { + ctx.keyword("continue")?; + } + SWhileYield(vs) => { + todo!() + } + SFunCallDirect(x, vs) => { + ctx.def(x)?; + ctx.paren(|ctx| ctx.seq(vs, write_val))?; + } + SFunCallIndirect(v, vs) => { + write_val(ctx, v)?; + ctx.paren(|ctx| ctx.seq(vs, write_val))?; + } + SVariant(x, v) => { + ctx.lit(x)?; + ctx.paren(|ctx| write_val(ctx, v))?; + } + SVariantCheck(x, v) => { + ctx.mac("matches!")?; + ctx.paren(|ctx| { + write_val(ctx, v)?; + ctx.comma()?; + ctx.lit(x)?; + ctx.paren(|ctx| ctx.lit("_")) + })?; + } + SVariantAccess(x, v) => { + ctx.mac("unwrap!")?; + ctx.paren(|ctx| { + write_val(ctx, v)?; + ctx.comma()?; + ctx.lit(x) + })?; + } + SFun(x) => { + ctx.def(x)?; + } + SConst(c) => match c { + CInt(c) => { + ctx.lit(c)?; + } + CFloat(c) => { + ctx.lit(c)?; + } + CString(c) => { + ctx.text(&format!(r#""{c}""#))?; + } + CBool(c) => { + ctx.fmt(format_args!("{c}"))?; + } + CChar(c) => { + ctx.text(&format!("'{c}'"))?; + } + CUnit => { + ctx.lit("()")?; + } + }, + SIfElse(v, b0, b1) => { + ctx.keyword("if")?; + ctx.space()?; + write_val(ctx, v)?; + ctx.space()?; + write_block(ctx, b0)?; + ctx.space()?; + ctx.keyword("else")?; + ctx.space()?; + write_block(ctx, b1)?; + } + SFunReturn(v) => { + ctx.keyword("return")?; + ctx.space()?; + write_val(ctx, v)?; + } + SBlockResult(v) => { + write_val(ctx, v)?; + } + SWhile(vs0, vs1, b0, b1) => { + todo!() + } + SError => unreachable!(), + } + ctx.lit(";")?; + Ok(()) +} + +pub fn write_block(ctx: &mut Context, b: &Block) -> Result<()> { + ctx.block(|ctx| { + for s in &b.ss { + ctx.newline()?; + write_stmt(ctx, s)?; + } + Ok(()) + }) +} + +pub fn write_type(ctx: &mut Context, t: &Type) -> Result<()> { + match t.kind.as_ref() { + TFun(ts, t) => { + ctx.keyword("fn")?; + ctx.paren(|ctx| ctx.seq(ts, write_type))?; + ctx.lit(" -> ")?; + write_type(ctx, t)?; + } + TNominal(x, ts) => { + ctx.ty(x)?; + if !ts.is_empty() { + ctx.angle(|ctx| ctx.seq(ts, write_type))?; + } + } + TError => unreachable!(), + } + Ok(()) +} + +pub fn write_val(ctx: &mut Context, v: &Val) -> Result<()> { + match &v.kind { + VName(x) => ctx.lit(&x), + VError => unreachable!(), + } +} + +pub fn write_typeof(ctx: &mut Context, v: &Val) -> Result<()> { + write_type(ctx, &v.t) +} diff --git a/arc-lang/crates/compiler/codegen/write-value/Cargo.toml b/arc-lang/crates/compiler/codegen/write-value/Cargo.toml new file mode 100644 index 000000000..badeb4fef --- /dev/null +++ b/arc-lang/crates/compiler/codegen/write-value/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "write-value" +version.workspace = true +edition.workspace = true + +[dependencies] +hir.workspace = true +value.workspace = true +builtins.workspace = true +codegen.workspace = true +write-hir.workspace = true +colors.workspace = true diff --git a/arc-lang/crates/compiler/codegen/write-value/src/lib.rs b/arc-lang/crates/compiler/codegen/write-value/src/lib.rs new file mode 100644 index 000000000..1b9d575c8 --- /dev/null +++ b/arc-lang/crates/compiler/codegen/write-value/src/lib.rs @@ -0,0 +1,470 @@ +#![allow(unused)] +use builtins::aggregator::Aggregator; +use builtins::discretizer::Discretizer; +use builtins::encoding::Encoding; +use builtins::model::Model; +use builtins::path::Path; +use builtins::reader::Reader; +use builtins::time_source::TimeSource; +use builtins::writer::Writer; +use codegen::Context; +use colors::BUILTIN_COLOR; +use colors::NUMERIC_COLOR; +use colors::STRING_COLOR; +use std::io::Result; +use std::io::Write; +use value::dynamic::Dataflow; +use value::dynamic::Function; +use value::dynamic::Sink; +use value::dynamic::Stream; +use value::dynamic::StreamKind; + +use hir::*; +use value::*; + +pub fn write_value_type(ctx: &mut Context, (v, t): &(Value, Type)) -> Result<()> { + write_value(ctx, v)?; + ctx.colon()?; + write_hir::write_type(ctx, t) +} + +pub fn write_value(ctx: &mut Context, v: &Value) -> Result<()> { + match v.kind.as_ref() { + VBool(v) => { + ctx.bold_colored(&format!("{}", v), BUILTIN_COLOR)?; + } + VString(v) => { + ctx.colored("\"", STRING_COLOR)?; + ctx.colored(&v.as_ref(), STRING_COLOR)?; + ctx.colored("\"", STRING_COLOR)?; + } + VDuration(v) => { + ctx.fmt(format_args!("{:?}", v.0))?; + } + VI32(v) => { + ctx.colored(&format!("{}", &v), NUMERIC_COLOR)?; + } + VF32(v) => { + ctx.colored(&format!("{}", &v), NUMERIC_COLOR)?; + } + VUnit(()) => { + ctx.lit("()")?; + } + VChar(v) => { + ctx.colored(&format!("'{}'", v), STRING_COLOR)?; + } + VFunction(v) => { + write_function(ctx, v)?; + } + VRecord(v) => { + ctx.brace(|ctx| { + ctx.seq(&v.0, |ctx, (x, v)| { + ctx.lit(&x)?; + ctx.colon()?; + write_value(ctx, v) + }) + })?; + } + VVariant(v) => { + write_value(ctx, &v.v)?; + ctx.lit(" as ")?; + ctx.lit(&v.x)?; + } + VTime(v) => { + ctx.fmt(format_args!("{:?}", v.0))?; + } + VStream(v) => { + ctx.lit("Stream(..)")?; + } + VDiscretizer(v) => { + write_discretizer(ctx, v)?; + } + VAggregator(v) => { + write_aggregator(ctx, v)?; + } + VReader(v) => { + write_reader(ctx, v)?; + } + VWriter(v) => { + write_writer(ctx, v)?; + } + VEncoding(v) => { + write_encoding(ctx, v)?; + } + VTimeSource(v) => { + write_time_source(ctx, v)?; + } + VModel(v) => { + write_model(ctx, v)?; + } + VArray(v) => { + ctx.brack(|ctx| ctx.indented_seq(&v.0, write_value))?; + } + VTuple(v) => { + ctx.paren(|ctx| ctx.indented_seq(&v.0, write_value))?; + } + VResult(v) => { + write_result(ctx, v)?; + } + VPath(v) => { + write_path(ctx, v)?; + } + VFile(v) => { + ctx.fmt(format_args!("{:?}", v.0.borrow().metadata().unwrap()))?; + } + VBlob(v) => { + ctx.fmt(format_args!("{:?}", v.0))?; + } + VDict(v) => { + ctx.brace(|ctx| { + ctx.indented_seq(v.0.iter(), |ctx, (k, v)| { + write_value(ctx, k)?; + ctx.colon()?; + write_value(ctx, v) + }) + })?; + } + VF64(v) => { + ctx.colored(&format!("{}", &v), NUMERIC_COLOR)?; + } + VI128(v) => { + ctx.colored(&format!("{}", &v), NUMERIC_COLOR)?; + } + VI16(v) => { + ctx.colored(&format!("{}", &v), NUMERIC_COLOR)?; + } + VI64(v) => { + ctx.colored(&format!("{}", &v), NUMERIC_COLOR)?; + } + VI8(v) => { + ctx.colored(&format!("{}", &v), NUMERIC_COLOR)?; + } + VMatrix(v) => { + ctx.lit(&format!("{:?}", v))?; + } + VOption(v) => todo!(), + VSet(v) => todo!(), + VSocketAddr(v) => todo!(), + VDataflow(v) => { + ctx.lit("Dataflow(...)")?; + } + VU128(v) => todo!(), + VU16(v) => todo!(), + VU32(v) => todo!(), + VU64(v) => todo!(), + VU8(v) => todo!(), + VUrl(v) => todo!(), + VUsize(v) => todo!(), + VVec(v) => todo!(), + VInstance(v) => { + ctx.lit("Instance(...)")?; + } + } + Ok(()) +} + +pub fn write_writer(ctx: &mut Context, d: &Writer) -> Result<()> { + match d { + Writer::Stdout => { + ctx.def("stdout")?; + ctx.paren(|_| Ok(()))?; + } + Writer::File { path } => { + ctx.def("file")?; + ctx.paren(|ctx| ctx.text(&format!("{:?}", path.0.display())))?; + } + Writer::Http { url } => { + ctx.def("http")?; + ctx.paren(|ctx| ctx.text(&format!("{}", url.0)))?; + } + Writer::Tcp { addr: ip } => { + ctx.def("tcp")?; + ctx.paren(|ctx| ctx.text(&format!("{}", ip.0)))?; + } + Writer::Kafka { + addr: broker, + topic, + } => { + ctx.def("kafka")?; + ctx.paren(|ctx| { + ctx.text(&format!("{}", broker.0))?; + ctx.comma()?; + ctx.text(&format!("{}", topic.as_ref())) + })?; + } + } + Ok(()) +} + +pub fn write_reader(ctx: &mut Context, d: &Reader) -> Result<()> { + match d { + Reader::Stdin => { + ctx.def("stdin")?; + ctx.paren(|_| Ok(()))?; + } + Reader::File { path, watch } => { + ctx.def("file")?; + ctx.paren(|ctx| ctx.text(&format!("{:?}", path.0.display())))?; + } + Reader::Http { url } => { + ctx.def("http")?; + ctx.paren(|ctx| ctx.text(&format!("{}", url.0)))?; + } + Reader::Tcp { addr: ip } => { + ctx.def("tcp")?; + ctx.paren(|ctx| ctx.text(&format!("{}", ip.0)))?; + } + Reader::Kafka { + addr: broker, + topic, + } => { + ctx.def("kafka")?; + ctx.paren(|ctx| { + ctx.text(&format!("{}", broker.0))?; + ctx.comma()?; + ctx.text(&format!("{}", topic.as_ref())) + })?; + } + } + Ok(()) +} + +pub fn write_dataflow(ctx: &mut Context, d: &Dataflow) -> Result<()> { + ctx.lit("Dataflow")?; + ctx.brace(|ctx| { + ctx.seq(&d.streams, write_stream)?; + ctx.seq(&d.sinks, write_sink) + }) +} + +pub fn write_sink(ctx: &mut Context, s: &Sink) -> Result<()> { + let (x, w, e) = s.0.as_ref(); + ctx.def("sink")?; + ctx.paren(|ctx| { + ctx.val(&x)?; + ctx.comma()?; + write_writer(ctx, w)?; + ctx.comma()?; + write_encoding(ctx, e) + }) +} + +pub fn write_stream(ctx: &mut Context, s: &Stream) -> Result<()> { + fn write_stream(ctx: &mut Context, s: &Stream) -> Result<()> { + match s.kind.as_ref() { + StreamKind::DSource(r, e, f) => { + ctx.def("source")?; + ctx.paren(|ctx| { + write_reader(ctx, r)?; + ctx.comma()?; + write_encoding(ctx, e)?; + ctx.comma()?; + write_time_source(ctx, f) + })?; + } + StreamKind::DMap(x, f) => { + ctx.def("map")?; + ctx.paren(|ctx| { + ctx.val(&x)?; + ctx.comma()?; + write_function(ctx, f) + })?; + } + StreamKind::DFilter(x, f) => { + ctx.def("filter")?; + ctx.paren(|ctx| { + ctx.val(&x)?; + ctx.comma()?; + write_function(ctx, f) + })?; + } + StreamKind::DFlatten(x) => { + ctx.def("flatten")?; + ctx.paren(|ctx| ctx.val(&x))?; + } + StreamKind::DFlatMap(x, f) => { + ctx.def("flat_map")?; + ctx.paren(|ctx| { + ctx.val(&x)?; + ctx.comma()?; + write_function(ctx, f) + })?; + } + StreamKind::DScan(x, f) => { + ctx.def("scan")?; + ctx.paren(|ctx| { + ctx.val(&x)?; + ctx.comma()?; + write_function(ctx, f) + })?; + } + StreamKind::DKeyby(x, f) => { + ctx.def("keyby")?; + ctx.paren(|ctx| { + ctx.val(&x)?; + ctx.comma()?; + write_function(ctx, f) + })?; + } + StreamKind::DUnkey(x) => { + ctx.def("unkey")?; + ctx.paren(|ctx| ctx.val(&x))?; + } + StreamKind::DApply(x, f) => { + ctx.def("apply")?; + ctx.paren(|ctx| { + ctx.val(&x)?; + ctx.comma()?; + write_function(ctx, f) + })?; + } + StreamKind::DWindow(x, d, a) => { + ctx.def("window")?; + ctx.paren(|ctx| { + ctx.val(&x)?; + ctx.comma()?; + write_discretizer(ctx, d)?; + ctx.comma()?; + write_aggregator(ctx, a) + })?; + } + StreamKind::DMerge(xs) => { + ctx.def("merge")?; + ctx.paren(|ctx| ctx.seq(xs, |ctx, x| ctx.val(&x)))?; + } + } + Ok(()) + } + ctx.keyword("val ")?; + ctx.val(&s.name)?; + ctx.lit(" = ")?; + write_stream(ctx, s)?; + ctx.lit(";") +} + +fn write_function(ctx: &mut Context, f: &Function) -> Result<()> { + ctx.def(&f.0) +} + +fn write_encoding(ctx: &mut Context, e: &Encoding) -> Result<()> { + match e { + Encoding::Csv { sep } => { + ctx.def("csv")?; + ctx.paren(|ctx| ctx.fmt(format_args!("{sep}"))) + } + Encoding::Json => { + ctx.def("json")?; + ctx.paren(|_| Ok(())) + } + } +} + +fn write_time_source(ctx: &mut Context, e: &TimeSource) -> Result<()> { + match e { + TimeSource::Ingestion { watermark_interval } => { + ctx.def("ingestion")?; + ctx.paren(|ctx| ctx.numeric(&format!("{:?}", watermark_interval))) + } + TimeSource::Event { + extractor, + watermark_interval, + slack, + } => { + ctx.def("event")?; + ctx.paren(|ctx| { + write_function(ctx, extractor)?; + ctx.comma()?; + ctx.numeric(&format!("{:?}", watermark_interval))?; + ctx.comma()?; + ctx.numeric(&format!("{:?}", slack)) + }) + } + } +} + +fn write_discretizer(ctx: &mut Context, d: &Discretizer) -> Result<()> { + match d { + Discretizer::Tumbling { length } => { + ctx.def("tumbling")?; + ctx.paren(|ctx| ctx.numeric(&format!("{:?}", length))) + } + Discretizer::Sliding { length, step } => { + ctx.def("sliding")?; + ctx.paren(|ctx| { + ctx.numeric(&format!("{:?}", length))?; + ctx.comma()?; + ctx.numeric(&format!("{:?}", step)) + }) + } + Discretizer::Session { gap } => { + ctx.def("session")?; + ctx.paren(|ctx| ctx.numeric(&format!("{:?}", gap))) + } + Discretizer::Counting { length } => { + ctx.def("counting")?; + ctx.paren(|ctx| ctx.numeric(&format!("{}", length))) + } + Discretizer::Moving { length, step } => { + ctx.def("moving")?; + ctx.paren(|ctx| { + ctx.numeric(&format!("{}", length))?; + ctx.comma()?; + ctx.numeric(&format!("{}", step)) + }) + } + } +} + +fn write_aggregator( + ctx: &mut Context, + a: &Aggregator, +) -> Result<()> { + match a { + Aggregator::Monoid { + lift, + combine, + identity, + lower, + } => { + ctx.def("Aggregator::monoid")?; + ctx.paren(|ctx| { + write_function(ctx, lift)?; + ctx.comma()?; + write_function(ctx, combine)?; + ctx.comma()?; + write_function(ctx, identity)?; + ctx.comma()?; + write_function(ctx, lower) + }) + } // Aggregator::Compose { a0, a1 } => { + // ctx.def("Aggregator::compose")?; + // ctx.paren(|ctx| { + // write_aggregator(ctx, a0)?; + // ctx.comma()?; + // write_aggregator(ctx, a1) + // }) + // } + } +} + +fn write_result(ctx: &mut Context, v: &builtins::result::Result) -> Result<()> { + match &v.0 { + Ok(x) => { + ctx.def("ok")?; + ctx.paren(|ctx| write_value(ctx, x)) + } + Err(x) => { + ctx.def("err")?; + ctx.paren(|ctx| ctx.fmt(format_args!("{x}"))) + } + } +} + +fn write_path(ctx: &mut Context, v: &Path) -> Result<()> { + ctx.def("path")?; + ctx.paren(|ctx| ctx.fmt(format_args!("{:?}", v.0.display()))) +} + +fn write_model(ctx: &mut Context, a: &Model) -> Result<()> { + todo!() +} diff --git a/arc-lang/crates/compiler/infra/build/Cargo.toml b/arc-lang/crates/compiler/infra/build/Cargo.toml new file mode 100644 index 000000000..3dc015178 --- /dev/null +++ b/arc-lang/crates/compiler/infra/build/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "build" +version.workspace = true +edition.workspace = true + +[dependencies] +indoc.workspace = true +names.workspace = true +time.workspace = true +diagnostics.workspace = true +anyhow.workspace = true +tracing.workspace = true +directories.workspace = true diff --git a/arc-lang/crates/compiler/infra/build/src/context.rs b/arc-lang/crates/compiler/infra/build/src/context.rs new file mode 100644 index 000000000..4629115da --- /dev/null +++ b/arc-lang/crates/compiler/infra/build/src/context.rs @@ -0,0 +1,119 @@ +use std::path::PathBuf; + +use anyhow::Result; +use diagnostics::Diagnostics; +use names::Generator; + +use crate::Package; + +const RUNTIME: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/../../../runtime"); + +pub struct Context { + pub(crate) name_generator: Generator<'static>, + pub(crate) workspace: PathBuf, + pub(crate) crates: PathBuf, + pub(crate) target: PathBuf, + pub diagnostics: Diagnostics, + pub pids: Vec, +} + +impl std::fmt::Debug for Context { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("Context") + .field("workspace", &self.workspace) + .field("crates", &self.crates) + .field("diagnostics", &self.diagnostics) + .finish() + } +} + +impl Default for Context { + fn default() -> Self { + let dir = directories::ProjectDirs::from("org", "cda-group", "arc-lang") + .expect("Unable to find project directories"); + let cache = dir.cache_dir(); + tracing::info!("Cache directory: {}", cache.display()); + let workspace = cache.join("workspace"); + let workspace_toml = workspace.join("Cargo.toml"); + let crates = workspace.join("crates"); + let target = workspace.join("target"); + std::fs::create_dir_all(&crates).expect("Failed to create crates directory"); + std::fs::write( + &workspace_toml, + indoc::formatdoc!( + r#"[workspace] + members = [ "crates/*" ] + resolver = "2" + + [workspace.package] + version = "0.0.0" + edition = "2021" + + [workspace.dependencies] + runtime = {{ path = "{RUNTIME}" }}"#, + ), + ) + .expect("Unable to write file"); + Self { + name_generator: Generator::new(names::ADJECTIVES, names::NOUNS, names::Name::Plain), + workspace, + crates, + target, + diagnostics: Diagnostics::default(), + pids: Vec::new(), + } + } +} + +impl Context { + pub fn new() -> Self { + Self::default() + } + + pub fn clear_caches(&mut self) { + std::fs::remove_dir_all(&self.crates).expect("Failed to remove crates directory"); + std::fs::create_dir_all(&self.crates).expect("Failed to create crates directory"); + std::fs::remove_dir_all(&self.target).expect("Failed to remove target directory"); + } + + pub fn show_caches(&self) { + for entry in std::fs::read_dir(&self.crates).expect("Failed to read crates directory") { + println!("{}", entry.expect("Failed to read entry").path().display()); + } + } + + pub fn new_package(&mut self) -> Result { + let base = self.name_generator.next().unwrap(); + let time = std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH)? + .as_secs(); + let workspace = self.workspace.clone(); + let name = format!("{base}-{time}"); + let root = self.crates.join(&name); + let src = root.join("src"); + let main = src.join("main.rs"); + let toml = root.join("Cargo.toml"); + std::fs::create_dir_all(&src)?; + std::fs::write( + &toml, + indoc::formatdoc!( + r#"[package] + name = "{name}" + version.workspace = true + edition.workspace = true + + [dependencies] + runtime.workspace = true"#, + name = name + ), + )?; + Ok(Package { + workspace, + target: self.target.clone(), + root, + main, + toml, + name, + }) + } +} diff --git a/arc-lang/crates/compiler/infra/build/src/lib.rs b/arc-lang/crates/compiler/infra/build/src/lib.rs new file mode 100644 index 000000000..ba706e42a --- /dev/null +++ b/arc-lang/crates/compiler/infra/build/src/lib.rs @@ -0,0 +1,77 @@ +#![allow(unused)] +pub mod context; + +use anyhow::Result; +use std::error::Error; +use std::io::BufRead; +use std::io::BufReader; +use std::path::Path; +use std::path::PathBuf; +use std::process::Command; +use std::process::Stdio; + +use context::Context; + +pub struct Package { + pub workspace: PathBuf, + pub target: PathBuf, + pub name: String, + pub root: PathBuf, + pub main: PathBuf, + pub toml: PathBuf, +} + +pub struct Executable { + pub path: PathBuf, +} + +impl Package { + pub fn build(&self) -> Result { + tracing::info!( + "Building {}", + self.workspace.join("crates").join(&self.name).display() + ); + let mut cmd = Command::new("cargo") + .arg("build") + .arg("--package") + .arg(&self.name) + .arg("--release") + .arg("--color") + .arg("always") + .arg("--target-dir") + .arg(&self.workspace.join("target")) + .current_dir(&self.workspace) + .stderr(Stdio::piped()) + .spawn() + .expect("Failed to execute process"); + for line in BufReader::new(cmd.stderr.as_mut().unwrap()).lines() { + tracing::info!("{}", line?); + } + if cmd.wait()?.success() { + tracing::info!("Succeeded building crate {}", self.name); + let path = self.workspace.join("target/release").join(&self.name); + Ok(Executable { path }) + } else { + tracing::error!("Failed building crate {}", self.name); + return Err(anyhow::anyhow!("Build failed")); + } + } +} + +impl Executable { + pub fn run(&self) -> Result<()> { + let dir = std::env::current_dir()?; + tracing::info!("Running `{}` from `{}`", self.path.display(), dir.display()); + let mut cmd = Command::new(&self.path) + .current_dir(std::env::current_dir()?) + .stderr(Stdio::piped()) + .spawn() + .expect("Failed to execute process"); + for line in BufReader::new(cmd.stderr.as_mut().unwrap()).lines() { + tracing::info!("{}", line?); + } + cmd.wait() + .expect(&format!("Failed to wait on `{}`", self.path.display())); + Ok(()) + } +} diff --git a/arc-lang/crates/compiler/infra/codegen/Cargo.toml b/arc-lang/crates/compiler/infra/codegen/Cargo.toml new file mode 100644 index 000000000..184483da8 --- /dev/null +++ b/arc-lang/crates/compiler/infra/codegen/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "codegen" +version.workspace = true +edition.workspace = true + +[dependencies] +config.workspace = true +colored.workspace = true +colors.workspace = true diff --git a/arc-lang/crates/compiler/infra/codegen/src/lib.rs b/arc-lang/crates/compiler/infra/codegen/src/lib.rs new file mode 100644 index 000000000..f9a870d4a --- /dev/null +++ b/arc-lang/crates/compiler/infra/codegen/src/lib.rs @@ -0,0 +1,447 @@ +use std::fmt; +use std::fmt::Debug; +use std::fmt::Display; +use std::io; +use std::io::LineWriter; +use std::io::Write; +use std::path::PathBuf; + +use colored::Color; +pub use colored::Color::*; + +use colored::Colorize; +use colors::*; +use config::Show; + +pub struct Context { + writer: W, + indent: usize, + depth: usize, + pub opt: Show, +} + +impl Context> { + pub fn string() -> Self { + Self::new(Vec::new()) + } + + pub fn finish(&mut self) -> String { + String::from_utf8(std::mem::take(&mut self.writer)).unwrap() + } +} + +impl Context> { + pub fn file(path: PathBuf) -> Self { + let file = std::fs::File::create(path).unwrap(); + Self::new(LineWriter::new(file)) + } +} + +impl Context> { + pub fn stderr() -> Self { + Self::new(LineWriter::new(io::stderr())) + } +} + +impl Context { + pub fn new(writer: W) -> Self { + Self { + writer, + indent: 0, + depth: 0, + opt: Show::default(), + } + } + + pub fn with_opt(&mut self, opt: Show) -> &mut Self { + self.opt = opt; + self + } + + pub fn colors(&mut self, colors: bool) -> &mut Self { + self.opt.colors = colors; + self + } + + pub fn write( + &mut self, + x: T, + f: impl Fn(&mut Self, T) -> io::Result<()>, + ) -> io::Result<&mut Self> { + f(self, x)?; + self.flush(); + Ok(self) + } + + pub fn writeln( + &mut self, + x: T, + f: impl Fn(&mut Self, T) -> io::Result<()>, + ) -> io::Result<&mut Self> { + f(self, x)?; + self.writer.write(b"\n")?; + self.flush(); + Ok(self) + } + + pub fn typed(&mut self) -> &mut Self { + self.opt.types = true; + self + } + + pub fn debug(&mut self) -> &mut Self { + self.opt.prelude = true; + self + } + + pub fn flush(&mut self) { + self.writer.flush().unwrap(); + } + + pub fn indent(&mut self) { + self.indent += 1; + } + + pub fn dedent(&mut self) { + self.indent -= 1; + } + + pub fn indented(&mut self, f: impl FnOnce(&mut Self) -> io::Result<()>) -> io::Result<()> { + self.indent(); + f(self)?; + self.dedent(); + Ok(()) + } + + pub fn indented_if_toplevel( + &mut self, + f: impl FnOnce(&mut Self) -> io::Result<()>, + ) -> io::Result<()> { + if self.depth == 0 { + self.indent(); + self.newline()?; + self.dedent(); + } + f(self) + } + + pub fn comma(&mut self) -> io::Result<()> { + self.lit(", ") + } + + pub fn colon(&mut self) -> io::Result<()> { + self.lit(": ") + } + + pub fn space(&mut self) -> io::Result<()> { + self.lit(" ") + } + + pub fn keyword(&mut self, s: &str) -> io::Result<()> { + self.bold_colored(s, KEYWORD_COLOR) + } + + pub fn mac(&mut self, s: &str) -> io::Result<()> { + self.bold_colored(s, MACRO_COLOR) + } + + pub fn dbg(&mut self, s: impl Debug) -> io::Result<()> { + self.fmt(format_args!("{:?}", s)) + } + + pub fn lit(&mut self, s: impl Display) -> io::Result<()> { + self.fmt(format_args!("{}", s)) + } + + pub fn def(&mut self, s: &str) -> io::Result<()> { + self.colored(s, DEF_COLOR) + } + + pub fn var(&mut self, s: &str) -> io::Result<()> { + self.colored(s, VAR_COLOR) + } + + pub fn val(&mut self, s: &str) -> io::Result<()> { + self.colored(s, VAL_COLOR) + } + + pub fn builtin(&mut self, s: &str) -> io::Result<()> { + self.colored(s, BUILTIN_COLOR) + } + + pub fn numeric(&mut self, s: &str) -> io::Result<()> { + self.colored(s, NUMERIC_COLOR) + } + + pub fn comment(&mut self, s: &str) -> io::Result<()> { + self.colored(s, COMMENT_COLOR) + } + + pub fn ty(&mut self, s: &str) -> io::Result<()> { + self.colored(s, TYPE_COLOR) + } + + pub fn text(&mut self, s: &str) -> io::Result<()> { + self.colored(s, STRING_COLOR) + } + + pub fn colored(&mut self, s: &str, c: Color) -> io::Result<()> { + if self.opt.colors { + self.fmt(format_args!("{}", s.color(c))) + } else { + self.lit(s) + } + } + + pub fn bold_colored(&mut self, s: &str, c: Color) -> io::Result<()> { + if self.opt.colors { + self.fmt(format_args!("{}", s.color(c).bold())) + } else { + self.lit(s) + } + } + + pub fn display(&mut self, x: impl fmt::Display) -> io::Result<()> { + self.fmt(format_args!("{}", x)) + } + + pub fn fmt(&mut self, args: fmt::Arguments) -> io::Result<()> { + self.writer.write_fmt(args) + } + + pub fn newline(&mut self) -> io::Result<()> { + self.lit("\n")?; + self.tab()?; + Ok(()) + } + + pub fn tab(&mut self) -> io::Result<()> { + for _ in 0..self.indent { + self.lit(" ")?; + } + Ok(()) + } + + pub fn newline_if_toplevel(&mut self) -> io::Result<()> { + if self.depth == 0 { + self.newline()?; + } + Ok(()) + } + + pub fn newline_seq<'a, T>( + &mut self, + v: impl IntoIterator, + f: impl Fn(&mut Self, T) -> io::Result<()>, + ) -> io::Result<()> { + for x in v { + self.newline()?; + f(self, x)?; + } + Ok(()) + } + + pub fn indented_seq<'a, T>( + &mut self, + v: impl IntoIterator, + f: impl Fn(&mut Self, T) -> io::Result<()>, + ) -> io::Result<()> { + self.indent(); + self.newline_seq(v, f)?; + self.dedent(); + self.newline() + } + + pub fn indented_comma_seq<'a, T>( + &mut self, + v: impl IntoIterator, + f: impl Fn(&mut Self, T) -> io::Result<()>, + ) -> io::Result<()> { + self.indent(); + self.newline()?; + let mut iter = v.into_iter(); + if let Some(x) = iter.next() { + f(self, x)?; + } + for x in iter { + self.lit(",")?; + self.newline()?; + f(self, x)?; + } + self.dedent(); + self.newline() + } + + pub fn then( + &mut self, + x: &Option, + f: impl FnOnce(&mut Self, &T) -> io::Result<()>, + ) -> io::Result<()> { + if let Some(x) = x { + f(self, x)?; + } + Ok(()) + } + + pub fn then_or( + &mut self, + x: &Option, + f0: impl FnOnce(&mut Self, &T) -> io::Result<()>, + f1: impl FnOnce(&mut Self) -> io::Result<()>, + ) -> io::Result<()> { + if let Some(x) = x { + f0(self, x)?; + } else { + f1(self)?; + } + Ok(()) + } + + pub fn each_newline( + &mut self, + v: impl IntoIterator, + f: impl Fn(&mut Self, T) -> io::Result<()>, + ) -> io::Result<()> { + let mut iter = v.into_iter(); + if let Some(x) = iter.next() { + f(self, x)?; + while let Some(x) = iter.next() { + self.newline()?; + f(self, x)?; + } + } + Ok(()) + } + + pub fn each( + &mut self, + v: impl IntoIterator, + f: impl Fn(&mut Self, T) -> io::Result<()>, + ) -> io::Result<()> { + for i in v { + f(self, i)?; + } + Ok(()) + } + + pub fn sep( + &mut self, + v: impl IntoIterator, + sep: &str, + f: impl Fn(&mut Self, T) -> io::Result<()>, + ) -> io::Result<()> { + let mut iter = v.into_iter(); + if let Some(x) = iter.next() { + f(self, x)?; + while let Some(x) = iter.next() { + self.lit(sep)?; + self.lit(" ")?; + f(self, x)?; + } + } + Ok(()) + } + + pub fn sep_trailing( + &mut self, + v: impl IntoIterator, + sep: &str, + f: impl Fn(&mut Self, T) -> io::Result<()>, + ) -> io::Result<()> { + let mut iter = v.into_iter(); + if let Some(x) = iter.next() { + f(self, x)?; + self.lit(sep)?; + if let Some(x) = iter.next() { + self.lit(" ")?; + f(self, x)?; + while let Some(x) = iter.next() { + self.lit(sep)?; + self.lit(" ")?; + f(self, x)?; + } + } + } + Ok(()) + } + + pub fn seq( + &mut self, + v: impl IntoIterator, + f: impl Fn(&mut Self, T) -> io::Result<()>, + ) -> io::Result<()> { + self.sep(v, ",", f) + } + + pub fn seq_trailing( + &mut self, + v: impl IntoIterator, + f: impl Fn(&mut Self, T) -> io::Result<()>, + ) -> io::Result<()> { + self.sep_trailing(v, ",", f) + } + + pub fn delim( + &mut self, + l: &str, + r: &str, + f: impl FnOnce(&mut Self) -> io::Result<()>, + ) -> io::Result<()> { + self.lit(l)?; + f(self)?; + self.lit(r)?; + Ok(()) + } + + pub fn block(&mut self, f: impl FnOnce(&mut Self) -> io::Result<()>) -> io::Result<()> { + self.depth += 1; + self.lit("{")?; + self.indent(); + f(self)?; + self.dedent(); + self.newline()?; + self.lit("}")?; + self.depth -= 1; + Ok(()) + } + + pub fn brace(&mut self, f: impl FnOnce(&mut Self) -> io::Result<()>) -> io::Result<()> { + self.depth += 1; + self.delim("{", "}", f)?; + self.depth -= 1; + Ok(()) + } + + pub fn quote(&mut self, f: impl FnOnce(&mut Self) -> io::Result<()>) -> io::Result<()> { + self.depth += 1; + self.delim("\"", "\"", f)?; + self.depth -= 1; + Ok(()) + } + + pub fn paren(&mut self, f: impl FnOnce(&mut Self) -> io::Result<()>) -> io::Result<()> { + self.depth += 1; + self.delim("(", ")", f)?; + self.depth -= 1; + Ok(()) + } + + pub fn brack(&mut self, f: impl FnOnce(&mut Self) -> io::Result<()>) -> io::Result<()> { + self.depth += 1; + self.delim("[", "]", f)?; + self.depth -= 1; + Ok(()) + } + + pub fn angle(&mut self, f: impl FnOnce(&mut Self) -> io::Result<()>) -> io::Result<()> { + self.depth += 1; + self.delim("<", ">", f)?; + self.depth -= 1; + Ok(()) + } + + pub fn annot(&mut self, f: impl FnOnce(&mut Self) -> io::Result<()>) -> io::Result<()> { + self.lit(": ")?; + f(self) + } +} diff --git a/arc-lang/crates/compiler/infra/diagnostics/Cargo.toml b/arc-lang/crates/compiler/infra/diagnostics/Cargo.toml new file mode 100644 index 000000000..68cf8b623 --- /dev/null +++ b/arc-lang/crates/compiler/infra/diagnostics/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "diagnostics" +version.workspace = true +edition.workspace = true + +[dependencies] +info.workspace = true +ariadne.workspace = true +config.workspace = true +sources.workspace = true +backtrace.workspace = true +syn.workspace = true diff --git a/arc-lang/crates/compiler/infra/diagnostics/src/builder.rs b/arc-lang/crates/compiler/infra/diagnostics/src/builder.rs new file mode 100644 index 000000000..f0dc275ac --- /dev/null +++ b/arc-lang/crates/compiler/infra/diagnostics/src/builder.rs @@ -0,0 +1,52 @@ +use std::borrow::Cow; + +use info::Info; + +pub struct DiagnosticAt { + text: Cow<'static, str>, + info: Info, +} + +pub struct DiagnosticAtAnd { + text0: Cow<'static, str>, + info0: Info, + text1: Cow<'static, str>, + info1: Info, +} + +pub trait DiagnoseAt { + fn at(self, info: Info) -> DiagnosticAt; +} + +impl DiagnoseAt for &'static str { + fn at(self, info: Info) -> DiagnosticAt { + DiagnosticAt { + text: self.into(), + info, + } + } +} + +impl DiagnoseAt for String { + fn at(self, info: Info) -> DiagnosticAt { + DiagnosticAt { + text: self.into(), + info, + } + } +} + +trait DiagnoseAtAnd { + fn and(self, info: Info) -> DiagnosticAtAnd; +} + +impl DiagnosticAt { + pub fn and(self, text1: &'static str, info1: Info) -> DiagnosticAtAnd { + DiagnosticAtAnd { + text0: self.text, + info0: self.info, + text1: text1.into(), + info1: self.info, + } + } +} diff --git a/arc-lang/crates/compiler/infra/diagnostics/src/lib.rs b/arc-lang/crates/compiler/infra/diagnostics/src/lib.rs new file mode 100644 index 000000000..d88205504 --- /dev/null +++ b/arc-lang/crates/compiler/infra/diagnostics/src/lib.rs @@ -0,0 +1,769 @@ +#![allow(unused)] + +mod builder; + +use std::borrow::Cow; +use std::fmt::Display; +use std::path::PathBuf; + +use ariadne::Cache; +use ariadne::Label; +use ariadne::Report; +use ariadne::ReportKind; +use ariadne::Source; +use config::Config; +use info::Info; +use sources::Sources; + +#[derive(Debug, Clone, Default)] +pub struct Diagnostics { + pub backtrace: bool, + pub failfast: bool, + pub(crate) errors: Vec, + pub(crate) warnings: Vec, + pub(crate) hints: Vec, +} + +impl Diagnostics { + pub fn new(backtrace: bool, failfast: bool) -> Self { + Self { + backtrace, + failfast, + errors: Vec::new(), + warnings: Vec::new(), + hints: Vec::new(), + } + } + + #[track_caller] + pub fn push_error(&mut self, error: Error) { + if self.backtrace { + println!("{}", std::panic::Location::caller()); + } + if self.failfast { + println!("{:?}", error); + std::process::exit(1); + } + self.errors.push(error); + } + + pub fn push_warning(&mut self, warning: Warning) { + self.warnings.push(warning); + } + + pub fn push_hint(&mut self, hint: Hint) { + self.hints.push(hint); + } + + pub fn has_errors(&self) -> bool { + !self.errors.is_empty() + } + + pub fn has_warnings(&self) -> bool { + !self.warnings.is_empty() + } + + pub fn has_hints(&self) -> bool { + !self.hints.is_empty() + } + + pub fn is_empty(&self) -> bool { + self.errors.is_empty() && self.warnings.is_empty() && self.hints.is_empty() + } + + pub fn report_if_some(&mut self, sources: &mut Sources, opt: &Config) { + if self.has_errors() { + self.emit_errors(sources, opt); + } + if self.has_warnings() { + self.emit_warnings(sources, opt); + } + if self.has_hints() { + self.emit_hints(sources, opt); + } + } + + pub fn emit(&mut self, sources: &mut Sources, opt: &Config) { + self.emit_errors(sources, opt); + if opt.show.warnings { + self.emit_warnings(sources, opt); + } + if opt.show.hints { + self.emit_hints(sources, opt); + } + } + + pub fn emit_errors(&mut self, sources: &mut Sources, opt: &Config) { + for error in self.errors.drain(..) { + if error.emit(sources).is_none() { + eprintln!("Internal Compiler Error: {:?}", error); + } + } + } + + pub fn emit_warnings(&mut self, sources: &mut Sources, opt: &Config) { + for warning in self.warnings.drain(..) { + if warning.emit(sources).is_none() { + eprintln!("Internal Compiler Warning: {:?}", warning); + } + } + } + + pub fn emit_hints(&mut self, sources: &mut Sources, opt: &Config) { + for hint in self.hints.drain(..) { + if hint.emit(sources).is_none() { + eprintln!("Internal Compiler Hint: {:?}", hint); + } + } + } + + pub fn append(&mut self, other: &mut Self) { + self.errors.append(&mut other.errors); + self.warnings.append(&mut other.warnings); + self.hints.append(&mut other.hints); + } + + pub fn take(&mut self) -> Self { + Self { + backtrace: self.backtrace, + failfast: self.failfast, + errors: std::mem::take(&mut self.errors), + warnings: std::mem::take(&mut self.warnings), + hints: std::mem::take(&mut self.hints), + } + } +} + +/// Compile-time info reported by the compiler. +#[derive(Debug, Clone)] +pub enum Hint {} + +/// Compile-time warnings reported by the compiler. +#[derive(Debug, Clone)] +pub enum Warning { + UnusedVariable { + /// Name of the unused variable. + name: String, + /// Location of the unused variable. + info: Info, + }, + ShadowedVariable { + info0: Info, + info1: Info, + }, +} + +/// Compile-time errors reported by the compiler. +#[derive(Debug, Clone)] +pub enum Error { + /// Error when the importer fails to find a source file. + FileNotFound { + path: PathBuf, + }, + + /// Error when the lexer comes across an invalid token. + LexerInvalidToken { + /// Location of the error. + info: Info, + err: LexerError, + }, + + /// Error when the parser comes across an extra token. + ParserExtraToken { + /// Extra token found while parsing. + found: String, + /// Location of the error. + info: Info, + }, + + /// Error when the parser comes across an unrecognized end-of-file. + ParserUnrecognizedEof { + /// Location of the error. + info: Info, + /// List of tokens expected by LALRPOP. + expected: Vec, + }, + + /// Error when the parser comes across an unrecognized token. + ParserUnrecognizedToken { + /// Unrecognized token found while parsing. + found: String, + /// Location of the token. + info: Info, + /// List of tokens expected by LALRPOP. + expected: Vec, + }, + + DuplicateMetaKey { + /// Location of the error. + info: Info, + /// Name of the duplicate key. + key: String, + }, + + GenericWithArgs { + /// Location of the error. + info: Info, + /// Name of the generic type. + name: String, + }, + + UnresolvedTypeName { + /// Location of the error. + info: Info, + /// Name of the unresolved type. + name: String, + }, + + ExpectedVariant { + info: Info, + }, + + /// Error when two types fail to unify. + TypeMismatch { + /// First type. + lhs: String, + /// Second type. + rhs: String, + /// Location of the error. + info: Info, + }, + + /// Error when a match is non-exhaustive. + NonExhaustiveMatch { + /// Location of the error. + info: Info, + }, + + /// Error when two items in the same namespace have the same name. + NameClash { + info0: Info, + info1: Info, + }, + + /// Error when a struct contains two fields with the same name. + DuplicateRow { + info: Info, + }, + + /// Error when placing a type in value position. + TypeInValuePosition { + info: Info, + }, + + /// Error when placing a value in type position. + ValueInTypePosition { + info: Info, + }, + + /// Error when a function is expected, but a type or class is found. + ExpectedFunction { + info: Info, + }, + + /// Error when a path cannot be resolved. + UnresolvedName { + info: Info, + }, + + ExpectedPlaceExpr { + info: Info, + }, + UnexpectedTypeArgs { + info: Info, + }, + + ExpectedVar { + info: Info, + }, + DuplicateVariant { + info: Info, + }, + BreakOutsideInfiniteLoop { + info: Info, + }, + BreakOutsideLoop { + info: Info, + }, + ContinueOutsideLoop { + info: Info, + }, + GenericError { + info: Info, + text: Cow<'static, str>, + }, + InfiniteType { + info: Info, + t: String, + }, + WrongNumberOfTypeArgs { + name: String, + expected: usize, + found: usize, + info0: Info, + info1: Info, + }, + UncompileableCode { + info: Info, + msg: &'static str, + }, + ExpectedVarOrVal { + info: Info, + }, + NameNotFound { + info: Info, + name: String, + }, + ExpectedIrrefutablePattern { + info: Info, + }, + RowNotFound { + info: Info, + x: String, + }, + InterpreterError { + info: Info, + s: &'static str, + }, + WrongNumberOfArguments { + info: Info, + expected: usize, + found: usize, + }, + SynError { + info: Info, + e: syn::Error, + }, +} + +impl Hint { + fn emit(&self, _sources: &mut Sources) -> Option<()> { + Some(()) + } +} + +impl Warning { + fn emit(&self, sources: &mut Sources) -> Option<()> { + match self { + Warning::UnusedVariable { name, info } => { + Report::build(ReportKind::Warning, info.id()?, 0) + .with_message("Unused variable") + .with_label( + Label::new((info.id()?, info.span())) + .with_message(&format!("Variable `{name}` is unused")), + ) + .finish() + .eprint(sources) + .ok()?; + } + Warning::ShadowedVariable { info0, info1 } => { + Report::build(ReportKind::Warning, info0.id()?, 0) + .with_message("Shadowed variable") + .with_label( + Label::new((info0.id()?, info0.span())) + .with_message(&format!("Variable is shadowed")), + ) + .with_label( + Label::new((info1.id()?, info1.span())) + .with_message(&format!("Shadowed by this variable")), + ) + .finish() + .eprint(sources) + .ok()?; + } + }; + Some(()) + } +} + +impl Error { + pub fn emit(&self, sources: &mut Sources) -> Option<()> { + match self { + Error::FileNotFound { path } => { + eprintln!("File not found: {}", path.display()) + } + Error::ParserExtraToken { found, info } => { + Report::build(ReportKind::Error, info.id()?, info.span().start) + .with_message("Unused variable") + .with_label( + Label::new((info.id()?, info.span())) + .with_message(&format!("Variable `{}` is unused", "")), + ) + .finish() + .eprint(sources) + .ok()?; + } + Error::LexerInvalidToken { info, err } => { + Report::build(ReportKind::Error, info.id()?, info.span().start) + .with_message("Invalid token") + .with_label(Label::new((info.id()?, info.span())).with_message(err)) + .finish() + .eprint(sources) + .ok()?; + } + Error::ParserUnrecognizedEof { info, expected } => { + Report::build(ReportKind::Error, info.id()?, info.span().start) + .with_message("Unexpected end of file") + .with_label( + Label::new((info.id()?, info.span())) + .with_message("Unexpected end of file"), + ) + .finish() + .eprint(sources) + .ok()?; + } + Error::ParserUnrecognizedToken { + found, + info, + expected, + } => { + let e = expected + .iter() + .take(10) + .map(String::as_str) + .collect::>() + .join(", "); + Report::build(ReportKind::Error, info.id()?, info.span().start) + .with_message("Unexpected token") + .with_label(Label::new((info.id()?, info.span())).with_message( + &if expected.len() > 10 { + format!(r#"Unexpected token "{found}", expected: {e}, ..."#) + } else { + format!(r#"Unexpected token "{found}", expected: {e}"#) + }, + )) + .finish() + .eprint(sources) + .ok()?; + } + Error::DuplicateMetaKey { info, key } => { + Report::build(ReportKind::Error, info.id()?, info.span().start) + .with_message("Duplicate meta key") + .with_label( + Label::new((info.id()?, info.span())) + .with_message(&format!("Duplicate meta key `{}`", key)), + ) + .finish() + .eprint(sources) + .ok()?; + } + Error::GenericWithArgs { info, name } => { + Report::build(ReportKind::Error, info.id()?, info.span().start) + .with_message("Generic type with arguments") + .with_label( + Label::new((info.id()?, info.span())) + .with_message(&format!("Generic type `{}` with arguments", name)), + ) + .finish() + .eprint(sources) + .ok()?; + } + Error::UnresolvedTypeName { info, name } => { + Report::build(ReportKind::Error, info.id()?, info.span().start) + .with_message("Unresolved type name") + .with_label( + Label::new((info.id()?, info.span())) + .with_message(&format!("Unresolved type name `{}`", name)), + ) + .finish() + .eprint(sources) + .ok()?; + } + Error::ExpectedVariant { info } => { + Report::build(ReportKind::Error, info.id()?, info.span().start) + .with_message("Expected variant") + .with_label( + Label::new((info.id()?, info.span())).with_message("Expected variant"), + ) + .finish() + .eprint(sources) + .ok()?; + } + Error::ExpectedPlaceExpr { info } => { + Report::build(ReportKind::Error, info.id()?, info.span().start) + .with_message("Expected place expression") + .with_label( + Label::new((info.id()?, info.span())).with_message( + "Expected place expression, e.g., `x` or `x.y` or `x[0]`", + ), + ) + .finish() + .eprint(sources) + .ok()?; + } + Error::UnexpectedTypeArgs { info } => { + Report::build(ReportKind::Error, info.id()?, info.span().start) + .with_message("Unexpected type arguments") + .with_label( + Label::new((info.id()?, info.span())) + .with_message("Unexpected type arguments"), + ) + .finish() + .eprint(sources) + .ok()?; + } + Error::ExpectedVar { info } => { + Report::build(ReportKind::Error, info.id()?, info.span().start) + .with_message("Expected variable") + .with_label( + Label::new((info.id()?, info.span())).with_message("Expected variable"), + ) + .finish() + .eprint(sources) + .ok()?; + } + Error::TypeMismatch { lhs, rhs, info } => { + Report::build(ReportKind::Error, info.id()?, info.span().start) + .with_message("Type mismatch") + .with_label( + Label::new((info.id()?, info.span())) + .with_message(&format!("Expected `{}`, found `{}`", lhs, rhs)), + ) + .finish() + .eprint(sources) + .ok()?; + } + Error::NonExhaustiveMatch { info: _ } => todo!(), + Error::NameClash { info0, info1 } => { + Report::build(ReportKind::Error, info0.id()?, info0.span().start) + .with_message("Name clash") + .with_label( + Label::new((info0.id()?, info0.span())) + .with_message("Name already defined in this scope."), + ) + .with_label(Label::new((info1.id()?, info1.span())).with_message("Here.")) + .finish() + .eprint(sources) + .ok()?; + } + Error::DuplicateVariant { info } => { + Report::build(ReportKind::Error, info.id()?, info.span().start) + .with_message("Duplicate variant") + .with_label( + Label::new((info.id()?, info.span())).with_message("Duplicate variant"), + ) + .finish() + .eprint(sources) + .ok()?; + } + Error::BreakOutsideLoop { info } => { + Report::build(ReportKind::Error, info.id()?, info.span().start) + .with_message("Break outside loop") + .with_label( + Label::new((info.id()?, info.span())).with_message("Break outside loop"), + ) + .finish() + .eprint(sources) + .ok()?; + } + Error::BreakOutsideInfiniteLoop { info } => { + Report::build(ReportKind::Error, info.id()?, info.span().start) + .with_message("Break with argument outside infinite loop") + .with_label( + Label::new((info.id()?, info.span())) + .with_message("Break with argument outside infinite loop"), + ) + .finish() + .eprint(sources) + .ok()?; + } + Error::ContinueOutsideLoop { info } => todo!(), + Error::DuplicateRow { info: _ } => todo!(), + Error::TypeInValuePosition { info: _ } => todo!(), + Error::ValueInTypePosition { info: _ } => todo!(), + Error::ExpectedFunction { info: _ } => todo!(), + Error::UnresolvedName { info } => { + Report::build(ReportKind::Error, info.id()?, info.span().start) + .with_message("Unresolved name") + .with_label( + Label::new((info.id()?, info.span())).with_message("Unresolved name"), + ) + .finish() + .eprint(sources) + .ok()?; + } + Error::GenericError { info, text } => { + Report::build(ReportKind::Error, info.id()?, info.span().start) + .with_message("Generic error") + .with_label(Label::new((info.id()?, info.span())).with_message(text)) + .finish() + .eprint(sources) + .ok()?; + } + Error::InfiniteType { info, t } => { + Report::build(ReportKind::Error, info.id()?, info.span().start) + .with_message("Infinite type") + .with_label( + Label::new((info.id()?, info.span())) + .with_message(&format!("Infinite type: `{}`", t)), + ) + .finish() + .eprint(sources) + .ok()?; + } + Error::WrongNumberOfTypeArgs { + name, + expected, + found, + info0, + info1, + } => { + Report::build(ReportKind::Error, info0.id()?, info0.span().start) + .with_message("Wrong number of type arguments") + .with_label( + Label::new((info0.id()?, info0.span())).with_message(&format!( + "`{}` expected `{}`, found `{}`", + name, expected, found + )), + ) + .with_label(Label::new((info1.id()?, info1.span())).with_message("Here.")) + .finish() + .eprint(sources) + .ok()?; + } + Error::UncompileableCode { info, msg } => { + Report::build(ReportKind::Error, info.id()?, info.span().start) + .with_message("Found un-compileable code") + .with_label( + Label::new((info.id()?, info.span())) + .with_message(format!("This code cannot (yet) be compiled. {msg}.")), + ) + .finish() + .eprint(sources) + .ok()?; + } + Error::ExpectedVarOrVal { info } => { + Report::build(ReportKind::Error, info.id()?, info.span().start) + .with_message("Expected `var` or `val`") + .with_label( + Label::new((info.id()?, info.span())) + .with_message("Expected `var` or `val`, found this."), + ) + .finish() + .eprint(sources) + .ok()?; + } + Error::NameNotFound { info, name } => { + Report::build(ReportKind::Error, info.id()?, info.span().start) + .with_message("Name not found") + .with_label( + Label::new((info.id()?, info.span())) + .with_message(&format!("Name `{}` not found", name)), + ) + .finish() + .eprint(sources) + .ok()?; + } + Error::ExpectedIrrefutablePattern { info } => { + Report::build(ReportKind::Error, info.id()?, info.span().start) + .with_message("Expected irrefutable pattern") + .with_label( + Label::new((info.id()?, info.span())) + .with_message("Expected irrefutable pattern"), + ) + .finish() + .eprint(sources) + .ok()?; + } + Error::RowNotFound { info, x } => { + Report::build(ReportKind::Error, info.id()?, info.span().start) + .with_message("Row not found") + .with_label( + Label::new((info.id()?, info.span())) + .with_message(&format!("Row `{}` not found", x)), + ) + .finish() + .eprint(sources) + .ok()?; + } + Error::InterpreterError { info, s } => { + Report::build(ReportKind::Error, info.id()?, info.span().start) + .with_message("Interpreter error") + .with_label( + Label::new((info.id()?, info.span())) + .with_message(&format!("Interpreter error: `{}`", s)), + ) + .finish() + .eprint(sources) + .ok()?; + } + Error::WrongNumberOfArguments { + info, + expected, + found, + } => { + Report::build(ReportKind::Error, info.id()?, info.span().start) + .with_message("Wrong number of arguments") + .with_label( + Label::new((info.id()?, info.span())) + .with_message(&format!("Expected {}, found {}", expected, found)), + ) + .finish() + .eprint(sources) + .ok()?; + } + Error::SynError { info, e } => { + Report::build(ReportKind::Error, info.id()?, info.span().start) + .with_message("Syntax error") + .with_label( + Label::new((info.id()?, info.span())).with_message(&format!("{}", e)), + ) + .finish() + .eprint(sources) + .ok()?; + } + }; + Some(()) + } +} + +#[derive(Debug, Clone, PartialEq)] +pub enum LexerError { + ParseBoolError(std::str::ParseBoolError), + ParseCharError(std::char::ParseCharError), + ParseFloatError(std::num::ParseFloatError), + ParseIntError(std::num::ParseIntError), + InvalidToken, +} + +impl Default for LexerError { + fn default() -> Self { + Self::InvalidToken + } +} + +impl From for LexerError { + fn from(err: std::str::ParseBoolError) -> Self { + Self::ParseBoolError(err) + } +} + +impl From for LexerError { + fn from(err: std::char::ParseCharError) -> Self { + Self::ParseCharError(err) + } +} + +impl From for LexerError { + fn from(err: std::num::ParseFloatError) -> Self { + Self::ParseFloatError(err) + } +} + +impl From for LexerError { + fn from(err: std::num::ParseIntError) -> Self { + Self::ParseIntError(err) + } +} + +impl Display for LexerError { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Self::ParseBoolError(err) => write!(f, "Invalid token: {}", err), + Self::ParseCharError(err) => write!(f, "Invalid token: {}", err), + Self::ParseFloatError(err) => write!(f, "Invalid token: {}", err), + Self::ParseIntError(err) => write!(f, "Invalid token: {}", err), + Self::InvalidToken => write!(f, "Invalid token"), + } + } +} diff --git a/arc-lang/crates/compiler/infra/info/Cargo.toml b/arc-lang/crates/compiler/infra/info/Cargo.toml new file mode 100644 index 000000000..52248581a --- /dev/null +++ b/arc-lang/crates/compiler/infra/info/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "info" +version.workspace = true +edition.workspace = true + +[dependencies] +text-size.workspace = true diff --git a/arc-lang/crates/compiler/infra/info/src/lib.rs b/arc-lang/crates/compiler/infra/info/src/lib.rs new file mode 100644 index 000000000..37222ccf7 --- /dev/null +++ b/arc-lang/crates/compiler/infra/info/src/lib.rs @@ -0,0 +1,65 @@ +use std::ops::Range; + +use text_size::TextRange; +use text_size::TextSize; + +/// A structure which keeps the start and end position of an AST node plus its source. +pub type Spanned = (T, Info); + +/// An index of a character in a source. +pub type ByteIndex = TextSize; + +/// A span between two characters in a source. +pub type Span = TextRange; + +/// An identifier of a source. Can be used to access the source code of the source. +pub type SourceId = usize; + +/// Stores a code location. +#[derive(Debug, Clone, Copy)] +pub enum Info { + Source { id: SourceId, span: Span }, + Builtin, +} + +impl Info { + pub fn new(id: SourceId, start: ByteIndex, end: ByteIndex) -> Self { + Self::Source { + id, + span: Span::new(start, end), + } + } + + /// Constructs a source from an id and a byte index range. + pub fn from_range(id: SourceId, range: Range) -> Self { + Self::Source { + id, + span: Span::new(range.start, range.end), + } + } + + /// Joins two locations into a potentially larger location. + pub fn join(self, other: Self) -> Self { + match (self, other) { + (Self::Source { id, span }, Self::Source { span: span2, .. }) => Self::Source { + id, + span: span.cover(span2), + }, + (Self::Builtin, x) | (x, Self::Builtin) => x, + } + } + + pub fn span(self) -> Range { + match self { + Self::Source { span, .. } => span.start().into()..span.end().into(), + Self::Builtin => 0..0, + } + } + + pub fn id(self) -> Option { + match self { + Self::Source { id, .. } => Some(id), + Self::Builtin => None, + } + } +} diff --git a/arc-lang/crates/compiler/infra/kafka/Cargo.toml b/arc-lang/crates/compiler/infra/kafka/Cargo.toml new file mode 100644 index 000000000..e55047762 --- /dev/null +++ b/arc-lang/crates/compiler/infra/kafka/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "kafka" +version.workspace = true +edition.workspace = true + +[dependencies] +rdkafka.workspace = true +tokio.workspace = true +anyhow.workspace = true diff --git a/arc-lang/crates/compiler/infra/kafka/src/context.rs b/arc-lang/crates/compiler/infra/kafka/src/context.rs new file mode 100644 index 000000000..bba10a288 --- /dev/null +++ b/arc-lang/crates/compiler/infra/kafka/src/context.rs @@ -0,0 +1,58 @@ +#![allow(unused)] + +use std::time::Duration; + +use anyhow::Result; +use rdkafka::config::ClientConfig; +use rdkafka::consumer::stream_consumer::StreamConsumer; +use rdkafka::consumer::Consumer; +use rdkafka::producer::FutureProducer; +use rdkafka::util::Timeout; + +pub struct Context { + pub consumer: StreamConsumer, + pub producer: FutureProducer, + pub broker: String, +} + +impl std::fmt::Debug for Context { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("Context").finish() + } +} + +impl Context { + pub fn new(broker: Option) -> Result { + let broker = broker.unwrap_or("localhost:9092".to_string()); + let producer: FutureProducer = ClientConfig::new() + .set("bootstrap.servers", broker.clone()) + .create()?; + let consumer: StreamConsumer = ClientConfig::new() + .set("group.id", "kafka-cli") + .set("bootstrap.servers", broker.clone()) + .create()?; + let metadata = + consumer.fetch_metadata(None, Timeout::After(Duration::from_millis(1000)))?; + Ok(Self { + consumer, + producer, + broker, + }) + } + + pub fn list(&self) -> Result<()> { + let metadata = self + .consumer + .fetch_metadata(None, Timeout::After(Duration::from_millis(1000)))?; + + eprintln!("Kafka Topics:"); + for topic in metadata.topics() { + eprintln!( + "* {} {} partition(s)", + topic.name(), + topic.partitions().len() + ); + } + Ok(()) + } +} diff --git a/arc-lang/crates/compiler/infra/kafka/src/lib.rs b/arc-lang/crates/compiler/infra/kafka/src/lib.rs new file mode 100644 index 000000000..9efb2ab19 --- /dev/null +++ b/arc-lang/crates/compiler/infra/kafka/src/lib.rs @@ -0,0 +1 @@ +pub mod context; diff --git a/arc-lang/crates/compiler/infra/name-gen/Cargo.toml b/arc-lang/crates/compiler/infra/name-gen/Cargo.toml new file mode 100644 index 000000000..a3899cf7d --- /dev/null +++ b/arc-lang/crates/compiler/infra/name-gen/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "name-gen" +version.workspace = true +edition.workspace = true + +[dependencies] diff --git a/arc-lang/crates/compiler/infra/name-gen/src/lib.rs b/arc-lang/crates/compiler/infra/name-gen/src/lib.rs new file mode 100644 index 000000000..f8412fba3 --- /dev/null +++ b/arc-lang/crates/compiler/infra/name-gen/src/lib.rs @@ -0,0 +1,21 @@ +type Name = String; + +#[derive(Clone, Debug)] +pub struct NameGen { + base: String, + next: usize, +} + +impl NameGen { + pub fn new(base: impl Into) -> Self { + NameGen { + base: base.into(), + next: 0, + } + } + pub fn fresh(&mut self) -> Name { + let uid = self.next; + self.next += 1; + Name::from(format!("{}{}", self.base, uid)) + } +} diff --git a/arc-lang/crates/compiler/infra/sources/Cargo.toml b/arc-lang/crates/compiler/infra/sources/Cargo.toml new file mode 100644 index 000000000..72b5b2e89 --- /dev/null +++ b/arc-lang/crates/compiler/infra/sources/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "sources" +version.workspace = true +edition.workspace = true + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +ariadne.workspace = true diff --git a/arc-lang/crates/compiler/infra/sources/src/lib.rs b/arc-lang/crates/compiler/infra/sources/src/lib.rs new file mode 100644 index 000000000..44d6f742d --- /dev/null +++ b/arc-lang/crates/compiler/infra/sources/src/lib.rs @@ -0,0 +1,51 @@ +use std::fmt::Debug; +use std::fmt::Display; + +use ariadne::Cache; +use ariadne::Source; + +#[derive(Default)] +pub struct Sources { + sources: Vec<(String, Source)>, +} + +impl Sources { + pub fn new() -> Self { + Self { sources: vec![] } + } + pub fn add(&mut self, name: impl Into, source: impl Into) -> usize { + let id = self.sources.len(); + self.sources + .push((name.into(), Source::from(source.into()))); + id + } + pub fn len(&self) -> usize { + self.sources.len() + } +} + +impl std::fmt::Debug for Sources { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("Sources") + .field( + "sources", + &self.sources.iter().map(|x| &x.0).collect::>(), + ) + .finish() + } +} + +impl Cache for Sources { + fn fetch(&mut self, id: &usize) -> Result<&Source, Box> { + self.sources.get(*id).map(|x| &x.1).ok_or_else(|| { + Box::new(format!("Source with id {} not found in cache", id)) + as Box + }) + } + + fn display<'a>(&self, id: &'a usize) -> Option> { + self.sources + .get(*id) + .map(|x| Box::new(x.0.clone()) as Box) + } +} diff --git a/arc-lang/crates/compiler/infra/stack/Cargo.toml b/arc-lang/crates/compiler/infra/stack/Cargo.toml new file mode 100644 index 000000000..4eec02771 --- /dev/null +++ b/arc-lang/crates/compiler/infra/stack/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "stack" +version.workspace = true +edition.workspace = true + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/arc-lang/crates/compiler/infra/stack/src/lib.rs b/arc-lang/crates/compiler/infra/stack/src/lib.rs new file mode 100644 index 000000000..5fba4fb50 --- /dev/null +++ b/arc-lang/crates/compiler/infra/stack/src/lib.rs @@ -0,0 +1,108 @@ +#![allow(unused)] + +#[derive(Clone, Debug)] +pub struct Stack(Vec>); + +pub type Name = String; + +#[derive(Clone, Debug)] +pub struct Scope { + pub kind: K, + pub expr_namespace: Namespace, + pub type_namespace: Namespace, +} + +impl Scope { + fn new(kind: K) -> Self { + Scope { + kind, + expr_namespace: Namespace::new(), + type_namespace: Namespace::new(), + } + } +} + +#[derive(Clone, Debug)] +pub struct Namespace(Vec<(Name, D)>); + +impl Namespace { + pub fn new() -> Self { + Self(vec![]) + } + + fn bind(&mut self, x: Name, decl: D) { + self.0.push((x, decl)); + } + + pub fn find(&self, x0: &Name) -> Option<&D> { + self.0 + .iter() + .rev() + .find_map(|(x1, decl)| if x0 == x1 { Some(decl) } else { None }) + } + + fn find_mut(&mut self, x0: &Name) -> Option<&mut D> { + self.0 + .iter_mut() + .rev() + .find_map(|(x1, decl)| if x0 == x1 { Some(decl) } else { None }) + } + + pub fn iter(&self) -> impl Iterator { + self.0.iter().rev() + } +} + +impl Stack { + pub fn new(kind: K) -> Self { + Self(vec![Scope::new(kind)]) + } + + pub fn depth(&self) -> usize { + self.0.len() + } + + pub fn iter(&self) -> impl Iterator> { + self.0.iter().rev() + } + + pub fn iter_mut(&mut self) -> impl Iterator> { + self.0.iter_mut().rev() + } + + pub fn current(&mut self) -> &mut K { + &mut self.0.last_mut().unwrap().kind + } + + pub fn push_scope(&mut self, kind: K) { + self.0.push(Scope::new(kind)); + } + + pub fn pop_scope(&mut self) -> K { + self.0.pop().expect("ICE: Tried to pop empty scope").kind + } + + pub fn bind_expr_decl(&mut self, x: Name, decl: E) { + self.0.last_mut().unwrap().expr_namespace.bind(x, decl); + } + + pub fn bind_type_decl(&mut self, x: Name, decl: T) { + self.0.last_mut().unwrap().type_namespace.bind(x, decl); + } + + pub fn find_expr_decl(&self, x0: &Name) -> Option { + self.iter().find_map(|s| s.expr_namespace.find(x0).cloned()) + } + + pub fn find_type_decl(&self, x0: &Name) -> Option { + self.iter().find_map(|s| s.type_namespace.find(x0).cloned()) + } + + pub fn find_expr_decl_mut(&mut self, x0: &Name) -> Option<&mut E> { + self.iter_mut().find_map(|s| s.expr_namespace.find_mut(x0)) + } + + pub fn find_type_decl_mut(&mut self, x0: &Name) -> Option<&mut T> { + self.iter_mut().find_map(|s| s.type_namespace.find_mut(x0)) + } +} diff --git a/arc-lang/crates/compiler/infra/utils/Cargo.toml b/arc-lang/crates/compiler/infra/utils/Cargo.toml new file mode 100644 index 000000000..c42c7dc89 --- /dev/null +++ b/arc-lang/crates/compiler/infra/utils/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "utils" +version.workspace = true +edition.workspace = true + +[dependencies] +im-rc.workspace = true diff --git a/arc-lang/crates/compiler/infra/utils/src/lib.rs b/arc-lang/crates/compiler/infra/utils/src/lib.rs new file mode 100644 index 000000000..f4efce4ee --- /dev/null +++ b/arc-lang/crates/compiler/infra/utils/src/lib.rs @@ -0,0 +1,209 @@ +use im_rc::OrdMap; +use im_rc::Vector; + +pub trait VectorUtils { + fn mapm(self, ctx: &mut C, f: impl FnMut(&mut C, T0) -> T1) -> Vector + where + T1: Clone; + + fn zip(&self, other: &Vector) -> Vector<(T0, T1)> + where + T1: Clone; + + fn filter_mapm(self, ctx: &mut C, f: impl FnMut(&mut C, T0) -> Option) -> Vector + where + T1: Clone; + + fn map(self, f: impl FnMut(T0) -> T1) -> Vector + where + T1: Clone; + + fn concat(self, other: Vector) -> Vector; +} + +pub trait AssocVectorUtils { + fn mapm_assoc(self, ctx: &mut C, f: impl FnMut(&mut C, T0) -> T1) -> Vector<(K, T1)> + where + K: Clone, + T1: Clone; + + fn find_assoc(&self, k: &K) -> Option<&T0> + where + K: Clone + PartialEq, + T0: Clone; + + fn remove_assoc(&mut self, k: &K) -> Option + where + K: Clone + PartialEq, + T0: Clone; +} + +impl AssocVectorUtils for Vector<(K, T0)> +where + K: Clone, + T0: Clone, +{ + fn mapm_assoc(self, ctx: &mut C, mut f: impl FnMut(&mut C, T0) -> T1) -> Vector<(K, T1)> + where + K: Clone, + T1: Clone, + { + self.map(|(k, v)| (k, f(ctx, v))) + } + + fn find_assoc(&self, k: &K) -> Option<&T0> + where + K: Clone + PartialEq, + T0: Clone, + { + self.iter() + .find_map(|(k1, v)| if k1 == k { Some(v) } else { None }) + } + + fn remove_assoc(&mut self, k: &K) -> Option + where + K: Clone + PartialEq, + T0: Clone, + { + for (i, (k1, _)) in self.iter().enumerate() { + if k1 == k { + let (_, v) = self.remove(i); + return Some(v); + } + } + None + } +} + +impl VectorUtils for Vector +where + T0: Clone, +{ + fn mapm(self, ctx: &mut C, mut f: impl FnMut(&mut C, T0) -> T1) -> Vector + where + T1: Clone, + { + let mut v = Vector::new(); + for x in self { + let y = f(ctx, x); + v.push_back(y); + } + v + } + + fn zip(&self, other: &Vector) -> Vector<(T0, T1)> + where + T1: Clone, + { + self.clone() + .into_iter() + .zip(other.clone().into_iter()) + .map(|(x, y)| (x, y)) + .collect() + } + + fn filter_mapm( + self, + ctx: &mut C, + mut f: impl FnMut(&mut C, T0) -> Option, + ) -> Vector + where + T1: Clone, + { + let mut v = Vector::new(); + for x in self { + let y = f(ctx, x); + if let Some(y) = y { + v.push_back(y); + } + } + v + } + + fn map(self, f: impl FnMut(T0) -> T1) -> Vector + where + T1: Clone, + { + self.into_iter().map(f).collect() + } + + fn concat(mut self, other: Vector) -> Vector { + self.append(other); + self + } +} + +pub trait OrdMapUtils { + fn to_vector(self) -> Vector<(K0, T0)> + where + K0: Clone, + T0: Clone; + fn mapm(self, ctx: C, f: F) -> (C, OrdMap) + where + F: Fn(C, T0) -> (C, T1), + T1: Clone; +} + +impl OrdMapUtils for OrdMap +where + K0: std::hash::Hash + Eq + Clone + std::cmp::Ord, + T0: Clone, +{ + fn to_vector(self) -> Vector<(K0, T0)> + where + K0: Clone, + T0: Clone, + { + self.into_iter().collect() + } + fn mapm(self, mut ctx: C, f: F) -> (C, OrdMap) + where + F: Fn(C, T0) -> (C, T1), + T1: Clone, + { + let mut map = OrdMap::new(); + for (k, v) in self.into_iter() { + let (ctx1, v1) = f(ctx, v); + ctx = ctx1; + map.insert(k, v1); + } + (ctx, map) + } +} + +pub trait OptionUtils { + fn mapm(self, ctx: &mut C, f: F) -> Option + where + F: FnMut(&mut C, T0) -> T1; + + fn mapm_or_else(self, ctx: &mut C, f: F, g: G) -> T1 + where + F: FnMut(&mut C, T0) -> T1, + G: FnMut(&mut C) -> T1; +} + +impl OptionUtils for Option { + fn mapm(self, ctx: &mut C, mut f: F) -> Option + where + F: FnMut(&mut C, T0) -> T1, + { + match self { + None => None, + Some(x) => { + let y = f(ctx, x); + Some(y) + } + } + } + + fn mapm_or_else(self, ctx: &mut C, mut f: F, mut g: G) -> T1 + where + F: FnMut(&mut C, T0) -> T1, + G: FnMut(&mut C) -> T1, + { + match self { + None => g(ctx), + Some(x) => f(ctx, x), + } + } +} diff --git a/arc-lang/crates/compiler/irs/ast/Cargo.toml b/arc-lang/crates/compiler/irs/ast/Cargo.toml new file mode 100644 index 000000000..6374adef7 --- /dev/null +++ b/arc-lang/crates/compiler/irs/ast/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "ast" +version.workspace = true +edition.workspace = true + +[dependencies] +info.workspace = true +codegen.workspace = true +im-rc.workspace = true +lexer.workspace = true +syn.workspace = true diff --git a/arc-lang/crates/compiler/irs/ast/src/lib.rs b/arc-lang/crates/compiler/irs/ast/src/lib.rs new file mode 100644 index 000000000..bbe360cec --- /dev/null +++ b/arc-lang/crates/compiler/irs/ast/src/lib.rs @@ -0,0 +1,362 @@ +#![allow(unused)] + +use im_rc::Vector; +use info::Info; +use lexer::tokens::Token; +use std::rc::Rc; + +pub mod ops; + +pub use Splice::*; +#[derive(Clone, Debug)] +pub enum Splice { + SName(Name), + SBlock(Block), +} + +pub type Name = String; +pub type Arm = (Pattern, Expr); + +pub type Index = i32; + +pub use ExprField::*; +#[derive(Clone, Debug)] +pub enum ExprField { + FName(Name, Option), + FExpr(Expr, Name), +} + +pub use Body::*; +#[derive(Clone, Debug)] +pub enum Body { + BBlock(Block), + BExpr(Expr), +} + +#[derive(Clone, Debug)] +pub struct Block { + pub ss: Vector, + pub e: Option, + pub info: Info, +} + +pub type Generic = Name; + +pub type Meta = Vector; + +#[derive(Clone, Debug)] +pub struct Attr { + pub x: Name, + pub c: Option, + pub info: Info, +} +pub type Bound = (Name, Vector); + +pub use UseSuffix::*; +#[derive(Clone, Debug)] +pub enum UseSuffix { + UAlias(Name), + UGlob, +} + +#[derive(Clone, Debug)] +pub struct Pattern { + pub info: Info, + pub kind: Rc, +} + +pub use PatternKind::*; +#[derive(Clone, Debug)] +pub enum PatternKind { + PParen(Pattern), + PIgnore, + POr(Pattern, Pattern), + PTypeAnnot(Pattern, Type), + PRecord(Vector<(Name, Option)>), + PRecordConcat(Pattern, Pattern), + PTuple(Vector), + PArray(Vector), + PArrayConcat(Pattern, Pattern), + PConst(Const), + PName(Name), + PVariantRecord(Name, Vector<(Name, Option)>), + PVariantTuple(Name, Vector), + PError, +} + +#[derive(Clone, Debug)] +pub struct Type { + pub info: Info, + pub kind: Rc, +} + +pub use TypeKind::*; +#[derive(Clone, Debug)] +pub enum TypeKind { + TParen(Type), + TFun(Vector, Type), + TTuple(Vector), + TRecord(Vector<(Name, Type)>), + TRecordConcat(Type, Type), + TName(Name, Vector), + TArray(Type, Option), + TArrayConcat(Type, Type), + TUnit, + TNever, + TIgnore, + TError, +} + +#[derive(Clone, Debug)] +pub struct Binop { + pub token: Token, + pub kind: BinopKind, +} + +pub use BinopKind::*; +#[derive(Clone, Copy, Debug)] +pub enum BinopKind { + BAdd, + BAnd, + BDiv, + BEq, + BGeq, + BGt, + BLeq, + BLt, + BMul, + BNeq, + BOr, + BSub, + BRExc, + BRInc, +} + +impl BinopKind { + pub fn with(self, token: Token) -> Binop { + Binop { token, kind: self } + } +} + +#[derive(Clone, Debug)] +pub struct Unop { + pub token: Token, + pub kind: UnopKind, +} + +pub use UnopKind::*; +#[derive(Clone, Copy, Debug)] +pub enum UnopKind { + UNot, + UNeg, + UPos, +} + +impl UnopKind { + pub fn with(self, token: Token) -> Unop { + Unop { token, kind: self } + } +} + +pub use Lit::*; +#[derive(Clone, Debug)] +pub enum Lit { + LInt(i32, Option), + LFloat(f32, Option), + LBool(bool), + LString(String), + LUnit, + LChar(char), +} + +pub use Const::*; +#[derive(Clone, Debug)] +pub enum Const { + CInt(i32), + CFloat(f32), + CBool(bool), + CString(String), + CUnit, + CChar(char), +} + +pub use StmtKind::*; +#[derive(Clone, Debug)] +pub struct Stmt { + pub info: Info, + pub kind: StmtKind, +} + +#[derive(Clone, Debug)] +pub enum StmtKind { + SDef( + Meta, + Name, + Vector, + Vector, + Option, + Vector, + Body, + ), + SEnum(Meta, Name, Vector, Vector, Vector), + SType(Meta, Name, Vector, Type), + SNoop, + SVal(Pattern, Expr), + SVar(Pattern, Expr), + SExpr(Expr), + SInject(String, String), + // Internal + SBuiltinDef( + Meta, + Name, + Vector, + Vector, + Option, + Vector, + ), + SBuiltinType(Meta, Name, Vector, Vector), + SBuiltinClass(Meta, Name, Vector, Vector), + SBuiltinInstance(Meta, Name, Vector, Vector, Type), +} + +impl StmtKind { + pub fn with(self, info: Info) -> Stmt { + Stmt { info, kind: self } + } +} + +pub use Variant::*; +#[derive(Clone, Debug)] +pub enum Variant { + VUnit(Name), + VRecord(Name, Vector<(Name, Type)>), + VTuple(Name, Vector), +} + +#[derive(Clone, Debug)] +pub struct Expr { + pub info: Info, + pub kind: Rc, +} + +impl Expr { + pub fn kind(&self) -> ExprKind { + (*self.kind).clone() + } +} + +impl ExprKind { + pub fn with(self, info: Info) -> Expr { + Expr { + info, + kind: Rc::new(self), + } + } +} + +impl PatternKind { + pub fn with(self, info: Info) -> Pattern { + Pattern { + info, + kind: Rc::new(self), + } + } +} + +impl TypeKind { + pub fn with(self, info: Info) -> Type { + Type { + info, + kind: Rc::new(self), + } + } +} + +impl Type { + pub fn kind(&self) -> TypeKind { + (*self.kind).clone() + } +} + +impl Pattern { + pub fn kind(&self) -> PatternKind { + (*self.kind).clone() + } +} + +pub use ExprKind::*; +#[derive(Clone, Debug)] +pub enum ExprKind { + EParen(Expr), + EQuery(Pattern, Expr, Vector), + EFunCall(Expr, Vector), + EFunReturn(Option), + EIfElse(Expr, Block, Option), + ELit(Lit), + ELoop(Block), + ELoopBreak(Option), + ELoopContinue, + ERecord(Vector), + ERecordAccess(Expr, Name), + ERecordAccessMulti(Expr, Vector), + ERecordConcat(Expr, Expr), + ETypeAnnot(Expr, Type), + EVariantRecord(Name, Vector), + EDo(Block), + EArray(Vector), + EArrayConcat(Expr, Expr), + EArrayAccess(Expr, Expr), + EBinop(Expr, Binop, Expr), + EMut(Expr, Option, Expr), + EFor(Pattern, Expr, Block), + EFun(Vector, Option, Body), + EMatch(Expr, Vector), + EMethodCall(Expr, Name, Vector, Vector), + EName(Name, Vector), + EThrow(Expr), + ETry(Block, Vector, Option), + ETuple(Vector), + ETupleAccess(Expr, Index), + EUnop(Unop, Expr), + EWhile(Expr, Block), + EError, +} + +pub use QueryStmt::*; +#[derive(Clone, Debug)] +pub enum QueryStmt { + QFrom(Pattern, Expr), + QWhere(Expr), + QWith(Pattern, Expr), + QJoinOn(Pattern, Expr, Expr), + QJoinOver(Pattern, Expr, Expr), + QJoinOverOn(Pattern, Expr, Expr, Expr, Expr, Vector), + QGroup(Expr, Vector, Option), + QCompute(Expr, Option, Option), + QOver(Expr, Vector, Option), + QRoll(Expr, Option, Option), + QSelect(Expr), + QUnion(Expr), + QInto(Expr), + QVal(Pattern, Expr), + QOrder(Expr, Order), +} + +pub use Order::*; +#[derive(Clone, Debug)] +pub enum Order { + OAsc, + ODesc, +} + +impl Stmt { + pub fn kind(&self) -> StmtKind { + self.kind.clone() + } +} + +impl Block { + pub fn new(ss: Vector, e: Option, info: Info) -> Self { + Self { ss, e, info } + } +} diff --git a/arc-lang/crates/compiler/irs/ast/src/ops.rs b/arc-lang/crates/compiler/irs/ast/src/ops.rs new file mode 100644 index 000000000..92302c1c9 --- /dev/null +++ b/arc-lang/crates/compiler/irs/ast/src/ops.rs @@ -0,0 +1,56 @@ +use crate::BinopKind; +use crate::BinopKind::*; +use crate::UnopKind; +use crate::UnopKind::*; + +#[macro_export] +macro_rules! binop { + {+} => {"_add_"}; + {and} => {"_and_"}; + {/} => {"_div_"}; + {==} => {"_eq_"}; + {>=} => {"_geq_"}; + {>} => {"_gt_"}; + {<=} => {"_leq_"}; + {<} => {"_lt_"}; + {*} => {"_mul_"}; + {!=} => {"_neq_"}; + {or} => {"_or_"}; + {-} => {"_sub_"}; + {..} => {"_rexc_"}; + {..=} => {"_rinc_"}; +} + +#[macro_export] +macro_rules! unop { + {+} => {"_pos_"}; + {-} => {"_neg_"}; + {!} => {"_not_"}; +} + +pub const fn unop(kind: UnopKind) -> &'static str { + match kind { + UPos => unop!(+), + UNeg => unop!(-), + UNot => unop!(!), + } +} + +pub const fn binop(kind: BinopKind) -> &'static str { + match kind { + BAdd => binop!(+), + BAnd => binop!(and), + BDiv => binop!(/), + BEq => binop!(==), + BGeq => binop!(>=), + BGt => binop!(>), + BLeq => binop!(<=), + BLt => binop!(<), + BMul => binop!(*), + BNeq => binop!(!=), + BOr => binop!(or), + BSub => binop!(-), + BRExc => binop!(..), + BRInc => binop!(..=), + } +} diff --git a/arc-lang/crates/compiler/irs/flink/Cargo.toml b/arc-lang/crates/compiler/irs/flink/Cargo.toml new file mode 100644 index 000000000..8f7d1bb4b --- /dev/null +++ b/arc-lang/crates/compiler/irs/flink/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "flink" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/arc-lang/crates/compiler/irs/flink/src/lib.rs b/arc-lang/crates/compiler/irs/flink/src/lib.rs new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/arc-lang/crates/compiler/irs/flink/src/lib.rs @@ -0,0 +1 @@ + diff --git a/arc-lang/crates/compiler/irs/hir/Cargo.toml b/arc-lang/crates/compiler/irs/hir/Cargo.toml new file mode 100644 index 000000000..9bac246f7 --- /dev/null +++ b/arc-lang/crates/compiler/irs/hir/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "hir" +version.workspace = true +edition.workspace = true + +[dependencies] +info.workspace = true +codegen.workspace = true +utils.workspace = true +im-rc.workspace = true diff --git a/arc-lang/crates/compiler/irs/hir/src/lib.rs b/arc-lang/crates/compiler/irs/hir/src/lib.rs new file mode 100644 index 000000000..944a2ccff --- /dev/null +++ b/arc-lang/crates/compiler/irs/hir/src/lib.rs @@ -0,0 +1,574 @@ +#![allow(unused)] +use im_rc::OrdMap; +use im_rc::Vector; +use info::Info; +use std::rc::Rc; +use utils::VectorUtils; + +pub type Arm = (Pattern, Block); + +pub type Name = String; +pub type Index = i32; +pub type Generic = Name; +pub type Meta = OrdMap>; + +#[derive(Clone, Debug)] +pub struct Block { + pub ss: Vector, + pub e: Expr, + pub info: Info, +} + +impl Block { + pub fn new(ss: Vector, e: Expr, info: Info) -> Self { + Block { ss, e, info } + } +} + +#[derive(Clone, Debug)] +pub struct Pattern { + pub t: Type, + pub info: Info, + pub kind: Rc, +} + +pub use PatternKind::*; +#[derive(Clone, Debug)] +pub enum PatternKind { + PIgnore, + POr(Pattern, Pattern), + PNoop(Pattern), + PRecord(Vector<(Name, Pattern)>), + PRecordConcat(Pattern, Pattern), + PArray(Vector), + PArrayConcat(Pattern, Pattern), + PTuple(Vector), + PConst(Const), + PVal(Name), + PVar(Name), + PVariant(Name, Vector, Name, Pattern), + PError, +} + +#[derive(Clone, Debug, Eq, PartialEq, Hash, PartialOrd, Ord)] +pub struct Type { + pub kind: Rc, +} + +pub use TypeKind::*; +#[derive(Clone, Debug)] +pub enum TypeKind { + TFun(Vector, Type), + TTuple(Vector, bool), + TRecord(Type), + TNominal(Name, Vector), + TAlias(Info, Info, Type), + TRowEmpty, + TRowExtend((Name, Type), Type), + TRecordConcat(Type, Type), + TGeneric(Name), + TArray(Type, Option), + TArrayConcat(Type, Type), + TUnit, + TNever, + TVar(Name), + TError, +} + +impl Ord for TypeKind { + fn cmp(&self, other: &Self) -> std::cmp::Ordering { + self.partial_cmp(other).unwrap_or(std::cmp::Ordering::Less) + } +} + +impl PartialOrd for TypeKind { + fn partial_cmp(&self, other: &Self) -> Option { + match (self, other) { + (TFun(ts0, t0), TFun(ts1, t1)) => ts0.partial_cmp(ts1).and_then(|o| { + if o == std::cmp::Ordering::Equal { + t0.partial_cmp(t1) + } else { + Some(o) + } + }), + (TTuple(ts, c0), TTuple(ts1, c1)) => ts.partial_cmp(ts1).and_then(|o| { + if o == std::cmp::Ordering::Equal { + c0.partial_cmp(c1) + } else { + Some(o) + } + }), + (TRecord(t0), TRecord(t1)) => t0.partial_cmp(t1), + (TNominal(x0, ts0), TNominal(x1, ts1)) => x0.partial_cmp(x1).and_then(|o| { + if o == std::cmp::Ordering::Equal { + ts0.partial_cmp(ts1) + } else { + Some(o) + } + }), + (TAlias(_, _, t0), TAlias(_, _, t1)) => t0.partial_cmp(t1), + (TRowEmpty, TRowEmpty) => Some(std::cmp::Ordering::Equal), + (TRowExtend(xt0, t0), TRowExtend(xt1, t1)) => xt0.partial_cmp(xt1).and_then(|o| { + if o == std::cmp::Ordering::Equal { + t0.partial_cmp(t1) + } else { + Some(o) + } + }), + (TRecordConcat(t00, t01), TRecordConcat(t10, t11)) => { + t00.partial_cmp(t10).and_then(|o| { + if o == std::cmp::Ordering::Equal { + t01.partial_cmp(t11) + } else { + Some(o) + } + }) + } + (TGeneric(x0), TGeneric(x1)) => x0.partial_cmp(x1), + (TArray(t0, n0), TArray(t1, n1)) => t0.partial_cmp(t1).and_then(|o| { + if o == std::cmp::Ordering::Equal { + n0.partial_cmp(n1) + } else { + Some(o) + } + }), + (TArrayConcat(t0, t1), TArrayConcat(t2, t3)) => t0.partial_cmp(t2).and_then(|o| { + if o == std::cmp::Ordering::Equal { + t1.partial_cmp(t3) + } else { + Some(o) + } + }), + (TUnit, TUnit) => Some(std::cmp::Ordering::Equal), + (TNever, TNever) => Some(std::cmp::Ordering::Equal), + (TVar(x0), TVar(x1)) => x0.partial_cmp(x1), + (TError, TError) => Some(std::cmp::Ordering::Equal), + _ => None, + } + } +} + +impl PartialEq for TypeKind { + fn eq(&self, other: &Self) -> bool { + match (self, other) { + (TFun(ts0, t0), TFun(ts1, t1)) => ts0 == ts1 && t0 == t1, + (TTuple(ts, c0), TTuple(ts1, c1)) => ts == ts1 && c0 == c1, + (TRecord(t0), TRecord(t1)) => t0 == t1, + (TNominal(x0, ts0), TNominal(x1, ts1)) => x0 == x1 && ts0 == ts1, + (TAlias(_, _, t0), TAlias(_, _, t1)) => t0 == t1, + (TRowEmpty, TRowEmpty) => true, + (TRowExtend(xt0, t0), TRowExtend(xt1, t1)) => xt0 == xt1 && t0 == t1, + (TRecordConcat(t00, t01), TRecordConcat(t10, t11)) => t00 == t10 && t01 == t11, + (TGeneric(x0), TGeneric(x1)) => x0 == x1, + (TArray(t0, n0), TArray(t1, n1)) => t0 == t1 && n0 == n1, + (TUnit, TUnit) => true, + (TNever, TNever) => true, + (TVar(x0), TVar(x1)) => x0 == x1, + (TError, TError) => true, + _ => false, + } + } +} + +impl Eq for TypeKind {} + +impl std::hash::Hash for TypeKind { + fn hash(&self, state: &mut H) { + match self { + TFun(a, b) => { + state.write_u8(0); + a.hash(state); + b.hash(state); + } + TTuple(a, b) => { + state.write_u8(1); + a.hash(state); + b.hash(state); + } + TRecord(a) => { + state.write_u8(2); + a.hash(state); + } + TNominal(a, b) => { + state.write_u8(3); + a.hash(state); + b.hash(state); + } + TAlias(a, b, c) => { + c.hash(state); + } + TRowEmpty => { + state.write_u8(5); + } + TRowExtend(a, b) => { + state.write_u8(6); + a.hash(state); + b.hash(state); + } + TRecordConcat(a, b) => { + state.write_u8(7); + a.hash(state); + b.hash(state); + } + TGeneric(a) => { + state.write_u8(8); + a.hash(state); + } + TArray(a, b) => { + state.write_u8(9); + a.hash(state); + b.hash(state); + } + TArrayConcat(t0, t1) => { + state.write_u8(10); + t0.hash(state); + t1.hash(state); + } + TUnit => { + state.write_u8(11); + } + TNever => { + state.write_u8(12); + } + TVar(a) => { + state.write_u8(13); + a.hash(state); + } + TError => { + state.write_u8(14); + } + } + } +} + +pub use Const::*; +#[derive(Clone, Debug)] +pub enum Const { + CInt(i32), + CFloat(f32), + CBool(bool), + CString(String), + CUnit, + CChar(char), +} + +impl Eq for Const {} +impl PartialEq for Const { + fn eq(&self, other: &Self) -> bool { + match (self, other) { + (CInt(a), CInt(b)) => a == b, + (CFloat(a), CFloat(b)) => a == b, + (CBool(a), CBool(b)) => a == b, + (CString(a), CString(b)) => a == b, + (CUnit, CUnit) => true, + (CChar(a), CChar(b)) => a == b, + _ => false, + } + } +} + +#[derive(Clone, Debug)] +pub struct Stmt { + pub info: Info, + pub kind: StmtKind, +} + +pub use StmtKind::*; +#[derive(Clone, Debug)] +pub enum StmtKind { + SDef(Meta, Name, Vector, Vector, Type, Block), + SRecDef( + Meta, + Vector<(Name, Vector, Vector, Type, Block)>, + ), + SBif(Meta, Name, Vector, Vector, Type), + SEnum(Meta, Name, Vector, Vector<(Name, Type)>), + SBit(Meta, Name, Vector), + SVal(Pattern, Expr), + SExpr(Expr), + SNoop, +} + +#[derive(Clone, Debug)] +pub struct Expr { + pub info: Info, + pub t: Type, + pub kind: Rc, +} + +pub use ExprKind::*; +#[derive(Clone, Debug)] +pub enum ExprKind { + EConst(Const), + EFun(Vector, Type, Block), + EFunCall(Expr, Vector), + EFunCallDirect(Name, Vector, Vector), + EFunReturn(Expr), + ELoop(Block), + ELoopBreak(Expr), + ELoopContinue, + EMatch(Expr, Vector), + EArray(Vector), + EArrayConcat(Expr, Expr), + EArrayAccess(Expr, Expr), + EIfElse(Expr, Block, Block), + ERecord(Vector<(Name, Expr)>), + ERecordAccess(Expr, Name), + ERecordConcat(Expr, Expr), + EMut(Expr, Expr), + EVal(Name), + EVar(Name), + EDef(Name, Vector), + EVariant(Name, Vector, Name, Expr), + EVariantAccess(Name, Vector, Name, Expr), // After pattern compilation + EVariantCheck(Name, Vector, Name, Expr), + EDo(Block), + ENoop(Expr), + ETuple(Vector), + ETupleAccess(Expr, Index), + EFor(Pattern, Expr, Block), + EWhile(Expr, Block), + EError, +} + +impl From for Type { + fn from(kind: TypeKind) -> Self { + Type { + kind: Rc::new(kind), + } + } +} + +impl ExprKind { + pub fn with(self, t: Type, info: Info) -> Expr { + Expr { + t, + info, + kind: Rc::new(self), + } + } +} + +impl PatternKind { + pub fn with(self, t: Type, info: Info) -> Pattern { + Pattern { + t, + info, + kind: Rc::new(self), + } + } +} + +impl Type { + pub fn kind(&self) -> TypeKind { + (*self.kind).clone() + } +} + +impl Expr { + pub fn kind(&self) -> ExprKind { + (*self.kind).clone() + } + pub fn map_type(self, f: &impl Fn(Type) -> Type) -> Self { + let t = f(self.t.clone()); + match self.kind() { + EConst(l) => EConst(l), + EMut(l, r) => EMut(l.map_type(f), r.map_type(f)), + EDo(b) => EDo(b.map_type(f)), + EFun(ps, t, b) => EFun(ps.map(|p| p.map_type(f)), f(t), b.map_type(f)), + EFunCall(e, es) => { + let e = e.map_type(f); + let es = es.map(|e| e.map_type(f)); + EFunCall(e, es) + } + EFunCallDirect(x, ts, es) => { + let ts = ts.map(f); + let es = es.map(|e| e.map_type(f)); + EFunCallDirect(x, ts, es) + } + ELoop(b) => ELoop(b.map_type(f)), + ELoopBreak(e) => ELoopBreak(e.map_type(f)), + ELoopContinue => ELoopContinue, + EMatch(e, arms) => { + let e = e.map_type(f); + let arms = arms.map(|(p, b)| (p.map_type(f), b.map_type(f))); + EMatch(e, arms) + } + ERecord(xes) => { + let xes = xes.map(|(x, e)| (x, e.map_type(f))); + ERecord(xes) + } + ERecordAccess(e, x) => { + let e = e.map_type(f); + ERecordAccess(e, x) + } + EFunReturn(e) => { + let e = e.map_type(f); + EFunReturn(e) + } + EVal(x) => EVal(x), + EVariant(xs, ts, x, e) => { + let e = e.map_type(f); + let ts = ts.map(f); + EVariant(xs, ts, x, e) + } + ENoop(e) => { + let e = e.map_type(f); + ENoop(e) + } + EIfElse(e, b0, b1) => { + let e = e.map_type(f); + let b0 = b0.map_type(f); + let b1 = b1.map_type(f); + EIfElse(e, b0, b1) + } + EArray(es) => { + let es = es.map(|e| e.map_type(f)); + EArray(es) + } + EArrayAccess(e0, e1) => { + let e0 = e0.map_type(f); + let e1 = e1.map_type(f); + EArrayAccess(e0, e1) + } + EDef(x, ts) => EDef(x, ts.map(f)), + EVar(x) => EVar(x), + EError => EError, + ETuple(es) => ETuple(es.map(|e| e.map_type(f))), + ETupleAccess(e, i) => ETupleAccess(e.map_type(f), i), + EFor(p, e, b) => EFor(p.map_type(f), e.map_type(f), b.map_type(f)), + EWhile(e, b) => EWhile(e.map_type(f), b.map_type(f)), + ERecordConcat(e0, e1) => ERecordConcat(e0.map_type(f), e1.map_type(f)), + EVariantAccess(..) => unreachable!(), + EVariantCheck(_, _, _, _) => unreachable!(), + EArrayConcat(e0, e1) => EArrayConcat(e0.map_type(f), e1.map_type(f)), + } + .with(t, self.info) + } +} + +impl Block { + pub fn map_type(mut self, f: &impl Fn(Type) -> Type) -> Self { + self.ss = self.ss.map(|s| s.map_type(f)); + self.e = self.e.map_type(f); + self + } +} + +impl Stmt { + pub fn map_type(self, f: &impl Fn(Type) -> Type) -> Self { + match self.kind { + SVal(p, e) => { + let p = p.map_type(f); + let e = e.map_type(f); + SVal(p, e) + } + SExpr(e) => { + let e = e.map_type(f); + SExpr(e) + } + SDef(m, x, gs, ps, t, b) => { + let ps = ps.map(|p| p.map_type(f)); + let t = f(t); + let b = b.map_type(f); + SDef(m, x, gs, ps, t, b) + } + SBif(m, x, gs, ts, t) => { + let ts = ts.map(f); + let t = f(t); + SBif(m, x, gs, ts, t) + } + SEnum(m, x, gs, xts) => { + let xts = xts.map(|(x, t)| (x, f(t))); + SEnum(m, x, gs, xts) + } + SBit(m, x, gs) => SBit(m, x, gs), + SNoop => SNoop, + SRecDef(m, ds) => todo!(), + } + .with(self.info) + } +} + +impl StmtKind { + pub fn with(self, info: Info) -> Stmt { + Stmt { info, kind: self } + } +} + +impl Pattern { + pub fn kind(&self) -> PatternKind { + (*self.kind).clone() + } + + pub fn map_type(self, f: &impl Fn(Type) -> Type) -> Self { + let t = f(self.t.clone()); + match self.kind() { + PConst(l) => PConst(l), + PVar(x) => PVar(x), + PVal(x) => PVal(x), + PRecord(xps) => { + let xps = xps.map(|(x, p)| (x, p.map_type(f))); + PRecord(xps) + } + PRecordConcat(p0, p1) => { + let p0 = p0.map_type(f); + let p1 = p1.map_type(f); + PRecordConcat(p0, p1) + } + PTuple(ps) => { + let ps = ps.map(|p| p.map_type(f)); + PTuple(ps) + } + PIgnore => PIgnore, + PVariant(xs, ts, x, p) => { + let p = p.map_type(f); + let ts = ts.map(f); + PVariant(xs, ts, x, p) + } + POr(p0, p1) => { + let p0 = p0.map_type(f); + let p1 = p1.map_type(f); + POr(p0, p1) + } + PNoop(p) => { + let p = p.map_type(f); + PNoop(p) + } + PArray(ps) => { + let ps = ps.map(|p| p.map_type(f)); + PArray(ps) + } + PArrayConcat(p0, p1) => { + let p0 = p0.map_type(f); + let p1 = p1.map_type(f); + PArrayConcat(p0, p1) + } + PError => PError, + } + .with(t, self.info) + } +} + +pub fn row_to_fields(t: Type) -> Vector<(Name, Type)> { + fn f(t: Type, xts: &mut Vector<(Name, Type)>) { + match t.kind.as_ref().clone() { + TRowEmpty => {} + TRowExtend((x, t), r) => { + xts.push_back((x, t)); + f(r, xts); + } + _ => unreachable!(), + } + } + let mut xts = Vector::new(); + f(t, &mut xts); + xts +} + +pub fn fields_to_row(xts: Vector<(Name, Type)>) -> Type { + xts.into_iter() + .fold(TypeKind::TRowEmpty.into(), |r, (x, t)| { + TypeKind::TRowExtend((x, t).into(), r).into() + }) +} diff --git a/arc-lang/crates/compiler/irs/mlir/Cargo.toml b/arc-lang/crates/compiler/irs/mlir/Cargo.toml new file mode 100644 index 000000000..08faec292 --- /dev/null +++ b/arc-lang/crates/compiler/irs/mlir/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "mlir" +version.workspace = true +edition.workspace = true + +[dependencies] +value.workspace = true +info.workspace = true +codegen.workspace = true +im-rc.workspace = true diff --git a/arc-lang/crates/compiler/irs/mlir/src/lib.rs b/arc-lang/crates/compiler/irs/mlir/src/lib.rs new file mode 100644 index 000000000..64898417a --- /dev/null +++ b/arc-lang/crates/compiler/irs/mlir/src/lib.rs @@ -0,0 +1,132 @@ +// use hir_value::Dataflow; +use im_rc::OrdMap; +use im_rc::Vector; +use std::hash::Hash; +use std::rc::Rc; + +pub type Name = String; +pub type Index = i128; +pub type Generic = Name; +pub type Meta = OrdMap>; + +#[derive(Clone, Debug)] +pub struct Item { + pub meta: Meta, + pub kind: ItemKind, +} +pub use ItemKind::*; +#[derive(Clone, Debug)] +pub enum ItemKind { + IDef(Name, Vector, Type, Block), + IExternDef(Name, Vector, Type), + // IDataflow(Dataflow), + IError, +} + +pub use Const::*; +#[derive(Clone, Debug)] +pub enum Const { + CInt(i32), + CFloat(f32), + CBool(bool), + CString(String), + CUnit, + CChar(char), +} + +#[derive(Clone, Debug)] +pub struct Val { + pub kind: ValKind, + pub t: Type, +} + +pub use ValKind::*; +#[derive(Clone, Debug)] +pub enum ValKind { + VName(Name), + VError, +} + +impl ValKind { + pub fn with(self, t: Type) -> Val { + Val { kind: self, t } + } +} + +#[derive(Clone, Debug)] +pub struct Block { + pub ss: Vector, +} + +impl Block { + pub fn new(ss: Vector) -> Self { + Block { ss } + } +} + +#[derive(Clone, Debug, Hash, Eq, PartialEq)] +pub struct Type { + pub kind: Rc, +} + +pub use TypeKind::*; +#[derive(Clone, Debug, Eq, Hash, PartialEq)] +pub enum TypeKind { + TFun(Vector, Type), + TRecord(Vector<(Name, Type)>), + TEnum(Vector<(Name, Type)>), + TNative(Name, Vector), + TAdt(Name, Vector), + TError, +} + +#[derive(Clone, Debug)] +pub struct Stmt { + pub vs: Vector, + pub kind: StmtKind, +} + +pub use StmtKind::*; +#[derive(Clone, Debug)] +pub enum StmtKind { + SConst(Const), + SFun(Name), + SFunCallDirect(Name, Vector), + SFunCallIndirect(Val, Vector), + SIfElse(Val, Block, Block), + SRecord(Vector<(Name, Val)>), + SRecordAccess(Val, Name), + SVariant(Name, Val), + SVariantAccess(Name, Val), + SVariantCheck(Name, Val), + SWhile(Vector, Vector, Block, Block), + SWhileBreak(Vector), + SWhileContinue(Vector), + SWhileYield(Vector), + SBlockResult(Val), + SFunReturn(Val), + SError, +} + +impl From for Type { + fn from(kind: TypeKind) -> Type { + Type { + kind: Rc::new(kind), + } + } +} + +impl ItemKind { + pub fn with(self, meta: Meta) -> Item { + Item { kind: self, meta } + } +} + +impl StmtKind { + pub fn with(self, vs: impl IntoIterator) -> Stmt { + Stmt { + vs: vs.into_iter().collect(), + kind: self, + } + } +} diff --git a/arc-lang/crates/compiler/irs/rust/Cargo.toml b/arc-lang/crates/compiler/irs/rust/Cargo.toml new file mode 100644 index 000000000..07875ee88 --- /dev/null +++ b/arc-lang/crates/compiler/irs/rust/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "rust" +version.workspace = true +edition.workspace = true + +[dependencies] +im-rc.workspace = true +value.workspace = true +info.workspace = true diff --git a/arc-lang/crates/compiler/irs/rust/src/lib.rs b/arc-lang/crates/compiler/irs/rust/src/lib.rs new file mode 100644 index 000000000..c09beb387 --- /dev/null +++ b/arc-lang/crates/compiler/irs/rust/src/lib.rs @@ -0,0 +1,129 @@ +use im_rc::OrdMap; +use im_rc::Vector; +use info::Info; +use std::hash::Hash; +use std::rc::Rc; + +pub type Name = String; +pub type Index = i128; +pub type Generic = Name; +pub type Meta = OrdMap>; + +#[derive(Clone, Debug)] +pub struct Item { + pub info: Info, + pub kind: ItemKind, +} +pub use ItemKind::*; +#[derive(Clone, Debug)] +pub enum ItemKind { + IDef(Meta, Name, Vector, Type, Block), + IEnum(Meta, Name, Vector<(Name, Type)>), + IStruct(Name, Vector<(Name, Type)>), + IError, +} + +pub use Const::*; +#[derive(Clone, Debug)] +pub enum Const { + CInt(i32), + CFloat(f32), + CBool(bool), + CString(String), + CUnit, + CChar(char), +} + +#[derive(Clone, Debug)] +pub struct Val { + pub kind: ValKind, + pub t: Type, +} + +pub use ValKind::*; +#[derive(Clone, Debug)] +pub enum ValKind { + VName(Name), + VError, +} + +impl ValKind { + pub fn with(self, t: Type) -> Val { + Val { kind: self, t } + } +} + +#[derive(Clone, Debug)] +pub struct Block { + pub ss: Vector, +} + +impl Block { + pub fn new(ss: Vector) -> Self { + Block { ss } + } +} + +#[derive(Clone, Debug, Hash, Eq, PartialEq)] +pub struct Type { + pub kind: Rc, +} + +pub use TypeKind::*; +#[derive(Clone, Debug, Eq, Hash, PartialEq)] +pub enum TypeKind { + TFun(Vector, Type), + TNominal(Name, Vector), + TError, +} + +#[derive(Clone, Debug)] +pub struct Stmt { + pub vs: Vector, + pub kind: StmtKind, +} + +pub use StmtKind::*; +#[derive(Clone, Debug)] +pub enum StmtKind { + SConst(Const), + SFun(Name), + SFunCallDirect(Name, Vector), + SFunCallIndirect(Val, Vector), + SIfElse(Val, Block, Block), + SStruct(Name, Vector<(Name, Val)>), + SStructAccess(Val, Name), + SVariant(Name, Val), + SVariantAccess(Name, Val), + SVariantCheck(Name, Val), + SWhile(Vector, Vector, Block, Block), + SWhileBreak(Vector), + SWhileContinue(Vector), + SWhileYield(Vector), + SBlockResult(Val), + SFunReturn(Val), + SError, +} + +impl From for Type { + fn from(kind: TypeKind) -> Type { + Type { + kind: Rc::new(kind), + } + } +} + +impl ItemKind { + pub fn with(self, info: Info) -> Item { + Item { kind: self, info } + } +} + +impl StmtKind { + pub fn with(self, vs: impl IntoIterator) -> Stmt { + Stmt { + vs: vs.into_iter().collect(), + kind: self, + } + } +} diff --git a/arc-lang/crates/compiler/irs/value/Cargo.toml b/arc-lang/crates/compiler/irs/value/Cargo.toml new file mode 100644 index 000000000..6125898fd --- /dev/null +++ b/arc-lang/crates/compiler/irs/value/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "value" +version.workspace = true +edition.workspace = true + +[dependencies] +serde.workspace = true +builtins.workspace = true +im-rc.workspace = true +hir.workspace = true +ast.workspace = true +info.workspace = true + +[dev-dependencies] +serde_json.workspace = true diff --git a/arc-lang/crates/compiler/irs/value/rustfmt.toml b/arc-lang/crates/compiler/irs/value/rustfmt.toml new file mode 100644 index 000000000..1116a3d48 --- /dev/null +++ b/arc-lang/crates/compiler/irs/value/rustfmt.toml @@ -0,0 +1,2 @@ +max_width = 200 +fn_call_width = 200 diff --git a/arc-lang/crates/compiler/irs/value/src/conv.rs b/arc-lang/crates/compiler/irs/value/src/conv.rs new file mode 100644 index 000000000..5c4f170b1 --- /dev/null +++ b/arc-lang/crates/compiler/irs/value/src/conv.rs @@ -0,0 +1,96 @@ +use builtins::aggregator::Aggregator; +use builtins::blob::Blob; +use builtins::dict::Dict; +use builtins::discretizer::Discretizer; +use builtins::duration::Duration; +use builtins::encoding::Encoding; +use builtins::file::File; +use builtins::model::Model; +use builtins::path::Path; +use builtins::reader::Reader; +use builtins::set::Set; +use builtins::socket::SocketAddr; +use builtins::time::Time; +use builtins::time_source::TimeSource; +use builtins::url::Url; +use builtins::writer::Writer; + +use crate::dynamic::Array; +use crate::dynamic::Dataflow; +use crate::dynamic::Function; +use crate::dynamic::Instance; +use crate::dynamic::Matrix; +use crate::dynamic::Record; +use crate::dynamic::Stream; +use crate::dynamic::Tuple; +use crate::dynamic::Variant; +use crate::Value; +use crate::ValueKind; + +macro_rules! conv { + { + $type:ty, $variant:ident, $as:ident + } => { + impl Value { + #[track_caller] + pub fn $as(&self) -> $type { + if let ValueKind::$variant(v) = &*self.kind { + v.clone() + } else { + unreachable!("{}{:?}", std::panic::Location::caller(), self); + } + } + } + impl From<$type> for Value { + fn from(v: $type) -> Self { + Value::new(ValueKind::$variant(v)) + } + } + } +} + +conv!((), VUnit, as_unit); +conv!(Array, VArray, as_array); +conv!(Tuple, VTuple, as_tuple); +conv!(Function, VFunction, as_function); +conv!(Matrix, VMatrix, as_matrix); +conv!(Record, VRecord, as_record); +conv!(Stream, VStream, as_stream); +conv!(Variant, VVariant, as_variant); +conv!(bool, VBool, as_bool); +conv!(Aggregator, VAggregator, as_aggregator); +conv!(Blob, VBlob, as_blob); +conv!(Dict, VDict, as_dict); +conv!(Discretizer, VDiscretizer, as_discretizer); +conv!(Duration, VDuration, as_duration); +conv!(Dataflow, VDataflow, as_dataflow); +conv!(Encoding, VEncoding, as_encoding); +conv!(File, VFile, as_file); +conv!(Model, VModel, as_model); +conv!(builtins::option::Option, VOption, as_option); +conv!(Path, VPath, as_path); +conv!(Reader, VReader, as_reader); +conv!(builtins::result::Result, VResult, as_result); +conv!(Set, VSet, as_set); +conv!(SocketAddr, VSocketAddr, as_socket_addr); +conv!(builtins::string::String, VString, as_string); +conv!(Time, VTime, as_time); +conv!(TimeSource, VTimeSource, as_time_source); +conv!(Url, VUrl, as_url); +conv!(builtins::vec::Vec, VVec, as_vec); +conv!(Writer, VWriter, as_writer); +conv!(char, VChar, as_char); +conv!(f32, VF32, as_f32); +conv!(f64, VF64, as_f64); +conv!(i128, VI128, as_i128); +conv!(i16, VI16, as_i16); +conv!(i32, VI32, as_i32); +conv!(i64, VI64, as_i64); +conv!(i8, VI8, as_i8); +conv!(u128, VU128, as_u128); +conv!(u16, VU16, as_u16); +conv!(u32, VU32, as_u32); +conv!(u64, VU64, as_u64); +conv!(u8, VU8, as_u8); +conv!(usize, VUsize, as_usize); +conv!(Instance, VInstance, as_instance); diff --git a/arc-lang/crates/compiler/irs/value/src/de.rs b/arc-lang/crates/compiler/irs/value/src/de.rs new file mode 100644 index 000000000..93debf35d --- /dev/null +++ b/arc-lang/crates/compiler/irs/value/src/de.rs @@ -0,0 +1,317 @@ +use hir::Type; +use serde::de::DeserializeSeed; +use serde::de::MapAccess; +use serde::de::VariantAccess; +use serde::de::Visitor; +use serde::Deserializer; + +use crate::*; + +pub struct Seed(pub Type); + +impl<'de> DeserializeSeed<'de> for Seed { + type Value = Value; + + fn deserialize(self, deserializer: D) -> Result + where + D: Deserializer<'de>, + { + match self.0.kind.as_ref() { + hir::TFun(_, _) => unreachable!(), + hir::TTuple(ts, _) => { + struct TupleVisitor(Vector); + impl<'de> Visitor<'de> for TupleVisitor { + type Value = Value; + + fn expecting(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result { + write!(formatter, "a tuple of length {}", self.0.len()) + } + + fn visit_seq(self, mut seq: A) -> Result + where + A: serde::de::SeqAccess<'de>, + { + let mut v = Vector::new(); + for t in self.0 { + let context = Seed(t); + v.push_back(seq.next_element_seed(context)?.unwrap()); + } + Ok(Value::from(Tuple(v))) + } + } + deserializer.deserialize_tuple(ts.len(), TupleVisitor(ts.clone())) + } + hir::TRecord(t) => { + struct RecordVisitor(HashMap); + impl<'de> Visitor<'de> for RecordVisitor { + type Value = Value; + + fn expecting(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result { + write!(formatter, "a record with fields {:?}", self.0) + } + + fn visit_map(mut self, mut map: A) -> Result + where + A: MapAccess<'de>, + { + let mut result = HashMap::new(); + while !self.0.is_empty() { + let k = map.next_key()?.unwrap(); + if let Some(t) = self.0.remove(&k) { + result.insert(k, map.next_value_seed(Seed(t))?); + } else { + return Err(serde::de::Error::custom("Found unexpected field")); + } + } + Ok(Value::from(Record(result))) + } + } + deserializer.deserialize_map(RecordVisitor( + hir::row_to_fields(t.clone()).into_iter().collect(), + )) + } + hir::TNominal(x, ts) => match x.as_str() { + "i8" => i8::deserialize(deserializer).map(Value::from), + "i16" => i16::deserialize(deserializer).map(Value::from), + "i32" => i32::deserialize(deserializer).map(Value::from), + "i64" => i64::deserialize(deserializer).map(Value::from), + "u8" => u8::deserialize(deserializer).map(Value::from), + "u16" => u16::deserialize(deserializer).map(Value::from), + "u32" => u32::deserialize(deserializer).map(Value::from), + "u64" => u64::deserialize(deserializer).map(Value::from), + "usize" => usize::deserialize(deserializer).map(Value::from), + "f32" => f32::deserialize(deserializer).map(Value::from), + "f64" => f64::deserialize(deserializer).map(Value::from), + "bool" => bool::deserialize(deserializer).map(Value::from), + "char" => char::deserialize(deserializer).map(Value::from), + "String" => String::deserialize(deserializer) + .map(builtins::string::String::from) + .map(Value::from), + "Dict" => { + struct DictVisitor(Type, Type); + impl<'de> Visitor<'de> for DictVisitor { + type Value = Value; + + fn expecting( + &self, + formatter: &mut std::fmt::Formatter, + ) -> std::fmt::Result { + write!(formatter, "a dict") + } + + fn visit_map(self, mut map: A) -> Result + where + A: MapAccess<'de>, + { + let mut result = std::collections::HashMap::new(); + while let Some((k, v)) = + map.next_entry_seed(Seed(self.0.clone()), Seed(self.1.clone()))? + { + result.insert(k, v); + } + Ok(Value::from(builtins::dict::Dict::from(result))) + } + } + let k = ts[0].clone(); + let v = ts[1].clone(); + deserializer.deserialize_map(DictVisitor(k, v)) + } + "Set" => { + struct SetVisitor(Type); + impl<'de> Visitor<'de> for SetVisitor { + type Value = Value; + + fn expecting( + &self, + formatter: &mut std::fmt::Formatter, + ) -> std::fmt::Result { + write!(formatter, "a set") + } + + fn visit_seq(self, mut seq: A) -> Result + where + A: serde::de::SeqAccess<'de>, + { + let mut result = std::collections::HashSet::new(); + while let Some(v) = seq.next_element_seed(Seed(self.0.clone()))? { + result.insert(v); + } + Ok(Value::from(builtins::set::Set::from(result))) + } + } + let t = ts[0].clone(); + deserializer.deserialize_seq(SetVisitor(t)) + } + "Time" => builtins::time::Time::deserialize(deserializer).map(Value::from), + "Duration" => { + builtins::duration::Duration::deserialize(deserializer).map(Value::from) + } + "Url" => builtins::url::Url::deserialize(deserializer).map(Value::from), + "Path" => builtins::path::Path::deserialize(deserializer).map(Value::from), + "Blob" => builtins::blob::Blob::deserialize(deserializer).map(Value::from), + "Option" => { + struct OptionVisitor(Type); + impl<'de> Visitor<'de> for OptionVisitor { + type Value = Value; + + fn expecting( + &self, + formatter: &mut std::fmt::Formatter, + ) -> std::fmt::Result { + write!(formatter, "an option") + } + + fn visit_some(self, deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let v = Seed(self.0).deserialize(deserializer)?; + Ok(Value::from(builtins::option::Option::some(v))) + } + + fn visit_none(self) -> Result { + Ok(Value::from(builtins::option::Option::none())) + } + } + let t = ts[0].clone(); + deserializer.deserialize_option(OptionVisitor(t)) + } + "Result" => { + struct ResultVisitor(Type); + impl<'de> Visitor<'de> for ResultVisitor { + type Value = Value; + + fn expecting( + &self, + formatter: &mut std::fmt::Formatter, + ) -> std::fmt::Result { + write!(formatter, "a result") + } + + fn visit_enum(self, data: A) -> Result + where + A: serde::de::EnumAccess<'de>, + { + let (v, variant) = data.variant()?; + println!("->{:?}", v); + match v { + "Ok" => { + let v = variant.newtype_variant_seed(Seed(self.0.clone()))?; + Ok(Value::from(builtins::result::Result::ok(v))) + } + "Err" => { + let v = variant.newtype_variant()?; + Ok(Value::from(builtins::result::Result::error(v))) + } + _ => unreachable!(), + } + } + } + let t = ts[0].clone(); + deserializer.deserialize_enum("Result", &["Ok", "Err"], ResultVisitor(t)) + } + "Vec" => { + struct VecVisitor(Type); + impl<'de> Visitor<'de> for VecVisitor { + type Value = Value; + + fn expecting( + &self, + formatter: &mut std::fmt::Formatter, + ) -> std::fmt::Result { + write!(formatter, "a vec") + } + + fn visit_seq(self, mut seq: A) -> Result + where + A: serde::de::SeqAccess<'de>, + { + let mut result = Vec::new(); + while let Some(v) = seq.next_element_seed(Seed(self.0.clone()))? { + result.push(v); + } + Ok(Value::from(builtins::vec::Vec::from(result))) + } + } + let t = ts[0].clone(); + deserializer.deserialize_seq(VecVisitor(t)) + } + "Matrix" => { + let hir::TNominal(x, _) = ts[0].kind.as_ref() else { + unreachable!() + }; + let m = match x.as_str() { + "i8" => { + Matrix::I8(builtins::matrix::Matrix::::deserialize(deserializer)?) + } + "i16" => { + Matrix::I16(builtins::matrix::Matrix::::deserialize(deserializer)?) + } + "i32" => { + Matrix::I32(builtins::matrix::Matrix::::deserialize(deserializer)?) + } + "i64" => { + Matrix::I64(builtins::matrix::Matrix::::deserialize(deserializer)?) + } + "u8" => { + Matrix::U8(builtins::matrix::Matrix::::deserialize(deserializer)?) + } + "u16" => { + Matrix::U16(builtins::matrix::Matrix::::deserialize(deserializer)?) + } + "u32" => { + Matrix::U32(builtins::matrix::Matrix::::deserialize(deserializer)?) + } + "u64" => { + Matrix::U64(builtins::matrix::Matrix::::deserialize(deserializer)?) + } + "f32" => { + Matrix::F32(builtins::matrix::Matrix::::deserialize(deserializer)?) + } + "f64" => { + Matrix::F64(builtins::matrix::Matrix::::deserialize(deserializer)?) + } + _ => unreachable!(), + }; + Ok(Value::from(m)) + } + _ => unreachable!("Attempted to deserialize undeserializable type {:?}", x), + }, + hir::TAlias(_, _, _) => todo!(), + hir::TRowEmpty => unreachable!(), + hir::TRowExtend(_, _) => unreachable!(), + hir::TRecordConcat(_, _) => unreachable!(), + hir::TGeneric(_) => unreachable!(), + hir::TArray(t, n) => { + struct ArrayVisitor(Type); + impl<'de> Visitor<'de> for ArrayVisitor { + type Value = Value; + + fn expecting(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result { + write!(formatter, "an array") + } + + fn visit_seq(self, mut seq: A) -> Result + where + A: serde::de::SeqAccess<'de>, + { + let mut result = Vector::new(); + while let Some(v) = seq.next_element_seed(Seed(self.0.clone()))? { + result.push_back(v); + } + Ok(Value::from(Array(result))) + } + } + let n = n.unwrap() as usize; + deserializer.deserialize_tuple(n, ArrayVisitor(t.clone())) + } + hir::TArrayConcat(_, _) => unreachable!(), + hir::TUnit => <() as Deserialize>::deserialize(deserializer).map(Value::from), + hir::TNever => unreachable!(), + hir::TVar(_) => Err(serde::de::Error::custom( + "Attempted to deserialize a type variable", + )), + hir::TError => unreachable!(), + } + } +} diff --git a/arc-lang/crates/compiler/irs/value/src/dynamic.rs b/arc-lang/crates/compiler/irs/value/src/dynamic.rs new file mode 100644 index 000000000..b750c73ae --- /dev/null +++ b/arc-lang/crates/compiler/irs/value/src/dynamic.rs @@ -0,0 +1,199 @@ +use std::cell::RefCell; +use std::rc::Rc; + +use ast::Name; +use builtins::aggregator::Aggregator; +use builtins::discretizer::Discretizer; +use builtins::encoding::Encoding; +use builtins::path::Path; +use builtins::reader::Reader; +use builtins::time_source::TimeSource; +use builtins::writer::Writer; +use im_rc::vector; +use im_rc::HashMap; +use im_rc::OrdMap; +use im_rc::OrdSet; +use im_rc::Vector; +use serde::Deserialize; +use serde::Serialize; + +use crate::Value; + +#[derive(Debug, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize)] +pub struct Array(pub Vector); + +#[derive(Debug, Clone, Eq, PartialEq, Ord, PartialOrd, Serialize, Deserialize)] +pub struct Function(pub Name); + +#[derive(Debug, Clone, Serialize)] +#[serde(untagged)] +pub enum Matrix { + I8(builtins::matrix::Matrix), + I16(builtins::matrix::Matrix), + I32(builtins::matrix::Matrix), + I64(builtins::matrix::Matrix), + U8(builtins::matrix::Matrix), + U16(builtins::matrix::Matrix), + U32(builtins::matrix::Matrix), + U64(builtins::matrix::Matrix), + F32(builtins::matrix::Matrix), + F64(builtins::matrix::Matrix), +} + +impl Matrix { + fn as_i8(self) -> builtins::matrix::Matrix { + match self { + Matrix::I8(v) => v, + _ => unreachable!(), + } + } + fn as_i16(self) -> builtins::matrix::Matrix { + match self { + Matrix::I16(v) => v, + _ => unreachable!(), + } + } + fn as_i32(self) -> builtins::matrix::Matrix { + match self { + Matrix::I32(v) => v, + _ => unreachable!(), + } + } + fn as_i64(self) -> builtins::matrix::Matrix { + match self { + Matrix::I64(v) => v, + _ => unreachable!(), + } + } + fn as_u8(self) -> builtins::matrix::Matrix { + match self { + Matrix::U8(v) => v, + _ => unreachable!(), + } + } + fn as_u16(self) -> builtins::matrix::Matrix { + match self { + Matrix::U16(v) => v, + _ => unreachable!(), + } + } + fn as_u32(self) -> builtins::matrix::Matrix { + match self { + Matrix::U32(v) => v, + _ => unreachable!(), + } + } + fn as_u64(self) -> builtins::matrix::Matrix { + match self { + Matrix::U64(v) => v, + _ => unreachable!(), + } + } + fn as_f32(self) -> builtins::matrix::Matrix { + match self { + Matrix::F32(v) => v, + _ => unreachable!(), + } + } + fn as_f64(self) -> builtins::matrix::Matrix { + match self { + Matrix::F64(v) => v, + _ => unreachable!(), + } + } +} + +#[macro_export] +macro_rules! map_matrix { + { $v:expr, $f:expr } => { + match $v { + Matrix::I8(v) => $f(v), + Matrix::I16(v) => $f(v), + Matrix::I32(v) => $f(v), + Matrix::I64(v) => $f(v), + Matrix::U8(v) => $f(v), + Matrix::U16(v) => $f(v), + Matrix::U32(v) => $f(v), + Matrix::U64(v) => $f(v), + Matrix::F32(v) => $f(v), + Matrix::F64(v) => $f(v), + } + } +} + +#[derive(Debug, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize)] +pub struct Record(pub HashMap); + +#[derive(Debug, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize)] +pub struct Tuple(pub Vector); + +#[derive(Debug, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize)] +pub struct Variant { + pub x: Name, + pub v: Value, +} + +#[derive(Debug, Clone)] +pub struct Stream { + pub prefix: Vector, + pub name: Name, + pub kind: Rc, +} + +impl Stream { + pub fn extend(self, name: Name, kind: StreamKind) -> Self { + let mut prefix = self.prefix.clone(); + prefix.push_back(self); + Self { prefix, name, kind: Rc::new(kind) } + } + + pub fn new(name: Name, kind: StreamKind) -> Self { + Self { + prefix: vector![], + name, + kind: Rc::new(kind), + } + } +} + +pub use StreamKind::*; +#[derive(Debug, Clone)] +pub enum StreamKind { + DSource(Reader, Encoding, TimeSource), + DMap(Name, Function), + DFilter(Name, Function), + DFlatten(Name), + DFlatMap(Name, Function), + DScan(Name, Function), + DKeyby(Name, Function), + DUnkey(Name), + DApply(Name, Function), + DWindow(Name, Discretizer, Aggregator), + DMerge(Vector), +} + +#[derive(Debug, Clone)] +pub struct Dataflow { + pub streams: Vector, + pub sinks: Vector, +} + +#[derive(Debug, Clone)] +pub struct Instance { + pub log: Path, +} + +impl Dataflow { + pub fn new(streams: Vector, sinks: Vector) -> Self { + Self { streams, sinks } + } +} + +#[derive(Debug, Clone)] +pub struct Sink(pub Rc<(Name, Writer, Encoding)>); + +impl Sink { + pub fn new(stream: Name, writer: Writer, encoding: Encoding) -> Self { + Self(Rc::new((stream, writer, encoding))) + } +} diff --git a/arc-lang/crates/compiler/irs/value/src/eq.rs b/arc-lang/crates/compiler/irs/value/src/eq.rs new file mode 100644 index 000000000..da5ed40d8 --- /dev/null +++ b/arc-lang/crates/compiler/irs/value/src/eq.rs @@ -0,0 +1,67 @@ +use crate::*; + +impl PartialEq for Value { + fn eq(&self, other: &Self) -> bool { + match (self.kind.as_ref(), other.kind.as_ref()) { + (VAggregator(a), VAggregator(b)) => unreachable!(), + (VArray(a), VArray(b)) => a == b, + (VBlob(a), VBlob(b)) => unreachable!(), + (VBool(a), VBool(b)) => a == b, + (VChar(a), VChar(b)) => a == b, + (VDiscretizer(a), VDiscretizer(b)) => unreachable!(), + (VDuration(a), VDuration(b)) => a == b, + (VEncoding(a), VEncoding(b)) => a == b, + (VF32(a), VF32(b)) => unreachable!(), + (VF64(a), VF64(b)) => unreachable!(), + (VFile(a), VFile(b)) => unreachable!(), + (VFunction(a), VFunction(b)) => a == b, + (VI8(a), VI8(b)) => a == b, + (VI16(a), VI16(b)) => a == b, + (VI32(a), VI32(b)) => a == b, + (VI64(a), VI64(b)) => a == b, + (VU8(a), VU8(b)) => a == b, + (VU16(a), VU16(b)) => a == b, + (VU32(a), VU32(b)) => a == b, + (VU64(a), VU64(b)) => a == b, + (VMatrix(a), VMatrix(b)) => match (a, b) { + (Matrix::I8(a), Matrix::I8(b)) => a == b, + (Matrix::I16(a), Matrix::I16(b)) => a == b, + (Matrix::I32(a), Matrix::I32(b)) => a == b, + (Matrix::I64(a), Matrix::I64(b)) => a == b, + (Matrix::U8(a), Matrix::U8(b)) => a == b, + (Matrix::U16(a), Matrix::U16(b)) => a == b, + (Matrix::U32(a), Matrix::U32(b)) => a == b, + (Matrix::U64(a), Matrix::U64(b)) => a == b, + (Matrix::F32(_), Matrix::F32(_)) => unreachable!(), + (Matrix::F64(_), Matrix::F64(_)) => unreachable!(), + _ => unreachable!(), + }, + (VModel(a), VModel(b)) => unreachable!(), + (VOption(a), VOption(b)) => a == b, + (VPath(a), VPath(b)) => a == b, + (VReader(a), VReader(b)) => unreachable!(), + (VRecord(a), VRecord(b)) => a == b, + (VVariant(a), VVariant(b)) => a == b, + (VResult(a), VResult(b)) => a == b, + (VSocketAddr(a), VSocketAddr(b)) => a == b, + (VStream(a), VStream(b)) => unreachable!(), + (VString(a), VString(b)) => a == b, + (VTime(a), VTime(b)) => a == b, + (VTimeSource(a), VTimeSource(b)) => unreachable!(), + (VTuple(a), VTuple(b)) => a == b, + (VUsize(a), VUsize(b)) => a == b, + (VUnit(a), VUnit(b)) => a == b, + (VUrl(a), VUrl(b)) => a == b, + (VVec(a), VVec(b)) => a == b, + (VWriter(a), VWriter(b)) => unreachable!(), + (VDict(a), VDict(b)) => a == b, + (VSet(a), VSet(b)) => a == b, + _ => unreachable!( + "Attempted to compare incompatible types \n{:?} \nand \n{:?}", + self, other + ), + } + } +} + +impl Eq for Value {} diff --git a/arc-lang/crates/compiler/irs/value/src/hash.rs b/arc-lang/crates/compiler/irs/value/src/hash.rs new file mode 100644 index 000000000..7050de0a6 --- /dev/null +++ b/arc-lang/crates/compiler/irs/value/src/hash.rs @@ -0,0 +1,42 @@ +use crate::*; + +use std::hash::Hash; + +impl Hash for Value { + fn hash(&self, state: &mut H) { + match self.kind.as_ref() { + VAggregator(a) => unreachable!(), + VArray(a) => a.hash(state), + VBlob(a) => unreachable!(), + VBool(a) => a.hash(state), + VChar(a) => a.hash(state), + VDiscretizer(a) => unreachable!(), + VDuration(a) => a.hash(state), + VEncoding(a) => unreachable!(), + VF64(a) => unreachable!(), + VFile(a) => unreachable!(), + VFunction(a) => unreachable!(), + VI32(a) => a.hash(state), + VMatrix(a) => unreachable!(), + VModel(a) => unreachable!(), + VOption(a) => a.hash(state), + VPath(a) => a.hash(state), + VReader(a) => unreachable!(), + VRecord(a) => a.hash(state), + VVariant(a) => a.hash(state), + VResult(a) => a.hash(state), + VSocketAddr(a) => unreachable!(), + VStream(a) => unreachable!(), + VString(a) => a.hash(state), + VTime(a) => a.hash(state), + VTimeSource(a) => unreachable!(), + VTuple(a) => a.hash(state), + VUsize(a) => a.hash(state), + VUnit(a) => a.hash(state), + VUrl(a) => a.hash(state), + VVec(a) => a.hash(state), + VWriter(a) => unreachable!(), + _ => unreachable!(), + } + } +} diff --git a/arc-lang/crates/compiler/irs/value/src/lib.rs b/arc-lang/crates/compiler/irs/value/src/lib.rs new file mode 100644 index 000000000..9531cc892 --- /dev/null +++ b/arc-lang/crates/compiler/irs/value/src/lib.rs @@ -0,0 +1,359 @@ +#![allow(unused)] + +pub mod conv; +pub mod de; +pub mod dynamic; +pub mod eq; +pub mod hash; +pub mod ord; +pub mod ser; + +use std::cell::RefCell; +use std::rc::Rc; + +use builtins::aggregator::Aggregator; +use builtins::blob::Blob; +use builtins::dict::Dict; +use builtins::discretizer::Discretizer; +use builtins::duration::Duration; +use builtins::encoding::Encoding; +use builtins::file::File; +use builtins::model::Model; +use builtins::path::Path; +use builtins::reader::Reader; +use builtins::set::Set; +use builtins::socket::SocketAddr; +use builtins::time::Time; +use builtins::time_source::TimeSource; +use builtins::url::Url; +use builtins::writer::Writer; +use dynamic::Array; +use dynamic::Dataflow; +use dynamic::Function; +use dynamic::Instance; +use dynamic::Matrix; +use dynamic::Record; +use dynamic::Stream; +use dynamic::Tuple; +use dynamic::Variant; +use hir::Name; +use im_rc::HashMap; +use im_rc::Vector; +use serde::Deserialize; +use serde::Serialize; +pub use ValueKind::*; + +#[derive(Clone)] +pub struct Value { + pub kind: Rc, +} + +impl From for Value { + fn from(kind: ValueKind) -> Self { + Value::new(kind) + } +} + +impl Value { + pub fn new(kind: ValueKind) -> Value { + Value { kind: Rc::new(kind) } + } +} + +#[derive(Clone)] +pub enum ValueKind { + VAggregator(Aggregator), + VArray(Array), + VBlob(Blob), + VBool(bool), + VChar(char), + VDict(Dict), + VDiscretizer(Discretizer), + VDuration(Duration), + VEncoding(Encoding), + VF32(f32), + VF64(f64), + VFile(File), + VFunction(Function), + VI128(i128), + VI16(i16), + VI32(i32), + VI64(i64), + VI8(i8), + VMatrix(Matrix), + VModel(Model), + VOption(builtins::option::Option), + VPath(Path), + VReader(Reader), + VRecord(Record), + VResult(builtins::result::Result), + VSet(Set), + VSocketAddr(SocketAddr), + VStream(Stream), + VDataflow(Dataflow), + VString(builtins::string::String), + VTime(Time), + VTimeSource(TimeSource), + VTuple(Tuple), + VU128(u128), + VU16(u16), + VU32(u32), + VU64(u64), + VU8(u8), + VUnit(()), + VUrl(Url), + VUsize(usize), + VVariant(Variant), + VVec(builtins::vec::Vec), + VWriter(Writer), + VInstance(Instance), +} + +impl std::fmt::Debug for Value { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self.kind.as_ref() { + VAggregator(v) => v.fmt(f), + VArray(v) => v.fmt(f), + VBlob(v) => v.fmt(f), + VBool(v) => v.fmt(f), + VChar(v) => v.fmt(f), + VDict(v) => v.fmt(f), + VDiscretizer(v) => v.fmt(f), + VDuration(v) => v.fmt(f), + VEncoding(v) => v.fmt(f), + VF32(v) => v.fmt(f), + VF64(v) => v.fmt(f), + VFile(v) => v.fmt(f), + VFunction(v) => v.fmt(f), + VI128(v) => v.fmt(f), + VI16(v) => v.fmt(f), + VI32(v) => v.fmt(f), + VI64(v) => v.fmt(f), + VI8(v) => v.fmt(f), + VMatrix(v) => v.fmt(f), + VModel(v) => v.fmt(f), + VOption(v) => v.fmt(f), + VPath(v) => v.fmt(f), + VReader(v) => v.fmt(f), + VRecord(v) => v.fmt(f), + VResult(v) => v.fmt(f), + VSet(v) => v.fmt(f), + VSocketAddr(v) => v.fmt(f), + VStream(v) => v.fmt(f), + VDataflow(v) => v.fmt(f), + VString(v) => v.fmt(f), + VTime(v) => v.fmt(f), + VTimeSource(v) => v.fmt(f), + VTuple(v) => v.fmt(f), + VU128(v) => v.fmt(f), + VU16(v) => v.fmt(f), + VU32(v) => v.fmt(f), + VU64(v) => v.fmt(f), + VU8(v) => v.fmt(f), + VUnit(v) => v.fmt(f), + VUrl(v) => v.fmt(f), + VUsize(v) => v.fmt(f), + VVariant(v) => v.fmt(f), + VVec(v) => v.fmt(f), + VWriter(v) => v.fmt(f), + VInstance(v) => v.fmt(f), + } + } +} + +#[cfg(test)] +mod test { + use im_rc::hashmap; + use im_rc::vector; + use serde::de::DeserializeSeed; + use serde::Serialize; + use serde_json::de::StrRead; + + use crate::de::Seed; + use crate::Record; + use crate::Value; + + #[test] + fn serde_i32() { + let v0 = Value::from(1); + let s = serde_json::to_string(&v0).unwrap(); + let mut de = serde_json::Deserializer::from_str(&s); + let t = hir::TNominal("i32".to_string(), vector![]).into(); + let v1 = Seed(t).deserialize(&mut de).unwrap(); + assert_eq!(v0, v1); + assert_eq!(s, "1"); + } + + #[test] + fn serde_vec() { + let v0 = Value::from(1); + let v1 = Value::from(2); + let v2 = Value::from(3); + let v3 = Value::from(builtins::vec::Vec::from(vec![v0, v1, v2])); + let s = serde_json::to_string(&v3).unwrap(); + let mut de = serde_json::Deserializer::from_str(&s); + let t0 = hir::TNominal("i32".to_string(), vector![]).into(); + let t1 = hir::TNominal("Vec".to_string(), vector![t0]).into(); + let v4 = Seed(t1).deserialize(&mut de).unwrap(); + assert_eq!(v3, v4); + assert_eq!(s, "[1,2,3]"); + } + + #[test] + fn serde_tuple() { + let v0 = Value::from(1); + let v1 = Value::from(2); + let v2 = Value::from(builtins::string::String::from("Hello")); + let v3 = Value::from(crate::dynamic::Tuple(vector![v0, v1, v2])); + let s = serde_json::to_string(&v3).unwrap(); + let mut de = serde_json::Deserializer::from_str(&s); + let t0 = hir::TNominal("i32".to_string(), vector![]).into(); + let t1 = hir::TNominal("i32".to_string(), vector![]).into(); + let t2 = hir::TNominal("String".to_string(), vector![]).into(); + let t3 = hir::TTuple(vector![t0, t1, t2], true).into(); + let v4 = Seed(t3).deserialize(&mut de).unwrap(); + assert_eq!(v3, v4); + assert_eq!(s, r#"[1,2,"Hello"]"#); + } + + #[test] + fn serde_record() { + let v0 = Value::from(1); + let v1 = Value::from(builtins::string::String::from("Hello")); + let v2 = Value::from(Record(hashmap! { + "a".to_string() => v0, + "b".to_string() => v1, + })); + let s = serde_json::to_string(&v2).unwrap(); + let mut de = serde_json::Deserializer::from_str(&s); + let t0 = hir::TNominal("i32".to_string(), vector![]).into(); + let t1 = hir::TNominal("String".to_string(), vector![]).into(); + let t2 = hir::TRecord(hir::fields_to_row(vector![("a".to_string(), t0), ("b".to_string(), t1),])).into(); + let v3 = Seed(t2).deserialize(&mut de).unwrap(); + assert_eq!(v2, v3); + assert!((s == r#"{"a":1,"b":"Hello"}"#) || (s == r#"{"b":"Hello","a":1}"#)); + } + + #[test] + fn serde_dict() { + let k0 = Value::from(builtins::string::String::from("a")); + let k1 = Value::from(builtins::string::String::from("b")); + let v0 = Value::from(1); + let v1 = Value::from(2); + let v2 = Value::from(builtins::dict::Dict::from(vec![(k0, v0), (k1, v1)].into_iter().collect::>())); + let s = serde_json::to_string(&v2).unwrap(); + let mut de = serde_json::Deserializer::from_str(&s); + let t0 = hir::TNominal("String".to_string(), vector![]).into(); + let t1 = hir::TNominal("i32".to_string(), vector![]).into(); + let t2 = hir::TNominal("Dict".to_string(), vector![t0, t1]).into(); + let v3 = Seed(t2).deserialize(&mut de).unwrap(); + assert_eq!(v2, v3); + assert!((s == r#"{"a":1,"b":2}"#) || (s == r#"{"b":2,"a":1}"#)); + } + + #[test] + fn serde_array() { + let v0 = Value::from(1); + let v1 = Value::from(2); + let v2 = Value::from(3); + let v3 = Value::from(crate::dynamic::Array(vector![v0, v1, v2])); + let s = serde_json::to_string(&v3).unwrap(); + let mut de = serde_json::Deserializer::from_str(&s); + let t0 = hir::TNominal("i32".to_string(), vector![]).into(); + let t1 = hir::TArray(t0, Some(3)).into(); + let v4 = Seed(t1).deserialize(&mut de).unwrap(); + assert_eq!(v3, v4); + assert_eq!(s, "[1,2,3]"); + } + + #[test] + fn serde_set() { + let v0 = Value::from(1); + let v1 = Value::from(2); + let v2 = Value::from(builtins::set::Set::from(vec![v0, v1].into_iter().collect::>())); + let s = serde_json::to_string(&v2).unwrap(); + let mut de = serde_json::Deserializer::from_str(&s); + let t0 = hir::TNominal("i32".to_string(), vector![]).into(); + let t1 = hir::TNominal("Set".to_string(), vector![t0]).into(); + let v3 = Seed(t1).deserialize(&mut de).unwrap(); + assert_eq!(v2, v3); + assert!((s == r#"[1,2]"#) || (s == r#"[2,1]"#)); + } + + #[test] + fn serde_option_some() { + let v0 = Value::from(1); + let v1 = Value::from(builtins::option::Option::some(v0)); + let s = serde_json::to_string(&v1).unwrap(); + let mut de = serde_json::Deserializer::from_str(&s); + let t0 = hir::TNominal("i32".to_string(), vector![]).into(); + let t1 = hir::TNominal("Option".to_string(), vector![t0]).into(); + let v2 = Seed(t1).deserialize(&mut de).unwrap(); + assert_eq!(v1, v2); + assert_eq!(s, "1"); + } + + #[test] + fn serde_option_none() { + let v0 = Value::from(builtins::option::Option::none()); + let s = serde_json::to_string(&v0).unwrap(); + let mut de = serde_json::Deserializer::from_str(&s); + let t0 = hir::TNominal("i32".to_string(), vector![]).into(); + let t1 = hir::TNominal("Option".to_string(), vector![t0]).into(); + let v2 = Seed(t1).deserialize(&mut de).unwrap(); + assert_eq!(v0, v2); + assert_eq!(s, "null"); + } + + #[test] + fn serde_result_ok() { + let v0 = Value::from(1); + let v1 = Value::from(builtins::result::Result::ok(v0)); + let s = serde_json::to_string(&v1).unwrap(); + let mut de = serde_json::Deserializer::from_str(&s); + let t0 = hir::TNominal("i32".to_string(), vector![]).into(); + let t1 = hir::TNominal("Result".to_string(), vector![t0]).into(); + let v2 = Seed(t1).deserialize(&mut de).unwrap(); + assert_eq!(v1, v2); + assert_eq!(s, r#"{"Ok":1}"#); + } + + #[test] + fn serde_result_err() { + let v0 = builtins::string::String::from("Hello"); + let v1 = Value::from(builtins::result::Result::error(v0)); + let s = serde_json::to_string(&v1).unwrap(); + let mut de = serde_json::Deserializer::from_str(&s); + let t0 = hir::TNominal("i32".to_string(), vector![]).into(); + let t1 = hir::TNominal("Result".to_string(), vector![t0]).into(); + let v2 = Seed::deserialize(Seed(t1), &mut de).unwrap(); + assert_eq!(v1, v2); + assert_eq!(s, r#"{"Err":"Hello"}"#); + } + + #[test] + fn serde_matrix() { + let v9 = Value::from(crate::dynamic::Matrix::I32(builtins::matrix::Matrix::new([2, 2]))); + let s = serde_json::to_string(&v9).unwrap(); + let mut de = serde_json::Deserializer::from_str(&s); + let t0 = hir::TNominal("i32".to_string(), vector![]).into(); + let t1 = hir::TNominal("Matrix".to_string(), vector![t0]).into(); + let v10 = Seed(t1).deserialize(&mut de).unwrap(); + assert_eq!(v9, v10); + assert_eq!(s, r#"{"v":1,"dim":[2,2],"data":[0,0,0,0]}"#); + } + + #[test] + fn serde_type_variable() { + let mut de = serde_json::Deserializer::from_str("1"); + let t = hir::TVar("a".to_string()).into(); + assert!(Seed(t).deserialize(&mut de).is_err()); + } + + #[test] + fn serde_type_error() { + let mut de = serde_json::Deserializer::from_str("1.0"); + let t = hir::TNominal("i32".to_string(), vector![]).into(); + assert!(Seed(t).deserialize(&mut de).is_err()); + } +} diff --git a/arc-lang/crates/compiler/irs/value/src/ord.rs b/arc-lang/crates/compiler/irs/value/src/ord.rs new file mode 100644 index 000000000..a744318e8 --- /dev/null +++ b/arc-lang/crates/compiler/irs/value/src/ord.rs @@ -0,0 +1,97 @@ +use crate::*; + +impl PartialOrd for Value { + fn partial_cmp(&self, other: &Self) -> Option { + match (self.kind.as_ref(), other.kind.as_ref()) { + (VAggregator(a), VAggregator(b)) => unreachable!(), + (VArray(a), VArray(b)) => a.partial_cmp(b), + (VBlob(a), VBlob(b)) => unreachable!(), + (VBool(a), VBool(b)) => a.partial_cmp(b), + (VChar(a), VChar(b)) => a.partial_cmp(b), + (VDiscretizer(a), VDiscretizer(b)) => unreachable!(), + (VDuration(a), VDuration(b)) => a.partial_cmp(b), + (VEncoding(a), VEncoding(b)) => a.partial_cmp(b), + (VF32(a), VF32(b)) => a.partial_cmp(b), + (VF64(a), VF64(b)) => a.partial_cmp(b), + (VFile(a), VFile(b)) => unreachable!(), + (VFunction(a), VFunction(b)) => a.partial_cmp(b), + (VI8(a), VI8(b)) => a.partial_cmp(b), + (VI16(a), VI16(b)) => a.partial_cmp(b), + (VI32(a), VI32(b)) => a.partial_cmp(b), + (VI64(a), VI64(b)) => a.partial_cmp(b), + (VU8(a), VU8(b)) => a.partial_cmp(b), + (VU16(a), VU16(b)) => a.partial_cmp(b), + (VU32(a), VU32(b)) => a.partial_cmp(b), + (VU64(a), VU64(b)) => a.partial_cmp(b), + (VUsize(a), VUsize(b)) => a.partial_cmp(b), + (VMatrix(a), VMatrix(b)) => unreachable!(), + (VModel(a), VModel(b)) => unreachable!(), + (VOption(a), VOption(b)) => a.partial_cmp(b), + (VPath(a), VPath(b)) => a.partial_cmp(b), + (VReader(a), VReader(b)) => unreachable!(), + (VRecord(a), VRecord(b)) => a.partial_cmp(b), + (VVariant(a), VVariant(b)) => a.partial_cmp(b), + (VResult(a), VResult(b)) => a.partial_cmp(b), + (VSocketAddr(a), VSocketAddr(b)) => a.partial_cmp(b), + (VStream(a), VStream(b)) => unreachable!(), + (VString(a), VString(b)) => a.partial_cmp(b), + (VTime(a), VTime(b)) => a.partial_cmp(b), + (VTimeSource(a), VTimeSource(b)) => unreachable!(), + (VTuple(a), VTuple(b)) => a.partial_cmp(b), + (VUsize(a), VUsize(b)) => a.partial_cmp(b), + (VUnit(a), VUnit(b)) => a.partial_cmp(b), + (VUrl(a), VUrl(b)) => a.partial_cmp(b), + (VVec(a), VVec(b)) => a.partial_cmp(b), + (VWriter(a), VWriter(b)) => unreachable!(), + _ => unreachable!(), + } + } +} + +impl Ord for Value { + fn cmp(&self, other: &Self) -> std::cmp::Ordering { + match (self.kind.as_ref(), other.kind.as_ref()) { + (VAggregator(a), VAggregator(b)) => unreachable!(), + (VArray(a), VArray(b)) => a.cmp(b), + (VBlob(a), VBlob(b)) => unreachable!(), + (VBool(a), VBool(b)) => a.cmp(b), + (VChar(a), VChar(b)) => a.cmp(b), + (VDiscretizer(a), VDiscretizer(b)) => unreachable!(), + (VDuration(a), VDuration(b)) => a.cmp(b), + (VEncoding(a), VEncoding(b)) => a.cmp(b), + (VF32(a), VF32(b)) => unreachable!(), + (VF64(a), VF64(b)) => unreachable!(), + (VFile(a), VFile(b)) => unreachable!(), + (VFunction(a), VFunction(b)) => a.cmp(b), + (VI8(a), VI8(b)) => a.cmp(b), + (VI16(a), VI16(b)) => a.cmp(b), + (VI32(a), VI32(b)) => a.cmp(b), + (VI64(a), VI64(b)) => a.cmp(b), + (VU8(a), VU8(b)) => a.cmp(b), + (VU16(a), VU16(b)) => a.cmp(b), + (VU32(a), VU32(b)) => a.cmp(b), + (VU64(a), VU64(b)) => a.cmp(b), + (VUsize(a), VUsize(b)) => a.cmp(b), + (VMatrix(a), VMatrix(b)) => unreachable!(), + (VModel(a), VModel(b)) => unreachable!(), + (VOption(a), VOption(b)) => a.cmp(b), + (VPath(a), VPath(b)) => a.cmp(b), + (VReader(a), VReader(b)) => unreachable!(), + (VRecord(a), VRecord(b)) => a.cmp(b), + (VVariant(a), VVariant(b)) => a.cmp(b), + (VResult(a), VResult(b)) => a.cmp(b), + (VSocketAddr(a), VSocketAddr(b)) => a.cmp(b), + (VStream(a), VStream(b)) => unreachable!(), + (VString(a), VString(b)) => a.cmp(b), + (VTime(a), VTime(b)) => a.cmp(b), + (VTimeSource(a), VTimeSource(b)) => unreachable!(), + (VTuple(a), VTuple(b)) => a.cmp(b), + (VUsize(a), VUsize(b)) => a.cmp(b), + (VUnit(a), VUnit(b)) => a.cmp(b), + (VUrl(a), VUrl(b)) => a.cmp(b), + (VVec(a), VVec(b)) => a.cmp(b), + (VWriter(a), VWriter(b)) => unreachable!(), + _ => unreachable!(), + } + } +} diff --git a/arc-lang/crates/compiler/irs/value/src/ser.rs b/arc-lang/crates/compiler/irs/value/src/ser.rs new file mode 100644 index 000000000..6ae858459 --- /dev/null +++ b/arc-lang/crates/compiler/irs/value/src/ser.rs @@ -0,0 +1,56 @@ +use crate::*; + +impl Serialize for Value { + fn serialize(&self, serializer: S) -> Result + where + S: serde::Serializer, + { + match self.kind.as_ref() { + VAggregator(v) => v.serialize(serializer), + VArray(v) => v.0.serialize(serializer), + VBlob(v) => v.serialize(serializer), + VBool(v) => v.serialize(serializer), + VChar(v) => v.serialize(serializer), + VDict(v) => v.serialize(serializer), + VDiscretizer(v) => v.serialize(serializer), + VDuration(v) => v.serialize(serializer), + VEncoding(v) => v.serialize(serializer), + VF32(v) => v.serialize(serializer), + VF64(v) => v.serialize(serializer), + VFile(v) => unreachable!(), + VFunction(v) => v.serialize(serializer), + VI128(v) => v.serialize(serializer), + VI16(v) => v.serialize(serializer), + VI32(v) => v.serialize(serializer), + VI64(v) => v.serialize(serializer), + VI8(v) => v.serialize(serializer), + VMatrix(v) => v.serialize(serializer), + VModel(v) => v.serialize(serializer), + VOption(v) => v.serialize(serializer), + VPath(v) => v.serialize(serializer), + VReader(v) => v.serialize(serializer), + VRecord(v) => v.serialize(serializer), + VResult(v) => v.serialize(serializer), + VSet(v) => v.serialize(serializer), + VSocketAddr(v) => v.serialize(serializer), + VStream(v) => unreachable!(), + VString(v) => v.serialize(serializer), + VTime(v) => v.serialize(serializer), + VTimeSource(v) => v.serialize(serializer), + VTuple(v) => v.serialize(serializer), + VU128(v) => v.serialize(serializer), + VU16(v) => v.serialize(serializer), + VU32(v) => v.serialize(serializer), + VU64(v) => v.serialize(serializer), + VU8(v) => v.serialize(serializer), + VUnit(v) => v.serialize(serializer), + VUrl(v) => v.serialize(serializer), + VUsize(v) => v.serialize(serializer), + VVariant(v) => v.serialize(serializer), + VVec(v) => v.serialize(serializer), + VWriter(v) => v.serialize(serializer), + VDataflow(v) => unreachable!(), + VInstance(v) => unreachable!(), + } + } +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/Cargo.toml b/arc-lang/crates/compiler/passes/ast-prelude/Cargo.toml new file mode 100644 index 000000000..6b3c5dc32 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "ast-prelude" +version.workspace = true +edition.workspace = true + +[dependencies] +ast.workspace = true +info.workspace = true +im-rc.workspace = true +utils.workspace = true diff --git a/arc-lang/crates/compiler/passes/ast-prelude/rustfmt.toml b/arc-lang/crates/compiler/passes/ast-prelude/rustfmt.toml new file mode 100644 index 000000000..1116a3d48 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/rustfmt.toml @@ -0,0 +1,2 @@ +max_width = 200 +fn_call_width = 200 diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/aggregator.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/aggregator.rs new file mode 100644 index 000000000..3a8782dea --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/aggregator.rs @@ -0,0 +1,25 @@ +use ast::Type; + +use super::function::fun; +use super::rust; +use super::t; +use super::tc; +use super::tuple::tuple; + +pub(crate) fn aggregator(i: Type, p: Type, o: Type) -> Type { + tc("Aggregator", [i, p, o]) +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("Aggregator", ["I", "P", "O"], [rust("Aggregator")]) + .f("aggregator", ["I", "P", "O"], [fun([t("I")], t("P")), fun([t("P"), t("P")], t("P")), fun([t("P")], t("O"))], aggregator(t("I"), t("P"), t("O")), [rust("Aggregator::aggregator")]) + // .f( + // "compose", + // ["I0", "P0", "O0", "I1", "P1", "O1"], + // [aggregator(t("I0"), t("P0"), t("O0")), aggregator(t("I1"), t("P1"), t("O1"))], + // aggregator(tuple([t("I0"), t("I1")]), tuple([t("P0"), t("P1")]), tuple([t("O0"), t("O1")])), + // [rust("Aggregator::compose")], + // ) + ; +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/array.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/array.rs new file mode 100644 index 000000000..75a889fd4 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/array.rs @@ -0,0 +1,21 @@ +use std::io::Result; +use std::io::Write; + +use super::usize::usize; +use ast::Type; +use ast::TypeKind::TArray; +use im_rc::vector; +use im_rc::Vector; +use info::Info; + +use super::t; + +pub(crate) fn array(t: Type) -> Type { + TArray(t, None).with(Info::Builtin) +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .f("array_get", ["T"], [array(t("T")), usize()], t("T"), []) + .f("array_set", ["T"], [array(t("T")), usize(), t("T")], array(t("T")), []); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/blob.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/blob.rs new file mode 100644 index 000000000..671db92cc --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/blob.rs @@ -0,0 +1,12 @@ +use ast::Type; + +use super::rust; +use super::t; + +pub(crate) fn blob() -> Type { + t("Blob") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder.t("Blob", [], [rust("Blob")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/bool.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/bool.rs new file mode 100644 index 000000000..731af4886 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/bool.rs @@ -0,0 +1,18 @@ +use ast::binop; +use ast::unop; + +use super::mlir; +use super::rust; +use super::t; + +pub(crate) fn bool() -> ast::Type { + t("bool") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("bool", [], [rust("bool"), mlir("si1")]) + .f(unop!(!), [], [bool()], bool(), [rust("(|a| !a)"), mlir("not_i1")]) + .f(binop!(or), [], [bool(), bool()], bool(), [rust("(|a,b| a||b)"), mlir("or_i32")]) + .f(binop!(and), [], [bool(), bool()], bool(), [rust("(|a,b| a&&b)"), mlir("and_i32")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/char.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/char.rs new file mode 100644 index 000000000..7dbe3170f --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/char.rs @@ -0,0 +1,12 @@ +use ast::Type; + +use super::rust; +use super::t; + +pub(crate) fn char() -> Type { + t("char") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder.t("char", [], [rust("char")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/dataflow.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/dataflow.rs new file mode 100644 index 000000000..44b3cfbf6 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/dataflow.rs @@ -0,0 +1,19 @@ +use ast::Type; + +use super::array; +use super::array::array; +use super::instance::instance; +use super::rust; +use super::t; +use super::unit::unit; + +pub(crate) fn dataflow() -> Type { + t("Dataflow") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("Dataflow", [], [rust("Dataflow")]) + .f("run", [], [dataflow()], instance(), [rust("Dataflow::run")]) + .f("merge", [], [array(dataflow())], dataflow(), [rust("Dataflow::merge")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/dict.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/dict.rs new file mode 100644 index 000000000..d5fe6080e --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/dict.rs @@ -0,0 +1,21 @@ +use ast::Type; + +use super::bool::bool; +use super::rust; +use super::t; +use super::tc; +use super::tuple::tuple; + +pub(crate) fn dict(k: Type, v: Type) -> Type { + tc("Dict", [k, v]) +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("Dict", ["K", "T"], [rust("Dict")]) + .f("new", ["K", "T"], [], dict(t("K"), t("T")), [rust("Dict::new")]) + .f("insert", ["K", "T"], [dict(t("K"), t("T")), t("K"), t("T")], dict(t("K"), t("T")), [rust("Dict::insert")]) + .f("remove", ["K", "T"], [dict(t("K"), t("T")), t("K")], dict(t("K"), t("T")), [rust("Dict::remove")]) + .f("get", ["K", "T"], [dict(t("K"), t("T")), t("K")], tc("Option", [t("T")]), [rust("Dict::get")]) + .f("contains", ["K", "T"], [dict(t("K"), t("T")), t("K")], bool(), [rust("Dict::contains")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/discretizer.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/discretizer.rs new file mode 100644 index 000000000..ecf34eccc --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/discretizer.rs @@ -0,0 +1,23 @@ +use std::io::Result; +use std::io::Write; + +use ast::Type; + +use super::duration::duration; +use super::i32::i32; +use super::rust; +use super::t; + +pub(crate) fn discretizer() -> Type { + t("Discretizer") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("Discretizer", [], [rust("Discretizer")]) + .f("tumbling", [], [duration()], discretizer(), [rust("Discretizer::tumbling")]) + .f("sliding", [], [duration(), duration()], discretizer(), [rust("Discretizer::sliding")]) + .f("session", [], [duration()], discretizer(), [rust("Discretizer::session")]) + .f("counting", [], [i32()], discretizer(), [rust("Discretizer::counting")]) + .f("moving", [], [i32(), i32()], discretizer(), [rust("Discretizer::moving")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/duration.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/duration.rs new file mode 100644 index 000000000..31853c6a2 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/duration.rs @@ -0,0 +1,25 @@ +use std::io::Result; +use std::io::Write; + +use ast::Type; + +use super::i32::i32; +use super::rust; +use super::t; + +pub(crate) fn duration() -> Type { + t("Duration") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("Duration", [], [rust("Duration")]) + .f("__s", [], [i32()], duration(), [rust("Duration::seconds")]) + .f("__ms", [], [i32()], duration(), [rust("Duration::milliseconds")]) + .f("__us", [], [i32()], duration(), [rust("Duration::microseconds")]) + .f("__ns", [], [i32()], duration(), [rust("Duration::nanoseconds")]) + .f("from_seconds", [], [i32()], duration(), [rust("Duration::from_seconds")]) + .f("from_milliseconds", [], [i32()], duration(), [rust("Duration::from_milliseconds")]) + .f("from_microseconds", [], [i32()], duration(), [rust("Duration::from_microseconds")]) + .f("from_nanoseconds", [], [i32()], duration(), [rust("Duration::from_nanoseconds")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/encoding.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/encoding.rs new file mode 100644 index 000000000..398ede541 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/encoding.rs @@ -0,0 +1,16 @@ +use ast::Type; + +use super::char::char; +use super::rust; +use super::t; + +pub(crate) fn encoding() -> Type { + t("Encoding") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("Encoding", [], [rust("Encoding")]) + .f("csv", [], [char()], encoding(), [rust("Encoding::csv")]) + .f("json", [], [], encoding(), [rust("Encoding::json")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/f32.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/f32.rs new file mode 100644 index 000000000..cdef3228a --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/f32.rs @@ -0,0 +1,16 @@ +use super::mlir; +use super::rust; +use super::t; + +pub(crate) fn f32() -> ast::Type { + t("f32") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("f32", [], [rust("f32"), mlir("f32")]) + .f("add_f32", [], [f32(), f32()], f32(), [rust("f32::add_f32"), mlir("add_f32")]) + .f("sub_f32", [], [f32(), f32()], f32(), [rust("f32::sub_f32"), mlir("sub_f32")]) + .f("mul_f32", [], [f32(), f32()], f32(), [rust("f32::mul_f32"), mlir("mul_f32")]) + .f("div_f32", [], [f32(), f32()], f32(), [rust("f32::div_f32"), mlir("div_f32")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/f64.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/f64.rs new file mode 100644 index 000000000..6af6800c7 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/f64.rs @@ -0,0 +1,15 @@ +use ast::Type; +use ast::unop; + +use super::mlir; +use super::rust; +use super::t; + +pub(crate) fn f64() -> Type { + t("f64") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("f64", [], [rust("f64"), mlir("f64")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/file.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/file.rs new file mode 100644 index 000000000..1dd9038d1 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/file.rs @@ -0,0 +1,21 @@ +use ast::Type; + +use super::blob::blob; +use super::path::path; +use super::rust; +use super::string::string; +use super::t; +use super::unit::unit; + +pub(crate) fn file() -> Type { + t("File") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("File", [], [rust("File")]) + .f("open", [], [path()], file(), [rust("File::open")]) + .f("read_to_string", [], [file()], string(), [rust("File::read_to_string")]) + .f("read_to_bytes", [], [file()], blob(), [rust("File::read_to_bytes")]) + .f("inspect", [], [file()], unit(), [rust("File::inspect")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/function.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/function.rs new file mode 100644 index 000000000..a6e8de85e --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/function.rs @@ -0,0 +1,9 @@ +use ast::Type; +use ast::TypeKind::TFun; +use info::Info; + +pub(crate) fn fun(args: [Type; N], ret: Type) -> Type { + TFun(args.into_iter().collect(), ret).with(Info::Builtin) +} + +pub(crate) fn declare(builder: &mut super::Builder) {} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/i128.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/i128.rs new file mode 100644 index 000000000..e7db19e39 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/i128.rs @@ -0,0 +1,11 @@ +use super::mlir; +use super::rust; +use super::t; + +pub(crate) fn i128() -> ast::Type { + t("i128") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder.t("i128", [], [rust("i128"), mlir("si128")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/i16.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/i16.rs new file mode 100644 index 000000000..f923fea73 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/i16.rs @@ -0,0 +1,12 @@ +use ast::Type; + +use super::rust; +use super::t; + +pub(crate) fn i16() -> Type { + t("i16") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder.t("i16", [], [rust("i16")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/i32.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/i32.rs new file mode 100644 index 000000000..36bda2e2a --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/i32.rs @@ -0,0 +1,34 @@ +use ast::binop; +use ast::unop; + +use super::bool::bool; +use super::mlir; +use super::rust; +use super::string::string; +use super::t; +use super::usize::usize; + +pub(crate) fn i32() -> ast::Type { + t("i32") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("i32", [], [rust("i32"), mlir("si32")]) + .f(unop!(-), [], [i32()], i32(), [rust("(|a| -a)"), mlir("neq_i32")]) + .f(unop!(+), [], [i32()], i32(), [rust("(|a| a)"), mlir("neq_i32")]) + .f(binop!(+), [], [i32(), i32()], i32(), [rust("(|a,b| a+b)"), mlir("add_i32")]) + .f(binop!(-), [], [i32(), i32()], i32(), [rust("(|a,b| a-b)"), mlir("sub_i32")]) + .f(binop!(*), [], [i32(), i32()], i32(), [rust("(|a,b| a*b)"), mlir("mul_i32")]) + .f(binop!(/), [], [i32(), i32()], i32(), [rust("(|a,b| a/b)"), mlir("div_i32")]) + .f(binop!(>=), [], [i32(), i32()], bool(), [rust("(|a,b| a>=b)"), mlir("geq_i32")]) + .f(binop!(<=), [], [i32(), i32()], bool(), [rust("(|a,b| a<=b)"), mlir("leq_i32")]) + .f(binop!(<), [], [i32(), i32()], bool(), [rust("(|a,b| a), [], [i32(), i32()], bool(), [rust("(|a,b| a>b)"), mlir("gt_i32")]) + .f(binop!(==), [], [i32(), i32()], bool(), [rust("(|a,b| a==b)"), mlir("eq_i32")]) + .f(binop!(!=), [], [i32(), i32()], bool(), [rust("(|a,b| a!=b)"), mlir("neq_i32")]) + .f(unop!(-), [], [i32()], i32(), [rust("(|a| -a)")]) + .f(unop!(+), [], [i32()], i32(), [rust("(|a| a)")]) + .f("as_usize", [], [i32()], usize(), [rust("(|a| a as usize)")]) + .f("i32_to_string", [], [i32()], string(), [rust("(|a| a.to_string())")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/i64.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/i64.rs new file mode 100644 index 000000000..5c74f5153 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/i64.rs @@ -0,0 +1,11 @@ +use super::mlir; +use super::rust; +use super::t; + +pub(crate) fn i64() -> ast::Type { + t("i64") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder.t("i64", [], [rust("i64"), mlir("si64")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/i8.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/i8.rs new file mode 100644 index 000000000..4b8a541a7 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/i8.rs @@ -0,0 +1,13 @@ +use ast::Type; + +use super::mlir; +use super::rust; +use super::t; + +pub(crate) fn i8() -> Type { + t("i8") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder.t("i8", [], [rust("i8"), mlir("si8")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/instance.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/instance.rs new file mode 100644 index 000000000..1277fef72 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/instance.rs @@ -0,0 +1,19 @@ +use ast::Type; + +use super::array; +use super::array::array; +use super::path::path; +use super::rust; +use super::t; +use super::unit::unit; + +pub(crate) fn instance() -> Type { + t("Instance") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("Instance", [], [rust("Instance")]) + .f("logpath", [], [instance()], path(), [rust("(|| ())")]) + .f("kill", [], [instance()], unit(), [rust("(|| ())")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/keyed_stream.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/keyed_stream.rs new file mode 100644 index 000000000..bc16733f6 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/keyed_stream.rs @@ -0,0 +1,35 @@ +use crate::declarations::vec::vec; +use ast::Type; + +use super::aggregator::aggregator; +use super::bool::bool; +use super::dataflow::dataflow; +use super::discretizer::discretizer; +use super::encoding::encoding; +use super::function::fun; +use super::keyed_stream; +use super::reader::reader; +use super::rust; +use super::stream::stream; +use super::t; +use super::tc; +use super::time_source::time_source; +use super::writer::writer; + +pub(crate) fn keyed_stream(k: Type, t: Type) -> Type { + tc("KeyedStream", [k, t]) +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("KeyedStream", ["K", "T"], [rust("KeyedStream")]) + .f("keyed_source", ["K", "T"], [reader(), encoding(), time_source(t("T"))], keyed_stream(t("K"), t("T")), [rust("KeyedStream::source")]) + .f("keyed_sink", ["K", "T"], [keyed_stream(t("K"), t("T")), writer(), encoding()], dataflow(), [rust("KeyedStream::sink")]) + .f("keyed_map", ["K", "A", "B"], [keyed_stream(t("K"), t("A")), fun([t("A")], t("B"))], keyed_stream(t("K"), t("B")), [rust("KeyedStream::map")]) + .f("keyed_filter", ["K", "T"], [keyed_stream(t("K"), t("T")), fun([t("T")], bool())], keyed_stream(t("K"), t("T")), [rust("KeyedStream::filter")]) + .f("keyed_flatmap", ["K", "A", "B"], [keyed_stream(t("K"), vec(t("A"))), fun([t("A")], vec(t("B")))], keyed_stream(t("K"), t("B")), [rust("KeyedStream::flatmap")]) + .f("keyed_flatten", ["K", "T"], [keyed_stream(t("K"), vec(t("A")))], keyed_stream(t("K"), t("B")), [rust("KeyedStream::flatten")]) + .f("keyed_window", ["K", "I", "P", "O"], [keyed_stream(t("K"), t("I")), discretizer(), aggregator(t("I"), t("P"), t("O"))], keyed_stream(t("K"), t("O")), [rust("KeyedStream::window")]) + .f("keyed_keyby", ["K0", "K1", "T"], [stream(t("T")), fun([t("T")], t("K0"))], keyed_stream(t("K1"), t("T")), [rust("KeyedStream::keyby")]) + .f("unkey", ["K", "T"], [keyed_stream(t("K"), t("T"))], stream(t("T")), [rust("KeyedStream::unkey")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/matrix.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/matrix.rs new file mode 100644 index 000000000..958c3f5bf --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/matrix.rs @@ -0,0 +1,20 @@ +use ast::Type; + +use super::rust; +use super::t; +use super::tc; +use super::usize::usize; +use super::vec::vec; + +pub(crate) fn matrix(t: Type) -> Type { + tc("Matrix", [t]) +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("Matrix", ["T"], [rust("Matrix")]) + .f("zeros", ["T"], [usize(), usize()], matrix(t("T")), []) + .f("insert_axis", ["T"], [matrix(t("T")), usize()], matrix(t("T")), []) + .f("remove_axis", ["T"], [matrix(t("T")), usize()], matrix(t("T")), []) + .f("into_vec", ["T"], [matrix(t("T"))], vec(t("T")), []); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/mod.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/mod.rs new file mode 100644 index 000000000..845f4cd86 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/mod.rs @@ -0,0 +1,196 @@ +use std::collections::HashMap; + +use ast::Attr; +use ast::Bound; +use ast::Const; +use ast::Const::CString; +use ast::Generic; +use ast::Meta; +use ast::Name; +use ast::SBuiltinType; +use ast::StmtKind::SBuiltinClass; +use ast::StmtKind::SBuiltinDef; +use ast::StmtKind::SBuiltinInstance; +use ast::Type; +use ast::TypeKind::TArray; +use ast::TypeKind::TFun; +use ast::TypeKind::TName; +use ast::TypeKind::TTuple; +use ast::TypeKind::TUnit; +use im_rc::vector; +use im_rc::Vector; +use info::Info; + +pub mod aggregator; +pub mod array; +pub mod blob; +pub mod bool; +pub mod char; +pub mod dataflow; +pub mod dict; +pub mod discretizer; +pub mod duration; +pub mod encoding; +pub mod f32; +pub mod f64; +pub mod file; +pub mod function; +pub mod i128; +pub mod i16; +pub mod i32; +pub mod i64; +pub mod i8; +pub mod instance; +pub mod keyed_stream; +pub mod matrix; +pub mod model; +pub mod never; +pub mod option; +pub mod path; +pub mod reader; +pub mod record; +pub mod result; +pub mod socket; +pub mod stream; +pub mod string; +pub mod time; +pub mod time_source; +pub mod tuple; +pub mod u128; +pub mod u16; +pub mod u32; +pub mod u64; +pub mod u8; +pub mod unit; +pub mod url; +pub mod usize; +pub mod variant; +pub mod vec; +pub mod writer; + +pub fn prelude() -> Vector { + Builder::new() + .load(aggregator::declare) + .load(array::declare) + .load(blob::declare) + .load(bool::declare) + .load(char::declare) + .load(dataflow::declare) + .load(discretizer::declare) + .load(duration::declare) + .load(encoding::declare) + .load(f32::declare) + .load(f64::declare) + .load(file::declare) + .load(function::declare) + .load(i16::declare) + .load(i32::declare) + .load(i64::declare) + .load(i8::declare) + .load(instance::declare) + .load(keyed_stream::declare) + .load(matrix::declare) + .load(model::declare) + .load(option::declare) + .load(path::declare) + .load(reader::declare) + .load(record::declare) + .load(result::declare) + .load(socket::declare) + .load(stream::declare) + .load(string::declare) + .load(time::declare) + .load(time_source::declare) + .load(tuple::declare) + .load(u16::declare) + .load(u32::declare) + .load(u64::declare) + .load(u8::declare) + .load(unit::declare) + .load(url::declare) + .load(usize::declare) + .load(variant::declare) + .load(vec::declare) + .load(writer::declare) + .load(i128::declare) + .load(u128::declare) + .build() +} + +fn t(name: &str) -> Type { + TName(name.into(), vector![]).with(Info::Builtin) +} + +fn tc(name: &str, args: [Type; N]) -> Type { + TName(name.into(), args.into_iter().collect()).with(Info::Builtin) +} + +pub(crate) struct Builder { + types: Vec, + functions: Vec, +} + +pub fn mlir(s: &str) -> (&str, Option) { + ("mlir", Some(CString(s.to_owned()))) +} + +pub fn rust(s: &str) -> (&str, Option) { + ("rust", Some(CString(s.to_owned()))) +} + +pub fn noop() -> &'static str { + "(|| ())" +} + +fn meta(attrs: [(&str, Option); N]) -> Vector { + attrs + .into_iter() + .map(|(x, c)| Attr { + x: x.to_string(), + c, + info: Info::Builtin, + }) + .collect() +} + +impl Builder { + fn new() -> Self { + Self { types: vec![], functions: vec![] } + } + + fn load(&mut self, f: impl Fn(&mut Self)) -> &mut Self { + f(self); + self + } + + fn t(&mut self, x: &str, gs: [&str; M], attrs: [(&str, Option); N]) -> &mut Self { + self.types + .push(SBuiltinType(meta(attrs), x.into(), gs.into_iter().map(Into::into).collect(), vector![]).with(Info::Builtin)); + self + } + + // fn class(&mut self, x: &str, gs: [&str; N], bs: [Bound; M]) -> &mut Self { + // self.prelude + // .push(SBuiltinClass(vector![], x.into(), gs.into_iter().map(Into::into).collect(), bs.into_iter().collect()).with(Info::Builtin)); + // self + // } + + // fn instance(&mut self, x: &str, gs: [&str; N], bs: [Bound; M], t: Type) -> &mut Self { + // self.prelude + // .push(SBuiltinInstance(vector![], x.into(), gs.into_iter().map(Into::into).collect(), bs.into_iter().map(Into::into).collect(), t).with(Info::Builtin)); + // self + // } + + fn f(&mut self, x: &str, gs: [&str; M], ts: [Type; K], t: Type, attrs: [(&str, Option); N]) -> &mut Self { + let t = if matches!(t.kind.as_ref(), TUnit) { None } else { Some(t) }; + self.functions + .push(SBuiltinDef(meta(attrs), x.into(), gs.into_iter().map(Into::into).collect(), ts.into_iter().collect(), t, vector![]).with(Info::Builtin)); + self + } + + fn build(&mut self) -> Vector { + let mut prelude = std::mem::take(&mut self.types); + prelude.append(&mut self.functions); + prelude.into() + } +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/model.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/model.rs new file mode 100644 index 000000000..ae4299ea2 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/model.rs @@ -0,0 +1,19 @@ +use ast::Type; + +use super::blob::blob; +use super::file::file; +use super::matrix::matrix; +use super::rust; +use super::t; +use super::tc; + +pub(crate) fn model() -> Type { + t("Model") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("Model", [], [rust("Model")]) + .f("load_model", [], [blob()], model(), [rust("Model::load")]) + .f("predict", ["I", "O"], [model(), matrix(t("I"))], matrix(t("O")), [rust("Model::predict")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/never.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/never.rs new file mode 100644 index 000000000..82db9ef02 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/never.rs @@ -0,0 +1,19 @@ +use ast::Type; +use ast::TypeKind::TNever; +use info::Info; + +use super::rust; +use super::string::string; +use super::unit::unit; + +pub(crate) fn never() -> Type { + TNever.with(Info::Builtin) +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .f("todo", [], [], never(), [rust(r#"(|| todo!())"#)]) + .f("unreachable", [], [], never(), [rust(r#"(|| unreachable!())"#)]) + .f("panic", [], [string()], never(), [rust(r#"(|msg| panic!("{}", msg))"#)]) + .f("exit", [], [unit()], never(), [rust(r#"(|| std::process::exit(0))"#)]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/option.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/option.rs new file mode 100644 index 000000000..59f575837 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/option.rs @@ -0,0 +1,20 @@ +use ast::Type; + +use super::bool::bool; +use super::rust; +use super::t; +use super::tc; + +pub(crate) fn option(t: Type) -> Type { + tc("Option", [t]) +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("Option", ["T"], [rust("Option")]) + .f("some", ["T"], [t("T")], option(t("T")), [rust("Option::some")]) + .f("none", ["T"], [], option(t("T")), [rust("Option::none")]) + .f("is_some", ["T"], [option(t("T"))], bool(), [rust("Option::is_some")]) + .f("is_none", ["T"], [option(t("T"))], bool(), [rust("Option::is_none")]) + .f("unwrap", ["T"], [option(t("T"))], t("T"), [rust("Option::unwrap")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/path.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/path.rs new file mode 100644 index 000000000..201d93151 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/path.rs @@ -0,0 +1,16 @@ +use ast::Type; + +use super::rust; +use super::string::string; +use super::t; + +pub(crate) fn path() -> Type { + t("Path") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("Path", [], [rust("Path")]) + // + .f("path", [], [string()], path(), [rust("Path::new")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/reader.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/reader.rs new file mode 100644 index 000000000..22d378cf9 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/reader.rs @@ -0,0 +1,23 @@ +use ast::Type; + +use super::bool::bool; +use super::path::path; +use super::rust; +use super::socket::socket_addr; +use super::string::string; +use super::t; +use super::url::url; + +pub(crate) fn reader() -> Type { + t("Reader") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("Reader", [], [rust("Reader")]) + .f("stdin_reader", [], [], reader(), [rust("Reader::stdin")]) + .f("file_reader", [], [path(), bool()], reader(), [rust("Reader::file")]) + .f("http_reader", [], [url()], reader(), [rust("Reader::http")]) + .f("tcp_reader", [], [socket_addr()], reader(), [rust("Reader::tcp")]) + .f("kafka_reader", [], [socket_addr(), string()], reader(), [rust("Reader::kafka")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/record.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/record.rs new file mode 100644 index 000000000..67a5d0398 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/record.rs @@ -0,0 +1 @@ +pub(crate) fn declare(builder: &mut super::Builder) {} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/result.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/result.rs new file mode 100644 index 000000000..c9cc91d37 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/result.rs @@ -0,0 +1,21 @@ +use ast::Type; + +use super::bool::bool; +use super::rust; +use super::t; +use super::tc; + +pub(crate) fn result(t: Type) -> Type { + tc("Result", [t]) +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("Result", ["T"], [rust("Result")]) + .f("ok", ["T"], [t("T")], result(t("T")), [rust("Result::ok")]) + .f("error", ["T"], [t("T")], result(t("T")), [rust("Result::error")]) + .f("is_ok", ["T"], [result(t("T"))], bool(), [rust("Result::is_ok")]) + .f("is_error", ["T"], [result(t("T"))], bool(), [rust("Result::is_error")]) + .f("unwrap_ok", ["T"], [result(t("T"))], t("T"), [rust("Result::unwrap_ok")]) + .f("unwrap_error", ["T"], [result(t("T"))], t("T"), [rust("Result::unwrap_error")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/socket.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/socket.rs new file mode 100644 index 000000000..6ef0768e6 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/socket.rs @@ -0,0 +1,15 @@ +use ast::Type; + +use super::rust; +use super::string::string; +use super::t; + +pub(crate) fn socket_addr() -> Type { + t("SocketAddr") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("SocketAddr", [], [rust("SocketAddr")]) + .f("socket", [], [string()], socket_addr(), [rust("SocketAddr::parse")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/stream.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/stream.rs new file mode 100644 index 000000000..9bac5975a --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/stream.rs @@ -0,0 +1,32 @@ +use ast::Type; + +use super::aggregator::aggregator; +use super::bool::bool; +use super::dataflow::dataflow; +use super::encoding::encoding; +use super::function::fun; +use super::keyed_stream::keyed_stream; +use super::reader::reader; +use super::rust; +use super::t; +use super::tc; +use super::time_source::time_source; +use super::vec::vec; +use super::writer::writer; + +pub(crate) fn stream(t: Type) -> Type { + tc("Stream", [t]) +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("Stream", ["T"], [rust("Stream")]) + .f("source", ["T"], [reader(), encoding(), time_source(t("T"))], stream(t("T")), [rust("Stream::source")]) + .f("sink", ["T"], [stream(t("T")), writer(), encoding()], dataflow(), [rust("Stream::sink")]) + .f("map", ["A", "B"], [stream(t("A")), fun([t("A")], t("B"))], stream(t("B")), [rust("Stream::map")]) + .f("filter", ["T"], [stream(t("T")), fun([t("T")], bool())], stream(t("T")), [rust("Stream::filter")]) + .f("flatmap", ["A", "B"], [stream(vec(t("A"))), fun([t("A")], vec(t("B")))], stream(t("B")), [rust("Stream::flatmap")]) + .f("flatten", ["T"], [stream(vec(t("A")))], stream(t("B")), [rust("Stream::flatten")]) + .f("window", ["I", "P", "O"], [stream(t("I")), t("Discretizer"), aggregator(t("I"), t("P"), t("O"))], stream(t("O")), [rust("Stream::window")]) + .f("keyby", ["K", "T"], [stream(t("T")), fun([t("T")], t("K"))], keyed_stream(t("K"), t("T")), [rust("Stream::keyby")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/string.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/string.rs new file mode 100644 index 000000000..d78d50893 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/string.rs @@ -0,0 +1,32 @@ +use ast::Type; + +use super::bool::bool; +use super::char::char; +use super::encoding::encoding; +use super::rust; +use super::t; +use super::tuple::tuple; +use super::usize::usize; +use super::vec::vec; + +pub(crate) fn string() -> Type { + t("String") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("String", [], [rust("String")]) + .f("new", [], [], string(), [rust("String::new")]) + .f("with_capacity", [], [usize()], string(), [rust("String::with_capacity")]) + .f("push_char", [], [string(), char()], string(), [rust("String::push")]) + .f("push_string", [], [string(), string()], string(), [rust("String::push_string")]) + .f("remove", [], [string(), usize()], tuple([string(), string()]), [rust("String::remove")]) + .f("insert_char", [], [string(), usize(), char()], string(), [rust("String::insert")]) + .f("is_empty", [], [string()], bool(), [rust("String::is_empty")]) + .f("split_off", [], [string(), usize()], tuple([string(), string()]), [rust("String::split_off")]) + .f("clear", [], [string()], string(), [rust("String::clear")]) + .f("len", [], [string()], usize(), [rust("String::len")]) + .f("decode", ["T"], [string(), encoding()], t("T"), [rust("String::decode")]) + .f("encode", ["T"], [t("T"), encoding()], string(), [rust("String::encode")]) + .f("lines", ["T"], [string()], vec(t("T")), [rust("String::lines")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/time.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/time.rs new file mode 100644 index 000000000..efaedf7ec --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/time.rs @@ -0,0 +1,24 @@ +use super::rust; +use super::i64::i64; +use super::i128::i128; +use super::string::string; +use super::i32::i32; +use super::Type; +use super::t; + +pub(crate) fn time() -> Type { + t("Time") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("Time", [], [rust("Time")]) + .f("now", [], [], time(), [rust("Time::now")]) + .f("from_seconds", [], [i64()], time(), [rust("Time::from_seconds")]) + .f("from_nanoseconds", [], [i128()], time(), [rust("Time::from_nanoseconds")]) + .f("seconds", [], [time()], i64(), [rust("Time::seconds")]) + .f("nanoseconds", [], [time()], i128(), [rust("Time::nanoseconds")]) + .f("year", [], [time()], i32(), [rust("Time::year")]) + .f("from_string", [], [string(), string()], time(), [rust("Time::from_string")]) + .f("into_string", [], [time(), string()], string(), [rust("Time::to_string")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/time_source.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/time_source.rs new file mode 100644 index 000000000..915c6d569 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/time_source.rs @@ -0,0 +1,18 @@ +use ast::Type; + +use super::duration::duration; +use super::function::fun; +use super::rust; +use super::t; +use super::tc; + +pub(crate) fn time_source(t: Type) -> Type { + tc("TimeSource", [t]) +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("TimeSource", ["T"], [rust("TimeSource")]) + .f("ingestion", ["T"], [duration()], time_source(t("T")), [rust("TimeSource::ingestion")]) + .f("event", ["T"], [duration(), duration(), fun([t("T")], duration())], time_source(t("T")), [rust("TimeSource::event")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/tuple.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/tuple.rs new file mode 100644 index 000000000..361323b53 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/tuple.rs @@ -0,0 +1,10 @@ +use ast::Type; +use ast::TypeKind::TTuple; +use im_rc::Vector; +use info::Info; + +pub(crate) fn tuple(ts: [Type; N]) -> Type { + TTuple(ts.into_iter().collect()).with(Info::Builtin) +} + +pub(crate) fn declare(builder: &mut super::Builder) {} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/u128.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/u128.rs new file mode 100644 index 000000000..40754ff2b --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/u128.rs @@ -0,0 +1,13 @@ +use ast::Type; + +use super::mlir; +use super::rust; +use super::t; + +pub(crate) fn u128() -> Type { + t("u128") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder.t("u128", [], [rust("u128"), mlir("si128")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/u16.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/u16.rs new file mode 100644 index 000000000..e60d94587 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/u16.rs @@ -0,0 +1,12 @@ +use ast::Type; + +use super::rust; +use super::t; + +pub(crate) fn u16() -> Type { + t("u16") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder.t("u16", [], [rust("u16")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/u32.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/u32.rs new file mode 100644 index 000000000..6fec74439 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/u32.rs @@ -0,0 +1,12 @@ +use ast::Type; + +use super::rust; +use super::t; + +pub(crate) fn u16() -> Type { + t("u16") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder.t("u32", [], [rust("u32")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/u64.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/u64.rs new file mode 100644 index 000000000..5bc3bc599 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/u64.rs @@ -0,0 +1,12 @@ +use ast::Type; + +use super::rust; +use super::t; + +pub(crate) fn u64() -> Type { + t("u64") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder.t("u64", [], [rust("u64")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/u8.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/u8.rs new file mode 100644 index 000000000..088bea3e1 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/u8.rs @@ -0,0 +1,12 @@ +use ast::Type; + +use super::rust; +use super::t; + +pub(crate) fn u64() -> Type { + t("u64") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder.t("u8", [], [rust("u8")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/unit.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/unit.rs new file mode 100644 index 000000000..601e2feb8 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/unit.rs @@ -0,0 +1,23 @@ +use ast::Type; +use ast::TypeKind::TUnit; +use info::Info; + +use super::noop; +use super::rust; +use super::string::string; +use super::t; + +pub(crate) fn unit() -> Type { + TUnit.with(Info::Builtin) +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .f("print", [], [string()], unit(), [rust(r#"(|x| println!("{}", x))"#)]) + .f("debug", ["T"], [t("T")], unit(), [rust(r#"(|x| println!("{:?}", x))"#)]) + .f("dataflow", [], [], unit(), [rust(noop())]) + .f("connect", [], [string()], unit(), [rust(noop())]) + .f("topics", [], [], unit(), [rust(noop())]) + .f("bifs", [], [], unit(), [rust(noop())]) + .f("typeof", ["T"], [t("T")], unit(), [rust(noop())]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/url.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/url.rs new file mode 100644 index 000000000..a8ff81485 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/url.rs @@ -0,0 +1,16 @@ +use ast::Type; + +use super::rust; +use super::string::string; +use super::t; + +pub(crate) fn url() -> Type { + t("Url") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("Url", [], [rust("Url")]) + // + .f("url", [], [string()], url(), [rust("Url::parse")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/usize.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/usize.rs new file mode 100644 index 000000000..94573ed88 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/usize.rs @@ -0,0 +1,12 @@ +use ast::Type; + +use super::rust; +use super::t; + +pub(crate) fn usize() -> Type { + t("usize") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder.t("usize", [], [rust("usize")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/variant.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/variant.rs new file mode 100644 index 000000000..67a5d0398 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/variant.rs @@ -0,0 +1 @@ +pub(crate) fn declare(builder: &mut super::Builder) {} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/vec.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/vec.rs new file mode 100644 index 000000000..17acc7084 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/vec.rs @@ -0,0 +1,27 @@ +use ast::Type; +use im_rc::vector; + +use super::bool::bool; +use super::option::option; +use super::rust; +use super::t; +use super::tc; +use super::tuple::tuple; +use super::usize::usize; + +pub(crate) fn vec(v: Type) -> Type { + tc("Vec", [v]) +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("Vec", ["T"], [rust("Vec")]) + .f("new", ["T"], [], vec(t("T")), [rust("Vec::new")]) + .f("push", ["T"], [vec(t("T")), t("T")], vec(t("T")), [rust("Vec::push")]) + .f("pop", ["T"], [vec(t("T"))], tuple([t("T"), option(t("T"))]), [rust("Vec::pop")]) + .f("len", ["T"], [vec(t("T"))], usize(), [rust("Vec::len")]) + .f("get", ["T"], [vec(t("T")), usize()], option(t("T")), [rust("Vec::get")]) + .f("insert", ["T"], [vec(t("T")), usize(), t("T")], vec(t("T")), [rust("Vec::insert")]) + .f("is_empty", ["T"], [vec(t("T"))], bool(), [rust("Vec::is_empty")]) + .f("sort", ["T"], [vec(t("T"))], vec(t("T")), [rust("Vec::sort")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/writer.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/writer.rs new file mode 100644 index 000000000..f9b41f60d --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/declarations/writer.rs @@ -0,0 +1,22 @@ +use ast::Type; + +use super::path::path; +use super::rust; +use super::socket::socket_addr; +use super::string::string; +use super::t; +use super::url::url; + +pub(crate) fn writer() -> Type { + t("Writer") +} + +pub(crate) fn declare(builder: &mut super::Builder) { + builder + .t("Writer", [], [rust("Writer")]) + .f("stdout_writer", [], [], writer(), [rust("Writer::stdout")]) + .f("file_writer", [], [path()], writer(), [rust("Writer::file")]) + .f("http_writer", [], [url()], writer(), [rust("Writer::http")]) + .f("tcp_writer", [], [socket_addr()], writer(), [rust("Writer::tcp")]) + .f("kafka_writer", [], [socket_addr(), string()], writer(), [rust("Writer::kafka")]); +} diff --git a/arc-lang/crates/compiler/passes/ast-prelude/src/lib.rs b/arc-lang/crates/compiler/passes/ast-prelude/src/lib.rs new file mode 100644 index 000000000..5c91e73bc --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-prelude/src/lib.rs @@ -0,0 +1,11 @@ +#![allow(unused)] +pub mod declarations; + +use ast::*; +use im_rc::vector; +use im_rc::Vector; +use info::Info; + +pub const MLIR_PRELUDE: &str = include_str!("prelude.mlir"); + +pub use declarations::prelude; diff --git a/arc-lang/stdlib/stdlib.mlir b/arc-lang/crates/compiler/passes/ast-prelude/src/prelude.mlir similarity index 100% rename from arc-lang/stdlib/stdlib.mlir rename to arc-lang/crates/compiler/passes/ast-prelude/src/prelude.mlir diff --git a/arc-lang/crates/compiler/passes/ast-to-hir/Cargo.toml b/arc-lang/crates/compiler/passes/ast-to-hir/Cargo.toml new file mode 100644 index 000000000..2dfbf4d82 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-to-hir/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "ast-to-hir" +version.workspace = true +edition.workspace = true + +[dependencies] +codegen.workspace = true +ast.workspace = true +hir.workspace = true +parser.workspace = true +name-gen.workspace = true +utils.workspace = true +info.workspace = true +diagnostics.workspace = true +im-rc.workspace = true +regex.workspace = true +lazy_static.workspace = true +ast-prelude.workspace = true +stack.workspace = true diff --git a/arc-lang/crates/compiler/passes/ast-to-hir/src/context.rs b/arc-lang/crates/compiler/passes/ast-to-hir/src/context.rs new file mode 100644 index 000000000..8ca7e5391 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-to-hir/src/context.rs @@ -0,0 +1,197 @@ +use diagnostics::Diagnostics; +use hir::*; +use im_rc::vector; +use im_rc::OrdMap; +use im_rc::Vector; +use info::Info; +use name_gen::NameGen; +use stack::Stack; +use std::collections::VecDeque; +use std::rc::Rc; + +#[derive(Clone, Debug)] +pub struct Context { + next_type_var_uid: NameGen, + pub(crate) stack: Stack, + pub diagnostics: Diagnostics, +} + +#[derive(Clone, Debug)] +pub(crate) struct Scope { + kind: ScopeKind, + expr_namespace: Vec<(ast::Name, ExprDecl)>, // BIFs, Functions, variables, parameters + type_namespace: Vec<(ast::Name, TypeDecl)>, // BITs, Type aliases, generics, enums +} + +#[derive(Clone, Debug)] +pub(crate) enum ScopeKind { + Top, + Block, + While, + For, + Loop, + Def, + Fun, + Enum, + Type, + Arm, + Query, + QuerySelect, +} + +#[derive(Clone, Debug)] +pub enum ExprDecl { + Def(Info, usize, Vector), + Var(Info), + Val(Info), + Variant(Info, Name, Vector), +} + +impl ExprDecl { + pub fn info(&self) -> Info { + match self { + ExprDecl::Def(info, _, _) => *info, + ExprDecl::Var(info) => *info, + ExprDecl::Val(info) => *info, + ExprDecl::Variant(info, _, _) => *info, + } + } +} + +#[derive(Clone, Debug)] +pub enum TypeDecl { + Enum(Info, Vector, Vector<(Name, Type)>), + Type(Info, Vector, Type), + TypeArg(Info, Type), + Bit(Info, Vector), + Generic(Info), +} + +impl TypeDecl { + pub fn info(&self) -> Info { + match self { + TypeDecl::Enum(info, _, _) => *info, + TypeDecl::Type(info, _, _) => *info, + TypeDecl::TypeArg(info, _) => *info, + TypeDecl::Bit(info, _) => *info, + TypeDecl::Generic(info) => *info, + } + } +} + +impl Default for Context { + fn default() -> Self { + Context { + next_type_var_uid: NameGen::new("t"), + stack: Stack::new(ScopeKind::Top), + diagnostics: Diagnostics::default(), + } + } +} + +impl Context { + pub fn new() -> Self { + Self::default() + } + + pub(crate) fn is_inside_loop(&self) -> bool { + for scope in self.stack.iter() { + match scope.kind { + ScopeKind::Top => break, + ScopeKind::Block => continue, + ScopeKind::Loop => return true, + ScopeKind::While => return true, + ScopeKind::For => return true, + ScopeKind::Def => break, + ScopeKind::Fun => break, + ScopeKind::Enum => continue, + ScopeKind::Type => continue, + ScopeKind::Arm => continue, + ScopeKind::Query => continue, + ScopeKind::QuerySelect => continue, + } + } + false + } + + pub(crate) fn is_inside_infinite_loop(&self) -> bool { + for scope in self.stack.iter() { + match scope.kind { + ScopeKind::Top => break, + ScopeKind::Block => continue, + ScopeKind::Loop => return true, + ScopeKind::While => break, + ScopeKind::For => break, + ScopeKind::Def => break, + ScopeKind::Fun => break, + ScopeKind::Enum => continue, + ScopeKind::Type => continue, + ScopeKind::Arm => continue, + ScopeKind::Query => continue, + ScopeKind::QuerySelect => continue, + } + } + false + } + + pub(crate) fn is_inside_function(&self) -> bool { + for scope in self.stack.iter() { + match scope.kind { + ScopeKind::Top => break, + ScopeKind::Block => continue, + ScopeKind::Loop => continue, + ScopeKind::While => continue, + ScopeKind::For => continue, + ScopeKind::Def => return true, + ScopeKind::Fun => return true, + ScopeKind::Enum => continue, + ScopeKind::Type => continue, + ScopeKind::Arm => continue, + ScopeKind::Query => continue, + ScopeKind::QuerySelect => continue, + } + } + false + } + + // from (x, y) in source(..) # x, y + // select {x} # x + // where f(x) # x + // select {x, r:g(x)} # x, r + // into source(..) # x, r + pub(crate) fn query_variables(&self) -> Vector<(ast::Name, ExprDecl)> { + let mut variables = Vector::new(); + let mut scopes = self.stack.iter(); + while let Some(scope) = scopes.next() { + match scope.kind { + ScopeKind::Top => break, + ScopeKind::Block => continue, + ScopeKind::Loop => continue, + ScopeKind::While => continue, + ScopeKind::For => continue, + ScopeKind::Def => continue, + ScopeKind::Fun => continue, + ScopeKind::Enum => continue, + ScopeKind::Type => continue, + ScopeKind::Arm => continue, + ScopeKind::Query => { + // variables.extend(scope.expr_namespace.clone()); + continue; + } + ScopeKind::QuerySelect => { + // variables.extend(scope.expr_namespace.clone()); + continue; + } + } + } + variables + } + + pub(crate) fn typed(&mut self, f: impl FnOnce(Type) -> T) -> T { + f(self.new_type_var()) + } + + pub(crate) fn new_type_var(&mut self) -> Type { + TVar(self.next_type_var_uid.fresh()).into() + } +} diff --git a/arc-lang/crates/compiler/passes/ast-to-hir/src/lib.rs b/arc-lang/crates/compiler/passes/ast-to-hir/src/lib.rs new file mode 100644 index 000000000..ea7c9c658 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ast-to-hir/src/lib.rs @@ -0,0 +1,1002 @@ +//! AST => HIR: +//! * Name resolution +//! * Check that each expression variable and type variable is bound +//! * Disambiguate variants from functions and variables +//! * e.g., Foo(p) +//! * e.g., Foo(1) +//! * Disambiguate mutable variables from immutable variables +//! * Generate a unique identifier for each function, enum, type alias, and variable +//! * Generate type variables +//! * Each expr, pattern, and missing type (e.g., _) gets a type variable +//! * Syntax desugaring +//! * String interpolation desugaring +//! * Method call desugaring +//! * Convert records to rows +//! * Convert () and ! to nominal types +//! * Convert operators to functions +//! * Syntactic checks: +//! * No duplicate fields, variants or attributes +//! * No return outside of function, no break outside of loop +//! * No var captured by a function +//! * Correct number of expression arguments to functions +//! * Correct number of type arguments to type aliases and enums +//! * Check that only place expressions are mutated (variables, arrays, records) + +//! TODO: +//! * Disambiguate functions from variables +//! * e.g., foo[i32,i32] and foo[1,2,3] +//! * e.g., foo.bar() and Foo.Bar() +#![allow(unused)] +pub mod context; + +use ast::Body; +use ast::ExprField; +use context::ExprDecl; +use context::ScopeKind; +use context::TypeDecl; +use diagnostics::Diagnostics; +use diagnostics::Error; +use diagnostics::Warning; +use hir::*; +use im_rc::ordmap; +use im_rc::ordmap::Entry; +use im_rc::vector; +use im_rc::OrdMap; +use im_rc::Vector; +use info::Info; +use regex::Matches; +use regex::Regex; +use utils::AssocVectorUtils; +use utils::OptionUtils; +use utils::VectorUtils; + +use crate::context::Context; + +pub fn process(ctx: &mut Context, ss: Vector) -> Vector { + ss.map(|s| lower_stmt(ctx, s)) +} + +pub fn lower_stmt(ctx: &mut Context, s: ast::Stmt) -> Stmt { + let info = s.info; + match s.kind { + ast::SNoop => SNoop.with(info), + ast::SVal(p, e) => { + let e = lower_expr(ctx, e); + let p = lower_pattern(ctx, p, false); + SVal(p, e).with(info) + } + ast::SVar(p, e) => { + let e = lower_expr(ctx, e); + let p = lower_pattern(ctx, p, true); + SVal(p, e).with(info) + } + ast::SExpr(e) => { + let e = lower_expr(ctx, e); + SExpr(e).with(info) + } + ast::SDef(m, x, gs, ps, t, bs, b) => { + ctx.stack + .bind_expr_decl(x.clone(), ExprDecl::Def(info, ps.len(), gs.clone())); + let m = lower_meta(ctx, m); + ctx.stack.push_scope(ScopeKind::Def); + gs.clone() + .into_iter() + .for_each(|x| lower_generic(ctx, x, info)); + let ps = ps.mapm(ctx, |ctx, p| lower_pattern(ctx, p, false)); + let t = lower_type_or_fresh(ctx, t); + let b = lower_body(ctx, b); + ctx.stack.pop_scope(); + SDef(m, x, gs, ps, t, b).with(info) + } + // TODO: Fix so that enums are correctly lexically scoped, i.e., + // enum X { A } + // val a1 = X::A; + // use X::A; + // val a = A; + // Currently it won't work with generic types + ast::SEnum(m, x, gs, _bs, xts) => { + let m = lower_meta(ctx, m); + gs.clone() + .into_iter() + .for_each(|x| lower_generic(ctx, x, info)); + let xts = xts + .into_iter() + .filter_map(|v| lower_enum_variant(ctx, x.clone(), gs.clone(), v, info)) + .collect::>(); + ctx.stack + .bind_type_decl(x.clone(), TypeDecl::Enum(info, gs.clone(), xts.clone())); + SEnum(m, x, gs, xts).with(info) + } + ast::SType(m, x, gs, t) => { + let m = lower_meta(ctx, m); + ctx.stack.push_scope(ScopeKind::Type); + gs.clone() + .into_iter() + .for_each(|x| lower_generic(ctx, x, info)); + let t = lower_type(ctx, t); + ctx.stack.pop_scope(); + ctx.stack + .bind_type_decl(x.clone(), TypeDecl::Type(info, gs.clone(), t.clone())); + SNoop.with(info) + } + ast::SBuiltinDef(m, x, gs, ts, t, bs) => { + let m = lower_meta(ctx, m); + gs.clone() + .into_iter() + .for_each(|x| lower_generic(ctx, x, info)); + let ts = ts.mapm(ctx, lower_type); + let t = lower_type_or_unit(ctx, t); + ctx.stack + .bind_expr_decl(x.clone(), ExprDecl::Def(info, ts.len(), gs.clone())); + SBif(m, x, gs, ts, t).with(info) + } + ast::SBuiltinType(m, x, gs, bs) => { + let m = lower_meta(ctx, m); + gs.clone() + .into_iter() + .for_each(|x| lower_generic(ctx, x, info)); + ctx.stack + .bind_type_decl(x.clone(), TypeDecl::Bit(info, gs.clone())); + SBit(m, x, gs).with(info) + } + ast::SBuiltinClass(_, _, _, _) => todo!(), + ast::SBuiltinInstance(_, _, _, _, _) => todo!(), + ast::SInject(_, _) => todo!(), + } +} + +fn lower_const(ctx: &mut Context, c: ast::Const) -> Const { + match c { + ast::CInt(c) => CInt(c), + ast::CFloat(c) => CFloat(c), + ast::CBool(c) => CBool(c), + ast::CString(c) => CString(c), + ast::CUnit => CUnit, + ast::CChar(c) => CChar(c), + } +} + +fn lower_meta(ctx: &mut Context, meta: ast::Meta) -> Meta { + let mut map = ordmap![]; + for a in meta.into_iter() { + if map.contains_key(&a.x) { + ctx.diagnostics.push_error(Error::DuplicateMetaKey { + key: a.x, + info: a.info, + }); + } else { + let c = a.c.map(|c| lower_const(ctx, c)); + map.insert(a.x, c); + } + } + map +} + +fn lower_generic(ctx: &mut Context, x: ast::Generic, info: Info) { + ctx.stack.bind_type_decl(x, TypeDecl::Generic(info)) +} + +fn lower_type(ctx: &mut Context, t: ast::Type) -> Type { + let info = t.info; + match (*t.kind).clone() { + ast::TParen(t) => lower_type(ctx, t), + ast::TFun(ts, t) => { + let ts = ts.mapm(ctx, lower_type); + let t = lower_type(ctx, t); + TFun(ts, t).into() + } + ast::TTuple(ts) => { + let ts = ts.mapm(ctx, lower_type); + TTuple(ts, true).into() + } + ast::TRecord(xts) => { + let xts = xts.mapm_assoc(ctx, lower_type); + let t = fields_to_rows(xts, TRowEmpty.into()); + TRecord(t).into() + } + ast::TRecordConcat(t0, t1) => { + let t0 = lower_type(ctx, t0); + let t1 = lower_type(ctx, t1); + TRecordConcat(t0, t1).into() + } + ast::TArrayConcat(t0, t1) => { + let t0 = lower_type(ctx, t0); + let t1 = lower_type(ctx, t1); + TArrayConcat(t0, t1).into() + } + ast::TName(x, ts) => match ctx.stack.find_type_decl(&x) { + Some(TypeDecl::Enum(info1, gs, _)) => { + let ts = lower_type_args_strict(ctx, x.clone(), ts, gs.clone(), info, info1); + TNominal(x, ts).into() + } + Some(TypeDecl::Bit(info1, gs)) => { + let ts = lower_type_args_strict(ctx, x.clone(), ts, gs.clone(), info, info1); + TNominal(x, ts).into() + } + Some(TypeDecl::Type(info1, gs, t)) => { + let ts = lower_type_args_strict(ctx, x.clone(), ts, gs.clone(), info, info1); + let ctx = gs + .into_iter() + .zip(ts) + .for_each(|(x, t)| ctx.stack.bind_type_decl(x, TypeDecl::TypeArg(info, t))); + TAlias(info1, info, t).into() + } + Some(TypeDecl::TypeArg(info1, t)) => t.into(), + Some(TypeDecl::Generic(_)) => { + if ts.len() > 0 { + ctx.diagnostics.push_error(Error::GenericWithArgs { + name: x, + info: t.info, + }); + TError.into() + } else { + TGeneric(x).into() + } + } + None => { + ctx.diagnostics.push_error(Error::UnresolvedTypeName { + name: x, + info: t.info, + }); + TError.into() + } + }, + ast::TArray(t, n) => { + let t = lower_type(ctx, t); + TArray(t, n).into() + } + ast::TUnit => TUnit.into(), + ast::TNever => TNever.into(), + ast::TIgnore => ctx.new_type_var(), + ast::TError => TError.into(), + } +} + +fn lower_pattern_name(ctx: &mut Context, x: Name, info: Info, m: bool) -> Pattern { + if m { + ctx.stack.bind_expr_decl(x.clone(), ExprDecl::Var(info)); + ctx.typed(|t| PVar(x).with(t, info)) + } else { + ctx.stack.bind_expr_decl(x.clone(), ExprDecl::Val(info)); + ctx.typed(|t| PVal(x).with(t, info)) + } +} + +fn lower_pattern(ctx: &mut Context, p: ast::Pattern, m: bool) -> Pattern { + let info = p.info; + match (*p.kind).clone() { + ast::PParen(p) => lower_pattern(ctx, p, m), + ast::PIgnore => ctx.typed(|t| PIgnore.with(t, info)), + ast::POr(p0, p1) => { + let p0 = lower_pattern(ctx, p0, m); + let p1 = lower_pattern(ctx, p1, m); + ctx.typed(|t| POr(p0, p1).with(t, info)) + } + ast::PTypeAnnot(p, t) => { + let p = lower_pattern(ctx, p, m); + let t = lower_type(ctx, t); + PNoop(p).with(t, info) + } + ast::PRecord(xps) => { + let xps = xps.mapm(ctx, |ctx, (x, p)| match p { + Some(p) => { + let p = lower_pattern(ctx, p, m); + (x, p) + } + None => { + let p = lower_pattern_name(ctx, x.clone(), info, m); + (x, p) + } + }); + ctx.typed(|t| PRecord(xps).with(t, info)) + } + ast::PRecordConcat(p0, p1) => { + let p0 = lower_pattern(ctx, p0, m); + let p1 = lower_pattern(ctx, p1, m); + ctx.typed(|t| PRecordConcat(p0, p1).with(t, info)) + } + ast::PTuple(ps) => { + let ps = ps.mapm(ctx, |ctx, p| lower_pattern(ctx, p, m)); + ctx.typed(|t| PTuple(ps).with(t, info)) + } + ast::PArray(ps) => { + let ps = ps.mapm(ctx, |ctx, p| lower_pattern(ctx, p, m)); + ctx.typed(|t| PArray(ps).with(t, info)) + } + ast::PArrayConcat(p0, p1) => { + let p0 = lower_pattern(ctx, p0, m); + let p1 = lower_pattern(ctx, p1, m); + ctx.typed(|t| PArrayConcat(p0, p1).with(t, info)) + } + ast::PConst(c) => { + let c = lower_const(ctx, c); + ctx.typed(|t| PConst(c).with(t, info)) + } + ast::PName(x) => match ctx.stack.find_expr_decl(&x) { + Some(ExprDecl::Variant(info1, x0, gs)) => { + let ts = lower_type_args(ctx, x.clone(), vector![], gs, info, info1); + let p = ctx.typed(|t| PConst(CUnit).with(t, info)); + ctx.typed(|t| PVariant(x0, ts, x, p).with(t, info)) + } + Some(expr_name) => { + ctx.diagnostics.push_warning(Warning::ShadowedVariable { + info0: expr_name.info(), + info1: info, + }); + lower_pattern_name(ctx, x, info, m) + } + None => lower_pattern_name(ctx, x, info, m), + }, + ast::PVariantTuple(x, ps) => { + let p = lower_pattern(ctx, ast::PTuple(ps).with(info), m); + lower_pattern_variant(ctx, x, p, info) + } + ast::PVariantRecord(x, xps) => { + let p = lower_pattern(ctx, ast::PRecord(xps).with(info), m); + lower_pattern_variant(ctx, x, p, info) + } + ast::PError => panic!(), + } +} + +fn lower_pattern_variant(ctx: &mut Context, x: Name, p: Pattern, info: Info) -> Pattern { + match ctx.stack.find_expr_decl(&x) { + Some(ExprDecl::Variant(info1, x0, gs)) => { + let ts = lower_type_args(ctx, x.clone(), vector![], gs, info, info1); + ctx.typed(|t| PVariant(x0, ts, x, p).with(t, info)) + } + Some(_) => { + ctx.diagnostics.push_error(Error::ExpectedVariant { info }); + ctx.typed(|t| PError.with(t, info)) + } + None => { + ctx.diagnostics.push_error(Error::UnresolvedName { info }); + ctx.typed(|t| PError.with(t, info)) + } + } +} + +fn lower_enum_variant( + ctx: &mut Context, + enum_x: String, + gs: Vector, + v: ast::Variant, + info: Info, +) -> Option<(Name, Type)> { + let (x, t) = match v { + ast::VUnit(x) => (x, TUnit.into()), + ast::VRecord(x, xts) => { + let xts = xts.mapm_assoc(ctx, lower_type); + let t = fields_to_rows(xts, TRowEmpty.into()); + (x, TRecord(t).into()) + } + ast::VTuple(x, ts) => { + let ts = ts.mapm(ctx, lower_type); + (x, TTuple(ts, true).into()) + } + }; + if let Some(expr_name) = ctx.stack.find_expr_decl(&x) { + ctx.diagnostics.push_error(Error::NameClash { + info0: info, + info1: expr_name.info(), + }); + None + } else { + ctx.stack + .bind_expr_decl(x.clone(), ExprDecl::Variant(info, enum_x.clone(), gs)); + Some((x, t)) + } +} + +fn lower_block(ctx: &mut Context, b: ast::Block, kind: ScopeKind) -> Block { + ctx.stack.push_scope(kind); + let ss = b.ss.mapm(ctx, lower_stmt); + let e = lower_expr_or_unit(ctx, b.info, b.e); + ctx.stack.pop_scope(); + Block::new(ss, e, b.info) +} + +fn lower_call(ctx: &mut Context, e: ast::Expr, es: Vector) -> Expr { + let info = e.info; + if let ast::EName(x, ts) = e.kind() { + match ctx.stack.find_expr_decl(&x) { + Some(ExprDecl::Variant(info1, x0, gs)) => { + let ts = lower_type_args(ctx, x.clone(), ts, gs, info, info1); + let e = lower_expr(ctx, ast::ETuple(es).with(info)); + return ctx.typed(|t| EVariant(x0, ts, x, e).with(t, info)); + } + Some(ExprDecl::Def(_, n, gs)) => { + if es.len() == n { + let ts = lower_type_args(ctx, x.clone(), ts, gs, info, info); + let es = es.mapm(ctx, lower_expr); + return ctx.typed(|t| EFunCallDirect(x, ts, es).with(t, info)); + } else { + ctx.diagnostics.push_error(Error::WrongNumberOfArguments { + info, + expected: n, + found: es.len(), + }); + return ctx.typed(|t| EError.with(t, info)); + } + } + _ => {} + } + } + let e = lower_expr(ctx, e); + let es = es.mapm(ctx, lower_expr); + ctx.typed(|t| EFunCall(e, es).with(t, info)) +} + +fn lower_expr(ctx: &mut Context, e: ast::Expr) -> Expr { + let info = e.info; + match e.kind() { + ast::EParen(e) => lower_expr(ctx, e), + ast::EName(x, ts) => match ctx.stack.find_expr_decl(&x) { + Some(ExprDecl::Variant(info1, x0, gs)) => { + let ts = lower_type_args(ctx, x.clone(), ts, gs, info, info1); + let e = ctx.typed(|t| EConst(CUnit).with(t, info)); + ctx.typed(|t| EVariant(x0, ts, x, e).with(t, info)) + } + Some(ExprDecl::Def(info1, _, gs)) => { + let ts = lower_type_args(ctx, x.clone(), ts, gs, info, info1); + ctx.typed(|t| EDef(x, ts).with(t, info)) + } + Some(ExprDecl::Val(_)) => { + if ts.is_empty() { + ctx.typed(|t| EVal(x).with(t, info)) + } else { + ctx.diagnostics + .push_error(Error::UnexpectedTypeArgs { info }); + ctx.typed(|t| EError.with(t, info)) + } + } + Some(ExprDecl::Var(_)) => { + if ts.is_empty() { + ctx.typed(|t| EVar(x).with(t, info)) + } else { + ctx.diagnostics + .push_error(Error::UnexpectedTypeArgs { info }); + ctx.typed(|t| EError.with(t, info)) + } + } + None => { + ctx.diagnostics.push_error(Error::UnresolvedName { info }); + ctx.typed(|t| EError.with(t, info)) + } + }, + ast::EQuery(p, e, qs) => lower_query(ctx, p, e, qs), + ast::ERecordAccess(e, x) => { + let e = lower_expr(ctx, e); + ctx.typed(|t| ERecordAccess(e, x).with(t, info)) + } + ast::ERecordAccessMulti(_, _) => todo!(), + ast::ERecordConcat(e0, e1) => { + let e0 = lower_expr(ctx, e0); + let e1 = lower_expr(ctx, e1); + ctx.typed(|t| ERecordConcat(e0, e1).with(t, info)) + } + ast::EFunCall(e, es) => lower_call(ctx, e, es), + ast::EMethodCall(e0, x, ts, mut es) => { + es.push_front(e0); + lower_expr( + ctx, + ast::EFunCall(ast::EName(x, vector![]).with(info), es).with(info), + ) + } + ast::ETypeAnnot(e, t) => { + let e = lower_expr(ctx, e); + let t = lower_type(ctx, t); + ENoop(e).with(t, info) + } + ast::EIfElse(e, b0, b1) => { + let e = lower_expr(ctx, e); + let b0 = lower_block(ctx, b0, ScopeKind::Block); + let b1 = lower_block_opt(ctx, info, b1); + ctx.typed(|t| EIfElse(e, b0, b1).with(t, info)) + } + ast::ELit(l) => lower_lit(ctx, l, e.info), + ast::ELoop(b) => { + let b = lower_block(ctx, b, ScopeKind::Loop); + ctx.typed(|t| ELoop(b).with(t, info)) + } + ast::ERecord(xes) => { + let xes = xes.mapm(ctx, |ctx, xe| lower_expr_field(ctx, info, xe)); + ctx.typed(|t| ERecord(xes).with(t, info)) + } + ast::EVariantRecord(x, xes) => { + if let Some(ExprDecl::Variant(info1, x0, gs)) = ctx.stack.find_expr_decl(&x) { + let ts = lower_type_args(ctx, x.clone(), vector![], gs, info, info1); + let e = lower_expr(ctx, ast::ERecord(xes).with(info)); + return ctx.typed(|t| EVariant(x0, ts, x, e).with(t, info)); + } else { + ctx.diagnostics.push_error(Error::ExpectedVariant { info }); + return ctx.typed(|t| EError.with(t, info)); + } + } + ast::EFunReturn(e) => { + let e = lower_expr_or_unit(ctx, info, e); + ctx.typed(|t| EFunReturn(e).with(t, info)) + } + ast::ELoopBreak(e) => { + if let Some(e) = e { + if ctx.is_inside_infinite_loop() { + let e = lower_expr(ctx, e); + ctx.typed(|t| ELoopBreak(e).with(t, info)) + } else { + ctx.diagnostics + .push_error(Error::BreakOutsideInfiniteLoop { info }); + ctx.typed(|t| EError.with(t, info)) + } + } else { + if ctx.is_inside_loop() { + let e = lower_expr_or_unit(ctx, info, e); + ctx.typed(|t| ELoopBreak(e).with(t, info)) + } else { + ctx.diagnostics.push_error(Error::BreakOutsideLoop { info }); + ctx.typed(|t| EError.with(t, info)) + } + } + } + ast::ELoopContinue => { + if ctx.is_inside_loop() { + ctx.typed(|t| ELoopContinue.with(t, info)) + } else { + ctx.diagnostics + .push_error(Error::ContinueOutsideLoop { info }); + ctx.typed(|t| EError.with(t, info)) + } + } + ast::EArray(es) => { + let es = es.mapm(ctx, lower_expr); + ctx.typed(|t| EArray(es).with(t, info)) + } + ast::EUnop(op, e) => { + let e = lower_expr(ctx, e); + lower_unop(ctx, op, e, info) + } + ast::EBinop(e0, op, e1) => { + let e0 = lower_expr(ctx, e0); + let e1 = lower_expr(ctx, e1); + lower_binop(ctx, e0, op, e1, info) + } + ast::EMut(e0, op, e1) => { + let e0 = lower_place_expr(ctx, e0); + let e1 = lower_expr(ctx, e1); + if let Some(op) = op { + let e2 = lower_binop(ctx, e0.clone(), op, e1, info); + ctx.typed(|t| EMut(e0, e2).with(t, info)) + } else { + ctx.typed(|t| EMut(e0, e1).with(t, info)) + } + } + ast::EDo(b) => { + let b = lower_block(ctx, b, ScopeKind::Block); + ctx.typed(|t| EDo(b).with(t, info)) + } + ast::EFor(p, e, b) => { + ctx.stack.push_scope(ScopeKind::Loop); + let p = lower_pattern(ctx, p, false); + let e = lower_expr(ctx, e); + let b = lower_block(ctx, b, ScopeKind::Block); + ctx.stack.pop_scope(); + ctx.typed(|t| EFor(p, e, b).with(t, info)) + } + ast::EFun(ps, t, b) => { + ctx.stack.push_scope(ScopeKind::Fun); + let ps = ps.mapm(ctx, |ctx, p| lower_pattern(ctx, p, false)); + let t1 = lower_type_or_fresh(ctx, t); + let b = lower_body(ctx, b); + ctx.stack.pop_scope(); + ctx.typed(|t| hir::EFun(ps, t1, b).with(t, info)) + } + ast::EMatch(e, arms) => { + let e = lower_expr(ctx, e); + let arms = arms.mapm(ctx, lower_arm); + ctx.typed(|t| EMatch(e, arms).with(t, info)) + } + ast::ETupleAccess(e, i) => { + let e = lower_expr(ctx, e); + ctx.typed(|t| ETupleAccess(e, i).with(t, info)) + } + ast::EArrayAccess(e0, e1) => { + let e0 = lower_expr(ctx, e0); + let e1 = lower_expr(ctx, e1); + ctx.typed(|t| EArrayAccess(e0, e1).with(t, info)) + } + ast::EThrow(_e) => todo!(), + ast::ETry(_b0, _arms, _b1) => todo!(), + ast::ETuple(es) => { + let es = es.mapm(ctx, lower_expr); + ctx.typed(|t| ETuple(es).with(t, info)) + } + ast::EWhile(e, b) => { + let e = lower_expr(ctx, e); + let b = lower_block(ctx, b, ScopeKind::Loop); + ctx.typed(|t| EWhile(e, b).with(t, info)) + } + ast::EArrayConcat(e0, e1) => { + let e0 = lower_expr(ctx, e0); + let e1 = lower_expr(ctx, e1); + ctx.typed(|t| EArrayConcat(e0, e1).with(t, info)) + } + ast::EError => ctx.typed(|t| EError.with(t, info)), + } +} + +fn lower_place_expr(ctx: &mut Context, e: ast::Expr) -> Expr { + let info = e.info; + match e.kind() { + ast::EName(x, ts) => match ctx.stack.find_expr_decl(&x) { + Some(ExprDecl::Var(_)) => { + if ts.len() == 0 { + ctx.typed(|t| EVar(x).with(t, info)) + } else { + ctx.diagnostics + .push_error(Error::UnexpectedTypeArgs { info }); + ctx.typed(|t| EError.with(t, info)) + } + } + Some(x) => { + ctx.diagnostics.push_error(Error::ExpectedVar { info }); + ctx.typed(|t| EError.with(t, info)) + } + None => { + ctx.diagnostics.push_error(Error::UnresolvedName { info }); + ctx.typed(|t| EError.with(t, info)) + } + }, + ast::EArrayAccess(e0, e1) => { + let e0 = lower_place_expr(ctx, e0); + let e1 = lower_expr(ctx, e1); + ctx.typed(|t| EArrayAccess(e0, e1).with(t, info)) + } + ast::ETupleAccess(e, i) => { + let e = lower_place_expr(ctx, e); + ctx.typed(|t| ETupleAccess(e, i).with(t, info)) + } + _ => { + ctx.diagnostics + .push_error(Error::ExpectedPlaceExpr { info }); + ctx.typed(|t| EError.with(t, info)) + } + } +} + +fn lower_arm(ctx: &mut Context, (p, e): ast::Arm) -> Arm { + ctx.stack.push_scope(ScopeKind::Arm); + let p = lower_pattern(ctx, p, false); + let e = lower_expr(ctx, e); + let b = Block::new(vector![], e, p.info); + ctx.stack.pop_scope(); + (p, b) +} + +fn lower_unop(ctx: &mut Context, op: ast::Unop, e: Expr, info: Info) -> Expr { + let x = ast::ops::unop(op.kind).to_string(); + match ctx.stack.find_expr_decl(&x) { + Some(ExprDecl::Def(_, _, gs)) => { + let ts = gs.iter().map(|g| ctx.new_type_var()).collect(); + ctx.typed(|t| EFunCallDirect(x, ts, vector![e]).with(t, info)) + } + _ => { + ctx.diagnostics.push_error(Error::UnresolvedName { info }); + ctx.typed(|t| EError.with(t, info)) + } + } +} + +fn lower_binop(ctx: &mut Context, e0: Expr, op: ast::Binop, e1: Expr, info: Info) -> Expr { + let x = ast::ops::binop(op.kind).to_string(); + match ctx.stack.find_expr_decl(&x) { + Some(ExprDecl::Def(_, _, gs)) => { + let ts = gs.iter().map(|g| ctx.new_type_var()).collect(); + ctx.typed(|t| EFunCallDirect(x, ts, vector![e0.clone(), e1]).with(t, info)) + } + _ => { + ctx.diagnostics.push_error(Error::UnresolvedName { info }); + ctx.typed(|t| EError.with(t, info)) + } + } +} + +fn lower_expr_or_unit(ctx: &mut Context, info: Info, e: Option) -> Expr { + e.mapm_or_else(ctx, lower_expr, |ctx| { + ctx.typed(|t| EConst(CUnit).with(t, info)) + }) +} + +fn lower_type_or_unit(ctx: &mut Context, t: Option) -> Type { + t.mapm_or_else(ctx, lower_type, |ctx| TUnit.into()) +} + +fn lower_type_or_fresh(ctx: &mut Context, t: Option) -> Type { + t.mapm_or_else(ctx, lower_type, |ctx| ctx.new_type_var()) +} + +fn lower_expr_field(ctx: &mut Context, info: Info, f: ExprField) -> (Name, Expr) { + match f { + ast::FName(x, e) => { + if let Some(e) = e { + let e = lower_expr(ctx, e); + (x, e) + } else { + let e = match ctx.stack.find_expr_decl(&x) { + Some(ExprDecl::Val(_)) => ctx.typed(|t| EVal(x.clone()).with(t, info)), + Some(ExprDecl::Var(_)) => ctx.typed(|t| EVar(x.clone()).with(t, info)), + Some(ExprDecl::Def(info1, _, gs)) => { + let ts = lower_type_args(ctx, x.clone(), vector![], gs, info, info1); + ctx.typed(|t| EDef(x.clone(), ts).with(t, info)) + } + Some(ExprDecl::Variant(..)) => panic!("Variant not allowed here"), + None => panic!("Name not found"), + }; + (x, e) + } + } + ast::FExpr(e, x) => { + let info = e.info; + let e = lower_expr(ctx, e); + let e = ctx.typed(|t| ERecordAccess(e, x.clone()).with(t, info)); + (x, e) + } + } +} + +// from p in e => e.map(|p| p) +fn lower_query( + ctx: &mut Context, + p: ast::Pattern, + e: ast::Expr, + qs: Vector, +) -> Expr { + let map = ast::ExprKind::EName("map".to_string(), vector![]).with(e.info); + let p = lower_pattern(ctx, p.clone(), false); + // let es = pattern_to_expr_record(ctx, p); + // let mapper = ast::ExprKind::EFun(vector![p], Body::BExpr()).with(e.info); + // ast::ExprKind::EFunCall(map, vector![e]) + todo!() +} + +/// Extract all the names from a pattern and place them inside a record expression. +fn pattern_to_expr_record(ctx: &mut Context, p: hir::Pattern) -> hir::Expr { + fn f(ctx: &mut Context, p: &hir::Pattern, acc: &mut Vector<(Name, hir::Expr)>) { + match p.kind() { + hir::PNoop(_) => {} + hir::PVal(x) => { + let e = ctx.typed(|t| EVal(x.clone()).with(t, p.info)); + acc.push_back((x, e)); + } + hir::PVar(_) => {} + hir::PVariant(_, _, _, p) => f(ctx, &p, acc), + hir::PIgnore => {} + hir::POr(p0, _) => f(ctx, &p0, acc), + hir::PRecord(xps) => xps.iter().for_each(|(_, p)| f(ctx, &p, acc)), + hir::PRecordConcat(_, _) => todo!(), + hir::PArray(_) => todo!(), + hir::PArrayConcat(_, _) => todo!(), + hir::PTuple(ps) => ps.iter().for_each(|p| f(ctx, &p, acc)), + hir::PConst(_) => {} + hir::PError => {} + } + } + let mut acc = vector![]; + f(ctx, &p, &mut acc); + hir::ExprKind::ERecord(acc).with(p.t, p.info) +} + +lazy_static::lazy_static! { + static ref REGEX: Regex = Regex::new(r#"\$(\{[^}]+}|[[:alpha:]_][[:alnum:]_]*)"#).unwrap(); +} + +fn lower_lit(ctx: &mut Context, l: ast::Lit, info: Info) -> Expr { + match l { + ast::LInt(l, s) => { + if let Some(s) = s { + let x = format!("__{}", s); + let e0 = ast::EName(x, vector![]).with(info); + let e1 = ast::ELit(ast::LInt(l, None)).with(info); + lower_call(ctx, e0, vector![e1]) + } else { + ctx.typed(|t| EConst(CInt(l)).with(t, info)) + } + } + ast::LFloat(l, s) => { + if let Some(s) = s { + let x = format!("__{}", s); + let e0 = ast::EName(x, vector![]).with(info); + let e1 = ast::ELit(ast::LFloat(l, None)).with(info); + lower_call(ctx, e0, vector![e1]) + } else { + ctx.typed(|t| EConst(CFloat(l)).with(t, info)) + } + } + ast::LBool(b) => ctx.typed(|t| EConst(CBool(b)).with(t, info)), + ast::LString(s) => lower_lit_str(ctx, s, info), + ast::LUnit => ctx.typed(|t| EConst(CUnit).with(t, info)), + ast::LChar(c) => ctx.typed(|t| EConst(CChar(c)).with(t, info)), + } +} + +struct SplitIter<'r, 't> { + string: &'t str, + matches: Matches<'r, 't>, + prev: usize, + delim: Option>, +} + +impl<'r, 't> SplitIter<'r, 't> { + fn new(regex: &'r Regex, string: &'t str) -> Self { + let matches = regex.find_iter(string); + Self { + string, + matches, + prev: 0, + delim: None, + } + } +} + +impl<'r, 't> Iterator for SplitIter<'r, 't> { + type Item = Split<'t>; + + fn next(&mut self) -> Option { + if let Some(splice) = self.delim.take() { + Some(splice) + } else if let Some(m) = self.matches.next() { + let splice = Split::Text(&self.string[self.prev..m.start()]); + self.delim = Some(Split::Delim(&self.string[m.start()..m.end()])); + self.prev = m.end(); + Some(splice) + } else if self.prev < self.string.len() { + let splice = Split::Text(&self.string[self.prev..]); + self.prev = self.string.len(); + Some(splice) + } else { + None + } + } +} + +enum Split<'a> { + Text(&'a str), + Delim(&'a str), +} + +fn splice_to_expr(ctx: &mut Context, splice: Split, info: Info) -> Expr { + match splice { + Split::Text(s) => ctx.typed(|t| EConst(CString(s.to_owned())).with(t, info)), + Split::Delim(s) => match parser::parse_splice(info, &mut ctx.diagnostics, &s[1..]) { + Some(ast::SName(x)) => match ctx.stack.find_expr_decl(&x) { + Some(ExprDecl::Val(_)) => { + let e = ctx.typed(|t| EVal(x).with(t, info)); + call(ctx, "to_string", [], [e], info) + } + Some(ExprDecl::Var(_)) => { + let e = ctx.typed(|t| EVar(x).with(t, info)); + call(ctx, "to_string", [], [e], info) + } + Some(decl) => { + ctx.diagnostics + .push_error(Error::ExpectedVarOrVal { info: decl.info() }); + ctx.typed(|t| EError.with(t, info)) + } + None => { + ctx.diagnostics + .push_error(Error::NameNotFound { info, name: x }); + ctx.typed(|t| EError.with(t, info)) + } + }, + Some(ast::SBlock(b)) => { + let b = lower_block(ctx, b, ScopeKind::Block); + ctx.typed(|t| EDo(b).with(t, info)) + } + _ => ctx.typed(|t| EError.with(t, info)), + }, + } +} + +fn lower_lit_str(ctx: &mut Context, s: String, info: Info) -> Expr { + if s.is_empty() { + return ctx.typed(|t| EConst(CString(s)).with(t, info)); + } + let mut it = SplitIter::new(®EX, &s); + let s = it.next().unwrap(); + let e = splice_to_expr(ctx, s, info); + it.fold(e, |e, s| { + let e1 = splice_to_expr(ctx, s, info); + call(ctx, "concat", [], [e, e1], info) + }) +} + +fn lower_type_args_strict( + ctx: &mut Context, + x: Name, + ts: Vector, + gs: Vector, + info0: Info, + info1: Info, +) -> Vector { + if gs.len() == ts.len() { + ts.mapm(ctx, lower_type) + } else { + ctx.diagnostics.push_error(Error::WrongNumberOfTypeArgs { + name: x, + expected: gs.len(), + found: ts.len(), + info0, + info1, + }); + vector![] + } +} + +fn lower_type_args( + ctx: &mut Context, + x: Name, + ts: Vector, + gs: Vector, + info0: Info, + info1: Info, +) -> Vector { + match (gs.len(), ts.len()) { + (gn, tn) if gn == tn => ts.mapm(ctx, lower_type), + (gn, tn) if tn == 0 => gs.mapm(ctx, |ctx, _| ctx.new_type_var()), + _ => { + ctx.diagnostics.push_error(Error::WrongNumberOfTypeArgs { + name: x, + expected: gs.len(), + found: ts.len(), + info0, + info1, + }); + vector![] + } + } +} + +fn fields_to_rows(x: Vector<(Name, Type)>, t: Type) -> Type { + x.into_iter() + .rev() + .fold(t, |t0, (x, t1)| TRowExtend((x, t1), t0).into()) +} + +fn lower_block_opt(ctx: &mut Context, info: Info, b: Option) -> Block { + b.mapm_or_else( + ctx, + |ctx, b| lower_block(ctx, b, ScopeKind::Block), + |ctx| { + let e = ctx.typed(|t| EConst(CUnit).with(t, info)); + Block::new(vector![], e, info) + }, + ) +} + +fn lower_body(ctx: &mut Context, b: ast::Body) -> Block { + match b { + ast::BExpr(e) => { + let info = e.info; + let e = lower_expr(ctx, e); + Block::new(vector![], e, info) + } + ast::BBlock(b) => lower_block(ctx, b, ScopeKind::Def), + } +} + +fn empty_expr_env(ctx: &mut Context, info: Info) -> Expr { + ctx.typed(|t| ERecord(vector![]).with(t, info)) +} + +fn nominal(x: impl Into, ts: [Type; N]) -> Type { + TNominal(x.into(), ts.into_iter().collect()).into() +} + +fn call( + ctx: &mut Context, + x: impl Into, + ts: [Type; N], + es: [Expr; M], + info: Info, +) -> Expr { + let e = ctx.typed(|t| EVal(x.into()).with(t, info)); + ctx.typed(|t| EFunCall(e, es.into_iter().collect()).with(t, info)) +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/Cargo.toml b/arc-lang/crates/compiler/passes/hir-interpreter/Cargo.toml new file mode 100644 index 000000000..fdc3776b3 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/Cargo.toml @@ -0,0 +1,32 @@ +[package] +name = "hir-interpreter" +version.workspace = true +edition.workspace = true + +[dependencies] +value.workspace = true +ast.workspace = true +hir.workspace = true +utils.workspace = true +stack.workspace = true +info.workspace = true +name-gen.workspace = true +im-rc.workspace = true +time.workspace = true +diagnostics.workspace = true +anyhow.workspace = true +builtins.workspace = true +codegen.workspace = true +serde.workspace = true +derive_more.workspace = true +num-traits.workspace = true +hir-reachable.workspace = true +hir-to-mlir.workspace = true +hir-to-rust.workspace = true +build.workspace = true +kafka.workspace = true +ast-prelude.workspace = true +write-ast.workspace = true +write-rust.workspace = true +write-hir.workspace = true +minus.workspace = true diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/context.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/context.rs new file mode 100644 index 000000000..724fc121e --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/context.rs @@ -0,0 +1,78 @@ +#![allow(unused)] +use std::collections::HashMap; + +use hir::*; +use im_rc::OrdMap; +use im_rc::Vector; +use info::Info; +use name_gen::NameGen; +use stack::Stack; + +use value::Value; + +use crate::definitions::Bifs; + +#[derive(Debug)] +pub struct Context { + pub(crate) stack: Stack<(), ExprDecl, TypeDecl>, + pub(crate) bifs: Bifs, + next_stream_name: NameGen, + pub ss: Vector, + pub ctx7: hir_reachable::context::Context, + pub ctx8: hir_to_mlir::context::Context, + pub ctx9: hir_to_rust::context::Context, + pub ctx10: build::context::Context, + pub ctx11: Option, +} + +#[derive(Clone, Debug)] +pub(crate) enum ExprDecl { + Def(Meta, Vector, Vector, Type, Block), + Bif(Meta, Vector, Vector, Type), + Var(Value), + Val(Value), + Variant(Name, Vector), +} + +#[derive(Clone, Debug)] +pub(crate) enum TypeDecl { + Enum(Vector, Vector<(Name, Type)>), + Bit(Vector), + Generic(Type), +} + +impl Default for Context { + fn default() -> Self { + Context { + stack: Stack::new(()), + next_stream_name: NameGen::new("s"), + bifs: Bifs::new(), + ss: Vector::new(), + ctx7: Default::default(), + ctx8: Default::default(), + ctx9: Default::default(), + ctx10: Default::default(), + ctx11: Default::default(), + } + } +} + +impl Context { + pub fn new() -> Context { + Self::default() + } + + pub fn find_val(&self, x: &Name) -> Value { + self.stack + .find_expr_decl(x) + .and_then(|decl| match decl { + ExprDecl::Var(v) => Some(v.clone()), + _ => None, + }) + .unwrap() + } + + pub fn new_stream_name(&mut self) -> Name { + self.next_stream_name.fresh() + } +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/aggregator.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/aggregator.rs new file mode 100644 index 000000000..2080a4d43 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/aggregator.rs @@ -0,0 +1,30 @@ +use std::io::Result; +use std::io::Write; +use std::rc::Rc; + +use builtins::aggregator::Aggregator; +use hir::Name; +use hir::Type; +use serde::Deserialize; +use serde::Serialize; + +use crate::definitions::*; + +use value::dynamic::Function; +use super::*; + +pub fn define(builder: &mut super::Bifs) { + builder.f("aggregator", |ctx, t, v| { + let a0 = v[0].as_function(); + let a1 = v[1].as_function(); + let a2 = v[2].as_function(); + let a3 = v[3].as_function(); + Aggregator::Monoid { + lift: a0, + combine: a1, + identity: a2, + lower: a3, + } + .into() + }); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/array.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/array.rs new file mode 100644 index 000000000..539708301 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/array.rs @@ -0,0 +1,30 @@ +use std::io::Result; +use std::io::Write; + +use ast::TypeKind::TArray; +use hir::Type; +use im_rc::vector; +use im_rc::Vector; +use serde::Deserialize; +use serde::Serialize; + +use super::Value; + +#[derive(Debug, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize)] +pub struct Array(pub Vector); + +pub fn define(builder: &mut super::Bifs) { + builder + .f("array_get", |ctx, t, v| { + let v0 = v[0].as_array(); + let v1 = v[1].as_usize(); + v0.0[v1].clone() + }) + .f("array_set", |ctx, t, v| { + let mut v0 = v[0].as_array(); + let v1 = v[1].as_usize(); + let v2 = v[2].clone(); + v0.0[v1] = v2; + v0.into() + }); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/blob.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/blob.rs new file mode 100644 index 000000000..92509d247 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/blob.rs @@ -0,0 +1,6 @@ +use crate::Value; +use hir::Type; +use serde::Deserialize; +use serde::Serialize; + +pub fn define(builder: &mut super::Bifs) {} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/bool.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/bool.rs new file mode 100644 index 000000000..bf24842a5 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/bool.rs @@ -0,0 +1,26 @@ +use ast::unop; +use hir::Type; +use serde::Deserialize; +use serde::Serialize; + +use ast::binop; + +use super::Value; + +pub fn define(builder: &mut super::Bifs) { + builder + .f(binop!(and), |ctx, t, v| { + let v0 = v[0].as_bool(); + let v1 = v[1].as_bool(); + (v0 && v1).into() + }) + .f(binop!(or), |ctx, t, v| { + let v0 = v[0].as_bool(); + let v1 = v[1].as_bool(); + (v0 || v1).into() + }) + .f(unop!(!), |ctx, t, v| { + let v0 = v[0].as_bool(); + (!v0).into() + }); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/char.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/char.rs new file mode 100644 index 000000000..51308f44b --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/char.rs @@ -0,0 +1,7 @@ +use hir::Type; +use serde::Deserialize; +use serde::Serialize; + +use crate::Value; + +pub fn define(builder: &mut super::Bifs) {} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/dataflow.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/dataflow.rs new file mode 100644 index 000000000..4353ce424 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/dataflow.rs @@ -0,0 +1,88 @@ +use crate::Value; +use builtins::path::Path; +use hir::Type; +use im_rc::Vector; +use value::dynamic::Dataflow; +use value::dynamic::Instance; +use value::dynamic::Sink; +use value::dynamic::Stream; +use value::dynamic::StreamKind; +use value::ValueKind::VUnit; + +pub fn define(builder: &mut super::Bifs) { + builder + .f("run", |ctx, t, v| { + let v0 = v[0].as_dataflow(); + let ss = hir_reachable::process(&mut ctx.ctx7, v0.clone(), ctx.ss.clone()); + let is = hir_to_rust::process(&mut ctx.ctx9, ss); + let package = ctx.ctx10.new_package().unwrap(); + let mut ctx = codegen::Context::file(package.main.clone()); + ctx.colors(false); + ctx.writeln(&is, write_rust::write).unwrap(); + ctx.writeln(&v0, write_rust::write_dataflow).unwrap(); + package.build().unwrap().run().unwrap(); + Instance { + log: Path::from(package.root.join("log")), + } + .into() + }) + .f("merge", |ctx, t, v| { + let v0 = v[0].as_array().0; + let streams = v0 + .clone() + .into_iter() + .flat_map(|x| x.as_dataflow().streams) + .collect(); + let sinks = v0.into_iter().flat_map(|x| x.as_dataflow().sinks).collect(); + Dataflow::new(streams, sinks).into() + }); +} + +// pub fn reachable(&mut self, c: Component) -> Vector { +// let ss = hir_reachable::process(&mut self.ctx6.ctx7, c, self.ctx5.stmts.clone()); +// if self.config.show.reachable { +// if !ss.is_empty() { +// self.show_hir(&ss); +// } +// return Vector::new(); +// } else { +// ss +// } +// } +// +// pub fn hir_to_mlir(&mut self, c: Component, ss: Vector) -> Vector { +// hir_to_mlir::process(&mut self.ctx6.ctx8, c, ss) +// } +// +// pub fn hir_to_rust(&mut self, ss: Vector) -> Vector { +// hir_to_rust::process(&mut self.ctx6.ctx9, ss) +// } + +// pub fn run(&mut self, c: Component, is: Vector) -> Result<()> { +// let package = self.ctx6.ctx10.new_package()?; +// let mut ctx = codegen::Context::file(package.main.clone()); +// ctx.colors(false); +// ctx.writeln(&is, write_rust::write)?; +// ctx.writeln(&c, write_rust::write_component)?; +// package.build()?.run()?; +// Ok(()) +// } + +// pub fn components(&self) -> Vec { +// self.ctx6.dataflow.components() +// } + +// pub fn list_dataflows(&self) -> Result<(), std::io::Error> { +// self.components() +// .iter() +// .try_for_each(|component| write_hir_value::print_component(component)) +// } + +// pub fn codegen(&mut self, items: Vector) -> Result<(), std::io::Error> { +// if !self.has_errors() { +// // codegen::Context::println(&items, mlir_to_mlir::pr_module)?; +// } else { +// self.emit_errors(); +// } +// Ok(()) +// } diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/discretizer.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/discretizer.rs new file mode 100644 index 000000000..a711719e7 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/discretizer.rs @@ -0,0 +1,33 @@ +use std::io::Result; +use std::io::Write; + +use builtins::discretizer::Discretizer; +use hir::Type; + +use super::Value; + +pub fn define(builder: &mut super::Bifs) { + builder + .f("tumbling", |ctx, t, v| { + let a0 = v[0].as_duration(); + Discretizer::tumbling(a0).into() + }) + .f("sliding", |ctx, t, v| { + let a0 = v[0].as_duration(); + let a1 = v[1].as_duration(); + Discretizer::sliding(a0, a1).into() + }) + .f("session", |ctx, t, v| { + let a0 = v[0].as_duration(); + Discretizer::session(a0).into() + }) + .f("counting", |ctx, t, v| { + let a0 = v[0].as_i32(); + Discretizer::counting(a0).into() + }) + .f("moving", |ctx, t, v| { + let a0 = v[0].as_i32(); + let a1 = v[1].as_i32(); + Discretizer::moving(a0, a1).into() + }); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/duration.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/duration.rs new file mode 100644 index 000000000..141ee1e92 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/duration.rs @@ -0,0 +1,45 @@ +use hir::Type; +use serde::Deserialize; +use serde::Serialize; +use std::io::Result; +use std::io::Write; + +use builtins::duration::Duration; + +use super::Value; + +pub fn define(builder: &mut super::Bifs) { + builder + .f("from_seconds", |ctx, t, v| { + let v0 = v[0].as_i64(); + Duration::from_seconds(v0).into() + }) + .f("from_milliseconds", |ctx, t, v| { + let v0 = v[0].as_i64(); + Duration::from_milliseconds(v0).into() + }) + .f("from_microseconds", |ctx, t, v| { + let v0 = v[0].as_i64(); + Duration::from_microseconds(v0).into() + }) + .f("from_nanoseconds", |ctx, t, v| { + let v0 = v[0].as_i64(); + Duration::from_nanoseconds(v0).into() + }) + .f("__s", |ctx, t, v| { + let v0 = v[0].as_i32(); + Duration::from_seconds(v0 as i64).into() + }) + .f("__ms", |ctx, t, v| { + let v0 = v[0].as_i32(); + Duration::from_seconds(v0 as i64).into() + }) + .f("__us", |ctx, t, v| { + let v0 = v[0].as_i32(); + Duration::from_seconds(v0 as i64).into() + }) + .f("__ns", |ctx, t, v| { + let v0 = v[0].as_i32(); + Duration::from_seconds(v0 as i64).into() + }); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/encoding.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/encoding.rs new file mode 100644 index 000000000..3a0bb6ac2 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/encoding.rs @@ -0,0 +1,16 @@ +pub use builtins::encoding::Encoding; + +use hir::Type; +use serde::Deserialize; +use serde::Serialize; + +use super::Value; + +pub fn define(builder: &mut super::Bifs) { + builder + .f("csv", |ctx, t, v| { + let v0 = v[0].as_char(); + Encoding::csv(v0).into() + }) + .f("json", |ctx, t, v| Encoding::Json.into()); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/f32.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/f32.rs new file mode 100644 index 000000000..ad6114bdb --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/f32.rs @@ -0,0 +1,23 @@ +pub fn define(builder: &mut super::Bifs) { + builder + .f("add_f32", |ctx, t, v| { + let v0 = v[0].as_f32(); + let v1 = v[1].as_f32(); + (v0 + v1).into() + }) + .f("sub_f32", |ctx, t, v| { + let v0 = v[0].as_f32(); + let v1 = v[1].as_f32(); + (v0 - v1).into() + }) + .f("mul_f32", |ctx, t, v| { + let v0 = v[0].as_f32(); + let v1 = v[1].as_f32(); + (v0 * v1).into() + }) + .f("div_f32", |ctx, t, v| { + let v0 = v[0].as_f32(); + let v1 = v[1].as_f32(); + (v0 / v1).into() + }); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/f64.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/f64.rs new file mode 100644 index 000000000..418d79e36 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/f64.rs @@ -0,0 +1,18 @@ +use hir::Type; +use serde::Deserialize; +use serde::Serialize; + +use crate::Value; +use ast::unop; + +pub fn define(builder: &mut super::Bifs) { + builder + .f(unop!(-), |ctx, t, v| { + let v0 = v[0].as_f64(); + (-v0).into() + }) + .f(unop!(+), |ctx, t, v| { + let v0 = v[0].as_f64(); + v0.into() + }); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/file.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/file.rs new file mode 100644 index 000000000..84cf293b2 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/file.rs @@ -0,0 +1,25 @@ +use super::Value; + +pub use builtins::file::File; +use hir::Type; + +pub fn define(builder: &mut super::Bifs) { + builder + .f("open", |ctx, t, v| { + let v0 = v[0].as_path(); + File::open(v0).into() + }) + .f("read_to_string", |ctx, t, v| { + let v0 = v[0].as_file(); + v0.read_to_string().into() + }) + .f("read_to_bytes", |ctx, t, v| { + let v0 = v[0].as_file(); + v0.read_to_bytes().into() + }) + .f("inspect", |ctx, t, v| { + let v0 = v[0].as_file(); + v0.inspect(); + ().into() + }); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/function.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/function.rs new file mode 100644 index 000000000..efd16d8e9 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/function.rs @@ -0,0 +1,5 @@ +use hir::Name; +use serde::Deserialize; +use serde::Serialize; + +pub fn define(builder: &mut super::Bifs) {} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/i16.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/i16.rs new file mode 100644 index 000000000..3b1b2e5ff --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/i16.rs @@ -0,0 +1 @@ +pub fn define(builder: &mut super::Bifs) {} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/i32.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/i32.rs new file mode 100644 index 000000000..ca3cd751c --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/i32.rs @@ -0,0 +1,78 @@ +use hir::Type; +use serde::Deserialize; +use serde::Serialize; + +use crate::Value; +use ast::binop; +use ast::unop; +use builtins::string::String; + +pub fn define(builder: &mut super::Bifs) { + builder + .f(binop!(+), |ctx, t, v| { + let v0 = v[0].as_i32(); + let v1 = v[1].as_i32(); + (v0 + v1).into() + }) + .f(binop!(-), |ctx, t, v| { + let v0 = v[0].as_i32(); + let v1 = v[1].as_i32(); + (v0 - v1).into() + }) + .f(binop!(*), |ctx, t, v| { + let v0 = v[0].as_i32(); + let v1 = v[1].as_i32(); + (v0 * v1).into() + }) + .f(binop!(/), |ctx, t, v| { + let v0 = v[0].as_i32(); + let v1 = v[1].as_i32(); + (v0 / v1).into() + }) + .f(binop!(==), |ctx, t, v| { + let v0 = v[0].as_i32(); + let v1 = v[1].as_i32(); + (v0 == v1).into() + }) + .f(binop!(!=), |ctx, t, v| { + let v0 = v[0].as_i32(); + let v1 = v[1].as_i32(); + (v0 != v1).into() + }) + .f(binop!(<), |ctx, t, v| { + let v0 = v[0].as_i32(); + let v1 = v[1].as_i32(); + (v0 < v1).into() + }) + .f(binop!(<=), |ctx, t, v| { + let v0 = v[0].as_i32(); + let v1 = v[1].as_i32(); + (v0 <= v1).into() + }) + .f(binop!(>), |ctx, t, v| { + let v0 = v[0].as_i32(); + let v1 = v[1].as_i32(); + (v0 > v1).into() + }) + .f(binop!(>=), |ctx, t, v| { + let v0 = v[0].as_i32(); + let v1 = v[1].as_i32(); + (v0 >= v1).into() + }) + .f(unop!(-), |ctx, t, v| { + let v0 = v[0].as_i32(); + (-v0).into() + }) + .f(unop!(+), |ctx, t, v| { + let v0 = v[0].as_i32(); + (v0).into() + }) + .f("as_usize", |ctx, t, v| { + let v0 = v[0].as_i32(); + (v0 as usize).into() + }) + .f("i32_to_string", |ctx, t, v| { + let v0 = v[0].as_i32(); + String::from(v0.to_string()).into() + }); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/i64.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/i64.rs new file mode 100644 index 000000000..3b1b2e5ff --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/i64.rs @@ -0,0 +1 @@ +pub fn define(builder: &mut super::Bifs) {} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/i8.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/i8.rs new file mode 100644 index 000000000..3b1b2e5ff --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/i8.rs @@ -0,0 +1 @@ +pub fn define(builder: &mut super::Bifs) {} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/instance.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/instance.rs new file mode 100644 index 000000000..c2758f2f4 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/instance.rs @@ -0,0 +1,19 @@ +use std::error::Error; +use std::fmt::Write; +use std::io::Result; + +use value::dynamic::Instance; + +use crate::definitions::*; + +use super::*; +use value::dynamic::Function; + +pub fn define(builder: &mut super::Bifs) { + builder + .f("logpath", |ctx, t, v| { + let v0 = v[0].as_instance(); + v0.log.into() + }) + .f("kill", |ctx, t, v| todo!()); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/keyed_stream.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/keyed_stream.rs new file mode 100644 index 000000000..3d202e492 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/keyed_stream.rs @@ -0,0 +1,56 @@ +use hir::Name; +use hir::Type; +use serde::Deserialize; +use serde::Serialize; + +use super::Value; + +pub fn define(builder: &mut super::Bifs) { + builder + .f("keyed_source", |ctx, t, v| { + let v0 = v[0].as_reader(); + let v1 = v[1].as_encoding(); + let v2 = v[2].as_time_source(); + todo!() + }) + .f("keyed_keyby", |ctx, t, v| { + let v0 = v[0].as_stream(); + let v1 = v[1].as_function(); + todo!() + }) + .f("unkey", |ctx, t, v| { + let v0 = v[0].as_stream(); + todo!() + }) + .f("keyed_map", |ctx, t, v| { + let v0 = v[0].as_stream(); + let v1 = v[1].as_function(); + todo!() + }) + .f("keyed_filter", |ctx, t, v| { + let v0 = v[0].as_stream(); + let v1 = v[1].as_function(); + todo!() + }) + .f("keyed_sink", |ctx, t, v| { + let v0 = v[0].as_stream(); + let v1 = v[1].as_writer(); + let v2 = v[2].as_encoding(); + todo!() + }) + .f("keyed_flatmap", |ctx, t, v| { + let v0 = v[0].as_stream(); + let v1 = v[1].as_function(); + todo!() + }) + .f("keyed_flatten", |ctx, t, v| { + let v0 = v[0].as_stream(); + todo!() + }) + .f("keyed_window", |ctx, t, v| { + let v0 = v[0].as_stream(); + let v1 = v[1].as_discretizer(); + let v2 = v[2].as_aggregator(); + todo!() + }); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/matrix.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/matrix.rs new file mode 100644 index 000000000..157e1bd96 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/matrix.rs @@ -0,0 +1,33 @@ +use super::Value; + +use hir::Type; +use serde::Deserialize; +use serde::Serialize; + +pub fn define(builder: &mut super::Bifs) { + builder + .f("zeros", |ctx, t, v| { + // let v0 = v[0].as_vec().0.into_iter().map(|x| x.as_usize()).collect(); + todo!() + // Matrix::new(v0) + }) + .f("insert_axis", |ctx, t, v| { + todo!() + // let v0 = v[0].as_matrix(); + // let v1 = v[1].as_usize().0; + // Matrix(Inner::insert_axis(v0, v1)).into() + }) + .f("remove_axis", |ctx, t, v| { + todo!() + // let v0 = v[0].as_matrix(); + // let v1 = v[1].as_usize().0; + // Matrix(Inner::remove_axis(v0, v1)).into() + }) + .f("into_vec", |ctx, t, v| { + // let v0 = v[0].as_matrix().0; + // let v0 = v0.into_vec(); + // let v0 = v0.iter().map(|x| Value::new(x)).collect(); + // v0.into() + todo!() + }); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/mod.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/mod.rs new file mode 100644 index 000000000..4735e9097 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/mod.rs @@ -0,0 +1,139 @@ +use std::collections::HashMap; + +use crate::context::Context; +use crate::Value; +use ast::Attr; +use ast::Bound; +use ast::Const; +use ast::Const::CString; +use ast::Generic; +use ast::Meta; +use ast::Name; +use ast::SBuiltinType; +use ast::StmtKind::SBuiltinClass; +use ast::StmtKind::SBuiltinDef; +use ast::StmtKind::SBuiltinInstance; +use ast::TypeKind::TArray; +use ast::TypeKind::TName; +use hir::Type; +use im_rc::vector; +use im_rc::Vector; +use info::Info; + +pub mod aggregator; +pub mod array; +pub mod blob; +pub mod bool; +pub mod char; +pub mod dataflow; +pub mod discretizer; +pub mod duration; +pub mod encoding; +pub mod f32; +pub mod f64; +pub mod file; +pub mod function; +pub mod i16; +pub mod i32; +pub mod i64; +pub mod i8; +pub mod instance; +pub mod keyed_stream; +pub mod matrix; +pub mod model; +pub mod never; +pub mod option; +pub mod path; +pub mod reader; +pub mod record; +pub mod result; +pub mod socket; +pub mod stream; +pub mod string; +pub mod time; +pub mod time_source; +pub mod tuple; +pub mod u16; +pub mod u32; +pub mod u64; +pub mod u8; +pub mod unit; +pub mod url; +pub mod usize; +pub mod variant; +pub mod vec; +pub mod writer; + +#[derive(Clone, Debug)] +pub struct Bifs(pub HashMap<&'static str, fn(&mut Context, &[Type], &[Value]) -> Value>); + +impl Bifs { + pub fn new() -> Self { + let mut this = Self(HashMap::new()); + this.load(aggregator::define) + .load(array::define) + .load(blob::define) + .load(bool::define) + .load(char::define) + .load(dataflow::define) + .load(discretizer::define) + .load(duration::define) + .load(encoding::define) + .load(f32::define) + .load(f64::define) + .load(file::define) + .load(function::define) + .load(i16::define) + .load(i32::define) + .load(i64::define) + .load(i8::define) + .load(instance::define) + .load(keyed_stream::define) + .load(matrix::define) + .load(model::define) + .load(option::define) + .load(path::define) + .load(reader::define) + .load(record::define) + .load(result::define) + .load(socket::define) + .load(stream::define) + .load(string::define) + .load(time::define) + .load(time_source::define) + .load(tuple::define) + .load(u16::define) + .load(u32::define) + .load(u64::define) + .load(u8::define) + .load(unit::define) + .load(url::define) + .load(usize::define) + .load(variant::define) + .load(vec::define) + .load(writer::define); + this + } + + fn load(&mut self, f: fn(&mut Self)) -> &mut Self { + f(self); + self + } + + pub(crate) fn f( + &mut self, + name: &'static str, + f: fn(&mut Context, &[Type], &[Value]) -> Value, + ) -> &mut Self { + self.0.insert(name, f); + self + } + + pub(crate) fn get(&self, name: &str) -> fn(&mut Context, &[Type], &[Value]) -> Value { + if let Some(f) = self.0.get(name) { + *f + } else { + panic!("builtin function {} not found", name) + } + } +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/model.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/model.rs new file mode 100644 index 000000000..680fac4d6 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/model.rs @@ -0,0 +1,44 @@ +use hir::Type; +use hir::TypeKind; +use serde::Deserialize; +use serde::Deserializer; +use serde::Serialize; +use serde::Serializer; +use value::dynamic::Matrix; +use value::map_matrix; + +use super::Value; + +use builtins::model::Model; + +pub fn define(builder: &mut super::Bifs) { + builder + .f("load_model", |ctx, t, v| { + let v0 = v[0].as_blob(); + Model::new(v0).into() + }) + .f("predict", |ctx, t, v| { + let v0 = v[0].as_model(); + let v1 = v[1].as_matrix(); + let t1 = &t[1]; + let TypeKind::TNominal(x, _) = t1.kind.as_ref() else { + unreachable!() + }; + map_matrix!(v1, |v1| { + match x.as_str() { + "i8" => Matrix::I8(v0.predict::<_, i8>(v1)), + "i16" => Matrix::I16(v0.predict::<_, i16>(v1)), + "i32" => Matrix::I32(v0.predict::<_, i32>(v1)), + "i64" => Matrix::I64(v0.predict::<_, i64>(v1)), + "u8" => Matrix::U8(v0.predict::<_, u8>(v1)), + "u16" => Matrix::U16(v0.predict::<_, u16>(v1)), + "u32" => Matrix::U32(v0.predict::<_, u32>(v1)), + "u64" => Matrix::U64(v0.predict::<_, u64>(v1)), + "f32" => Matrix::F32(v0.predict::<_, f32>(v1)), + "f64" => Matrix::F64(v0.predict::<_, f64>(v1)), + _ => unreachable!(), + } + .into() + }) + }); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/never.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/never.rs new file mode 100644 index 000000000..4f40df572 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/never.rs @@ -0,0 +1,17 @@ +pub fn define(builder: &mut super::Bifs) { + builder + .f("todo", |ctx, t, v| { + todo!(); + }) + .f("unreachable", |ctx, t, v| { + unreachable!(); + }) + .f("panic", |ctx, t, v| { + let v0 = v[0].as_string(); + panic!("{}", v0); + }) + .f("exit", |ctx, t, v| { + std::process::exit(0); + }); +} + diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/option.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/option.rs new file mode 100644 index 000000000..d6aca2070 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/option.rs @@ -0,0 +1,27 @@ +use super::Value; +use hir::Type; +use serde::Deserialize; +use serde::Serialize; + +use builtins::option::Option; + +pub fn define(builder: &mut super::Bifs) { + builder + .f("some", |ctx, t, v| { + let v0 = v[0].clone(); + Option::some(v0).into() + }) + .f("none", |ctx, t, v| Option::none().into()) + .f("is_some", |ctx, t, v| { + let v0 = v[0].as_option(); + v0.is_some().into() + }) + .f("is_none", |ctx, t, v| { + let v0 = v[0].as_option(); + v0.is_none().into() + }) + .f("unwrap", |ctx, t, v| { + let v0 = v[0].as_option(); + v0.unwrap() + }); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/path.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/path.rs new file mode 100644 index 000000000..bf495899b --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/path.rs @@ -0,0 +1,19 @@ +use super::Bifs; + +use super::Value; +use hir::Type; +use serde::Deserialize; +use serde::Serialize; +use std::io::Result; +use std::io::Write; + +use super::*; + +pub use builtins::path::Path; + +pub fn define(builder: &mut super::Bifs) { + builder.f("path", |ctx, t, v| { + let a0 = v[0].as_string(); + Path::new(a0).into() + }); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/reader.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/reader.rs new file mode 100644 index 000000000..a25447b03 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/reader.rs @@ -0,0 +1,29 @@ +use super::Value; +use std::io::Result; +use std::io::Write; + +pub use builtins::reader::Reader; +use hir::Type; + +pub fn define(builder: &mut super::Bifs) { + builder + .f("stdin_reader", |ctx, t, v| Reader::stdin().into()) + .f("file_reader", |ctx, t, v| { + let path = v[0].as_path(); + let watch = v[1].as_bool(); + Reader::file(path, watch).into() + }) + .f("http_reader", |ctx, t, v| { + let url = v[0].as_url(); + Reader::http(url).into() + }) + .f("tcp_reader", |ctx, t, v| { + let addr = v[0].as_socket_addr(); + Reader::tcp(addr).into() + }) + .f("kafka_reader", |ctx, t, v| { + let addr = v[0].as_socket_addr(); + let topic = v[1].as_string(); + Reader::kafka(addr, topic).into() + }); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/record.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/record.rs new file mode 100644 index 000000000..7237e0708 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/record.rs @@ -0,0 +1,7 @@ +use hir::Name; +use im_rc::HashMap; +use serde::Serialize; + +use crate::Value; + +pub fn define(builder: &mut super::Bifs) {} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/result.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/result.rs new file mode 100644 index 000000000..5241e837f --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/result.rs @@ -0,0 +1,34 @@ +use super::Value; +use hir::Type; +use serde::Deserialize; +use serde::Serialize; + +pub type Result = builtins::result::Result; + +pub fn define(builder: &mut super::Bifs) { + builder + .f("ok", |ctx, t, v| { + let v0 = v[0].clone(); + Result::ok(v0).into() + }) + .f("error", |ctx, t, v| { + let v0 = v[0].as_string(); + Result::error(v0).into() + }) + .f("is_ok", |ctx, t, v| { + let v0 = v[0].as_result(); + v0.is_ok().into() + }) + .f("is_error", |ctx, t, v| { + let v0 = v[0].as_result(); + v0.is_error().into() + }) + .f("unwrap_ok", |ctx, t, v| { + let v0 = v[0].as_result(); + v0.unwrap_ok() + }) + .f("unwrap_error", |ctx, t, v| { + let v0 = v[0].as_result(); + v0.unwrap_error().into() + }); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/socket.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/socket.rs new file mode 100644 index 000000000..ee7a86fcc --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/socket.rs @@ -0,0 +1,14 @@ +use super::result::Result; +use super::Value; +use hir::Type; +use serde::Deserialize; +use serde::Serialize; + +use builtins::socket::SocketAddr; + +pub fn define(builder: &mut super::Bifs) { + builder.f("socket", |ctx, t, v| { + let v0 = v[0].as_string(); + SocketAddr::parse(v0).into() + }); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/stream.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/stream.rs new file mode 100644 index 000000000..37985452f --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/stream.rs @@ -0,0 +1,78 @@ +use std::cell::RefCell; +use std::rc::Rc; + +use hir::Name; +use hir::Type; +use im_rc::vector; +use im_rc::OrdMap; +use im_rc::Vector; +use serde::Deserialize; +use serde::Serialize; +use value::dynamic::Dataflow; +use value::dynamic::Sink; +use value::dynamic::Stream; +use value::dynamic::StreamKind; + +use super::Value; + +pub fn define(builder: &mut super::Bifs) { + builder + .f("source", |ctx, t, v| { + let v0 = v[0].as_reader(); + let v1 = v[1].as_encoding(); + let v2 = v[2].as_time_source(); + let x = ctx.new_stream_name(); + Stream::new(x, StreamKind::DSource(v0, v1, v2).into()).into() + }) + .f("keyby", |ctx, t, v| { + let v0 = v[0].as_stream(); + let v1 = v[1].as_function(); + let x0 = v0.name.clone(); + let x = ctx.new_stream_name(); + v0.extend(x, StreamKind::DKeyby(x0, v1).into()).into() + }) + .f("map", |ctx, t, v| { + let v0 = v[0].as_stream(); + let v1 = v[1].as_function(); + let x0 = v0.name.clone(); + let x = ctx.new_stream_name(); + v0.extend(x, StreamKind::DMap(x0, v1).into()).into() + }) + .f("filter", |ctx, t, v| { + let v0 = v[0].as_stream(); + let v1 = v[1].as_function(); + let x0 = v0.name.clone(); + let x = ctx.new_stream_name(); + v0.extend(x, StreamKind::DFilter(x0, v1).into()).into() + }) + .f("flatten", |ctx, t, v| { + let v0 = v[0].as_stream(); + let x0 = v0.name.clone(); + let x = ctx.new_stream_name(); + v0.extend(x, StreamKind::DFlatten(x0).into()).into() + }) + .f("flatmap", |ctx, t, v| { + let v0 = v[0].as_stream(); + let v1 = v[1].as_function(); + let x0 = v0.name.clone(); + let x = ctx.new_stream_name(); + v0.extend(x, StreamKind::DFlatMap(x0, v1).into()).into() + }) + .f("window", |ctx, t, v| { + let v0 = v[0].as_stream(); + let v1 = v[1].as_discretizer(); + let v2 = v[2].as_aggregator(); + let x0 = v0.name.clone(); + let x = ctx.new_stream_name(); + v0.extend(x, StreamKind::DWindow(x0, v1, v2).into()).into() + }) + .f("sink", |ctx, t, v| { + let v0 = v[0].as_stream(); + let v1 = v[1].as_writer(); + let v2 = v[2].as_encoding(); + let x0 = v0.name.clone(); + let mut prefix = v0.prefix.clone(); + prefix.push_back(v0); + Dataflow::new(prefix, vector![Sink::new(x0, v1, v2).into()]).into() + }); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/string.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/string.rs new file mode 100644 index 000000000..e92c0074b --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/string.rs @@ -0,0 +1,80 @@ +use hir::Type; +use im_rc::vector; +use serde::Deserialize; +use serde::Serialize; + +use crate::Tuple; +use builtins::string::String; +use builtins::vec::Vec; + +use super::Value; + +pub fn define(builder: &mut super::Bifs) { + builder + .f("new", |ctx, t, v| String::new().into()) + .f("with_capacity", |ctx, t, v| { + let a0 = v[0].as_usize(); + String::with_capacity(a0).into() + }) + .f("push_char", |ctx, t, v| { + let a0 = v[0].as_string(); + let a1 = v[1].as_char(); + a0.push(a1).into() + }) + .f("push_string", |ctx, t, v| { + let a0 = v[0].as_string(); + let a1 = v[1].as_string(); + a0.push_string(a1).into() + }) + .f("remove", |ctx, t, v| { + let a0 = v[0].as_string(); + let a1 = v[1].as_usize(); + let (a, b) = a0.remove(a1); + Tuple(vector![a.into(), b.into()]).into() + }) + .f("insert_char", |ctx, t, v| { + let a0 = v[0].as_string(); + let a1 = v[1].as_usize(); + let a2 = v[2].as_char(); + a0.insert(a1, a2).into() + }) + .f("is_empty", |ctx, t, v| { + let a0 = v[0].as_string(); + a0.is_empty().into() + }) + .f("split_off", |ctx, t, v| { + let a0 = v[0].as_string(); + let a1 = v[1].as_usize(); + let (a, b) = a0.split_off(a1); + Tuple(vector![a.into(), b.into()]).into() + }) + .f("clear", |ctx, t, v| { + let a0 = v[0].as_string(); + a0.clear().into() + }) + .f("len", |ctx, t, v| { + let a0 = v[0].as_string(); + a0.len().into() + }) + .f("lines", |ctx, t, v| { + let a0 = v[0].as_string(); + let a0: Vec<_> = a0 + .as_ref() + .lines() + .map(|x| String::from(x).into()) + .collect::>() + .into(); + a0.into() + }) + .f("decode", |ctx, t, v| { + todo!() + // let a0 = a[0].as_string().0; + // let a1 = a[1].as_encoding().0; + // a0.decode(a1) + }) + .f("encode", |ctx, t, v| { + todo!() + // let a0 = a[0].as_string().0; + // a0.encode(a[1].as_encoding()) + }); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/time.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/time.rs new file mode 100644 index 000000000..0f0646e55 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/time.rs @@ -0,0 +1,44 @@ +use hir::Type; +use serde::Deserialize; +use serde::Serialize; + +use builtins::time::Time; + +use super::Value; + +pub fn define(builder: &mut super::Bifs) { + builder + .f("now", |ctx, t, v| Time::now().into()) + .f("from_seconds", |ctx, t, v| { + todo!() + // let v0 = v[0].as_i64(); + // Time::from_seconds(v0) + }) + .f("from_nanoseconds", |ctx, t, v| { + todo!() + // let v0 = v[0].as_i128().0; + // Time::from_nanoseconds(v0) + }) + .f("seconds", |ctx, t, v| { + let v0 = v[0].as_time(); + todo!() + }) + .f("nanoseconds", |ctx, t, v| { + let v0 = v[0].as_time(); + todo!() + }) + .f("year", |ctx, t, v| { + let v0 = v[0].as_time(); + todo!() + }) + .f("into_string", |ctx, t, v| { + let v0 = v[0].as_time(); + let v1 = v[1].as_string(); + todo!() + }) + .f("from_string", |ctx, t, v| { + let v0 = v[0].as_string(); + let v1 = v[1].as_string(); + Time::from_string(v0, v1).into() + }); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/time_source.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/time_source.rs new file mode 100644 index 000000000..76f59d69b --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/time_source.rs @@ -0,0 +1,29 @@ +use super::Value; +use crate::Function; +use builtins::duration::Duration; +use builtins::time_source::TimeSource; +use hir::Type; +use serde::Deserialize; +use serde::Serialize; + +pub fn define(builder: &mut super::Bifs) { + builder + .f("ingestion", |ctx, t, v| { + let v0 = v[0].as_duration(); + TimeSource::Ingestion { + watermark_interval: v0, + } + .into() + }) + .f("event", |ctx, t, v| { + let v0 = v[0].as_function(); + let v1 = v[1].as_duration(); + let v2 = v[2].as_duration(); + TimeSource::Event { + extractor: v0, + watermark_interval: v1, + slack: v2, + } + .into() + }); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/tuple.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/tuple.rs new file mode 100644 index 000000000..4fea77fa1 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/tuple.rs @@ -0,0 +1,6 @@ +use im_rc::Vector; +use serde::Serialize; + +use crate::Value; + +pub fn define(builder: &mut super::Bifs) {} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/u16.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/u16.rs new file mode 100644 index 000000000..3b1b2e5ff --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/u16.rs @@ -0,0 +1 @@ +pub fn define(builder: &mut super::Bifs) {} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/u32.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/u32.rs new file mode 100644 index 000000000..3b1b2e5ff --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/u32.rs @@ -0,0 +1 @@ +pub fn define(builder: &mut super::Bifs) {} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/u64.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/u64.rs new file mode 100644 index 000000000..3b1b2e5ff --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/u64.rs @@ -0,0 +1 @@ +pub fn define(builder: &mut super::Bifs) {} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/u8.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/u8.rs new file mode 100644 index 000000000..3b1b2e5ff --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/u8.rs @@ -0,0 +1 @@ +pub fn define(builder: &mut super::Bifs) {} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/unit.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/unit.rs new file mode 100644 index 000000000..490ebdf8d --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/unit.rs @@ -0,0 +1,55 @@ +use value::ValueKind::VUnit; + +pub fn define(builder: &mut super::Bifs) { + builder + .f("print", |ctx, t, v| { + let v0 = v[0].as_string(); + eprintln!("{}", v0.as_ref()); + ().into() + }) + .f("debug", |ctx, t, v| { + let v0 = &v[0]; + eprintln!("{:?}", v0); + ().into() + }) + .f("dataflow", |ctx, t, v| { + todo!(); + ().into() + }) + .f("connect", |ctx, t, v| { + let v0 = v[0].as_string(); + match kafka::context::Context::new(Some(v0.as_ref().to_string())) { + Ok(v) => { + eprintln!("Connected to Kafka broker {}", v0); + ctx.ctx11 = Some(v); + } + Err(v) => eprintln!("{}", v), + } + ().into() + }) + .f("topics", |ctx, t, v| { + if let Some(ctx) = ctx.ctx11.as_mut() { + if let Err(e) = ctx.list() { + eprintln!("{}", e); + } + } else { + eprintln!("Kafka not connected"); + } + ().into() + }) + .f("bifs", |ctx, t, v| { + write_ast::write( + &mut codegen::Context::stderr().colors(true), + &ast_prelude::prelude(), + ); + ().into() + }) + .f("typeof", |ctx, t, v| { + let t0 = &t[0]; + let ctx = codegen::Context::stderr() + .colors(true) + .writeln(t0, write_hir::write_type) + .unwrap(); + ().into() + }); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/url.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/url.rs new file mode 100644 index 000000000..fc0885768 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/url.rs @@ -0,0 +1,13 @@ +use super::result::Result; +use hir::Type; + +use builtins::url::Url; + +use super::Value; + +pub fn define(builder: &mut super::Bifs) { + builder.f("url", |ctx, t, v| { + let v0 = v[0].as_string(); + Url::parse(v0).map(Into::into).into() + }); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/usize.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/usize.rs new file mode 100644 index 000000000..51308f44b --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/usize.rs @@ -0,0 +1,7 @@ +use hir::Type; +use serde::Deserialize; +use serde::Serialize; + +use crate::Value; + +pub fn define(builder: &mut super::Bifs) {} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/variant.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/variant.rs new file mode 100644 index 000000000..7aef6693a --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/variant.rs @@ -0,0 +1,6 @@ +use hir::Name; +use serde::Serialize; + +use crate::Value; + +pub fn define(builder: &mut super::Bifs) {} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/vec.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/vec.rs new file mode 100644 index 000000000..ed2e9941c --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/vec.rs @@ -0,0 +1,49 @@ +use super::Value; + +use crate::Tuple; +use hir::Type; +use im_rc::vector; +use serde::Deserialize; +use serde::Serialize; + +pub type Vec = builtins::vec::Vec; + +pub fn define(builder: &mut super::Bifs) { + builder + .f("new", |ctx, t, v| Vec::new().into()) + .f("push", |ctx, t, v| { + let v0 = v[0].clone(); + let v1 = v[1].as_vec(); + v1.push(v0).into() + }) + .f("pop", |ctx, t, v| { + let v0 = v[0].as_vec(); + let (a, b) = v0.pop(); + let b = b.map(Into::into); + Tuple(vector![a.into(), b.into()]).into() + }) + .f("len", |ctx, t, v| { + let v0 = v[0].as_vec(); + v0.len().into() + }) + .f("get", |ctx, t, v| { + let v0 = v[0].as_vec(); + let v1 = v[1].as_usize(); + v0.get(v1).map(Into::into).into() + }) + .f("insert", |ctx, t, v| { + let v0 = v[0].as_vec(); + let v1 = v[1].as_usize(); + let v2 = v[2].clone(); + v0.insert(v1, v2).into() + }) + .f("is_empty", |ctx, t, v| { + let v0 = v[0].as_vec(); + v0.is_empty().into() + }) + .f("sort", |ctx, t, v| { + let v0 = v[0].as_vec(); + todo!() + // VVec(v0.sort()) + }); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/writer.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/writer.rs new file mode 100644 index 000000000..b86460749 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/definitions/writer.rs @@ -0,0 +1,26 @@ +use builtins::writer::Writer; +use hir::Type; + +use super::Value; + +pub fn define(builder: &mut super::Bifs) { + builder + .f("stdout_writer", |ctx, t, v| Writer::stdout().into()) + .f("file_writer", |ctx, t, v| { + let v0 = v[0].as_path(); + Writer::file(v0).into() + }) + .f("http_writer", |ctx, t, v| { + let v0 = v[0].as_url(); + Writer::http(v0).into() + }) + .f("tcp_writer", |ctx, t, v| { + let v0 = v[0].as_socket_addr(); + Writer::tcp(v0).into() + }) + .f("kafka_writer", |ctx, t, v| { + let v0 = v[0].as_socket_addr(); + let v1 = v[1].as_string(); + Writer::kafka(v0, v1).into() + }); +} diff --git a/arc-lang/crates/compiler/passes/hir-interpreter/src/lib.rs b/arc-lang/crates/compiler/passes/hir-interpreter/src/lib.rs new file mode 100644 index 000000000..97f6716f8 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-interpreter/src/lib.rs @@ -0,0 +1,265 @@ +#![allow(unused)] + +pub mod context; +pub mod definitions; + +use context::ExprDecl; +use context::TypeDecl; +use diagnostics::Error; +use hir::*; +use im_rc::vector; +use im_rc::OrdMap; +use im_rc::Vector; +use utils::AssocVectorUtils; +use utils::VectorUtils; +use value::dynamic::Array; +use value::dynamic::Function; +use value::dynamic::Record; +use value::dynamic::Tuple; +use value::dynamic::Variant; +use value::Value; +use value::ValueKind::VUnit; + +use crate::context::Context; + +pub fn process(ctx: &mut Context, ss: Vector) { + for s in ss { + eval_top_stmt(ctx, s.clone()); + ctx.ss.push_back(s); + } +} + +fn eval_top_stmt(ctx: &mut Context, s: Stmt) -> Result, Error> { + match s.kind.clone() { + SDef(m, x, gs, ps, t, b) => { + ctx.stack.bind_expr_decl(x, ExprDecl::Def(m, gs, ps, t, b)); + } + SBif(m, x, gs, ts, t) => { + ctx.stack.bind_expr_decl(x, ExprDecl::Bif(m, gs, ts, t)); + } + SEnum(m, x, gs, xts) => { + ctx.stack.bind_type_decl(x, TypeDecl::Enum(gs, xts)); + } + SBit(m, x, gs) => { + ctx.stack.bind_type_decl(x, TypeDecl::Bit(gs)); + } + SVal(p, e) => { + let t = e.t.clone(); + match eval_expr(ctx, e) { + CValue(v) => { + bind(ctx, p, v.clone()); + return Ok(Some((v, t))); + } + CException(e) => return Err(e), + _ => unreachable!(), + } + } + SExpr(e) => { + let t = e.t.clone(); + match eval_expr(ctx, e) { + CValue(v) => return Ok(Some((v, t))), + CException(e) => return Err(e), + _ => unreachable!(), + } + } + SRecDef(..) => todo!(), + SNoop => unreachable!(), + } + Ok(None) +} + +fn eval_expr_stmt(ctx: &mut Context, s: Stmt) -> Control { + match s.kind { + SVal(p, e) => { + let c = eval_expr(ctx, e); + if let CValue(v) = c { + bind(ctx, p, v); + CValue(().into()) + } else { + c + } + } + SExpr(e) => { + let c = eval_expr(ctx, e); + if let CValue(_) = c { + CValue(().into()) + } else { + c + } + } + _ => unreachable!(), + } +} + +fn bind(ctx: &mut Context, p: Pattern, v: Value) { + match p.kind.as_ref().clone() { + PVal(x) => ctx.stack.bind_expr_decl(x, ExprDecl::Var(v)), + PIgnore => {} + _ => unreachable!(), + } +} + +fn eval_func(ctx: &mut Context, x: Name, vs: Vector) -> Control { + match ctx.stack.find_expr_decl(&x) { + Some(ExprDecl::Def(m, gs, ps, t, b)) => { + ctx.stack.push_scope(()); + for (p, v) in ps.into_iter().zip(vs) { + bind(ctx, p, v); + } + let c = eval_block(ctx, b); + ctx.stack.pop_scope(); + match c { + CValue(v) | CFunReturn(v) => CValue(v), + CException(s) => return CException(s), + _ => unreachable!(), + } + } + Some(ExprDecl::Bif(m, gs, ts, t)) => { + let CString(x) = m.get("name").unwrap().as_ref().unwrap() else { + unreachable!() + }; + eval_builtin(ctx, x.clone(), ts, vs) + } + _ => unreachable!("{:?}", x), + } +} + +fn eval_builtin(ctx: &mut Context, x: Name, ts: Vector, vs: Vector) -> Control { + let x = x.as_str(); + let vs = vs.into_iter().collect::>(); + let ts = ts.into_iter().collect::>(); + let v = ctx.bifs.get(x)(ctx, ts.as_slice(), vs.as_slice()); + CValue(v) +} + +fn eval_block(ctx: &mut Context, b: Block) -> Control { + ctx.stack.push_scope(()); + for s in b.ss { + eval_expr_stmt(ctx, s.clone()); + } + let v = val(ctx, b.e); + ctx.stack.pop_scope(); + CValue(v).into() +} + +fn val(ctx: &mut Context, e: Expr) -> Value { + let EVal(x) = e.kind() else { unreachable!() }; + ctx.find_val(&x) +} + +fn eval_expr(ctx: &mut Context, e: Expr) -> Control { + match e.kind() { + EConst(c) => CValue(constant(c).into()), + EFunCallDirect(x, ts, es) => { + let vs = es.into_iter().map(|e| val(ctx, e)).collect(); + eval_func(ctx, x, vs) + } + EFunCall(e, es) => { + let f = val(ctx, e).as_function(); + let vs = es.into_iter().map(|e| val(ctx, e)).collect(); + eval_func(ctx, f.0, vs) + } + EDef(x, ts) => CValue(Function(x).into()).into(), + EFunReturn(e) => CFunReturn(val(ctx, e).into()), + EIfElse(e, b0, b1) => { + if val(ctx, e).as_bool() { + eval_block(ctx, b0) + } else { + eval_block(ctx, b1) + } + } + ELoop(b) => loop { + match eval_block(ctx, b.clone()) { + CLoopBreak(v) => break CValue(v), + CLoopContinue => continue, + CFunReturn(v) => break CFunReturn(v), + CValue(_) => continue, + CException(x) => break CException(x), + } + }, + ELoopBreak(e) => { + let v = val(ctx, e); + CLoopBreak(v).into() + } + ELoopContinue => CLoopContinue, + ERecord(xes) => { + let xvs = xes.into_iter().map(|(x, e)| (x, val(ctx, e))).collect(); + CValue(Record(xvs).into()) + } + ERecordAccess(e, x) => { + let v = val(ctx, e); + let xvs = v.as_record(); + CValue(xvs.0.get(&x).unwrap().clone().into()) + } + EVariant(_, _, x, e) => { + let v = val(ctx, e); + CValue(Variant { x, v }.into()) + } + EVariantAccess(_, _, x, e) => { + let var = val(ctx, e).as_variant(); + assert_eq!(x, var.x); + CValue(var.v).into() + } + EVariantCheck(_, _, x, e) => { + let var = val(ctx, e).as_variant(); + CValue((var.x == x).into()) + } + EMatch(_, _) => unreachable!(), + EArray(es) => { + let vs = es.map(|e| val(ctx, e)); + CValue(Array(vs).into()) + } + EArrayAccess(e0, e1) => { + let v0 = val(ctx, e0).as_array(); + let v1 = val(ctx, e1).as_usize(); + if let Some(v) = v0.0.get(v1) { + CValue(v.clone().into()) + } else { + CException(Error::InterpreterError { + info: e.info, + s: "array index out of bounds".into(), + }) + } + } + ETuple(es) => { + let vs = es.map(|e| val(ctx, e)); + CValue(Tuple(vs).into()) + } + ETupleAccess(e, n) => { + let v = val(ctx, e).as_tuple().0; + CValue(v[n as usize].clone().into()) + } + ERecordConcat(_, _) => todo!(), + EArrayConcat(_, _) => todo!(), + EMut(..) => unreachable!(), + EVal(x) => CValue(val(ctx, e).into()), + EVar(..) => unreachable!(), + EDo(..) => unreachable!(), + ENoop(..) => unreachable!(), + EFor(..) => unreachable!(), + EWhile(..) => unreachable!(), + EFun(..) => unreachable!(), + EError => unreachable!(), + } +} + +pub fn constant(c: Const) -> Value { + match c { + CInt(i) => i.into(), + CBool(b) => b.into(), + CFloat(f) => (f as f64).into(), + CString(s) => builtins::string::String::from(s).into(), + CUnit => ().into(), + CChar(c) => c.into(), + } +} + +pub use Control::*; +#[derive(Debug, Clone)] +pub enum Control { + CLoopBreak(Value), + CLoopContinue, + CFunReturn(Value), + CValue(Value), + CException(Error), +} diff --git a/arc-lang/crates/compiler/passes/hir-lambda-lift/Cargo.toml b/arc-lang/crates/compiler/passes/hir-lambda-lift/Cargo.toml new file mode 100644 index 000000000..b02913bd6 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-lambda-lift/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "hir-lambda-lift" +version.workspace = true +edition.workspace = true + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +im-rc.workspace = true +hir.workspace = true +utils.workspace = true +codegen.workspace = true +info.workspace = true +diagnostics.workspace = true +name-gen.workspace = true +stack.workspace = true diff --git a/arc-lang/crates/compiler/passes/hir-lambda-lift/src/context.rs b/arc-lang/crates/compiler/passes/hir-lambda-lift/src/context.rs new file mode 100644 index 000000000..07b50f0e7 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-lambda-lift/src/context.rs @@ -0,0 +1,76 @@ +use diagnostics::Diagnostics; +use hir::*; +use im_rc::vector; +use im_rc::Vector; +use info::Info; +use name_gen::NameGen; +use stack::Stack; + +#[derive(Clone, Debug)] +pub struct Context { + pub(crate) stack: Stack, + pub(crate) names: NameGen, + pub(crate) stmts: Vector, + pub diagnostics: Diagnostics, +} + +#[derive(Clone, Debug)] +pub(crate) enum ScopeKind { + Def(Vector), + Fun, + Other, +} + +#[derive(Clone, Debug)] +pub(crate) enum ExprDecl { + Def(Vector), + Val(Info, Type), +} + +#[derive(Clone, Debug)] +pub(crate) enum TypeDecl {} + +impl Default for Context { + fn default() -> Self { + Self { + stack: Stack::new(ScopeKind::Other), + names: NameGen::new("_f"), + stmts: vector![], + diagnostics: Diagnostics::default(), + } + } +} + +impl Context { + pub fn new() -> Self { + Self::default() + } + + // Generic is captured by this function + // Get all generics in scope + + pub(crate) fn generics_in_scope(&self) -> Vector { + self.stack + .iter() + .filter_map(|s| match &s.kind { + ScopeKind::Def(gs) => Some(gs.clone()), + ScopeKind::Fun => None, + ScopeKind::Other => None, + }) + .flatten() + .collect() + } + + pub(crate) fn values_in_scope(&self) -> Vector { + todo!() + // self.stack + // .iter() + // .filter_map(|s| { + // s.expr_namespace.iter().filter_map(|(x, k)| match k { + // ExprDecl::Def(_) => None, + // ExprDecl::Val(_, t) => Some(x), + // }) + // }) + // .collect() + } +} diff --git a/arc-lang/crates/compiler/passes/hir-lambda-lift/src/lib.rs b/arc-lang/crates/compiler/passes/hir-lambda-lift/src/lib.rs new file mode 100644 index 000000000..0b7096711 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-lambda-lift/src/lib.rs @@ -0,0 +1,274 @@ +#![allow(unused)] +//! Lambda lift HIR => HIR +//! * Lifts all function definitions to the top level +//! * Might be easier to do before type inference +//! * After type inference would however produce better errors +//! +//! ---------------------------------------------------------- +//! def f(a:I32): fun(I32):I32 { +//! def g(b:I32):I32 { +//! a + b +//! } +//! g +//! } +//! +//! f(1)(2) +//! +//! => +//! +//! def g(b:I32, {a:I32}):I32 { +//! a + b +//! } +//! +//! def f(a:I32, {}:{}): {ptr:fun(I32, {b:I32}):I32, env:{a:I32}} { +//! val g = {ptr:g, env:{a:a}}; +//! g +//! } +//! +//! do { +//! val x:{ptr:fun(I32,{b:I32}), env:{b:I32}} = f(1); +//! x.ptr(2, x.env) +//! } +//! ---------------------------------------------------------- +//! val x = 1; +//! val f: fun(a:I32): I32 = fun(a:I32): I32 = x+1; +//! val g: fun(a:I32): I32 = fun(a:I32): I32 = f; +//! g(1) +//! +//! => +//! +//! val x = 1; +//! def f(a:I32,{x:I32}):I32 = x+1; +//! val f: {ptr:fun(a:I32,{b:I32}):I32, env:{x:I32}} = {ptr:f, env:{x}}; +//! val g: {ptr:fun(a:I32,{b:I32}):I32, env:{x:I32}} = f; +//! g.ptr(1, g.env) +//! ---------------------------------------------------------- +//! def f[T](a:T): fun(): T { +//! def g(): T { +//! a +//! } +//! } +//! +//! => +//! +//! def g[T](a:T, {}:{}): T { +//! a +//! } +//! +//! def f[T](a:T, {}:{}): {ptr:fun({},{}):T, env:{a:T}} { +//! val g = {ptr:g, env:{a:a}}; +//! g +//! } +//! ---------------------------------------------------------- +//! Cases to consider +//! * Function definitions +//! 1. Check which expression and type variables are captured (i.e. defined outside) +//! 2. Create a new function definition which takes an environment as an extra argument that +//! contains the captured variables +//! `def f(.., {_:_,...}):.. = ..` +//! 3. Replace the old function definition with a closure that stores a function pointer and environment +//! `val f = {ptr:_, env:{_:_,...}}` +//! 4. Update the type wherever the function definition is used +//! * Store type inside environment and propagate it +//! * Return the type +//! 4. All references to the function definition are replaced with the closure +//! `f(..) => f.ptr(.., f.env)` + +use context::Context; +use context::ExprDecl; +use context::ScopeKind; +use context::TypeDecl; +use hir::*; +use im_rc::Vector; +use utils::VectorUtils; +pub mod context; + +pub fn process(ctx: &mut Context, ss: Vector) -> Vector { + ss.into_iter().map(|s| ll_stmt(ctx, s)).collect() +} + +fn ll_stmt(ctx: &mut Context, s: Stmt) -> Stmt { + let info = s.info; + match s.kind { + SDef(m, x, gs, ps, t, b) => { + let gs = gs.concat(ctx.generics_in_scope()); + // def foo[A](x:A):A { + // def bar(y:A):A = y; + // bar(x) + // } + // + // def bar(y:A):A = y; + // + // def foo[A](x:A):A { + // bar[A](x) + // } + ctx.stack + .bind_expr_decl(x.clone(), ExprDecl::Def(gs.clone())); + ctx.stack.push_scope(ScopeKind::Def(gs.clone())); + let b = ll_block(ctx, b); + ctx.stack.pop_scope(); + SDef(m, x, gs, ps, t, b).with(s.info) + } + SRecDef(..) => unreachable!(), + SBif(m, x, gs, ts, t) => SBif(m, x, gs, ts, t).with(s.info), + SEnum(m, x, gs, xts) => SEnum(m, x, gs, xts).with(s.info), + SBit(m, x, gs) => SBit(m, x, gs).with(s.info), + SVal(p, e) => { + let e = ll_expr(ctx, e); + SVal(p, e).with(s.info) + } + SExpr(e) => { + let e = ll_expr(ctx, e); + SExpr(e).with(s.info) + } + SNoop => SNoop.with(s.info), + } +} + +fn ll_block(ctx: &mut Context, b: Block) -> Block { + let info = b.info; + let ss = b.ss.map(|s| ll_stmt(ctx, s)); + let e = ll_expr(ctx, b.e); + Block::new(ss, e, info) +} + +fn ll_expr(ctx: &mut Context, e: Expr) -> Expr { + let info = e.info; + let t = e.t; + match e.kind.as_ref().clone() { + EConst(c) => EConst(c).with(t, info), + EFun(ps, t, b) => { + todo!() + } + EFunCall(e, es) => { + todo!() + } + EFunReturn(e) => { + todo!() + } + ELoop(b) => { + let b = ll_block(ctx, b); + ELoop(b).with(t, info) + } + ELoopBreak(e) => { + let e = ll_expr(ctx, e); + ELoopBreak(e).with(t, info) + } + ELoopContinue => ELoopContinue.with(t, info), + EMatch(e, pbs) => { + let e = ll_expr(ctx, e); + let pbs = pbs.map(|(p, b)| (p, ll_block(ctx, b))); + EMatch(e, pbs).with(t, info) + } + EArray(es) => { + let es = es.map(|e| ll_expr(ctx, e)); + // let e = ll_expr(ctx, e); + EArray(es).with(t, info) + } + EArrayAccess(e0, e1) => { + let e0 = ll_expr(ctx, e0); + let e1 = ll_expr(ctx, e1); + EArrayAccess(e0, e1).with(t, info) + } + EIfElse(e, b0, b1) => { + let e = ll_expr(ctx, e); + let b0 = ll_block(ctx, b0); + let b1 = ll_block(ctx, b1); + EIfElse(e, b0, b1).with(t, info) + } + ERecord(xes) => { + let xes = xes.map(|(x, e)| (x, ll_expr(ctx, e))); + // let e = ll_expr(ctx, e); + ERecord(xes).with(t, info) + } + ERecordAccess(e, x) => { + let e = ll_expr(ctx, e); + ERecordAccess(e, x).with(t, info) + } + EMut(e0, e1) => { + let e0 = ll_expr(ctx, e0); + let e1 = ll_expr(ctx, e1); + EMut(e0, e1).with(t, info) + } + EVal(x) => EVal(x).with(t, info), + EVar(x) => EVar(x).with(t, info), + EDef(x, ts) => { + todo!() + } + EVariant(x0, ts, x1, e) => { + let e = ll_expr(ctx, e); + let ts = ts.map(|t| ll_type(ctx, t)); + EVariant(x0, ts, x1, e).with(t, info) + } + EDo(b) => { + let b = ll_block(ctx, b); + EDo(b).with(t, info) + } + ENoop(e) => { + let e = ll_expr(ctx, e); + ENoop(e).with(t, info) + } + ETuple(es) => { + let es = es.map(|e| ll_expr(ctx, e)); + ETuple(es).with(t, info) + } + ETupleAccess(e, n) => { + let e = ll_expr(ctx, e); + ETupleAccess(e, n).with(t, info) + } + EFor(p, e, b) => { + let e = ll_expr(ctx, e); + let b = ll_block(ctx, b); + EFor(p, e, b).with(t, info) + } + EWhile(e, b) => { + let e = ll_expr(ctx, e); + let b = ll_block(ctx, b); + EWhile(e, b).with(t, info) + } + EError => EError.with(t, info), + EVariantAccess(_, _, _, _) => unreachable!(), + EVariantCheck(_, _, _, _) => unreachable!(), + EFunCallDirect(_, _, _) => todo!(), + ERecordConcat(_, _) => todo!(), + EArrayConcat(_, _) => todo!(), + } +} + +fn ll_type(ctx: &mut Context, t: Type) -> Type { + match t.kind() { + TFun(ts, t) => { + todo!() + } + TTuple(ts, b) => { + let ts = ts.map(|t| ll_type(ctx, t)); + TTuple(ts, b).into() + } + TRecord(t) => TRecord(t).into(), + TNominal(x, ts) => { + let ts = ts.map(|t| ll_type(ctx, t)); + TNominal(x, ts).into() + } + TAlias(info0, info1, t) => { + let t = ll_type(ctx, t); + TAlias(info0, info1, t).into() + } + TRowEmpty => TRowEmpty.into(), + TRowExtend((x, t), r) => { + let t = ll_type(ctx, t); + let r = ll_type(ctx, r); + TRowExtend((x, t), r).into() + } + TGeneric(x) => TGeneric(x).into(), + TArray(t, n) => { + let t = ll_type(ctx, t); + TArray(t, n).into() + } + TVar(x) => TVar(x).into(), + TError => TError.into(), + TUnit => TUnit.into(), + TNever => TNever.into(), + TRecordConcat(_, _) => todo!(), + TArrayConcat(_, _) => todo!(), + } +} diff --git a/arc-lang/crates/compiler/passes/hir-monomorphise/Cargo.toml b/arc-lang/crates/compiler/passes/hir-monomorphise/Cargo.toml new file mode 100644 index 000000000..54f9e1562 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-monomorphise/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "hir-monomorphise" +version.workspace = true +edition.workspace = true + +[dependencies] +hir.workspace = true +utils.workspace = true +im-rc.workspace = true +stack.workspace = true +diagnostics.workspace = true +info.workspace = true diff --git a/arc-lang/crates/compiler/passes/hir-monomorphise/src/context.rs b/arc-lang/crates/compiler/passes/hir-monomorphise/src/context.rs new file mode 100644 index 000000000..a45feef65 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-monomorphise/src/context.rs @@ -0,0 +1,55 @@ +use diagnostics::Diagnostics; +use hir::*; +use im_rc::HashMap; +use im_rc::OrdMap; +use im_rc::Vector; +use info::Info; +use stack::Stack; + +#[derive(Debug)] +pub struct Context { + pub(crate) stack: Stack<(), ExprDecl, TypeDecl>, + pub monomorphised_types: HashMap, Name>>, + pub monomorphised_funcs: HashMap, Name>>, + pub stmts: Vector, + pub diagnostics: Diagnostics, +} + +impl Default for Context { + fn default() -> Context { + Context { + stack: Stack::new(()), + monomorphised_types: HashMap::new(), + monomorphised_funcs: HashMap::new(), + stmts: Vector::new(), + diagnostics: Diagnostics::default(), + } + } +} + +#[derive(Debug, Clone)] +pub(crate) enum TypeDecl { + Enum(Info, Meta, Vector, Vector<(Name, Type)>), + Bit(Info, Meta, Vector), + Generic(Type), +} + +#[derive(Debug, Clone)] +pub(crate) enum ExprDecl { + Def(Info, Meta, Vector, Vector, Type, Block), + Bif(Info, Meta, Vector, Vector, Type), + Val(Type), + Var(Type), +} + +impl Context { + pub fn new() -> Context { + Context { + stack: Stack::new(()), + diagnostics: Diagnostics::default(), + monomorphised_types: HashMap::new(), + monomorphised_funcs: HashMap::new(), + stmts: Vector::new(), + } + } +} diff --git a/arc-lang/crates/compiler/passes/hir-monomorphise/src/lib.rs b/arc-lang/crates/compiler/passes/hir-monomorphise/src/lib.rs new file mode 100644 index 000000000..a19542f0a --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-monomorphise/src/lib.rs @@ -0,0 +1,340 @@ +#![allow(unused)] +pub mod context; + +use crate::context::Context; +use context::ExprDecl; +use context::TypeDecl; +use diagnostics::Error; +use hir::*; +use im_rc::hashmap::Entry; +use im_rc::ordmap; +use im_rc::vector; +use im_rc::OrdMap; +use im_rc::Vector; +use info::Info; +use utils::OrdMapUtils; +use utils::VectorUtils; + +pub fn process(ctx: &mut Context, ss: Vector) -> Vector { + for s in ss { + visit_top_stmt(ctx, s); + } + std::mem::take(&mut ctx.stmts) +} + +fn visit_top_stmt(ctx: &mut Context, s: Stmt) { + let info = s.info; + match s.kind { + SDef(m, x, gs, ps, t, b) => { + ctx.stack + .bind_expr_decl(x, ExprDecl::Def(info, m, gs, ps, t, b)); + } + SRecDef(_, _) => todo!(), + SBif(m, x, gs, ts, t) => { + ctx.stack + .bind_expr_decl(x, ExprDecl::Bif(info, m, gs, ts, t)); + } + SEnum(m, x, gs, xts) => { + ctx.stack + .bind_type_decl(x, TypeDecl::Enum(info, m, gs, xts)); + } + SBit(m, x, gs) => { + ctx.stack.bind_type_decl(x, TypeDecl::Bit(info, m, gs)); + } + SVal(p, e) => { + let e = visit_expr(ctx, e); + let p = visit_val_pattern(ctx, p); + ctx.stmts.push_back(SVal(p, e).with(s.info)); + } + SExpr(e) => { + let e = visit_expr(ctx, e); + ctx.stmts.push_back(SExpr(e).with(s.info)); + } + SNoop => {} + } +} + +fn visit_type(ctx: &mut Context, t: Type, info: Info) -> Type { + match t.kind() { + TFun(ts, t) => { + let ts = ts.into_iter().map(|t| visit_type(ctx, t, info)).collect(); + let t = visit_type(ctx, t, info); + TFun(ts, t).into() + } + TRecord(t) => { + let t = visit_type(ctx, t, info); + TRecord(t).into() + } + TRecordConcat(t0, t1) => { + let t0 = visit_type(ctx, t0, info); + let t1 = visit_type(ctx, t1, info); + TRecordConcat(t0, t1).into() + } + TNominal(x, ts) => { + let ts = ts.into_iter().map(|t| visit_type(ctx, t, info)).collect(); + let x1 = monomorphise_type(ctx, x, ts); + TNominal(x1, vector![]).into() + } + TGeneric(x) => match ctx.stack.find_type_decl(&x) { + Some(TypeDecl::Generic(t)) => t, + x => unreachable!("{:?}", x), + }, + TRowEmpty => TRowEmpty.into(), + TRowExtend((x, t), r) => { + let t = visit_type(ctx, t, info); + let r = visit_type(ctx, r, info); + TRowExtend((x, t), r).into() + } + TTuple(ts, c) => { + let ts = ts.into_iter().map(|t| visit_type(ctx, t, info)).collect(); + TTuple(ts, c).into() + } + TAlias(_, _, t) => visit_type(ctx, t, info), + TArray(t, c) => { + let t = visit_type(ctx, t, info); + TArray(t, c).into() + } + TArrayConcat(t0, t1) => { + let t0 = visit_type(ctx, t0, info); + let t1 = visit_type(ctx, t1, info); + TArrayConcat(t0, t1).into() + } + TUnit => TUnit.into(), + TNever => TNever.into(), + TVar(x) => TVar(x).into(), + TError => TError.into(), + } +} + +fn visit_val_pattern(ctx: &mut Context, p: Pattern) -> Pattern { + let info = p.info; + let t = visit_type(ctx, p.t.clone(), info); + let info = p.info; + match p.kind() { + PIgnore => PIgnore.with(t, info), + PVal(x) => { + ctx.stack + .bind_expr_decl(x.clone(), ExprDecl::Val(t.clone())); + PVal(x).with(t, info) + } + _ => unreachable!(), + } +} + +fn visit_val_expr(ctx: &mut Context, e: Expr) -> Expr { + let info = e.info; + match e.kind.as_ref().clone() { + EVal(x) => match ctx.stack.find_expr_decl(&x).unwrap() { + ExprDecl::Val(t) => EVal(x).with(t, info), + _ => unreachable!(), + }, + _ => unreachable!(), + } +} + +fn visit_expr(ctx: &mut Context, e: Expr) -> Expr { + let info = e.info; + let t = visit_type(ctx, e.t.clone(), info); + let info = e.info; + match e.kind() { + EConst(c) => EConst(c).with(t, info), + EFunCallDirect(x, ts, es) => { + let ts = ts.into_iter().map(|t| visit_type(ctx, t, info)).collect(); + let x = monomorphise_func(ctx, x, ts); + EFunCallDirect(x, vector![], es).with(t, info) + } + EDef(x, ts) => { + let ts = ts.into_iter().map(|t| visit_type(ctx, t, info)).collect(); + let x = monomorphise_func(ctx, x, ts); + EDef(x, vector![]).with(t, info) + } + EFunCall(e, es) => { + let e = visit_val_expr(ctx, e); + let es = es.into_iter().map(|e| visit_val_expr(ctx, e)).collect(); + EFunCall(e, es).with(t, info) + } + EFunReturn(e) => { + let e = visit_val_expr(ctx, e); + EFunReturn(e).with(t, info) + } + EIfElse(e, b0, b1) => { + let e = visit_val_expr(ctx, e); + let b0 = visit_block(ctx, b0); + let b1 = visit_block(ctx, b1); + EIfElse(e, b0, b1).with(t, info) + } + ELoop(b) => { + let b = visit_block(ctx, b); + ELoop(b).with(t, info) + } + ELoopBreak(e) => { + let e = visit_val_expr(ctx, e); + ELoopBreak(e).with(t, info) + } + ELoopContinue => ELoopContinue.with(t, info), + ERecord(xes) => ERecord(xes).with(t, info), + ERecordConcat(e0, e1) => { + let e0 = visit_val_expr(ctx, e0); + let e1 = visit_val_expr(ctx, e1); + ERecordConcat(e0, e1).with(t, info) + } + ERecordAccess(e, x) => { + let e = visit_val_expr(ctx, e); + ERecordAccess(e, x).with(t, info) + } + EVariant(x0, ts, x1, e) => { + let ts = ts.into_iter().map(|t| visit_type(ctx, t, info)).collect(); + let x0 = monomorphise_type(ctx, x0, ts); + EVariant(x0, vector![], x1, e).with(t, info) + } + EVariantAccess(x0, ts, x1, e) => { + let ts = ts.into_iter().map(|t| visit_type(ctx, t, info)).collect(); + let x0 = monomorphise_type(ctx, x0, ts); + EVariantAccess(x0, vector![], x1, e).with(t, info) + } + EVariantCheck(x0, ts, x1, v) => { + let ts = ts.into_iter().map(|t| visit_type(ctx, t, info)).collect(); + let x0 = monomorphise_type(ctx, x0, ts); + EVariantCheck(x0, vector![], x1, v).with(t, info) + } + EArray(es) => { + let es = es.mapm(ctx, visit_val_expr); + EArray(es).with(t, info) + } + EArrayConcat(e0, e1) => { + let e0 = visit_val_expr(ctx, e0); + let e1 = visit_val_expr(ctx, e1); + EArrayConcat(e0, e1).with(t, info) + } + EArrayAccess(e0, e1) => { + let e0 = visit_val_expr(ctx, e0); + let e1 = visit_val_expr(ctx, e1); + EArrayAccess(e0, e1).with(t, info) + } + EMut(e0, e1) => { + let e0 = visit_val_expr(ctx, e0); + let e1 = visit_val_expr(ctx, e1); + EMut(e0, e1).with(t, info) + } + EVal(x) => EVal(x).with(t, info), + EVar(x) => EVar(x).with(t, info), + ETuple(es) => { + let es = es.mapm(ctx, visit_val_expr); + ETuple(es).with(t, info) + } + ETupleAccess(e, n) => { + let e = visit_val_expr(ctx, e); + ETupleAccess(e, n).with(t, info) + } + ENoop(e) => visit_val_expr(ctx, e), + EDo(_) => unreachable!("`do` should have been desugared"), + EFun(_, _, _) => unreachable!("`fun` should have been desugared"), + EMatch(_, _) => unreachable!("`match` should have been desugared"), + EFor(_, _, _) => unreachable!("`for` should have been desugared"), + EWhile(_, _) => unreachable!("`while` should have been desugared"), + EError => EError.with(t, info), + } +} + +fn visit_block(ctx: &mut Context, b: Block) -> Block { + let ss = b.ss.mapm(ctx, visit_expr_stmt); + let e = visit_expr(ctx, b.e); + Block::new(ss, e, b.info) +} + +fn visit_expr_stmt(ctx: &mut Context, s: Stmt) -> Stmt { + match s.kind { + SVal(p, e) => { + let e = visit_expr(ctx, e); + let p = visit_val_pattern(ctx, p); + SVal(p, e).with(s.info) + } + SExpr(e) => { + let e = visit_expr(ctx, e); + SExpr(e).with(s.info) + } + _ => unreachable!(), + } +} + +fn monomorphise_func(ctx: &mut Context, x: Name, ts: Vector) -> Name { + let instances = ctx.monomorphised_funcs.entry(x.clone()).or_default(); + let len = instances.len(); + match instances.entry(ts.clone()) { + Entry::Occupied(e) => e.get().clone(), + Entry::Vacant(e) => { + let x1 = format!("{}_{}", x, len); + e.insert(x1.clone()); + match ctx.stack.find_expr_decl(&x).unwrap() { + ExprDecl::Def(info, m, gs, ps, t, b) => { + ctx.stack.push_scope(()); + for (g, t) in gs.into_iter().zip(ts.into_iter()) { + ctx.stack.bind_type_decl(g, TypeDecl::Generic(t)); + } + let ps = ps.mapm(ctx, visit_val_pattern); + let t = visit_type(ctx, t, info); + let b = visit_block(ctx, b); + ctx.stack.pop_scope(); + ctx.stmts + .push_back(SDef(m, x1.clone(), vector![], ps, t, b).with(info)); + } + ExprDecl::Bif(info, mut m, gs, ts1, t) => { + ctx.stack.push_scope(()); + for (g, t) in gs.into_iter().zip(ts.into_iter()) { + ctx.stack.bind_type_decl(g, TypeDecl::Generic(t)); + } + let ts1 = ts1.into_iter().map(|t| visit_type(ctx, t, info)).collect(); + let t = visit_type(ctx, t, info); + ctx.stack.pop_scope(); + m.insert("name".to_string(), Some(CString(x))); + ctx.stmts + .push_back(SBif(m, x1.clone(), vector![], ts1, t).with(info)); + } + x => unreachable!("{:?}", x), + } + x1 + } + } +} + +fn monomorphise_type(ctx: &mut Context, x: Name, ts: Vector) -> Name { + let instances = ctx.monomorphised_types.entry(x.clone()).or_default(); + let len = instances.len(); + match instances.entry(ts.clone()) { + Entry::Occupied(e) => e.get().clone(), + Entry::Vacant(e) => { + let x1 = if ts.is_empty() { + x.clone() + } else { + format!("{}_{}", x, len) + }; + e.insert(x1.clone()); + match ctx + .stack + .find_type_decl(&x) + .expect(&format!("{} not found", x)) + { + TypeDecl::Enum(info, m, gs, xts) => { + ctx.stack.push_scope(()); + for (g, t) in gs.into_iter().zip(ts.into_iter()) { + ctx.stack.bind_type_decl(g, TypeDecl::Generic(t)); + } + let xts = xts + .into_iter() + .map(|(x, t)| (x, visit_type(ctx, t, info))) + .collect(); + ctx.stack.pop_scope(); + ctx.stmts + .push_back(SEnum(m, x1.clone(), vector![], xts).with(info)); + } + TypeDecl::Bit(info, mut m, gs) => { + m.insert("name".to_string(), Some(CString(x))); + ctx.stmts + .push_back(SBit(m, x1.clone(), vector![]).with(info)); + } + x => unreachable!("{:?}", x), + } + x1 + } + } +} diff --git a/arc-lang/crates/compiler/passes/hir-patcomp/Cargo.toml b/arc-lang/crates/compiler/passes/hir-patcomp/Cargo.toml new file mode 100644 index 000000000..24f1624b8 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-patcomp/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "hir-patcomp" +version.workspace = true +edition.workspace = true + +[dependencies] +im-rc.workspace = true +hir.workspace = true +utils.workspace = true +info.workspace = true +stack.workspace = true +name-gen.workspace = true +diagnostics.workspace = true diff --git a/arc-lang/crates/compiler/passes/hir-patcomp/src/context.rs b/arc-lang/crates/compiler/passes/hir-patcomp/src/context.rs new file mode 100644 index 000000000..4ec812b24 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-patcomp/src/context.rs @@ -0,0 +1,70 @@ +use diagnostics::Diagnostics; +use hir::*; +use im_rc::OrdMap; +use im_rc::Vector; +use name_gen::NameGen; +use stack::Stack; + +#[derive(Debug)] +pub struct Context { + pub(crate) stack: Stack, Name, ()>, + clauses: Vector, + pub(crate) vals: NameGen, + pub diagnostics: Diagnostics, +} + +impl Default for Context { + fn default() -> Self { + Context { + stack: Stack::new(Vector::new()), + clauses: Vector::new(), + vals: NameGen::new("v"), + diagnostics: Diagnostics::default(), + } + } +} + +pub(crate) type Equations = OrdMap; +pub(crate) type Substitutions = OrdMap; + +#[derive(Debug, Clone)] +pub(crate) struct Clause { + pub(crate) eqs: Equations, + pub(crate) substs: Substitutions, + pub(crate) b: Block, +} + +impl Clause { + pub(crate) fn new(eqs: Equations, substs: Substitutions, b: Block) -> Self { + Self { eqs, substs, b } + } +} + +impl Context { + pub fn new() -> Context { + Self::default() + } + + pub(crate) fn add_expr(&mut self, e: Expr) -> Name { + let info = e.info; + let t = e.t.clone(); + let x = self.vals.fresh(); + let p = PVal(x.clone()).with(t.clone(), info); + let s = StmtKind::SVal(p, e).with(info); + self.add_stmt(s); + x + } + + pub(crate) fn add_expr_val(&mut self, e: Expr) -> Expr { + let x = self.add_expr(e.clone()); + EVal(x).with(e.t, e.info) + } + + pub(crate) fn add_stmt(&mut self, s: Stmt) { + self.stack.current().push_back(s); + } + + pub(crate) fn add_stmts(&mut self, ss: Vector) { + self.stack.current().extend(ss); + } +} diff --git a/arc-lang/crates/compiler/passes/hir-patcomp/src/lib.rs b/arc-lang/crates/compiler/passes/hir-patcomp/src/lib.rs new file mode 100644 index 000000000..e30fbd1e0 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-patcomp/src/lib.rs @@ -0,0 +1,544 @@ +// Used for flattening statements like +// +// do { val x = 1; } +// +// into +// +// val x = 1; +// Used for flattening statements like +// +// val x = 1; val y = x; +// +// into +// +// val x = 1; +#![allow(unused)] +pub mod context; + +use crate::context::Clause; +use crate::context::Context; +use crate::context::Equations; +use diagnostics::Error; +use hir::*; +use im_rc::ordmap; +use im_rc::vector; +use im_rc::OrdMap; +use im_rc::Vector; +use info::Info; +use utils::OptionUtils; +use utils::VectorUtils; + +pub fn process(ctx: &mut Context, ss: Vector) -> Vector { + for s in ss { + lower_stmt(ctx, s); + } + std::mem::take(ctx.stack.current()) +} + +fn lower_stmt(ctx: &mut Context, s: Stmt) { + let info = s.info; + match s.kind.clone() { + SDef(m, x, gs, ps, t, b) => { + ctx.stack.push_scope(Vector::new()); + let ps = ps.map(|p| lower_param(ctx, p)); + let b = lower_block(ctx, b); + let ss1 = ctx.stack.pop_scope(); + let ss2 = ss1.concat(b.ss); + let b1 = Block::new(ss2, b.e, info); + ctx.add_stmt(SDef(m, x, gs, ps, t, b1).with(info)) + } + SVal(p, e) => { + let e = lower_expr(ctx, e); + let p = lower_val_pattern(ctx, p, e); + } + SExpr(e) => { + let e = lower_expr(ctx, e); + ctx.add_stmt(SExpr(e).with(info)) + } + SRecDef(..) => todo!(), + SBif(..) | SEnum(..) | SBit(..) => ctx.add_stmt(s), + SNoop => {} + } +} + +fn lower_param(ctx: &mut Context, p: Pattern) -> Pattern { + match p.kind.as_ref().clone() { + PIgnore => p, + PNoop(p) => lower_param(ctx, p), + PVal(_) => p, + PVar(_) => p, + PError => p, + _ => { + let info = p.info; + let t = p.t.clone(); + let x = ctx.vals.fresh(); + let e = EVal(x.clone()).with(p.t.clone(), info); + lower_val_pattern(ctx, p, e); + PVal(x).with(t, info) + } + } +} + +fn lower_val_pattern(ctx: &mut Context, p: Pattern, e: Expr) { + let t = p.t; + let info = p.info; + match p.kind.as_ref().clone() { + PError | PIgnore => { + ctx.add_stmt(SExpr(e).with(info)); + } + PNoop(p) => lower_val_pattern(ctx, p, e), + PRecord(xps) => { + let e = bind_expr(ctx, e); + for (x, p) in xps { + let e = ERecordAccess(e.clone(), x).with(p.t.clone(), info); + lower_val_pattern(ctx, p, e); + } + } + PArray(ps) => { + let e = bind_expr(ctx, e); + for (p2, i) in ps.into_iter().zip(0..) { + let e2 = EConst(CInt(i)).with(TNominal("i32".to_string(), vector![]).into(), info); + let e = EArrayAccess(e.clone(), e2).with(p2.t.clone(), info); + lower_val_pattern(ctx, p2, e); + } + } + PArrayConcat(..) => unreachable!(), + PRecordConcat(..) => unreachable!(), + PTuple(ps) => { + let e = bind_expr(ctx, e); + for (p, i) in ps.into_iter().zip(0..) { + let e = ETupleAccess(e.clone(), i).with(p.t.clone(), info); + lower_val_pattern(ctx, p, e); + } + } + PVal(x) => { + if let EVal(x1) = e.kind.as_ref() { + ctx.stack.bind_expr_decl(x.clone(), x1.clone()) + } else { + ctx.add_stmt(SVal(PVal(x).with(t, e.info), e).with(info)) + } + } + PVar(x) => { + if let EVal(x1) = e.kind.as_ref() { + ctx.stack.bind_expr_decl(x.clone(), x1.clone()) + } else { + ctx.add_stmt(SVal(PVal(x).with(t, e.info), e).with(info)) + } + } + PConst(_) | POr(_, _) | PVariant(_, _, _, _) => { + ctx.diagnostics + .push_error(Error::ExpectedIrrefutablePattern { info }); + } + } +} + +fn bind_expr(ctx: &mut Context, e: Expr) -> Expr { + if let EVal(x1) = e.kind.as_ref() { + e + } else { + let x = ctx.vals.fresh(); + let p = PVal(x.clone()).with(e.t.clone(), e.info); + ctx.add_stmt(SVal(p, e.clone()).with(e.info)); + EVal(x).with(e.t.clone(), e.info) + } +} + +fn lower_expr_val(ctx: &mut Context, e: Expr) -> Expr { + let e = lower_expr(ctx, e); + if let EVal(x) = e.kind.as_ref() { + e + } else { + let x = ctx.add_expr(e.clone()); + EVal(x).with(e.t, e.info) + } +} + +fn lower_expr_name(ctx: &mut Context, e: Expr) -> Name { + let e = lower_expr(ctx, e); + ctx.add_expr(e.clone()) +} + +fn lower_expr(ctx: &mut Context, e: Expr) -> Expr { + let info = e.info; + let t = e.t; + match e.kind.as_ref().clone() { + ENoop(e) => lower_expr(ctx, e), + ELoopBreak(e) => { + let e = lower_expr_val(ctx, e); + ELoopBreak(e).with(t, info) + } + EFunCall(e, es) => { + let e = lower_expr_val(ctx, e); + let es = es.mapm(ctx, lower_expr_val); + EFunCall(e, es).with(t, info) + } + EFunCallDirect(x, ts, es) => { + let es = es.mapm(ctx, lower_expr_val); + EFunCallDirect(x, ts, es).with(t, info) + } + ELoopContinue => (ELoopContinue.with(t, info)), + EVariant(x0, ts, x1, e) => { + let e = lower_expr_val(ctx, e); + EVariant(x0, ts, x1, e).with(t, info) + } + EFun(ts, t1, b) => { + let b = lower_block(ctx, b); + EFun(ts, t1, b).with(t, info) + } + EConst(c) => (EConst(c).with(t, info)), + ELoop(b) => { + let b = lower_block(ctx, b); + ELoop(b).with(t, info) + } + EMatch(e, arms) => { + let x = lower_expr_name(ctx, e); + let clauses = arms_to_clauses(arms, x); + let b = lower_clauses(ctx, t, clauses); + let ctx = ctx.add_stmts(b.ss); + b.e + } + EIfElse(e, b0, b1) => { + let e = lower_expr_val(ctx, e); + let b0 = lower_block(ctx, b0); + let b1 = lower_block(ctx, b1); + EIfElse(e, b0, b1).with(t, info) + } + ERecord(xes) => { + let xes = xes.map(|(x, e)| (x, lower_expr_val(ctx, e))); + ERecord(xes).with(t, info) + } + ERecordAccess(e, x) => { + let e = lower_expr_val(ctx, e); + ERecordAccess(e, x).with(t, info) + } + ERecordConcat(_, _) => todo!(), + EFunReturn(e) => { + let e = lower_expr_val(ctx, e); + EFunReturn(e).with(t, info) + } + EVal(x) => { + let x = resolve_alias(ctx, x); + EVal(x).with(t, info) + } + EVar(x) => { + let x = resolve_alias(ctx, x); + EVar(x).with(t, info) + } + EArray(es) => { + let es = es.mapm(ctx, lower_expr_val); + EArray(es).with(t, info) + } + EArrayConcat(_, _) => todo!(), + EArrayAccess(e0, e1) => { + let e0 = lower_expr_val(ctx, e0); + let e1 = lower_expr_val(ctx, e1); + EArrayAccess(e0, e1).with(t, info) + } + EMut(e0, e1) => { + let e0 = lower_expr_val(ctx, e0); + let e1 = lower_expr_val(ctx, e1); + EMut(e0, e1).with(t, info) + } + EDef(x, ts) => EDef(x, ts).with(t, info), + EVariantAccess(x0, ts, x1, e) => { + let e = lower_expr_val(ctx, e); + EVariantAccess(x0, ts, x1, e).with(t, info) + } + EVariantCheck(x0, ts, x1, e) => { + let e = lower_expr_val(ctx, e); + EVariantCheck(x0, ts, x1, e).with(t, info) + } + EDo(b) => { + let b = lower_block(ctx, b); + ctx.add_stmts(b.ss); + b.e + } + ETuple(es) => { + let es = es.mapm(ctx, lower_expr_val); + ETuple(es).with(t, info) + } + ETupleAccess(e, i) => { + let e = lower_expr_val(ctx, e); + ETupleAccess(e, i).with(t, info) + } + EFor(_, _, _) => todo!(), + EWhile(e, b) => { + let e = lower_expr_val(ctx, e); + let b = lower_block(ctx, b); + EWhile(e, b).with(t, info) + } + EError => EError.with(t, info), + } +} + +fn resolve_alias(ctx: &mut Context, mut x: Name) -> Name { + for scope in ctx.stack.iter() { + if let Some(x1) = scope.expr_namespace.find(&x) { + x = x1.clone(); + } + } + x +} + +fn simplify_pat_eq( + ctx: &mut Context, + or_clauses: &mut Vector, + clause: &mut Clause, + (v, p): (Name, Pattern), +) { + match p.kind.as_ref().clone() { + // Irrefutable patterns can be simplified (i.e., flattened) + PIgnore => {} + PNoop(p) => simplify_pat_eq(ctx, or_clauses, clause, (v, p)), + PRecord(xps) => { + for (x, p) in xps { + let e = EVal(v.clone()).with(p.t.clone(), p.info); + ctx.add_expr(ERecordAccess(e, x).with(p.t.clone(), p.info)); + simplify_pat_eq(ctx, or_clauses, clause, (v.clone(), p)) + } + } + // Or-patterns are duplicated for each branch + POr(p0, p1) => { + let x0 = ctx.vals.fresh(); + let x1 = ctx.vals.fresh(); + let mut eqs0 = clause.eqs.clone(); + let mut eqs1 = clause.eqs.clone(); + eqs0.insert(x0, p0); + eqs1.insert(x1, p1); + let mut c0 = Clause::new(eqs0, clause.substs.clone(), clause.b.clone()); + let mut c1 = Clause::new(eqs1, clause.substs.clone(), clause.b.clone()); + simplify_clause(ctx, or_clauses, &mut c0); + simplify_clause(ctx, or_clauses, &mut c1); + or_clauses.push_back(c0); + or_clauses.push_back(c1); + } + PArray(_) => { + todo!("Handle this irrefutable pattern. Check that the array matches the expected size") + } + PArrayConcat(_, _) => unreachable!(), + PRecordConcat(_, _) => unreachable!(), + // Variables are substituted + PVar(v1) => { + clause.substs.insert(v, v1); + } + PVal(v1) => { + clause.substs.insert(v, v1); + } + PTuple(_) => { + todo!("Handle this irrefutable pattern. Check that the tuple matches the expected size") + } + // Refutable patterns are added to the list of equations + PConst(_) | PVariant(_, _, _, _) => { + clause.eqs.insert(v, p); + } + PError => {} + } +} + +fn lower_clauses(ctx: &mut Context, match_t: Type, mut clauses: Vector) -> Block { + // Simplify the current clauses + let mut or_clauses = Vector::new(); + for clause in clauses.iter_mut() { + simplify_clause(ctx, &mut or_clauses, clause); + } + clauses.append(or_clauses); + // Select one equation in one of the clauses to branch on + let head = clauses.head().unwrap().clone(); + if head.eqs.is_empty() { + // This pattern equation is now solved + for (v0, v1) in head.substs { + ctx.stack.bind_expr_decl(v0, v1); + } + lower_block(ctx, head.b) + } else { + let x = most_matching_name(&head.eqs, &clauses); + let p = head.eqs.get(&x).unwrap(); + match p.kind.as_ref().clone() { + PConst(c) => branch_const_clauses(ctx, p.info, match_t, clauses, x, c, p.t.clone()), + PVariant(x0, ts, x1, _) => { + branch_variant_clauses(ctx, p.info, match_t, clauses, x, x0, ts, x1, p.t.clone()) + } + // Irrefutable patterns are already simplified + PTuple(_) + | PVal(_) + | PArray(_) + | PIgnore + | POr(_, _) + | PNoop(_) + | PRecord(_) + | PVar(_) + | PArrayConcat(_, _) + | PRecordConcat(_, _) + | PError => unreachable!(), + } + } +} + +fn simplify_clause(ctx: &mut Context, cs: &mut Vector, c: &mut Clause) { + for eq in std::mem::take(&mut c.eqs) { + simplify_pat_eq(ctx, cs, c, eq); + } +} + +fn branch_const_clauses( + ctx: &mut Context, + info: Info, + match_t: Type, + clauses: Vector, + branch_v: Name, + c: Const, + t: Type, +) -> Block { + let (then_clauses, else_clauses) = split_const_clauses(&branch_v, &c, clauses); + let e = EVal(branch_v.clone()).with(t.clone(), info); + let e0 = ctx.add_expr_val(EConst(c).with(t.clone(), info)); + let e1 = ctx.add_expr_val( + EFunCallDirect("eq".to_string(), vector![t.clone()], vector![e, e0]) + .with(TNominal("Bool".to_string(), vector![]).into(), info), + ); + match () { + _ if else_clauses.is_empty() => lower_clauses(ctx, match_t, then_clauses), + _ if then_clauses.is_empty() => lower_clauses(ctx, match_t, else_clauses), + _ => { + let then_b = lower_clauses(ctx, match_t.clone(), then_clauses); + let else_b = lower_clauses(ctx, match_t.clone(), else_clauses); + let v = ctx.add_expr_val(EIfElse(e1, then_b, else_b).with(match_t, info)); + Block::new(vector![], v, info) + } + } +} + +fn branch_variant_clauses( + ctx: &mut Context, + info: Info, + match_t: Type, + clauses: Vector, + branch_v: Name, + x0: Name, + ts: Vector, + x1: Name, + t: Type, +) -> Block { + let v = ctx.vals.fresh(); + let e = EVal(v.clone()).with(t.clone(), info); + let e0 = EVal(branch_v.clone()).with(t.clone(), info); + let e1 = EVariantAccess(x0.clone(), ts.clone(), x1.clone(), e0); + + let (then_clauses, else_clauses) = split_variant_clauses(branch_v, &v, &x1, clauses); + + match () { + _ if else_clauses.is_empty() => lower_unwrap(ctx, info, match_t, then_clauses, e, t, e1), + _ if then_clauses.is_empty() => lower_clauses(ctx, match_t, else_clauses), + _ => { + let check_e = + ctx.add_expr_val(EVariantCheck(x0, ts, x1, e.clone()).with(t.clone(), info)); + let then_b = lower_unwrap(ctx, info, match_t.clone(), then_clauses, e, t, e1); + let else_b = lower_clauses(ctx, match_t.clone(), else_clauses); + let e = ctx.add_expr_val(EIfElse(check_e, then_b, else_b).with(match_t, info)); + Block::new(vector![], e, info) + } + } +} + +fn lower_unwrap( + ctx: &mut Context, + info: Info, + match_t: Type, + clauses: Vector, + v: Expr, + t: Type, + e: ExprKind, +) -> Block { + ctx.stack.push_scope(Vector::new()); + ctx.add_expr(e.with(t, info)); + let b = lower_clauses(ctx, match_t, clauses); + let ss1 = ctx.stack.pop_scope(); + let ss2 = ss1.concat(b.ss); + Block::new(ss2, b.e, info) +} + +fn split_const_clauses( + branch_v: &Name, + branch_c: &Const, + clauses: Vector, +) -> (Vector, Vector) { + let mut then_clauses = vector![]; + let mut else_clauses = vector![]; + for mut clause in clauses { + if let Some(p) = clause.eqs.get(branch_v) { + if let PConst(c1) = (*p.kind).clone() { + if *branch_c == c1 { + clause.eqs.remove(branch_v); + then_clauses.push_back(clause); + } else { + else_clauses.push_back(clause); + } + } else { + unreachable!() + } + } else { + then_clauses.push_back(clause.clone()); + else_clauses.push_back(clause); + } + } + (then_clauses, else_clauses) +} + +fn split_variant_clauses( + branch_v: Name, + unwrap_v: &Name, + variant_x: &Name, + clauses: Vector, +) -> (Vector, Vector) { + let mut then_clauses = vector![]; + let mut else_clauses = vector![]; + for mut clause in clauses { + if let Some(p) = clause.eqs.get(&branch_v) { + if let PVariant(_xs, _ts, x1, p1) = (*p.kind).clone() { + if *variant_x == x1 { + clause.eqs.remove(&branch_v); + clause.eqs.insert(unwrap_v.clone(), p1); + then_clauses.push_back(clause); + } else { + else_clauses.push_back(clause); + } + } else { + unreachable!() + } + } else { + then_clauses.push_back(clause.clone()); + else_clauses.push_back(clause); + } + } + (then_clauses, else_clauses) +} + +// Pick the variable which occurs in the most equations of all clauses +fn most_matching_name(eqs: &Equations, clauses: &Vector) -> Name { + eqs.iter() + .map(|(x, _)| x) + .max_by_key(|x| { + clauses + .iter() + .filter(|clause| clause.eqs.iter().find(|(y, _)| x == y).is_some()) + .count() + }) + .cloned() + .unwrap() +} + +fn lower_block(ctx: &mut Context, b: Block) -> Block { + ctx.stack.push_scope(Vector::new()); + for s in b.ss { + lower_stmt(ctx, s); + } + let e = lower_expr_val(ctx, b.e.clone()); + let ss = ctx.stack.pop_scope(); + Block::new(ss, e, b.info) +} + +fn arms_to_clauses(arms: Vector, x: Name) -> Vector { + arms.into_iter() + .map(|(p, b)| Clause::new(ordmap![x.clone() => p], ordmap![], b)) + .collect() +} diff --git a/arc-lang/crates/compiler/passes/hir-reachable/Cargo.toml b/arc-lang/crates/compiler/passes/hir-reachable/Cargo.toml new file mode 100644 index 000000000..20fbbcfe0 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-reachable/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "hir-reachable" +version.workspace = true +edition.workspace = true + +[dependencies] +hir.workspace = true +im-rc.workspace = true +stack.workspace = true +info.workspace = true +diagnostics.workspace = true +utils.workspace = true +value.workspace = true +builtins.workspace = true diff --git a/arc-lang/crates/compiler/passes/hir-reachable/src/context.rs b/arc-lang/crates/compiler/passes/hir-reachable/src/context.rs new file mode 100644 index 000000000..858289169 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-reachable/src/context.rs @@ -0,0 +1,46 @@ +use diagnostics::Diagnostics; +use hir::*; +use im_rc::vector; +use im_rc::HashSet; +use im_rc::OrdMap; +use im_rc::Vector; +use info::Info; +use stack::Stack; +use std::rc::Rc; + +#[derive(Debug)] +pub struct Context { + pub(crate) stack: Stack<(), ExprDecl, TypeDecl>, + pub diagnostics: Diagnostics, + pub(crate) reachable: HashSet, + pub(crate) stmts: Vector, +} + +#[derive(Clone, Debug)] +pub(crate) enum ExprDecl { + Def(Info, Meta, Vector, Type, Block), + Bif(Info, Meta, Vector, Type), +} + +#[derive(Clone, Debug)] +pub(crate) enum TypeDecl { + Enum(Info, Meta, Vector<(Name, Type)>), + Bit(Info, Meta), +} + +impl Default for Context { + fn default() -> Self { + Self { + stack: Stack::new(()), + diagnostics: Diagnostics::default(), + reachable: HashSet::new(), + stmts: Vector::new(), + } + } +} + +impl Context { + pub fn new() -> Self { + Self::default() + } +} diff --git a/arc-lang/crates/compiler/passes/hir-reachable/src/lib.rs b/arc-lang/crates/compiler/passes/hir-reachable/src/lib.rs new file mode 100644 index 000000000..ec887ce69 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-reachable/src/lib.rs @@ -0,0 +1,262 @@ +//! HIR -> Rust: +//! * Replace rows with structs +#![allow(unused)] +pub mod context; + +use std::io::Read; + +use builtins::time_source::TimeSource; +use context::ExprDecl; +use context::TypeDecl; +use diagnostics::Error; +use hir::*; +use im_rc::ordmap; +use im_rc::vector; +use im_rc::OrdMap; +use im_rc::Vector; +use info::Info; +use utils::OptionUtils; +use utils::VectorUtils; +use value::dynamic::Dataflow; +use value::dynamic::Sink; +use value::dynamic::Stream; +use value::dynamic::StreamKind::DApply; +use value::dynamic::StreamKind::DFilter; +use value::dynamic::StreamKind::DFlatMap; +use value::dynamic::StreamKind::DFlatten; +use value::dynamic::StreamKind::DKeyby; +use value::dynamic::StreamKind::DMap; +use value::dynamic::StreamKind::DMerge; +use value::dynamic::StreamKind::DScan; +use value::dynamic::StreamKind::DSource; +use value::dynamic::StreamKind::DUnkey; +use value::dynamic::StreamKind::DWindow; + +use crate::context::Context; + +pub fn process(ctx: &mut Context, d: Dataflow, ss: Vector) -> Vector { + ss.into_iter().for_each(|s| visit_top_stmt(ctx, s)); + for stream in d.streams { + visit_stream(ctx, stream); + } + for x in d.sinks { + visit_sink(ctx, x); + } + std::mem::take(&mut ctx.stmts) +} + +fn visit_sink(ctx: &mut Context, sink: Sink) { + let (x, w, e) = sink.0.as_ref(); +} + +fn visit_stream(ctx: &mut Context, stream: Stream) { + match stream.kind.as_ref().clone() { + DSource(_, _, a) => match a { + TimeSource::Ingestion { watermark_interval } => {} + TimeSource::Event { + extractor, + watermark_interval, + slack, + } => { + reach_func(ctx, extractor.0); + } + }, + DMap(_, f) => { + reach_func(ctx, f.0); + } + DFilter(_, f) => { + reach_func(ctx, f.0); + } + DFlatten(_) => {} + DFlatMap(_, f) => { + reach_func(ctx, f.0); + } + DScan(_, f) => { + reach_func(ctx, f.0); + } + DKeyby(_, f) => { + reach_func(ctx, f.0); + } + DUnkey(_) => {} + DApply(_, f) => { + reach_func(ctx, f.0); + } + DWindow(a0, a1, a2) => { + todo!() + } + DMerge(_) => {} + } +} + +fn visit_top_stmt(ctx: &mut Context, s: Stmt) { + let info = s.info; + match s.kind { + SDef(m, x, _, ps, t, b) => { + ctx.stack + .bind_expr_decl(x, ExprDecl::Def(info, m, ps, t, b)); + } + SBif(m, x, _, ts, t) => { + ctx.stack.bind_expr_decl(x, ExprDecl::Bif(info, m, ts, t)); + } + SEnum(m, x, _, xts) => { + ctx.stack.bind_type_decl(x, TypeDecl::Enum(info, m, xts)); + } + SBit(m, x, _) => { + ctx.stack.bind_type_decl(x, TypeDecl::Bit(info, m)); + } + SVal(..) | SExpr(..) => { + ctx.diagnostics.push_error(Error::UncompileableCode { + info, + msg: "Top level statements are not allowed", + }); + } + SRecDef(..) => todo!(), + SNoop => {} + } +} + +fn visit_type(ctx: &mut Context, t: Type) { + match t.kind() { + TFun(ts, t) => { + ts.into_iter().for_each(|t| visit_type(ctx, t)); + visit_type(ctx, t); + } + TRecord(t) => { + visit_type(ctx, t); + } + TArray(t, _) => { + visit_type(ctx, t); + } + TNominal(x, _) => match ctx.stack.find_type_decl(&x) { + Some(TypeDecl::Bit(info, m)) => { + if !ctx.reachable.contains(&x) { + ctx.reachable.insert(x.clone()); + ctx.stmts.push_back(SBit(m, x, vector![]).with(info)); + } + } + Some(TypeDecl::Enum(info, m, xts)) => { + if !ctx.reachable.contains(&x) { + ctx.reachable.insert(x.clone()); + xts.clone() + .into_iter() + .for_each(|(x, t)| visit_type(ctx, t)); + ctx.stmts.push_back(SEnum(m, x, vector![], xts).with(info)); + } + } + None => unreachable!("Type should be declared by now {:?}", x), + }, + TRowEmpty => {} + TRowExtend((x, t), r) => { + visit_type(ctx, t); + visit_type(ctx, r); + } + TAlias(_, _, t) => visit_type(ctx, t), + TVar(..) | TGeneric(..) | TRecordConcat(..) | TTuple(..) | TArrayConcat(..) => { + todo!() + } + TUnit => {} + TNever => {} + TError => {} + } +} + +fn visit_pattern(ctx: &mut Context, p: Pattern) { + let t = visit_type(ctx, p.t); +} + +fn visit_expr_stmt(ctx: &mut Context, s: Stmt) { + let e = match s.kind { + SVal(p, e) => { + visit_pattern(ctx, p); + e + } + SExpr(e) => e, + x => unreachable!("{:?}", x), + }; + match e.kind() { + EConst(_) => {} + EFunCall(..) => {} + EFunCallDirect(x, ts, es) => reach_func(ctx, x), + EFunReturn(_) => {} + ELoopBreak(_) => {} + EIfElse(e, b0, b1) => { + visit_block(ctx, b0); + visit_block(ctx, b1); + } + ERecord(_) => {} + ERecordConcat(_, _) => {} + ERecordAccess(_, _) => {} + EDef(x, _) => reach_func(ctx, x), + EVariant(_, _, _, _) => {} + EVariantAccess(_, _, _, _) => {} + EVariantCheck(_, _, _, _) => {} + EArray(_) => todo!(), + EArrayConcat(_, _) => todo!(), + ELoop(_) + | ELoopContinue + | EArrayAccess(_, _) + | EFun(_, _, _) + | EMatch(_, _) + | EMut(_, _) + | EVal(_) + | EVar(_) + | EDo(_) + | ENoop(_) + | ETuple(_) + | ETupleAccess(_, _) + | EFor(_, _, _) + | EWhile(_, _) => { + unreachable!("{:?}", e) + } + EError => unreachable!(), + } +} + +fn visit_block(ctx: &mut Context, b: Block) { + b.ss.into_iter().for_each(|s| visit_expr_stmt(ctx, s)); +} + +fn reach_func(ctx: &mut Context, x: Name) { + match ctx.stack.find_expr_decl(&x) { + Some(ExprDecl::Def(info, m, ps, t, b)) => { + if !ctx.reachable.contains(&x) { + ctx.reachable.insert(x.clone()); + ps.clone().into_iter().for_each(|p| visit_pattern(ctx, p)); + visit_type(ctx, t.clone()); + visit_block(ctx, b.clone()); + ctx.stmts + .push_back(SDef(m, x, vector![], ps, t, b).with(info)); + } + } + Some(ExprDecl::Bif(info, m, ts, t)) => { + if !ctx.reachable.contains(&x) { + ctx.reachable.insert(x.clone()); + ts.clone().into_iter().for_each(|t| visit_type(ctx, t)); + visit_type(ctx, t.clone()); + ctx.stmts.push_back(SBif(m, x, vector![], ts, t).with(info)); + } + } + y => unreachable!("{:?} {:?}", x, y), + } +} + +fn reach_type(ctx: &mut Context, x: Name) { + match ctx.stack.find_type_decl(&x) { + Some(TypeDecl::Bit(info, m)) => { + if !ctx.reachable.contains(&x) { + ctx.reachable.insert(x.clone()); + ctx.stmts.push_back(SBit(m, x, vector![]).with(info)); + } + } + Some(TypeDecl::Enum(info, m, xts)) => { + if !ctx.reachable.contains(&x) { + ctx.reachable.insert(x.clone()); + xts.clone() + .into_iter() + .for_each(|(_, t)| visit_type(ctx, t)); + ctx.stmts.push_back(SEnum(m, x, vector![], xts).with(info)); + } + } + y => unreachable!("{:?} {:?}", x, y), + } +} diff --git a/arc-lang/crates/compiler/passes/hir-to-flink/Cargo.toml b/arc-lang/crates/compiler/passes/hir-to-flink/Cargo.toml new file mode 100644 index 000000000..4295cdbd2 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-to-flink/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "hir-to-flink" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/arc-lang/crates/compiler/passes/hir-to-flink/src/lib.rs b/arc-lang/crates/compiler/passes/hir-to-flink/src/lib.rs new file mode 100644 index 000000000..7d12d9af8 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-to-flink/src/lib.rs @@ -0,0 +1,14 @@ +pub fn add(left: usize, right: usize) -> usize { + left + right +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn it_works() { + let result = add(2, 2); + assert_eq!(result, 4); + } +} diff --git a/arc-lang/crates/compiler/passes/hir-to-mlir/Cargo.toml b/arc-lang/crates/compiler/passes/hir-to-mlir/Cargo.toml new file mode 100644 index 000000000..1ec383118 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-to-mlir/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "hir-to-mlir" +version.workspace = true +edition.workspace = true + +[dependencies] +codegen.workspace = true +hir.workspace = true +mlir.workspace = true +parser.workspace = true +utils.workspace = true +info.workspace = true +diagnostics.workspace = true +im-rc.workspace = true +regex.workspace = true +lazy_static.workspace = true +stack.workspace = true +name-gen.workspace = true +value.workspace = true diff --git a/arc-lang/crates/compiler/passes/hir-to-mlir/src/context.rs b/arc-lang/crates/compiler/passes/hir-to-mlir/src/context.rs new file mode 100644 index 000000000..cfb5ed2c3 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-to-mlir/src/context.rs @@ -0,0 +1,65 @@ +use diagnostics::Diagnostics; +use im_rc::vector; +use im_rc::OrdMap; +use im_rc::Vector; +use info::Info; +use mlir::*; +use name_gen::NameGen; +use stack::Stack; +use std::rc::Rc; + +#[derive(Clone, Debug)] +pub struct Context { + pub(crate) next_expr_name: NameGen, + pub(crate) stack: Stack, + pub diagnostics: Diagnostics, + pub(crate) items: Vector, +} + +#[derive(Clone, Debug)] +pub(crate) enum ScopeKind { + Top, + Block, + While, + Def, +} + +#[derive(Clone, Debug)] +pub(crate) enum ExprDecl { + Def, + Bif(Name, Type), + Var(Type), + Variant(Info, Name), +} + +#[derive(Clone, Debug)] +pub(crate) enum TypeDecl { + Enum(Vector<(Name, Type)>), + Native(Name), + Adt(Name), +} + +impl Default for Context { + fn default() -> Self { + Self { + next_expr_name: NameGen::new("x"), + stack: Stack::new(ScopeKind::Top), + diagnostics: Diagnostics::default(), + items: vector![], + } + } +} + +impl Context { + pub fn new() -> Self { + Self::default() + } + + pub(crate) fn fresh_expr_name(&mut self) -> Name { + self.next_expr_name.fresh() + } + + pub(crate) fn add_item(&mut self, item: Item) { + self.items.push_back(item); + } +} diff --git a/arc-lang/crates/compiler/passes/hir-to-mlir/src/lib.rs b/arc-lang/crates/compiler/passes/hir-to-mlir/src/lib.rs new file mode 100644 index 000000000..fc942f035 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-to-mlir/src/lib.rs @@ -0,0 +1,329 @@ +//! HIR -> MLIR: +//! * Patterns are flattened (pattern compilation) +//! * Functions are flattened (lambda lifting) +//! * Expressions are flattened (ANF) +#![allow(unused)] + +pub mod context; + +use std::io::Read; + +use context::ExprDecl; +use diagnostics::Error; +use im_rc::ordmap; +use im_rc::vector; +use im_rc::OrdMap; +use im_rc::Vector; +use info::Info; +use mlir::*; +use regex::Matches; +use regex::Regex; +use utils::OptionUtils; +use utils::VectorUtils; +use value::dynamic::Dataflow; + +use crate::context::Context; +use crate::context::ScopeKind; +use crate::context::TypeDecl; + +pub fn process(ctx: &mut Context, c: Dataflow, hir: Vector) -> Vector { + hir.into_iter().for_each(|s| lower_top_stmt(ctx, s)); + std::mem::take(&mut ctx.items) +} + +pub fn process_eager(ctx: &mut Context, hir: Vector) -> Vector { + hir.into_iter().for_each(|s| lower_top_stmt(ctx, s)); + std::mem::take(&mut ctx.items) +} + +fn lower_const(ctx: &mut Context, c: hir::Const) -> Const { + match c { + hir::CInt(c) => Const::CInt(c), + hir::CFloat(c) => Const::CFloat(c), + hir::CBool(c) => Const::CBool(c), + hir::CString(c) => Const::CString(c), + hir::CUnit => Const::CUnit, + hir::CChar(c) => Const::CChar(c), + } +} + +fn lower_meta(ctx: &mut Context, m: hir::Meta) -> Meta { + m.into_iter() + .map(|(x, c)| (x, c.map(|c| lower_const(ctx, c)))) + .collect() +} + +fn lower_top_stmt(ctx: &mut Context, s: hir::Stmt) { + let info = s.info; + match s.kind { + hir::SDef(m, x, _, ps, t, b) => { + let m = lower_meta(ctx, m); + ctx.stack.bind_expr_decl(x.clone(), ExprDecl::Def); + ctx.stack.push_scope(ScopeKind::Def); + let vs = ps.mapm(ctx, lower_pattern); + let b = lower_block(ctx, b); + let t = lower_type(ctx, t, info); + ctx.stack.pop_scope(); + ctx.items.push_back(IDef(x, vs, t, b).with(m)); + } + hir::SBif(m, x, _, ts, t) => { + let m = lower_meta(ctx, m); + if m.get("staged").is_some() { + return; + } + let t = lower_type(ctx, t, info); + let vs = ts + .into_iter() + .enumerate() + .map(|(i, t)| { + let x = format!("__{}", i); + let t = lower_type(ctx, t, info); + VName(x).with(t) + }) + .collect(); + if let Some(Some(CString(x1))) = m.get("mlir") { + ctx.stack + .bind_expr_decl(x.clone(), ExprDecl::Bif(x1.clone(), t.clone())); + } else if let Some(Some(CString(x1))) = m.get("rust") { + ctx.stack + .bind_expr_decl(x.clone(), ExprDecl::Bif(x1.clone(), t.clone())); + ctx.items.push_back(IExternDef(x1.clone(), vs, t).with(m)); + } else { + ctx.diagnostics.push_error(Error::UncompileableCode { + info, + msg: "Expected either `mlir` or `rust` attribute", + }); + } + } + hir::SEnum(m, x, _, xts) => { + let xts = xts.mapm(ctx, |ctx, (x, t)| (x, lower_type(ctx, t, info))); + ctx.stack.bind_type_decl(x, TypeDecl::Enum(xts)); + } + hir::SBit(m, x, _) => { + let m = lower_meta(ctx, m); + if m.get("staged").is_some() { + return; + } + if let Some(Some(CString(x1))) = m.get("mlir") { + ctx.stack.bind_type_decl(x, TypeDecl::Native(x1.clone())); + } else if let Some(Some(CString(x1))) = m.get("rust") { + ctx.stack.bind_type_decl(x, TypeDecl::Adt(x1.clone())); + } else { + ctx.diagnostics.push_error(Error::UncompileableCode { + info, + msg: r#"Type must be tagged with "mlir" or "rust""#, + }); + } + } + hir::SVal(..) | hir::SExpr(..) => { + ctx.diagnostics.push_error(Error::UncompileableCode { + info, + msg: "Top level statements are not allowed", + }); + } + hir::SRecDef(..) => todo!(), + hir::SNoop => {} + } +} + +fn lower_row(ctx: &mut Context, t: hir::Type, info: Info, xts: &mut Vector<(Name, Type)>) { + match t.kind.as_ref().clone() { + hir::TRowEmpty => {} + hir::TRowExtend((x, t), r) => { + let t = lower_type(ctx, t, info); + xts.push_back((x, t)); + lower_row(ctx, r, info, xts); + } + _ => unreachable!(), + } +} + +fn lower_type(ctx: &mut Context, t: hir::Type, info: Info) -> Type { + match t.kind() { + hir::TFun(ts, t) => { + let ts = ts.mapm(ctx, |ctx, t| lower_type(ctx, t, info)); + let t = lower_type(ctx, t, info); + TFun(ts, t).into() + } + hir::TRecord(t) => { + let mut xts = Vector::new(); + lower_row(ctx, t, info, &mut xts); + xts.sort_by(|(x0, _), (x1, _)| x0.cmp(x1)); + TRecord(xts).into() + } + hir::TArray(_, _) => todo!(), + hir::TNominal(x, ts) => match ctx.stack.find_type_decl(&x) { + Some(TypeDecl::Native(x1)) => { + let ts = ts.mapm(ctx, |ctx, t| lower_type(ctx, t, info)); + TNative(x1, ts).into() + } + Some(TypeDecl::Adt(x1)) => { + let ts = ts.mapm(ctx, |ctx, t| lower_type(ctx, t, info)); + TAdt(x1, ts).into() + } + Some(TypeDecl::Enum(xts)) => TEnum(xts).into(), + None => unreachable!("Type should be declared by now {:?}", x), + }, + hir::TAlias(_, _, t) => lower_type(ctx, t, info), + hir::TVar(..) + | hir::TGeneric(..) + | hir::TRowEmpty + | hir::TRowExtend(..) + | hir::TRecordConcat(..) + | hir::TTuple(..) + | hir::TArrayConcat(..) => { + ctx.diagnostics.push_error(Error::UncompileableCode { + info, + msg: "Type should be lowered by now", + }); + TError.into() + } + hir::TUnit => TRecord(vector![]).into(), + hir::TNever => TEnum(vector![]).into(), + hir::TError => TError.into(), + } +} + +fn lower_pattern(ctx: &mut Context, p: hir::Pattern) -> Val { + let t = lower_type(ctx, p.t, p.info); + if let hir::PVal(x) = p.kind.as_ref().clone() { + VName(x).with(t) + } else { + ctx.diagnostics.push_error(Error::UncompileableCode { + info: p.info, + msg: "Pattern not compiled", + }); + VError.with(t) + } +} + +fn lower_expr_val(ctx: &mut Context, e: hir::Expr) -> Val { + let t = lower_type(ctx, e.t, e.info); + if let hir::ExprKind::EVal(x) = e.kind.as_ref().clone() { + VName(x).with(t) + } else { + ctx.diagnostics.push_error(Error::UncompileableCode { + info: e.info, + msg: "Code not in ANF", + }); + VError.with(t) + } +} + +fn lower_expr_stmt(ctx: &mut Context, s: hir::Stmt) -> Stmt { + let (v, e) = match s.kind { + hir::SVal(p, e) => { + let v = lower_pattern(ctx, p); + (vector![v], e) + } + hir::SExpr(e) => (vector![], e), + e => unreachable!("{:?}", e), + }; + match e.kind() { + hir::EConst(c) => { + let c = lower_const(ctx, c); + SConst(c).with(v) + } + hir::EFunCall(e, es) => { + let v1 = lower_expr_val(ctx, e); + let vs = es.mapm(ctx, lower_expr_val); + SFunCallIndirect(v1, vs).with(v) + } + hir::EFunCallDirect(x, ts, es) => match ctx.stack.find_expr_decl(&x) { + Some(ExprDecl::Bif(x1, _)) => { + let es = es.mapm(ctx, lower_expr_val); + SFunCallDirect(x1, es).with(v) + } + Some(ExprDecl::Def) => { + let es = es.mapm(ctx, lower_expr_val); + SFunCallDirect(x, es).with(v) + } + y => unreachable!("{:?} {:?}", x, y), + }, + hir::EFunReturn(e) => { + let v1 = lower_expr_val(ctx, e); + SFunReturn(v1).with(v) + } + hir::ELoopBreak(e) => { + let v1 = lower_expr_val(ctx, e); + SWhileBreak(vector![v1]).with(v) + } + hir::EIfElse(e, b0, b1) => { + let v1 = lower_expr_val(ctx, e); + let b0 = lower_block(ctx, b0); + let b1 = lower_block(ctx, b1); + SIfElse(v1, b0, b1).with(v) + } + hir::ERecord(xes) => { + let xes = xes.mapm(ctx, |ctx, (x, e)| { + let v = lower_expr_val(ctx, e); + (x, v) + }); + SRecord(xes).with(v) + } + hir::ERecordConcat(_, _) => todo!(), + hir::ERecordAccess(e, x) => { + let v1 = lower_expr_val(ctx, e); + SRecordAccess(v1, x).with(v) + } + hir::EDef(x, ts) => match ctx.stack.find_expr_decl(&x) { + Some(ExprDecl::Bif(x1, _)) => { + let ts = ts.mapm(ctx, |ctx, t| lower_type(ctx, t, s.info)); + SFun(x1).with(v) + } + Some(ExprDecl::Def) => { + let ts = ts.mapm(ctx, |ctx, t| lower_type(ctx, t, s.info)); + SFun(x).with(v) + } + _ => unreachable!(), + }, + hir::EVariant(_, _, x, e) => { + let v1 = lower_expr_val(ctx, e); + SVariant(x, v1).with(v) + } + hir::EVariantAccess(_, _, x, e) => { + let v1 = lower_expr_val(ctx, e); + SVariantAccess(x, v1).with(v) + } + hir::EVariantCheck(_, _, x, e) => { + let v1 = lower_expr_val(ctx, e); + SVariantCheck(x, v1).with(v) + } + hir::EArray(_) => todo!(), + hir::EArrayConcat(_, _) => todo!(), + hir::ELoop(_) + | hir::ELoopContinue + | hir::EArrayAccess(_, _) + | hir::EFun(_, _, _) + | hir::EMatch(_, _) + | hir::EMut(_, _) + | hir::EVal(_) + | hir::EVar(_) + | hir::EDo(_) + | hir::ENoop(_) + | hir::ETuple(_) + | hir::ETupleAccess(_, _) + | hir::EFor(_, _, _) + | hir::EWhile(_, _) => { + ctx.diagnostics.push_error(Error::UncompileableCode { + info: e.info, + msg: "Complex expression", + }); + SError.with(v) + } + hir::EError => SError.with(v), + } +} + +fn lower_block(ctx: &mut Context, b: hir::Block) -> Block { + ctx.stack.push_scope(ScopeKind::Block); + let mut ss = b.ss.mapm(ctx, lower_expr_stmt); + let v = lower_expr_val(ctx, b.e); + ctx.stack.pop_scope(); + match ctx.stack.iter().next().unwrap().kind { + ScopeKind::Def => ss.push_back(SFunReturn(v).with([])), + ScopeKind::While => ss.push_back(SWhileYield(vector![v]).with([])), + _ => ss.push_back(SBlockResult(v).with([])), + } + Block::new(ss) +} diff --git a/arc-lang/crates/compiler/passes/hir-to-rust/Cargo.toml b/arc-lang/crates/compiler/passes/hir-to-rust/Cargo.toml new file mode 100644 index 000000000..404006411 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-to-rust/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "hir-to-rust" +version.workspace = true +edition.workspace = true + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +hir.workspace = true +rust.workspace = true +diagnostics.workspace = true +im-rc.workspace = true +info.workspace = true +name-gen.workspace = true +stack.workspace = true +utils.workspace = true diff --git a/arc-lang/crates/compiler/passes/hir-to-rust/src/context.rs b/arc-lang/crates/compiler/passes/hir-to-rust/src/context.rs new file mode 100644 index 000000000..7e292d9cd --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-to-rust/src/context.rs @@ -0,0 +1,67 @@ +use diagnostics::Diagnostics; +use im_rc::vector; +use im_rc::HashMap; +use im_rc::OrdMap; +use im_rc::Vector; +use info::Info; +use name_gen::NameGen; +use rust::*; +use stack::Stack; +use std::rc::Rc; + +#[derive(Clone, Debug)] +pub struct Context { + pub(crate) next_struct_name: NameGen, + pub(crate) stack: Stack, + pub diagnostics: Diagnostics, + pub(crate) items: Vector, + pub(crate) structs: HashMap, Name>, +} + +#[derive(Clone, Debug)] +pub(crate) enum ScopeKind { + Top, + Block, + While, + Def, +} + +#[derive(Clone, Debug)] +pub(crate) enum ExprDecl { + Def, + Bif(Name, Type), + Var(Type), + Variant(Info, Name), +} + +#[derive(Clone, Debug)] +pub(crate) enum TypeDecl { + Enum(Vector<(Name, Type)>), + Adt(Name), +} + +impl Default for Context { + fn default() -> Self { + Self { + next_struct_name: NameGen::new("S"), + stack: Stack::new(ScopeKind::Top), + diagnostics: Diagnostics::default(), + items: vector![], + structs: HashMap::new(), + } + } +} + +impl Context { + pub fn new() -> Self { + Self::default() + } + + pub(crate) fn fresh_struct_name(&mut self) -> Name { + self.next_struct_name.fresh() + } + + pub(crate) fn add_item(&mut self, item: Item) { + self.items.push_back(item); + } +} diff --git a/arc-lang/crates/compiler/passes/hir-to-rust/src/lib.rs b/arc-lang/crates/compiler/passes/hir-to-rust/src/lib.rs new file mode 100644 index 000000000..5ab4570a4 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-to-rust/src/lib.rs @@ -0,0 +1,294 @@ +//! HIR -> Rust: +//! * Replace rows with structs +#![allow(unused)] + +pub mod context; + +use std::io::Read; + +use context::ExprDecl; +use diagnostics::Error; +use im_rc::ordmap; +use im_rc::vector; +use im_rc::OrdMap; +use im_rc::Vector; +use info::Info; +use rust::*; +use utils::OptionUtils; +use utils::VectorUtils; + +use crate::context::Context; +use crate::context::ScopeKind; +use crate::context::TypeDecl; + +pub fn process(ctx: &mut Context, ss: Vector) -> Vector { + ss.into_iter().for_each(|s| lower_top_stmt(ctx, s)); + std::mem::take(&mut ctx.items) +} + +pub fn process_eager(ctx: &mut Context, ss: Vector) -> Vector { + ss.into_iter().for_each(|s| lower_top_stmt(ctx, s)); + std::mem::take(&mut ctx.items) +} + +fn lower_const(ctx: &mut Context, c: hir::Const) -> Const { + match c { + hir::CInt(c) => Const::CInt(c), + hir::CFloat(c) => Const::CFloat(c), + hir::CBool(c) => Const::CBool(c), + hir::CString(c) => Const::CString(c), + hir::CUnit => Const::CUnit, + hir::CChar(c) => Const::CChar(c), + } +} + +fn lower_meta(ctx: &mut Context, m: hir::Meta) -> Meta { + m.into_iter() + .map(|(x, c)| (x, c.map(|c| lower_const(ctx, c)))) + .collect() +} + +fn lower_top_stmt(ctx: &mut Context, s: hir::Stmt) { + let info = s.info; + match s.kind { + hir::SDef(m, x, _, ps, t, b) => { + let m = lower_meta(ctx, m); + ctx.stack.push_scope(ScopeKind::Def); + let vs = ps.mapm(ctx, lower_pattern); + let b = lower_block(ctx, b); + let t = lower_type(ctx, t, info); + ctx.stack.pop_scope(); + ctx.items.push_back(IDef(m, x, vs, t, b).with(info)); + } + hir::SBif(m, x, _, ts, t) => { + let m = lower_meta(ctx, m); + let t = lower_type(ctx, t, info); + if let Some(Some(CString(x1))) = m.get("rust") { + ctx.stack + .bind_expr_decl(x.clone(), ExprDecl::Bif(x1.clone(), t.clone())); + } else { + ctx.diagnostics.push_error(Error::UncompileableCode { + info, + msg: "Expected `rust` attribute", + }); + } + } + hir::SEnum(m, x, _, xts) => { + let xts = xts.mapm(ctx, |ctx, (x, t)| (x, lower_type(ctx, t, info))); + ctx.stack.bind_type_decl(x, TypeDecl::Enum(xts)); + } + hir::SBit(m, x, _) => { + let m = lower_meta(ctx, m); + if let Some(Some(CString(x1))) = m.get("rust") { + ctx.stack.bind_type_decl(x, TypeDecl::Adt(x1.clone())); + } else { + ctx.diagnostics.push_error(Error::UncompileableCode { + info, + msg: r#"Type must be tagged with "rust""#, + }); + } + } + hir::SVal(..) | hir::SExpr(..) => { + ctx.diagnostics.push_error(Error::UncompileableCode { + info, + msg: "Top level statements are not allowed", + }); + } + hir::SRecDef(..) => todo!(), + hir::SNoop => {} + } +} + +fn lower_type(ctx: &mut Context, t: hir::Type, info: Info) -> Type { + match t.kind() { + hir::TFun(ts, t) => { + let ts = ts.mapm(ctx, |ctx, t| lower_type(ctx, t, info)); + let t = lower_type(ctx, t, info); + TFun(ts, t).into() + } + hir::TRecord(t) => { + let mut xts = hir::row_to_fields(t).map(|(x, t)| (x, lower_type(ctx, t, info))); + xts.sort_by(|(x0, _), (x1, _)| x0.cmp(x1)); + if let Some(x) = ctx.structs.get(&xts) { + TNominal(x.clone(), vector![]).into() + } else { + let x = ctx.fresh_struct_name(); + ctx.structs.insert(xts.clone(), x.clone()); + ctx.add_item(IStruct(x.clone(), xts.clone()).with(info)); + TNominal(x, vector![]).into() + } + } + hir::TArray(_, _) => todo!(), + hir::TNominal(x, ts) => match ctx.stack.find_type_decl(&x) { + Some(TypeDecl::Adt(x1)) => { + let ts = ts.mapm(ctx, |ctx, t| lower_type(ctx, t, info)); + TNominal(x1, ts).into() + } + Some(TypeDecl::Enum(xts)) => TNominal(x, vector![]).into(), + None => unreachable!("Type should be declared by now {:?}", x), + }, + hir::TAlias(_, _, t) => lower_type(ctx, t, info), + hir::TVar(..) + | hir::TGeneric(..) + | hir::TRowEmpty + | hir::TRowExtend(..) + | hir::TRecordConcat(..) + | hir::TTuple(..) + | hir::TArrayConcat(..) => { + ctx.diagnostics.push_error(Error::UncompileableCode { + info, + msg: "Type should be lowered by now", + }); + TError.into() + } + hir::TUnit => TNominal("()".to_string(), vector![]).into(), + hir::TNever => TNominal("!".to_string(), vector![]).into(), + hir::TError => TError.into(), + } +} + +fn lower_pattern(ctx: &mut Context, p: hir::Pattern) -> Val { + let t = lower_type(ctx, p.t, p.info); + if let hir::PVal(x) = p.kind.as_ref().clone() { + VName(x).with(t) + } else { + ctx.diagnostics.push_error(Error::UncompileableCode { + info: p.info, + msg: "Pattern not compiled", + }); + VError.with(t) + } +} + +fn lower_expr_val(ctx: &mut Context, e: hir::Expr) -> Val { + let t = lower_type(ctx, e.t, e.info); + if let hir::ExprKind::EVal(x) = e.kind.as_ref().clone() { + VName(x).with(t) + } else { + ctx.diagnostics.push_error(Error::UncompileableCode { + info: e.info, + msg: "Code not in ANF", + }); + VError.with(t) + } +} + +fn lower_expr_stmt(ctx: &mut Context, s: hir::Stmt) -> Stmt { + let (v, e) = match s.kind { + hir::SVal(p, e) => { + let v = lower_pattern(ctx, p); + (vector![v], e) + } + hir::SExpr(e) => (vector![], e), + x => unreachable!("{:?}", x), + }; + match e.kind() { + hir::EConst(c) => { + let c = lower_const(ctx, c); + SConst(c).with(v) + } + hir::EFunCall(e, es) => { + let v1 = lower_expr_val(ctx, e); + let vs = es.mapm(ctx, lower_expr_val); + SFunCallIndirect(v1, vs).with(v) + } + hir::EFunCallDirect(x, ts, es) => match ctx.stack.find_expr_decl(&x) { + Some(ExprDecl::Bif(x1, _)) => { + let es = es.mapm(ctx, lower_expr_val); + SFunCallDirect(x1, es).with(v) + } + Some(ExprDecl::Def) => { + let es = es.mapm(ctx, lower_expr_val); + SFunCallDirect(x, es).with(v) + } + y => unreachable!("{:?} {:?}", x, y), + }, + hir::EFunReturn(e) => { + let v1 = lower_expr_val(ctx, e); + SFunReturn(v1).with(v) + } + hir::ELoopBreak(e) => { + let v1 = lower_expr_val(ctx, e); + SWhileBreak(vector![v1]).with(v) + } + hir::EIfElse(e, b0, b1) => { + let v1 = lower_expr_val(ctx, e); + let b0 = lower_block(ctx, b0); + let b1 = lower_block(ctx, b1); + SIfElse(v1, b0, b1).with(v) + } + hir::ERecord(xes) => { + let xes = xes.mapm(ctx, |ctx, (x, e)| { + let v = lower_expr_val(ctx, e); + (x, v) + }); + let xts = xes.clone().map(|(x, v)| (x, v.t)); + let x = ctx.structs.get(&xts).unwrap(); + SStruct(x.clone(), xes).with(v) + } + hir::ERecordConcat(_, _) => todo!(), + hir::ERecordAccess(e, x) => { + let v1 = lower_expr_val(ctx, e); + SStructAccess(v1, x).with(v) + } + hir::EDef(x, ts) => match ctx.stack.find_expr_decl(&x) { + Some(ExprDecl::Bif(x1, _)) => { + let ts = ts.mapm(ctx, |ctx, t| lower_type(ctx, t, s.info)); + SFun(x1).with(v) + } + Some(ExprDecl::Def) => { + let ts = ts.mapm(ctx, |ctx, t| lower_type(ctx, t, s.info)); + SFun(x).with(v) + } + y => unreachable!("{:?} {:?}", x, y), + }, + hir::EVariant(_, _, x, e) => { + let v1 = lower_expr_val(ctx, e); + SVariant(x, v1).with(v) + } + hir::EVariantAccess(_, _, x, e) => { + let v1 = lower_expr_val(ctx, e); + SVariantAccess(x, v1).with(v) + } + hir::EVariantCheck(_, _, x, e) => { + let v1 = lower_expr_val(ctx, e); + SVariantCheck(x, v1).with(v) + } + hir::EArray(_) => todo!(), + hir::EArrayConcat(_, _) => todo!(), + hir::ELoop(_) + | hir::ELoopContinue + | hir::EArrayAccess(_, _) + | hir::EFun(_, _, _) + | hir::EMatch(_, _) + | hir::EMut(_, _) + | hir::EVal(_) + | hir::EVar(_) + | hir::EDo(_) + | hir::ENoop(_) + | hir::ETuple(_) + | hir::ETupleAccess(_, _) + | hir::EFor(_, _, _) + | hir::EWhile(_, _) => { + ctx.diagnostics.push_error(Error::UncompileableCode { + info: e.info, + msg: "Complex expression", + }); + SError.with(v) + } + hir::EError => SError.with(v), + } +} + +fn lower_block(ctx: &mut Context, b: hir::Block) -> Block { + ctx.stack.push_scope(ScopeKind::Block); + let mut ss = b.ss.mapm(ctx, lower_expr_stmt); + let v = lower_expr_val(ctx, b.e); + ctx.stack.pop_scope(); + match ctx.stack.iter().next().unwrap().kind { + ScopeKind::Def => ss.push_back(SFunReturn(v).with([])), + ScopeKind::While => ss.push_back(SWhileYield(vector![v]).with([])), + _ => ss.push_back(SBlockResult(v).with([])), + } + Block::new(ss) +} diff --git a/arc-lang/crates/compiler/passes/hir-type-inference/Cargo.toml b/arc-lang/crates/compiler/passes/hir-type-inference/Cargo.toml new file mode 100644 index 000000000..f35130378 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-type-inference/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "hir-type-inference" +version.workspace = true +edition.workspace = true + +[dependencies] +im-rc.workspace = true +hir.workspace = true +write-hir.workspace = true +utils.workspace = true +codegen.workspace = true +info.workspace = true +diagnostics.workspace = true +name-gen.workspace = true +stack.workspace = true +tracing.workspace = true diff --git a/arc-lang/crates/compiler/passes/hir-type-inference/src/context.rs b/arc-lang/crates/compiler/passes/hir-type-inference/src/context.rs new file mode 100644 index 000000000..656112af9 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-type-inference/src/context.rs @@ -0,0 +1,110 @@ +use diagnostics::Diagnostics; +use hir::*; +use im_rc::vector; +use im_rc::OrdMap; +use im_rc::Vector; +use info::Info; +use name_gen::NameGen; +use stack::Stack; + +#[derive(Clone, Debug)] +pub struct Context { + pub(crate) stack: Stack, + next_type_uid: NameGen, + next_row_uid: NameGen, + subst: Vector<(Name, Type)>, + pub diagnostics: Diagnostics, +} + +#[derive(Clone, Debug)] +pub(crate) enum ScopeKind { + Top, + Block, + While, + For, + Loop(Type), + Def(Type), + Fun(Type), + Enum, + Type, + Arm, +} + +#[derive(Clone, Debug)] +pub(crate) enum ExprDecl { + Def(Info, Type, Vector, Vector), + Var(Info, Type), + Val(Info, Type), + Variant(Info, Name, usize), +} + +#[derive(Clone, Debug)] +pub(crate) enum TypeDecl { + Enum(Info, Vector, Vector<(Name, Type)>), + Bit(Info, Vector), + Generic(Info), +} + +impl Default for Context { + fn default() -> Self { + Self { + stack: Stack::new(ScopeKind::Top), + subst: vector![], + next_type_uid: NameGen::new("u"), + next_row_uid: NameGen::new("r"), + diagnostics: Diagnostics::default(), + } + } +} + +impl Context { + pub fn new() -> Context { + Self::default() + } + + pub(crate) fn return_type(&self) -> Type { + self.stack + .iter() + .find_map(|scope| match &scope.kind { + ScopeKind::Fun(ty) => Some(ty), + _ => None, + }) + .cloned() + .unwrap() + } + + pub(crate) fn break_type(&self) -> Type { + self.stack + .iter() + .find_map(|scope| match &scope.kind { + ScopeKind::Loop(ty) => Some(ty), + _ => None, + }) + .cloned() + .unwrap() + } + + pub(crate) fn fresh_t(&mut self) -> Type { + TVar(self.next_type_uid.fresh()).into() + } + + pub(crate) fn fresh_ts(&mut self, n: i32) -> Vector { + (0..n).into_iter().fold(vector![], |mut tys, _| { + let ty = self.fresh_t(); + tys.push_back(ty); + tys + }) + } + + pub(crate) fn fresh_r(&mut self) -> Type { + TVar(self.next_row_uid.fresh()).into() + } + + pub(crate) fn get_subst(&self) -> Vector<(Name, Type)> { + self.subst.clone() + } + + pub(crate) fn set_subst(&mut self, subst: Vector<(Name, Type)>) { + self.subst = subst; + } +} diff --git a/arc-lang/crates/compiler/passes/hir-type-inference/src/lib.rs b/arc-lang/crates/compiler/passes/hir-type-inference/src/lib.rs new file mode 100644 index 000000000..0f33e3e80 --- /dev/null +++ b/arc-lang/crates/compiler/passes/hir-type-inference/src/lib.rs @@ -0,0 +1,821 @@ +#![allow(unused)] +pub mod context; + +use diagnostics::Error; +use hir::*; +use im_rc::vector; +use im_rc::OrdMap; +use im_rc::OrdSet; +use im_rc::Vector; +use info::Info; +use utils::AssocVectorUtils; +use utils::OptionUtils; +use utils::VectorUtils; + +use crate::context::*; + +pub fn process(ctx: &mut Context, ss: Vector) -> Vector { + let ss = ss.mapm(ctx, infer_stmt); + let f = &|t| apply(ctx.get_subst(), t); + ss.map(|s| s.map_type(&f)) +} + +fn infer_block(ctx: &mut Context, b: Block) -> Block { + ctx.stack.push_scope(ScopeKind::Block); + let ss = b.ss.mapm(ctx, infer_stmt); + let e = infer_expr(ctx, b.e); + ctx.stack.pop_scope(); + Block::new(ss, e, b.info) +} + +fn infer_stmt(ctx: &mut Context, s: Stmt) -> Stmt { + let info = s.info; + match s.clone().kind { + SVal(p, e) => { + let p = infer_pattern(ctx, p); + let e = infer_expr(ctx, e); + unify(ctx, p.t.clone(), e.t.clone(), info); + SVal(p, e).with(info) + } + SExpr(e) => { + let e = infer_expr(ctx, e); + SExpr(e).with(info) + } + SBif(m, x, gs, ts, t) => { + ctx.stack.bind_expr_decl( + x.clone(), + ExprDecl::Def( + info, + TFun(ts.clone(), t.clone()).into(), + gs.clone(), + vector![], + ), + ); + SBif(m, x, gs, ts, t).with(info) + } + SDef(m, x, gs0, ps, t, b) => { + ctx.stack.push_scope(ScopeKind::Def(t.clone())); + + let t_fun: Type = TFun(ps.clone().map(|p| p.t), t.clone()).into(); + + ctx.stack.bind_expr_decl( + x.clone(), + ExprDecl::Def(info, t_fun.clone(), gs0.clone(), vector![]), + ); + + let ps = ps.mapm(ctx, infer_pattern); + let b = infer_block(ctx, b); + unify(ctx, t.clone(), b.e.t.clone(), info); + ctx.stack.pop_scope(); + + // Apply MGU to all types in the function + // * Consider if this could be changed so that we only apply the MGU to the function type + let f = &|t| apply(ctx.get_subst(), t); + let ps = ps.map(|p| p.map_type(f)); + let t = f(t); + let b = b.map_type(f); + let t_fun: Type = TFun(ps.clone().map(|p| p.t), t.clone()).into(); + + // Generalise all types in the function + // Create a subsitution from free type variables to generics + // * We could treat generics and free type variables the same, which would mean we + // could get rid of this step. + let ftv = ftv(t_fun.clone()).into_iter().collect::>(); + let gs1 = (0..ftv.len()) + .into_iter() + .map(|i| format!("G{i}")) + .collect::>(); + let s = ftv + .into_iter() + .zip(gs1.clone()) + .map(|(tv, g)| (tv, TGeneric(g).into())) + .collect::>(); + + let f = &|t| generalise(s.clone(), t); + let ps = ps.map(|p| p.map_type(f)); + let t = f(t); + let b = b.map_type(f); + let t_fun: Type = TFun(ps.clone().map(|p| p.t), t.clone()).into(); + + ctx.stack.bind_expr_decl( + x.clone(), + ExprDecl::Def(info, t_fun.clone(), gs0.clone(), gs1.clone()), + ); + SDef(m, x, gs0.concat(gs1), ps, t, b).with(info) + } + SEnum(m, x, gs, xts) => SEnum(m, x, gs, xts).with(info), + SBit(m, x, gs) => SBit(m, x, gs).with(info), + SNoop => SNoop.with(info), + SRecDef(_, _) => todo!(), + } +} + +fn ts_of_es(es: Vector) -> Vector { + es.into_iter().map(|e| e.t).collect() +} + +fn infer_expr(ctx: &mut Context, e: Expr) -> Expr { + let info = e.info; + let t = e.t.clone(); + match (*e.kind).clone() { + EConst(l) => { + unify(ctx, const_type(&l), t.clone(), info); + EConst(l).with(t, info) + } + EFun(ps, t1, b) => { + let ps = ps.mapm(ctx, infer_pattern); + let b = infer_block(ctx, b); + unify(ctx, t.clone(), b.e.t.clone(), info); + EFun(ps, t1, b).with(t, info) + } + EFunCall(e, es) => { + let e = infer_expr(ctx, e); + let es = es.mapm(ctx, infer_expr); + let t_fun = TFun(ts_of_es(es.clone()), t.clone()).into(); + unify(ctx, e.t.clone(), t_fun, info); + EFunCall(e, es).with(t, info) + } + EDef(x, ts0) => { + let (t1, ts) = infer_def(ctx, x.clone(), ts0); + unify(ctx, t.clone(), t1, info); + EDef(x, ts).with(t, info) + } + EFunCallDirect(x, ts0, es) => { + let (t1, ts1) = infer_def(ctx, x.clone(), ts0); + let es = es.mapm(ctx, infer_expr); + let t_fun = TFun(ts_of_es(es.clone()), t.clone()).into(); + unify(ctx, t1, t_fun, info); + EFunCallDirect(x, ts1, es).with(t, info) + } + ELoop(b) => { + let b = infer_block(ctx, b); + ELoop(b).with(t, info) + } + ELoopBreak(e) => { + let e = infer_expr(ctx, e); + unify(ctx, ctx.break_type(), e.t.clone(), info); + ELoopBreak(e).with(t, info) + } + ELoopContinue => ELoopContinue.with(t, info), + EMatch(e, arms) => { + let e = infer_expr(ctx, e); + let arms = arms.mapm(ctx, |ctx, (p, b)| { + let p = infer_pattern(ctx, p); + unify(ctx, e.t.clone(), p.t.clone(), info); + let b = infer_block(ctx, b); + unify(ctx, t.clone(), b.e.t.clone(), info); + (p, b) + }); + EMatch(e, arms).with(t, info) + } + ERecord(xes) => { + let xes = xes.mapm_assoc(ctx, infer_expr); + let xts = xes.clone().map(|(x, e)| (x, e.t)); + unify( + ctx, + t.clone(), + TRecord(fields_to_rows(xts, TRowEmpty.into())).into(), + info, + ); + ERecord(xes).with(t, info) + } + ERecordAccess(e, x) => { + let e = infer_expr(ctx, e); + let r = ctx.fresh_r(); + let t1 = TRecord(TRowExtend((x.clone(), t.clone()), r).into()).into(); + unify(ctx, t1, e.t.clone(), info); + ERecordAccess(e, x).with(t, info) + } + ERecordConcat(e0, e1) => { + let e0 = infer_expr(ctx, e0); + let e1 = infer_expr(ctx, e1); + let r0 = ctx.fresh_r(); + let r1 = ctx.fresh_r(); + unify(ctx, TRecord(r0.clone()).into(), e0.t.clone(), info); + unify(ctx, TRecord(r1.clone()).into(), e1.t.clone(), info); + unify(ctx, TRecordConcat(r0, r1).into(), t.clone(), info); + ERecordConcat(e0, e1).with(t, info) + } + EFunReturn(e) => { + let e = infer_expr(ctx, e); + unify(ctx, ctx.return_type(), e.t.clone(), info); + EFunReturn(e).with(t, info) + } + EVariant(x0, ts, x1, e) => { + let e = infer_expr(ctx, e); + let t1 = match ctx.stack.find_type_decl(&x0) { + Some(TypeDecl::Enum(_, gs, xts)) => { + let s = gs.zip(&ts); + let t = xts.find_assoc(&x1).unwrap().clone(); + apply(s, t) + } + _ => unreachable!(), + }; + unify( + ctx, + t.clone(), + TNominal(x0.clone(), ts.clone()).into(), + info, + ); + unify(ctx, t1.clone(), e.t.clone(), info); + EVariant(x0, ts, x1, e).with(t, info) + } + EIfElse(e, b0, b1) => { + let e = infer_expr(ctx, e); + unify(ctx, e.t.clone(), atom("Bool"), info); + let b0 = infer_block(ctx, b0); + let b1 = infer_block(ctx, b1); + unify(ctx, b0.e.t.clone(), b1.e.t.clone(), info); + unify(ctx, t.clone(), b0.e.t.clone(), info); + EIfElse(e, b0, b1).with(t, info) + } + ENoop(e) => { + let e = infer_expr(ctx, e); + unify(ctx, t.clone(), e.t.clone(), info); + ENoop(e).with(t, info) + } + // TODO: Array concatenation + EArray(es) => { + let t1 = ctx.fresh_t(); + let es = es.mapm(ctx, |ctx, e2| { + unify(ctx, e2.t.clone(), t1.clone(), info); + infer_expr(ctx, e2) + }); + // let e = infer_expr(ctx, e); + unify( + ctx, + t.clone(), + TArray(t1.clone(), Some(es.len() as i32)).into(), + info, + ); + EArray(es).with(t, info) + } + // TODO: Array size as a type variable + EArrayAccess(e0, e1) => { + let e0 = infer_expr(ctx, e0); + let e1 = infer_expr(ctx, e1); + let t = ctx.fresh_t(); + unify(ctx, e0.t.clone(), TArray(t.clone(), None).into(), info); + unify(ctx, e1.t.clone(), atom("i32"), info); + EArrayAccess(e0, e1).with(t, info) + } + EArrayConcat(e0, e1) => { + todo!() + // let e0 = infer_expr(ctx, e0); + // let e1 = infer_expr(ctx, e1); + // let t = ctx.fresh_t(); + // unify(ctx, e0.t.clone(), TArray(t.clone(), None).into(), info); + // unify(ctx, e1.t.clone(), TArray(t.clone(), None).into(), info); + // EArrayConcat(e0, e1).with(t, info) + } + EMut(e0, e1) => { + let e0 = infer_expr(ctx, e0); + let e1 = infer_expr(ctx, e1); + unify(ctx, e0.t.clone(), e1.t.clone(), info); + EMut(e0, e1).with(t, info) + } + EVal(x) => { + if let Some(ExprDecl::Val(info, t1)) = ctx.stack.find_expr_decl(&x) { + unify(ctx, t.clone(), t1, info); + EVal(x).with(t, info) + } else { + unreachable!() + } + } + EVar(x) => { + if let Some(ExprDecl::Var(info, t1)) = ctx.stack.find_expr_decl(&x) { + unify(ctx, t.clone(), t1, info); + EVar(x).with(t, info) + } else { + unreachable!() + } + } + EDo(b) => { + let b = infer_block(ctx, b); + unify(ctx, t.clone(), b.e.t.clone(), info); + EDo(b).with(t, info) + } + ETuple(es) => { + let es = es.mapm(ctx, infer_expr); + let ts = es.clone().map(|e| e.t.clone()); + unify(ctx, t.clone(), TTuple(ts, true).into(), info); + ETuple(es).with(t, info) + } + ETupleAccess(e, i) => { + let e = infer_expr(ctx, e); + let ts = ctx.fresh_ts(i + 1); + unify(ctx, e.t.clone(), TTuple(ts.clone(), false).into(), info); + unify(ctx, t.clone(), ts[i as usize].clone(), info); + ETupleAccess(e, i).with(t, info) + } + EFor(_, _, _) => todo!(), + EWhile(e, b) => { + let e = infer_expr(ctx, e); + let b = infer_block(ctx, b); + unify(ctx, e.t.clone(), atom("Bool"), info); + unify(ctx, b.e.t.clone(), TUnit.into(), info); + EWhile(e, b).with(t, info) + } + EError => EError.with(t, info), + EVariantAccess(..) | EVariantCheck(..) => { + unreachable!("Should not occur until after flattening") + } + } +} + +fn infer_def(ctx: &mut Context, x: Name, ts0: Vector) -> (Type, Vector) { + if let Some(ExprDecl::Def(info, t_fun, gs0, gs1)) = ctx.stack.find_expr_decl(&x) { + let s0 = gs0.zip(&ts0); + let s1 = gs1.mapm(ctx, |ctx, x| (x, ctx.fresh_t())); + let ts1 = s1.clone().map(|(_, t)| t); + let t_fun = instantiate(compose(s0, s1), t_fun); + (t_fun, ts0.concat(ts1)) + } else { + unreachable!() + } +} + +fn infer_pattern(ctx: &mut Context, p: Pattern) -> Pattern { + let t = p.t.clone(); + let info = p.info; + match p.kind() { + PIgnore => PIgnore.with(t, info), + POr(p0, p1) => { + let p0 = infer_pattern(ctx, p0); + let p1 = infer_pattern(ctx, p1); + unify(ctx, p0.t.clone(), p1.t.clone(), info); + POr(p0, p1).with(t, info) + } + PNoop(p) => { + let p = infer_pattern(ctx, p); + unify(ctx, t.clone(), p.t.clone(), info); + PNoop(p).with(t, info) + } + PRecord(xps) => { + let xps = xps.mapm(ctx, |ctx, (x, p)| (x, infer_pattern(ctx, p))); + let xts = xps.clone().map(|(x, p)| (x, p.t)); + unify( + ctx, + t.clone(), + TRecord(fields_to_rows(xts, TRowEmpty.into())).into(), + info, + ); + PRecord(xps).with(t, info) + } + PRecordConcat(p0, p1) => { + todo!() + // let p0 = infer_pattern(ctx, p0); + // let p1 = infer_pattern(ctx, p1); + // unify(ctx, p0.t.clone(), p1.t.clone(), info); + // unify(ctx, t.clone(), p0.t.clone(), info); + // PRecordConcat(p0, p1).with(t, info) + } + PArray(ps) => { + let t1 = ctx.fresh_t(); + let ps = ps.mapm(ctx, |ctx, p| { + unify(ctx, p.t.clone(), t1.clone(), info); + infer_pattern(ctx, p) + }); + // let e = infer_expr(ctx, e); + unify( + ctx, + t.clone(), + TArray(t1.clone(), Some(ps.len() as i32)).into(), + info, + ); + PArray(ps).with(t, info) + } + PArrayConcat(p0, p1) => { + todo!() + // let p0 = infer_pattern(ctx, p0); + // let p1 = infer_pattern(ctx, p1); + // unify(ctx, p0.t.clone(), p1.t.clone(), info); + // unify(ctx, t.clone(), p0.t.clone(), info); + // PArrayConcat(p0, p1).with(t, info) + } + PConst(c) => { + let t = const_type(&c); + unify(ctx, t.clone(), p.t.clone(), info); + PConst(c).with(t, info) + } + PVar(x) => { + ctx.stack + .bind_expr_decl(x.clone(), ExprDecl::Var(info, t.clone())); + PVar(x).with(t, info) + } + PVal(x) => { + ctx.stack + .bind_expr_decl(x.clone(), ExprDecl::Val(info, t.clone())); + PVal(x).with(t, info) + } + PVariant(x0, ts, x1, p) => { + let p = infer_pattern(ctx, p); + let t1 = match ctx.stack.find_type_decl(&x0) { + Some(TypeDecl::Enum(_, gs, xts)) => { + let s = gs.zip(&ts); + let t = xts.find_assoc(&x1).unwrap().clone(); + apply(s, t) + } + _ => unreachable!(), + }; + unify( + ctx, + t.clone(), + TNominal(x0.clone(), ts.clone()).into(), + info, + ); + unify(ctx, t1.clone(), p.t.clone(), info); + PVariant(x0, ts, x1, p).with(t, info) + } + PTuple(ps) => { + let ps = ps.mapm(ctx, infer_pattern); + let ts = ps.clone().map(|p| p.t); + unify(ctx, t.clone(), TTuple(ts, true).into(), info); + PTuple(ps).with(t, info) + } + PError => PError.with(t, info), + } +} + +fn const_type(l: &Const) -> Type { + match l { + CInt(_) => atom("i32"), + CFloat(_) => atom("f32"), + CBool(_) => atom("bool"), + CString(_) => atom("String"), + CChar(_) => atom("char"), + CUnit => TUnit.into(), + } +} + +fn atom(arg: &str) -> Type { + TNominal(arg.to_string(), vector![]).into() +} + +fn unify(ctx: &mut Context, t0: Type, t1: Type, info: Info) { + let s0 = ctx.get_subst(); + let s1 = mgu(ctx, apply(s0.clone(), t0), apply(s0.clone(), t1), info); + let s2 = compose(s1, s0); + let s3 = simplify(s2); + ctx.set_subst(s3); +} + +fn try_unify(ctx: &mut Context, t0: Type, t1: Type, info: Info) -> bool { + let s0 = ctx.get_subst(); + todo!() + // try_mgu(ctx, apply(s0.clone(), t0), apply(s0.clone(), t1), info) +} + +// Simplify constraints +fn simplify(s: Vector<(Name, Type)>) -> Vector<(Name, Type)> { + s.map(|(x, t)| match t.kind() { + TRecordConcat(r0, r1) => { + let (xts0, t0) = deconstruct_row(r0); + let (xts1, t1) = deconstruct_row(r1); + let t = match (t0.kind(), t1.kind()) { + (TRowEmpty, TRowEmpty) => { + TRecord(xts_to_row(xts0.concat(xts1), TRowEmpty.into())).into() + } + (TRowEmpty, t) | (t, TRowEmpty) => { + TRecord(xts_to_row(xts0.concat(xts1), t.into())).into() + } + _ => t, + }; + (x, t) + } + _ => (x, t), + }) +} + +fn mgu(ctx: &mut Context, t0: Type, t1: Type, info: Info) -> Vector<(Name, Type)> { + match (t0.kind(), t1.kind()) { + (TFun(ts0, t0), TFun(ts1, t1)) if ts0.len() == ts1.len() => { + let s = mgu_fold(ctx, ts0, ts1, info); + mgu_acc(ctx, t0, t1, s, info) + } + (TVar(x0), t) | (t, TVar(x0)) => match t { + TVar(x1) if x0 == x1 => vector![], + t if ftv(t.clone().into()).contains(&x0) => { + ctx.diagnostics.push_error(Error::InfiniteType { + info, + t: write_hir::type_to_string(&t.into()), + }); + vector![] + } + t => vector![(x0, t.into())], + }, + (TRecord(r0), TRecord(r1)) => mgu(ctx, r0, r1, info), + (TRecordConcat(r0, r1), TRecordConcat(r2, r3)) => mgu_fold(ctx, [r0, r1], [r2, r3], info), + (TRecordConcat(r0, r1), r2) | (r2, TRecordConcat(r0, r1)) => { + let (xts0, t0) = deconstruct_row(r0); + let (xts1, t1) = deconstruct_row(r1); + let (xts2, t2) = deconstruct_row(r2.into()); + + let mut xts = vector![]; // Rows present in r2 but not in r0 or r1 + let mut s = vector![]; + for (x, t) in xts2.into_iter() { + match (xts0.find_assoc(&x), xts1.find_assoc(&x)) { + (Some(t3), _) | (_, Some(t3)) => s = mgu_acc(ctx, t, t3.clone(), s, info), + (None, None) => xts.push_back((x, t)), + } + } + + match (t0.kind(), t1.kind()) { + (TVar(x), _) | (_, TVar(x)) => { + let r = xts_to_row(xts, t2); + mgu_acc(ctx, TVar(x).into(), r.into(), s, info) + } + (TGeneric(x), _) | (_, TGeneric(x)) => { + let r = xts_to_row(xts, t2); + mgu_acc(ctx, TGeneric(x).into(), r.into(), s, info) + } + (TRowEmpty, TRowEmpty) => { + if xts.is_empty() { + vector![] + } else { + todo!("fail") + } + } + _ => unreachable!(), + } + } + (TNominal(x0, ts0), TNominal(x1, ts1)) if x0 == x1 => mgu_fold(ctx, ts0, ts1, info), + (TGeneric(x), TGeneric(y)) if x == y => vector![], + (TRowEmpty, TRowEmpty) => vector![], + (TRowExtend(xt0, r0), r1) | (r1, TRowExtend(xt0, r0)) => { + // println!("t0: {}", write_hir::type_to_string(&t0.into())); + // println!("t1: {}", write_hir::type_to_string(&t1.into())); + mgu_row(ctx, (xt0, r0), r1.into(), vector![], info) + } + (TAlias(info0, info1, t0), t1) | (t1, TAlias(info0, info1, t0)) => { + mgu(ctx, t0, t1.into(), info) + } + (TTuple(ts0, c0), TTuple(ts1, c1)) if !c0 || !c1 || ts0.len() == ts1.len() => { + mgu_fold(ctx, ts0, ts1, info) + } + (TArray(t0, n0), TArray(t1, n1)) if !n0.is_some() || !n1.is_some() || n0 == n1 => { + mgu(ctx, t0, t1, info) + } + (TUnit, TUnit) => vector![], + (TNever, _) | (_, TNever) => vector![], + (TError, _) | (_, TError) => vector![], + _ => { + ctx.diagnostics.push_error(Error::TypeMismatch { + lhs: write_hir::type_to_string(&t0.into()), + rhs: write_hir::type_to_string(&t1.into()), + info, + }); + vector![] + } + } +} + +fn deconstruct_row(r: Type) -> (Vector<(Name, Type)>, Type) { + fn rec(r: Type, xts: &mut Vector<(Name, Type)>) -> Type { + match r.kind() { + TRowEmpty => TRowEmpty.into(), + TVar(x) => TVar(x).into(), + TGeneric(x) => TGeneric(x).into(), + TRowExtend(xt, r) => { + xts.push_back(xt); + rec(r, xts) + } + TRecord(r) => rec(r, xts), + TRecordConcat(r0, r1) => TRecordConcat(r0, r1).into(), + _ => unreachable!("Expected a row type"), + } + } + let mut xts = vector![]; + let t = rec(r, &mut xts); + (xts, t) +} + +fn mgu_row( + ctx: &mut Context, + ((x0, t0), r0): ((Name, Type), Type), // Left-hand side of unification + r1: Type, // Right-hand side of unification + mut xts1: Vector<(Name, Type)>, // Rows that are in r1 but not in r0 + info: Info, +) -> Vector<(Name, Type)> { + // tracing::trace!("mgu_row"); + // for (x, t) in &xts1 { + // tracing::trace!(" {}: {}", x, write_hir::type_to_string(&t)); + // } + match r1.kind() { + TRowEmpty => { + // tracing::trace!("TRowEmpty"); + ctx.diagnostics + .push_error(Error::RowNotFound { info, x: x0 }); + vector![] + } + TRowExtend((x1, t1), r2) => { + if x0 == x1 { + // tracing::trace!("TRowExtend {} == {}", x0, x1); + let r3 = xts_to_row(xts1, r2); + mgu_fold(ctx, [t0, r0], [t1, r3], info) + } else { + // tracing::trace!("TRowExtend {} != {}", x0, x1); + xts1.push_back((x1, t1)); + mgu_row(ctx, ((x0, t0), r0), r2, xts1, info) + } + } + TVar(x) => { + // tracing::trace!("TVar {}", x); + let r2 = xts_to_row(xts1, ctx.fresh_r()); + let r3 = TRowExtend((x0, t0), ctx.fresh_r()).into(); + // tracing::trace!(" r0 = r2: {} = {}", write_hir::type_to_string(&r0), write_hir::type_to_string(&r2)); + // tracing::trace!(" r1 = r3: {} = {}", write_hir::type_to_string(&r1), write_hir::type_to_string(&r3)); + mgu_fold(ctx, [r0, r1], [r2, r3], info) + } + x => unreachable!("rewrite_row: not a row {:?}", x), + } +} + +fn xts_to_row(xts: impl IntoIterator, r0: Type) -> Type { + xts.into_iter() + .fold(r0, |r, (x, t)| TRowExtend((x, t), r).into()) +} + +fn row_tail(r: Type) -> Option { + match r.kind() { + TRowEmpty => None, + TRowExtend(_, r) => row_tail(r), + TVar(x) => Some(TVar(x).into()), + _ => unreachable!("row_tail: not a row"), + } +} + +fn row_get(x: Name, r: Type) -> Option { + match r.kind() { + TRowEmpty => None, + TRowExtend((x0, t), r) => { + if x == x0 { + Some(t) + } else { + row_get(x, r) + } + } + TVar(x) => Some(TVar(x).into()), + _ => unreachable!("row_contains: not a row"), + } +} + +fn ftv(t: Type) -> OrdSet { + fn ftv(acc: &mut OrdSet, t: Type) { + match t.kind() { + TFun(ts, t) => { + ts.into_iter().for_each(|t| ftv(acc, t)); + ftv(acc, t) + } + TRecord(r) => ftv(acc, r), + TRowEmpty => {} + TRowExtend((_, t), r) => { + ftv(acc, t); + ftv(acc, r); + } + TRecordConcat(t0, t1) => { + ftv(acc, t0); + ftv(acc, t1); + } + TNominal(_, ts) => ts.into_iter().for_each(|t| ftv(acc, t)), + TGeneric(_) => {} + TVar(x) => { + acc.insert(x); + } + TTuple(ts, _) => ts.into_iter().for_each(|t| ftv(acc, t)), + TAlias(_, _, t) => ftv(acc, t), + TArray(t, n) => ftv(acc, t), + TArrayConcat(t0, t1) => { + ftv(acc, t0); + ftv(acc, t1); + } + TUnit => {} + TNever => {} + TError => {} + } + } + let mut acc = OrdSet::new(); + ftv(&mut acc, t); + acc +} + +fn mgu_acc( + ctx: &mut Context, + t0: Type, + t1: Type, + s0: Vector<(Name, Type)>, + info: Info, +) -> Vector<(Name, Type)> { + let t0 = apply(s0.clone(), t0); + let t1 = apply(s0.clone(), t1); + let s1 = mgu(ctx, t0, t1, info); + compose(s1, s0) +} + +fn mgu_fold( + ctx: &mut Context, + ts0: impl IntoIterator, + ts1: impl IntoIterator, + info: Info, +) -> Vector<(Name, Type)> { + ts0.into_iter().zip(ts1).fold(vector![], |s0, (t0, t1)| { + let t0 = apply(s0.clone(), t0); + let t1 = apply(s0.clone(), t1); + let s1 = mgu(ctx, t0, t1, info); + compose(s1, s0) + }) +} + +fn compose(s0: Vector<(Name, Type)>, s1: Vector<(Name, Type)>) -> Vector<(Name, Type)> { + s1.into_iter() + .map(|(x, t)| (x, apply(s0.clone(), t))) + .chain(s0.clone()) + .collect() +} + +fn apply(s: Vector<(Name, Type)>, t: Type) -> Type { + let f = |t: Type| apply(s.clone(), t); + match t.kind() { + TFun(ts, t) => TFun(ts.map(f), f(t)), + TRecord(r) => TRecord(f(r)), + TNominal(x, ts) => TNominal(x, ts.map(f)), + TRowEmpty => TRowEmpty, + TRowExtend((x, t), r) => TRowExtend((x, f(t)), f(r)), + TRecordConcat(t0, t1) => TRecordConcat(f(t0), f(t1)), + TGeneric(x) => TGeneric(x), + TVar(x) => { + return s + .into_iter() + .find_map(|(x1, t1)| if x == *x1 { Some(t1) } else { None }) + .unwrap_or(t); + } + TTuple(ts, closed) => TTuple(ts.map(f), closed), + TArray(t, n) => TArray(f(t), n), + TArrayConcat(t0, t1) => TArrayConcat(f(t0), f(t1)), + TAlias(info0, info1, t) => TAlias(info0, info1, f(t)), + TUnit => TUnit, + TNever => TNever, + TError => TError, + } + .into() +} + +fn instantiate(s: Vector<(Name, Type)>, t: Type) -> Type { + let f = |t: Type| instantiate(s.clone(), t); + match t.kind() { + TFun(ts, t) => TFun(ts.map(f), f(t)), + TRecord(r) => TRecord(f(r)), + TNominal(x, ts) => TNominal(x, ts.map(f)), + TRowEmpty => TRowEmpty, + TRowExtend((x, t), r) => TRowExtend((x, f(t)), f(r)), + TRecordConcat(t0, t1) => TRecordConcat(f(t0), f(t1)), + TGeneric(x) => { + return s + .into_iter() + .find_map(|(x1, t1)| if x == *x1 { Some(t1) } else { None }) + .expect("Generic should be bound"); + } + TVar(x) => TVar(x), + TTuple(ts, closed) => TTuple(ts.map(f), closed), + TArray(t, n) => TArray(f(t), n), + TArrayConcat(t0, t1) => TArrayConcat(f(t0), f(t1)), + TAlias(info0, info1, t1) => TAlias(info0, info1, f(t1)), + TUnit => TUnit, + TNever => TNever, + TError => TError, + } + .into() +} + +fn generalise(s: Vector<(Name, Type)>, t: Type) -> Type { + let f = |t: Type| generalise(s.clone(), t); + match t.kind() { + TFun(ts, t) => TFun(ts.map(f), f(t)), + TRecord(r) => TRecord(f(r)), + TRowEmpty => TRowEmpty, + TRowExtend((x, t), r) => TRowExtend((x, f(t)), f(r)), + TRecordConcat(t0, t1) => TRecordConcat(f(t0), f(t1)), + TNominal(x, ts) => TNominal(x, ts.map(f)), + TGeneric(x) => TGeneric(x), + TVar(x) => { + return s + .into_iter() + .find_map(|(x1, t1)| if x == *x1 { Some(t1) } else { None }) + .unwrap_or(t); + } + TTuple(ts, closed) => TTuple(ts.map(f), closed), + TArray(t, n) => TArray(f(t), n), + TArrayConcat(t0, t1) => TArrayConcat(f(t0), f(t1)), + TAlias(info0, info1, t) => TAlias(info0, info1, f(t)), + TUnit => TUnit, + TNever => TNever, + TError => TError, + } + .into() +} + +fn fields_to_rows(xts: Vector<(Name, Type)>, r: Type) -> Type { + xts.into_iter() + .rev() + .fold(r, |r, (x, t)| TRowExtend((x, t), r).into()) +} diff --git a/arc-lang/crates/compiler/passes/lexer/Cargo.toml b/arc-lang/crates/compiler/passes/lexer/Cargo.toml new file mode 100644 index 000000000..fefafaae4 --- /dev/null +++ b/arc-lang/crates/compiler/passes/lexer/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "lexer" +version.workspace = true +edition.workspace = true + +[dependencies] +diagnostics.workspace = true +info.workspace = true +logos.workspace = true +syn.workspace = true +quote.workspace = true +regex.workspace = true diff --git a/arc-lang/crates/compiler/passes/lexer/src/lib.rs b/arc-lang/crates/compiler/passes/lexer/src/lib.rs new file mode 100644 index 000000000..127564017 --- /dev/null +++ b/arc-lang/crates/compiler/passes/lexer/src/lib.rs @@ -0,0 +1,65 @@ +#![allow(unused)] +pub mod tokens; + +use std::convert::TryInto; + +use diagnostics::Diagnostics; +use diagnostics::Error; +use info::ByteIndex; +use info::Info; +use regex::Regex; +use tokens::Token; + +pub struct Lexer<'a> { + id: usize, + inner: logos::Lexer<'a, Token>, + diagnostics: Diagnostics, + regex: Regex, +} + +impl<'a> Lexer<'a> { + pub fn new(id: usize, source: &'a str) -> Self { + Self { + id, + inner: logos::Lexer::new(source), + diagnostics: Diagnostics::default(), + regex: Regex::new("(?ms)^(?[a-z]+)(?.*?)---").unwrap(), + } + } + + pub fn diagnostics(self) -> Diagnostics { + self.diagnostics + } +} + +impl<'a> Iterator for Lexer<'a> { + type Item = (ByteIndex, Token, ByteIndex); + + fn next(&mut self) -> Option { + loop { + let token = self.inner.next()?; + let span = self.inner.span(); + let start = span.start.try_into().unwrap(); + let end = span.end.try_into().unwrap(); + match token { + Ok(Token::MinusMinusMinus) => { + let span = self.inner.span(); + let beginning = span.end; + let m = self.regex.captures(&self.inner.remainder()).unwrap(); + let lang = m["lang"].to_owned(); + let code = m["code"].to_owned(); + let len = m[0].len(); + let end = beginning + len; + self.inner.bump(len); + return Some((start, Token::Inject((lang, code)), end.try_into().unwrap())); + } + Ok(token) => return Some((start, token, end)), + Err(err) => { + let info = Info::new(self.id, start, end); + self.diagnostics + .push_error(Error::LexerInvalidToken { info, err }) + } + } + } + } +} diff --git a/arc-lang/crates/compiler/passes/lexer/src/tokens.rs b/arc-lang/crates/compiler/passes/lexer/src/tokens.rs new file mode 100644 index 000000000..e2767f445 --- /dev/null +++ b/arc-lang/crates/compiler/passes/lexer/src/tokens.rs @@ -0,0 +1,279 @@ +//! Module which generates a `LogosLexer`. + +use diagnostics::LexerError; +use std::fmt::Debug; +use std::fmt::Display; +use std::str::FromStr; + +use logos::Lexer; +use logos::Logos; + +#[rustfmt::skip] +#[derive(Logos, Debug, Clone, PartialEq)] +#[logos(error = LexerError)] +#[logos(subpattern bin = r"0[bB][0-1][_0-1]*")] +#[logos(subpattern oct = r"0[oO][0-7][_0-7]*")] +#[logos(subpattern dec = r"[0-9][_0-9]*")] +#[logos(subpattern hex = r"0[xX][0-9a-fA-F][_0-9a-fA-F]*")] +#[logos(subpattern exp = r"[eE][+-]?[0-9][_0-9]*")] +#[logos(subpattern id = r"[A-Za-z_][A-Za-z0-9_]*")] +#[logos(skip r"([ \t\f\n]+|#[^\r\n]*|#[^\n]*)")] +pub enum Token { + #[token("(")] ParenL, + #[token(")")] ParenR, + #[token("[")] BrackL, + #[token("]")] BrackR, + #[token("{")] BraceL, + #[token("}")] BraceR, + #[token("<")] AngleL, + #[token(">")] AngleR, + // Operators + #[token("!=")] Neq, + #[token("*")] Star, + #[token("+")] Plus, + #[token("++")] PlusPlus, + #[token("&")] Ampersand, + #[token(",")] Comma, + #[token("-")] Minus, + #[token(".")] Dot, + #[token("..")] DotDot, + #[token("..=")] DotDotEq, + #[token("/")] Slash, + #[token(":")] Colon, + #[token("::")] ColonColon, + #[token(";")] Semi, + #[token("<=")] Leq, + #[token("=")] Eq, + #[token("==")] EqEq, + #[token("=>")] Imply, + #[token(">=")] Geq, + #[token("@")] AtSign, + #[token("_")] Underscore, + #[token("|")] Bar, + #[token("+=")] PlusEq, + #[token("-=")] MinusEq, + #[token("*=")] StarEq, + #[token("/=")] SlashEq, + #[token("~")] Tilde, + #[token("!")] Bang, + #[token("?")] Question, + // Keywords + #[token("and")] And, + #[token("as")] As, + #[token("break")] Break, + #[token("catch")] Catch, + #[token("continue")] Continue, + #[token("def")] Def, + #[token("desc")] Desc, + #[token("do")] Do, + #[token("else")] Else, + #[token("finally")] Finally, + #[token("for")] For, + #[token("from")] From, + #[token("fun")] Fun, + #[token("group")] Group, + #[token("if")] If, + #[token("in")] In, + #[token("into")] Into, + #[token("join")] Join, + #[token("loop")] Loop, + #[token("match")] Match, + #[token("not")] Not, + #[token("on")] On, + #[token("or")] Or, + #[token("of")] Of, + #[token("return")] Return, + #[token("select")] Select, + #[token("compute")] Compute, + #[token("repeat")] Repeat, + #[token("throw")] Throw, + #[token("try")] Try, + #[token("type")] Type, + #[token("val")] Val, + #[token("var")] Var, + #[token("with")] With, + #[token("where")] Where, + #[token("while")] While, + #[token("use")] Use, + #[token("union")] Union, + #[token("over")] Over, + #[token("roll")] Roll, + #[token("order")] Order, + #[token("enum")] Enum, + #[token("---")] MinusMinusMinus, + #[logos(skip)] Inject((String, String)), + // Identifiers and Literals + #[regex(r"(?&id)", |lex| lex.slice().to_string())] Name(String), + // TODO: Parse without - + #[regex(r"-?((?&bin)|(?&dec)|(?&hex)|(?&oct))", |lex| lex.slice().parse())] Int(i32), + #[regex(r"-?((?&bin)|(?&dec)|(?&hex)|(?&oct))(?&id)", Token::parse_suffix)] IntSuffix((i32, String)), + #[regex(r"-?(((?&dec)\.(?&dec)(?&exp)?)|((?&dec)(?&exp)))", |lex| lex.slice().parse())] Float(f32), + #[regex(r"-?(((?&dec)\.(?&dec)(?&exp)?)|((?&dec)(?&exp)))(?&id)", Token::parse_suffix)] FloatSuffix((f32, String)), + + #[regex(r#"true|false"#, |lex| lex.slice().parse())] Bool(bool), + #[regex(r"'[^']'", |lex| lex.slice().get(1..lex.slice().len()-1).unwrap().parse())] Char(char), + #[regex(r#""([^"\\]|\\.)*""#, |lex| lex.slice().get(1..lex.slice().len()-1).unwrap_or("").to_string())] String(String), +} + +impl Token { + fn parse_suffix<'s, T>(lexer: &Lexer<'s, Token>) -> Result<(T, String), ::Err> + where + T: std::str::FromStr, + ::Err: Debug, + { + let slice = lexer.slice(); + let end = slice.chars().position(|char| !char.is_digit(10)).unwrap(); + let int = slice[..end].parse()?; + let suffix = slice[end..].to_string(); + Ok((int, suffix)) + } +} + +impl Display for Token { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Token::ParenL => write!(f, "("), + Token::ParenR => write!(f, ")"), + Token::BrackL => write!(f, "["), + Token::BrackR => write!(f, "]"), + Token::BraceL => write!(f, "{{"), + Token::BraceR => write!(f, "}}"), + Token::AngleL => write!(f, "<"), + Token::AngleR => write!(f, ">"), + Token::Neq => write!(f, "!="), + Token::Star => write!(f, "*"), + Token::Plus => write!(f, "+"), + Token::PlusPlus => write!(f, "++"), + Token::Comma => write!(f, ","), + Token::Minus => write!(f, "-"), + Token::Dot => write!(f, "."), + Token::DotDot => write!(f, ".."), + Token::DotDotEq => write!(f, "..="), + Token::Slash => write!(f, "/"), + Token::Colon => write!(f, ":"), + Token::ColonColon => write!(f, "::"), + Token::Semi => write!(f, ";"), + Token::Leq => write!(f, "<="), + Token::Eq => write!(f, "="), + Token::EqEq => write!(f, "=="), + Token::Imply => write!(f, "=>"), + Token::Geq => write!(f, ">="), + Token::Ampersand => write!(f, "&"), + Token::AtSign => write!(f, "@"), + Token::Underscore => write!(f, "_"), + Token::Bar => write!(f, "|"), + Token::PlusEq => write!(f, "+="), + Token::MinusEq => write!(f, "-="), + Token::StarEq => write!(f, "*="), + Token::SlashEq => write!(f, "/="), + Token::Tilde => write!(f, "~"), + Token::Bang => write!(f, "!"), + Token::Question => write!(f, "?"), + Token::And => write!(f, "and"), + Token::As => write!(f, "as"), + Token::Break => write!(f, "break"), + Token::Catch => write!(f, "catch"), + Token::Continue => write!(f, "continue"), + Token::Def => write!(f, "def"), + Token::Desc => write!(f, "desc"), + Token::Do => write!(f, "do"), + Token::Else => write!(f, "else"), + Token::Finally => write!(f, "finally"), + Token::For => write!(f, "for"), + Token::From => write!(f, "from"), + Token::Fun => write!(f, "fun"), + Token::Group => write!(f, "group"), + Token::If => write!(f, "if"), + Token::In => write!(f, "in"), + Token::Into => write!(f, "into"), + Token::Join => write!(f, "join"), + Token::Loop => write!(f, "loop"), + Token::Match => write!(f, "match"), + Token::Not => write!(f, "not"), + Token::On => write!(f, "on"), + Token::Or => write!(f, "or"), + Token::Of => write!(f, "of"), + Token::Return => write!(f, "return"), + Token::Select => write!(f, "select"), + Token::Compute => write!(f, "compute"), + Token::Repeat => write!(f, "repeat"), + Token::Throw => write!(f, "throw"), + Token::Try => write!(f, "try"), + Token::Type => write!(f, "type"), + Token::Val => write!(f, "val"), + Token::Var => write!(f, "var"), + Token::With => write!(f, "with"), + Token::Where => write!(f, "where"), + Token::While => write!(f, "while"), + Token::Use => write!(f, "use"), + Token::Union => write!(f, "union"), + Token::Name(x) => write!(f, "{x}"), + Token::Int(l) => write!(f, "{l}"), + Token::IntSuffix((l, x)) => write!(f, "{l}{x}"), + Token::Float(l) => write!(f, "{l}"), + Token::FloatSuffix((l, x)) => write!(f, "{l}{x}"), + Token::Bool(l) => write!(f, "{l}"), + Token::Char(l) => write!(f, "{l}"), + Token::String(l) => write!(f, "{l}"), + Token::Over => write!(f, "over"), + Token::Roll => write!(f, "roll"), + Token::Order => write!(f, "order"), + Token::Enum => write!(f, "enum"), + Token::MinusMinusMinus => unreachable!(), + Token::Inject((lang, code)) => write!(f, "---{lang}{code}---"), + } + } +} + +pub const KEYWORDS: &[&str] = &[ + "and", "as", "break", "catch", "continue", "def", "desc", "do", "else", "finally", "for", + "from", "fun", "group", "if", "in", "into", "join", "loop", "match", "not", "on", "or", "of", + "return", "select", "compute", "repeat", "throw", "try", "type", "val", "var", "where", "with", + "while", "use", "union", "over", "roll", "order", "enum", "rust", +]; + +pub const NUMERICS: &[&str] = &[ + "0[bB][0-1][_0-1]*", + "0[oO][0-7][_0-7]*", + "[0-9][_0-9]*", + "0[xX][0-9a-fA-F][_0-9a-fA-F]*", +]; + +pub const BUILTINS: &[&str] = &["true", "false"]; + +pub const STRINGS: &[&str] = &[r#""([^"\\]|\\.)*""#, r"'[^']'"]; + +pub const COMMENTS: &[&str] = &["#[^\r\n]*", "#[^\n]*"]; + +pub const TYPES: &[&str] = &[ + "i8", + "i16", + "i32", + "i64", + "i128", + "u8", + "u16", + "u32", + "u64", + "u128", + "f32", + "f64", + "Int", + "Float", + "bool", + "char", + "String", + "Vec", + "Option", + "Result", + "Set", + "Dict", + "Stream", + "Matrix", + "File", + "SocketAddr", + "Url", + "Path", + "Duration", + "Time", +]; diff --git a/arc-lang/crates/compiler/passes/ll-parser/Cargo.toml b/arc-lang/crates/compiler/passes/ll-parser/Cargo.toml new file mode 100644 index 000000000..2dfc991a9 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ll-parser/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "ll-parser" +version.workspace = true +edition.workspace = true + +[[bin]] +name = "ll-parser" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +ariadne = "0.2" +chumsky = { git = "https://github.com/zesterer/chumsky.git", version = "1.0.0-alpha.3", features = ["std", "spill-stack", "label", "extension", "sync", "memoization"] } +lexer = { path = "../lexer"} +logos = "0.12.1" +ast = { path = "../../irs/ast" } +im-rc = { version = "15.1.0" } diff --git a/arc-lang/crates/compiler/passes/ll-parser/src/main.rs b/arc-lang/crates/compiler/passes/ll-parser/src/main.rs new file mode 100644 index 000000000..31ded3567 --- /dev/null +++ b/arc-lang/crates/compiler/passes/ll-parser/src/main.rs @@ -0,0 +1,129 @@ +//! An example of using logos with chumsky to parse sexprs +//! Run it with the following command: +//! cargo run --example logos + +// use ariadne::{Color, Label, Report, ReportKind, Source}; +// use ast::*; +// use chumsky::{ +// input::{Stream, ValueInput}, +// prelude::*, +// }; +// use im_rc::Vector; +// use lexer::tokens::Token; +// use logos::Logos; +// +// trait Tok<'a>: ValueInput<'a, Token = Token, Span = SimpleSpan> {} +// impl<'a, I: ValueInput<'a, Token = Token, Span = SimpleSpan>> Tok<'a> for I {} +// +// trait Syn<'a, I: Tok<'a>, T>: Parser<'a, I, T, extra::Err>> {} +// impl<'a, I: Tok<'a>, T, P: Parser<'a, I, T, extra::Err>>> Syn<'a, I, T> for P {} +// +// fn parse_name<'a, I: Tok<'a>>() -> impl Syn<'a, I, Name> { +// select! { Token::Name(x) => x }.labelled("name") +// } +// +// fn parse_field<'a, I: Tok<'a>>() -> impl Syn<'a, I, (Name, Pattern)> { +// parse_name() +// .then_ignore(just(Token::Colon)) +// .then(parse_pattern()) +// } +// +// fn parse_pattern<'a, I: Tok<'a>>() -> impl Syn<'a, I, Pattern> { +// recursive(|pattern| { +// let r#const = r#const().map(PConst); +// let name = parse_name().map(PVar); +// let variant = just(Token::Case) +// .ignore_then(parse_name()) +// .then(pattern) +// .map(|(x, p)| PVariant(x, p)); +// let tuple = pattern.delimited_by(just(Token::ParenL), just(Token::ParenR)); +// let record = parse_name().then(pattern.or_not()).separated_by(just(Token::Comma)).collect::>(); +// record +// +// }) +// } +// +// fn parse_path<'a, I: Tok<'a>>() -> impl Syn<'a, I, Path> { +// let path = parse_name().separated_by(just(Token::ColonColon)).collect::>(); +// let abs = just(Token::ColonColon).ignore_then(path).map(PAbs); +// let rel = path.map(PRel); +// abs.or(rel) +// } +// +// fn parse_type<'a, I: Tok<'a>>() -> impl Syn<'a, I, Type> { +// recursive(|ty| { +// todo!() +// +// }) +// } +// +// fn parse_param<'a, I: Tok<'a>>() -> impl Syn<'a, I, (Pattern, Option)> { +// parse_pattern() +// .then(just(Token::Colon).ignore_then(parse_type())).or_not() +// } +// +// fn parse_item<'a, I: Tok<'a>>() -> impl Syn<'a, I, Item> { +// let def = just(Token::Def).then(parse_param) +// } +// +// fn lit<'a, I: Tok<'a>>() -> impl Syn<'a, I, Lit> { +// select! { +// Token::Bool(x) => LBool(x), +// Token::Float(x) => LFloat(x, None), +// Token::Int(x) => LInt(x, None), +// Token::String(x) => LString(x), +// Token::Char(x) => LChar(x), +// Token::FloatSuffix((l, x)) => LFloat(l, Some(x)), +// Token::IntSuffix((l, x)) => LInt(l, Some(x)), +// } +// } +// +// fn r#const<'a, I: Tok<'a>>() -> impl Syn<'a, I, Const> { +// select! { +// Token::Bool(x) => CBool(x), +// Token::Char(x) => CChar(x), +// Token::Float(x) => CFloat(x), +// Token::Int(x) => CInt(x), +// Token::String(x) => CString(x), +// } +// } +// +// fn expr<'a, I: Tok<'a>>() -> impl Syn<'a, I, Expr> { +// recursive(|expr| { +// let ident = select! { Token::Name(x) => x }.labelled("identifier"); +// +// todo!() +// }) +// } +// +// const SRC: &str = r" +// (- +// (* (+ 4.0 7.3) 7.0) +// (/ 5.0 3.0) +// ) +// "; + +fn main() { + // let token_iter = Token::lexer(SRC) + // .spanned() + // .map(|(tok, span)| (tok, span.into())); + // + // let token_stream = Stream::from_iter(token_iter).spanned((SRC.len()..SRC.len()).into()); + + // match expr().parse(token_stream).into_result() { + // Ok(sexpr) => println!("{:#?}", sexpr), + // Err(errs) => errs.into_iter().for_each(|e| { + // Report::build(ReportKind::Error, (), e.span().start) + // .with_code(3) + // .with_message(e.to_string()) + // .with_label( + // Label::new(e.span().into_range()) + // .with_message(e.reason().to_string()) + // .with_color(Color::Red), + // ) + // .finish() + // .eprint(Source::from(SRC)) + // .unwrap() + // }), + // } +} diff --git a/arc-lang/crates/compiler/passes/parser/Cargo.toml b/arc-lang/crates/compiler/passes/parser/Cargo.toml new file mode 100644 index 000000000..cab7a1011 --- /dev/null +++ b/arc-lang/crates/compiler/passes/parser/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "parser" +build = "build.rs" +version.workspace = true +edition.workspace = true + +[dependencies] +ast.workspace = true +lexer.workspace = true +info.workspace = true +diagnostics.workspace = true +sources.workspace = true +lalrpop-util.workspace = true +im-rc.workspace = true +syn.workspace = true + +[build-dependencies] +lalrpop.workspace = true diff --git a/arc-lang/crates/compiler/passes/parser/build.rs b/arc-lang/crates/compiler/passes/parser/build.rs new file mode 100644 index 000000000..412c39dde --- /dev/null +++ b/arc-lang/crates/compiler/passes/parser/build.rs @@ -0,0 +1,12 @@ +//! Build script related to internal compiler functions. + +extern crate lalrpop; + +/// A build-script. Here we generate the `arc-script` parser. +fn main() { + lalrpop::Configuration::new() + .emit_whitespace(false) + .use_cargo_dir_conventions() + .process() + .unwrap(); +} diff --git a/arc-lang/crates/compiler/passes/parser/src/context.rs b/arc-lang/crates/compiler/passes/parser/src/context.rs new file mode 100644 index 000000000..60c62e56a --- /dev/null +++ b/arc-lang/crates/compiler/passes/parser/src/context.rs @@ -0,0 +1,21 @@ +use diagnostics::Diagnostics; +use sources::Sources; + +#[derive(Debug, Default)] +pub struct Context { + pub diagnostics: Diagnostics, + pub sources: Sources, +} + +impl Context { + pub fn new() -> Self { + Self { + diagnostics: Diagnostics::default(), + sources: Sources::new(), + } + } + + pub fn id(&self) -> usize { + self.sources.len() + } +} diff --git a/arc-lang/crates/compiler/passes/parser/src/error.rs b/arc-lang/crates/compiler/passes/parser/src/error.rs new file mode 100644 index 000000000..a9894c340 --- /dev/null +++ b/arc-lang/crates/compiler/passes/parser/src/error.rs @@ -0,0 +1,37 @@ +//! Module for converting errors emitted by `LALRPOP` into compiler diagnostics. + +use diagnostics::Error; +use info::ByteIndex; +use info::Info; +use info::SourceId; +use lalrpop_util::ParseError; +use lexer::tokens::Token; + +/// Converts an LALRPOP `ErrorRecovery` into a `Diagnostic`. +pub(crate) fn parser_error(error: ParseError, file: SourceId) -> Error { + match error { + // User errors (lexer errors) are handled by the lexer. + ParseError::User { error: () } => unreachable!("Lexer should have caught this error"), + // Error generated by the parser when it encounters additional, unexpected tokens. + ParseError::ExtraToken { token: (l, t, r) } => Error::ParserExtraToken { + found: format!("{t:?}"), + info: Info::from_range(file, l..r), + }, + // Error generated by the parser when it encounters a token (or EOF) it did not expect. + ParseError::InvalidToken { .. } => unreachable!("Lexer should have caught this error"), + // Error generated by the parser when it encounters an EOF it did not expect. + ParseError::UnrecognizedEof { location, expected } => Error::ParserUnrecognizedEof { + info: Info::from_range(file, location..location), + expected, + }, + // Error generated by the parser when it encounters a token it did not expect. + ParseError::UnrecognizedToken { + token: (l, t, r), + expected, + } => Error::ParserUnrecognizedToken { + found: format!("{t}"), + info: Info::from_range(file, l..r), + expected, + }, + } +} diff --git a/arc-lang/crates/compiler/passes/parser/src/grammar.lalrpop b/arc-lang/crates/compiler/passes/parser/src/grammar.lalrpop new file mode 100644 index 000000000..e9e4ea353 --- /dev/null +++ b/arc-lang/crates/compiler/passes/parser/src/grammar.lalrpop @@ -0,0 +1,489 @@ +use ast::*; +use im_rc::vector; +use im_rc::Vector; +use info::ByteIndex; +use info::Spanned; +use lexer::tokens::Token; +use info::Info; +use std::rc::Rc; +use crate::error::parser_error; +use diagnostics::Diagnostics; +use info::SourceId; + +//============================================================================= +// Grammar +//============================================================================= + +grammar(id: SourceId, diagnostics: &mut Diagnostics); + +extern { + type Error = (); + type Location = ByteIndex; + + enum Token { + // Grouping + "(" => Token::ParenL, + ")" => Token::ParenR, + "[" => Token::BrackL, + "]" => Token::BrackR, + "{" => Token::BraceL, + "}" => Token::BraceR, + "<" => Token::AngleL, + ">" => Token::AngleR, + // Operators + "!=" => Token::Neq, + "*" => Token::Star, + "+" => Token::Plus, + "++" => Token::PlusPlus, + "&" => Token::Ampersand, + "," => Token::Comma, + "-" => Token::Minus, + "." => Token::Dot, + ".." => Token::DotDot, + "..=" => Token::DotDotEq, + "/" => Token::Slash, + ":" => Token::Colon, + "::" => Token::ColonColon, + ";" => Token::Semi, + "<=" => Token::Leq, + ">=" => Token::Geq, + "=" => Token::Eq, + "==" => Token::EqEq, + "=>" => Token::Imply, + "_" => Token::Underscore, + "|" => Token::Bar, + "@" => Token::AtSign, + "+=" => Token::PlusEq, + "-=" => Token::MinusEq, + "*=" => Token::StarEq, + "/=" => Token::SlashEq, + "~" => Token::Tilde, + "!" => Token::Bang, + "?" => Token::Question, + // Keywords + "and" => Token::And, + "as" => Token::As, + "break" => Token::Break, + "catch" => Token::Catch, + "enum" => Token::Enum, + "continue" => Token::Continue, + "compute" => Token::Compute, + "do" => Token::Do, + "def" => Token::Def, + "desc" => Token::Desc, + "else" => Token::Else, + "finally" => Token::Finally, + "for" => Token::For, + "from" => Token::From, + "fun" => Token::Fun, + "group" => Token::Group, + "if" => Token::If, + "in" => Token::In, + "into" => Token::Into, + "join" => Token::Join, + "loop" => Token::Loop, + "match" => Token::Match, + "not" => Token::Not, + "on" => Token::On, + "of" => Token::Of, + "or" => Token::Or, + "return" => Token::Return, + "repeat" => Token::Repeat, + "throw" => Token::Throw, + "try" => Token::Try, + "type" => Token::Type, + "val" => Token::Val, + "var" => Token::Var, + "with" => Token::With, + "where" => Token::Where, + "while" => Token::While, + "with" => Token::With, + "use" => Token::Use, + "select" => Token::Select, + "union" => Token::Union, + "over" => Token::Over, + "roll" => Token::Roll, + "order" => Token::Order, + // Identifiers and Literals + Inject => Token::Inject(<(String, String)>), + Name => Token::Name(), + Int => Token::Int(), + Float => Token::Float(), + IntSuffix => Token::IntSuffix(<(i32, String)>), + FloatSuffix => Token::FloatSuffix(<(f32, String)>), + Bool => Token::Bool(), + Char => Token::Char(), + String => Token::String(), + } +} + +Paren = "(" ")"; +Brack = "[" "]"; +Brace = "{" "}"; + +Error: () = ! => diagnostics.push_error(parser_error(<>.error, id)); + +#[inline] Epsilon: () = { () } + +#[inline] Default: X = { + Epsilon => Default::default(), + X, +} + +Fst = B; +Snd = A ; +Split = B ; +Pair = A B; + +LList: Vector = { + Epsilon => vector![], + > => { l.push_back(x); l } +} + +NonemptyLList: Vector = { + X => vector![<>], + > => { l.push_back(x); l } +} + +#[inline] SeparatedLList: Vector = { + Epsilon => vector![], + SeparatedNonemptyLList +} + +SeparatedNonemptyLList: Vector = { + X => vector![<>], + > S => { l.push_back(x); l } +} + +#[inline] SeparatedLListTrailing = > S?; + +#[inline] Seq = SeparatedLListTrailing<",", X>; +#[inline] SeqNonempty = SeparatedNonemptyLList<",", X>; +#[inline] SeqExplicit: Vector = "," > => { l.push_front(x); l }; + +Spanned: Spanned = => (x, Info::new(id, l, r)); + +pub(crate) Program = LList; + +pub(crate) Splice: Splice = { + Name => SName(<>), + Block => SBlock(<>), +} + +Attr: Attr = Spanned<(Name Snd<":", Const>?)> => Attr { x: <>.0.0, c: <>.0.1, info: <>.1 }; +Meta: Meta = Default>>>; + +DefBody: Body = { + "=" ";" => BExpr(<>), + => BBlock(<>), +} + +FunBody: Body = { + "=" => BExpr(<>), + => BBlock(<>), +} + +TypeAnnot = ":" >; + +Params = Paren>; +Param = Pattern; + +Generics = Default>>; +Generic = Name; + +Bounds = Default>>; +Bound = Name Brack>>; + +Binop: Binop = { + Op3, + Op4, + Op5, + Op6, + Op7, + Op8, +} + +Unop = Op9; + +Index = Int; // FIXME + +UseSuffix: UseSuffix = { + "*" => UGlob, + Snd<"as", Name> => UAlias(<>), +} + +#[inline] Expr: Expr = Spanned => (<>.0).with(<>.1); + +// Note: This cannot be succeeded by a brace +E0: ExprKind = { + "return" >?> => EFunReturn(<>), + "break" >?> => ELoopBreak(<>), + "continue" => ELoopContinue, + "throw" >> => EThrow(<>), + E1, +} + +// Note: This cannot be succeeded by a brace +E1: ExprKind = { + "from" > "in" >> => EQuery(<>), + "fun" >>> => EFun(<>), + E2, +} + +Op2: Option = { + "=" => None, + "+=" => Some(BAdd.with(<>)), + "-=" => Some(BSub.with(<>)), + "*=" => Some(BMul.with(<>)), + "/=" => Some(BDiv.with(<>)), +} + +E2: ExprKind = { + Expr> Op2 Expr> => EMut(<>), + E3, +} + +Op3: Binop = { + ".." => BRExc.with(<>), + "..=" => BRInc.with(<>), +} +E3: ExprKind = { + Expr> Op3 Expr> => EBinop(<>), + E4, +} + +Op4: Binop = { + "or" => BOr.with(<>), + "and" => BAnd.with(<>), +} +E4: ExprKind = { + Expr> Op4 Expr> => EBinop(<>), + E5, +} + +Op5: Binop = { + "==" => BEq.with(<>), + "!=" => BNeq.with(<>), +} +E5: ExprKind = { + Expr> Op5 Expr> => EBinop(<>), + E6, +} + +Op6: Binop = { + "<" => BLt.with(<>), + ">" => BGt.with(<>), + "<=" => BLeq.with(<>), + ">=" => BGeq.with(<>), +} +E6: ExprKind = { + Expr> Op6 Expr> => EBinop(<>), + E7, +} + +Op7: Binop = { + "+" => BAdd.with(<>), + "-" => BSub.with(<>), +} +E7: ExprKind = { + Expr> Op7 Expr> => EBinop(<>), + >> "&" >> => ERecordConcat(<>), + >> "++" >> => EArrayConcat(<>), + E8, +} + +Op8: Binop = { + "*" => BMul.with(<>), + "/" => BDiv.with(<>), +} +E8: ExprKind = { + Expr> Op8 Expr> => EBinop(<>), + E9, +} + +Op9: Unop = { + "not" => UNot.with(<>), + "-" => UNeg.with(<>), + "+" => UPos.with(<>), +} +E9: ExprKind = { + Op9 Expr> => EUnop(<>), + E10, +} + +E10: ExprKind = { + >> ":" > => ETypeAnnot(<>), + >> "?" => EThrow(<>), + E11, +} + +E11: ExprKind = { + Expr Paren>>> => EFunCall(<>), + >> "." => ETupleAccess(<>), + >> "." => ERecordAccess(<>), + >> >>> => EArrayAccess(<>), + >> "." >> => ERecordAccessMulti(<>), + >> "." >>>> => EMethodCall(<>), + Primary, +} + +// These may not be followed by a brace +// This could allow `if Foo { ... } else { ... }` +// to be parsed as `if { ... } else { ... }` +E12: ExprKind = { + Name Record => EVariantRecord(<>), + E13 +} + +ExprField: ExprField = { + Name Snd<":", Expr>>? => FName(<>), + >> "." => FExpr(<>), +} + +Dict = Brace>>>; +Set = Brace>; + +TypeField = Pair>>; + +PatternField = Pair>?>; + +E13: ExprKind = { + Paren>> => EParen(<>), + Lit => ELit(<>), + Name TypeArgsExplicit => EName(<>), + Array>> => EArray(<>), + Tuple>> => ETuple(<>), + Record => ERecord(<>), + "do" => EDo(<>), + "if" >> ?> => EIfElse(<>), + "match" >> > => EMatch(<>), + "loop" => ELoop(<>), + "while" >> => EWhile(<>), + "for" > "in" >> => EFor(<>), + "try" "catch" > ?> => ETry(<>), + Error => EError, +} + +QueryStmts = NonemptyLList; +QueryStmt: QueryStmt = { + "from" > "in" >> => QFrom(<>), + "with" > "=" >> => QWith(<>), + "where" >> => QWhere(<>), + "join" > "in" >> "on" >> => QJoinOn(<>), + "union" >> => QUnion(<>), + "group" >> > <("as" )?> => QGroup(<>), + "over" >> > <("as" )?> => QOver(<>), + "roll" >> <("of" >>)?> <("as" )?> => QRoll(<>), + "compute" >> <("of" >>)?> <("as" )?> => QCompute(<>), + "select" >> => QSelect(<>), + "into" >> => QInto(<>), + "order" >> => QOrder(<>), +} + +Order: Order = { + Epsilon => OAsc, + "desc" => ODesc, +} + +Arms = SeqNonempty; +Arm = > "=>" >>; + +Block: Block = Spanned>?>>> => Block::new(<>.0.0, <>.0.1, <>.1); + +#[inline] Stmts = LList; +Stmt: Stmt = Spanned => Stmt { kind: <>.0, info: <>.1 }; +StmtKind: StmtKind = { + "def" >>> => SDef(<>), + "enum" >> => SEnum(<>), + "type" "=" > ";" => SType(<>), + >> ";" => SExpr(<>), + "val" "=" >> ";" => SVal(<>), + "var" "=" >> ";" => SVar(<>), + Inject => SInject(<>.0, <>.1), + ";" => SNoop, +} + +Variant: Variant = { + Name => VUnit(<>), + Name Paren>> => VTuple(<>), + Name Record => VRecord(<>), +} + +Pattern

      : Pattern = Spanned

      => (<>.0).with(<>.1); + +P0: PatternKind = { + > ":" > => PTypeAnnot(<>), + P1 +} + +P1: PatternKind = { + > "or" > => POr(<>), + > "&" > => PRecordConcat(<>), + > "++" > => PArrayConcat(<>), + P2 +} + +P2: PatternKind = { + Paren> => PParen(<>), + Const => PConst(<>), + Name => PName(<>), + Name Paren>> => PVariantTuple(<>), + Name Record => PVariantRecord(<>), + Tuple> => PTuple(<>), + Record => PRecord(<>), + Array> => PArray(<>), + "_" => PIgnore, + Error => PError, +} + +Type: Type = Spanned => (<>.0).with(<>.1); + +T0: TypeKind = { + "fun" >>> ":" > => TFun(<>), + T1 +} + +T1: TypeKind = { + > "&" > => TRecordConcat(<>), + > "++" > => TArrayConcat(<>), + T2 +} + +T2: TypeKind = { + Paren> => TParen(<>), + Name TypeArgs => TName(<>), + Tuple> => TTuple(<>), + Record => TRecord(<>), + Brack<(Type Snd<";", Int>?)> => TArray(<>.0, <>.1), + "(" ")" => TUnit, + "!" => TNever, + "_" => TIgnore, + Error => TError, +} + +TypeArgsExplicit = Default>>>>; +TypeArgs = Default>>>; + +Record = Brace>; +Array = Brack>; +Tuple = Paren>; + +Lit: Lit = { + Bool => LBool(<>), + Char => LChar(<>), + Int => LInt(<>, None), + IntSuffix => LInt(<>.0, Some(<>.1)), + Float => LFloat(<>, None), + FloatSuffix => LFloat(<>.0, Some(<>.1)), + "(" ")" => LUnit, + String => LString(<>), +} + +Const: Const = { + Bool => CBool(<>), + Char => CChar(<>), + Int => CInt(<>), + Float => CFloat(<>), + "(" ")" => CUnit, + String => CString(<>), +} diff --git a/arc-lang/crates/compiler/passes/parser/src/lib.rs b/arc-lang/crates/compiler/passes/parser/src/lib.rs new file mode 100644 index 000000000..b9ffa2064 --- /dev/null +++ b/arc-lang/crates/compiler/passes/parser/src/lib.rs @@ -0,0 +1,53 @@ +#![allow(macro_use_extern_crate)] + +use context::Context; +use diagnostics::Diagnostics; +use im_rc::Vector; +use info::Info; +use lexer::Lexer; + +pub(crate) mod grammar { + #![allow(warnings)] + include!(concat!(env!("OUT_DIR"), "/grammar.rs")); +} +pub mod context; +pub(crate) mod error; + +pub fn parse_program( + ctx: &mut Context, + name: impl Into, + source: impl Into, +) -> Vector { + let source = source.into(); + let id = ctx.sources.len(); + let mut lexer = Lexer::new(id, &source); + let program = match grammar::ProgramParser::new().parse(id, &mut ctx.diagnostics, &mut lexer) { + Ok(program) => program, + Err(e) => { + ctx.diagnostics + .push_error(crate::error::parser_error(e, id)); + Vector::new() + } + }; + ctx.diagnostics.append(&mut lexer.diagnostics()); + ctx.sources.add(name, source); + program +} + +pub fn parse_splice( + info: Info, + diagnostics: &mut Diagnostics, + source: &str, +) -> Option { + let id = info.id().unwrap(); + let mut lexer = Lexer::new(id, source); + let splice = match grammar::SpliceParser::new().parse(id, diagnostics, &mut lexer) { + Ok(splice) => Some(splice), + Err(e) => { + diagnostics.push_error(crate::error::parser_error(e, id)); + None + } + }; + diagnostics.append(&mut lexer.diagnostics()); + splice +} diff --git a/arc-lang/crates/compiler/src/lib.rs b/arc-lang/crates/compiler/src/lib.rs new file mode 100644 index 000000000..353aa39f0 --- /dev/null +++ b/arc-lang/crates/compiler/src/lib.rs @@ -0,0 +1,242 @@ +#![allow(unused)] + +use anyhow::Result; +use config::Config; +use diagnostics::Error; +use hir::Stmt; +use hir::Type; +use im_rc::Vector; +use logging::Logger; +use sources::Sources; +use value::Value; + +#[derive(Debug)] +pub struct Compiler { + pub config: Config, + pub(crate) ctx0: parser::context::Context, + pub(crate) ctx1: ast_to_hir::context::Context, + pub(crate) ctx2: hir_lambda_lift::context::Context, + pub(crate) ctx3: hir_type_inference::context::Context, + pub(crate) ctx4: hir_patcomp::context::Context, + pub(crate) ctx5: hir_monomorphise::context::Context, + pub(crate) ctx6: hir_interpreter::context::Context, +} + +impl Compiler { + pub fn init(config: Config) -> Self { + Self { + config, + ctx0: Default::default(), + ctx1: Default::default(), + ctx2: Default::default(), + ctx3: Default::default(), + ctx4: Default::default(), + ctx5: Default::default(), + ctx6: Default::default(), + } + } + + pub fn new(config: Config, logger: Logger) -> Self { + let mut this = Self::init(config); + this.ctx0.diagnostics.backtrace = this.config.show.backtrace; + this.ctx1.diagnostics.backtrace = this.config.show.backtrace; + this.ctx2.diagnostics.backtrace = this.config.show.backtrace; + this.ctx3.diagnostics.backtrace = this.config.show.backtrace; + this.ctx4.diagnostics.backtrace = this.config.show.backtrace; + this.ctx5.diagnostics.backtrace = this.config.show.backtrace; + this.ctx6.ctx7.diagnostics.backtrace = this.config.show.backtrace; + this.ctx6.ctx8.diagnostics.backtrace = this.config.show.backtrace; + this.ctx6.ctx9.diagnostics.backtrace = this.config.show.backtrace; + + this.ctx0.diagnostics.failfast = this.config.failfast; + this.ctx1.diagnostics.failfast = this.config.failfast; + this.ctx2.diagnostics.failfast = this.config.failfast; + this.ctx3.diagnostics.failfast = this.config.failfast; + this.ctx4.diagnostics.failfast = this.config.failfast; + this.ctx5.diagnostics.failfast = this.config.failfast; + this.ctx6.ctx7.diagnostics.failfast = this.config.failfast; + this.ctx6.ctx8.diagnostics.failfast = this.config.failfast; + this.ctx6.ctx9.diagnostics.failfast = this.config.failfast; + this + } + + pub fn sources(&mut self) -> &mut Sources { + &mut self.ctx0.sources + } + + // pub fn dataflow(&mut self) -> &mut Dataflow { + // &mut self.ctx6.dataflow + // } + + pub fn parse( + &mut self, + name: impl Into, + source: impl Into, + ) -> Vector { + let ss = parser::parse_program(&mut self.ctx0, name, source); + if self.config.show.parsed { + self.show_ast(&ss); + return Vector::new(); + } + ss + } + + pub fn ast_to_hir(&mut self, ss: Vector) -> Vector { + let ss = ast_to_hir::process(&mut self.ctx1, ss); + if self.config.show.resolved { + if !ss.is_empty() { + self.show_hir(&ss); + } + return Vector::new(); + } else { + ss + } + } + + pub fn infer(&mut self, ss: Vector) -> Vector { + let ss = hir_type_inference::process(&mut self.ctx3, ss); + if self.config.show.inferred { + if !ss.is_empty() { + self.show_hir(&ss); + } + return Vector::new(); + } else { + ss + } + } + + pub fn patcomp(&mut self, ss: Vector) -> Vector { + let ss = hir_patcomp::process(&mut self.ctx4, ss); + if self.config.show.patcomped { + if !ss.is_empty() { + self.show_hir(&ss); + } + return Vector::new(); + } else { + ss + } + } + + pub fn monomorphise(&mut self, ss: Vector) -> Vector { + let ss = hir_monomorphise::process(&mut self.ctx5, ss); + if self.config.show.monomorphised { + if !ss.is_empty() { + self.show_hir(&ss); + } + return Vector::new(); + } else { + ss + } + } + + pub fn interpret(&mut self, ss: Vector) { + hir_interpreter::process(&mut self.ctx6, ss) + } + + pub fn clear_caches(&mut self) { + self.ctx6.ctx10.clear_caches(); + } + + pub fn show_caches(&mut self) { + self.ctx6.ctx10.show_caches(); + } + + pub fn stmts(&self) -> Vector { + self.ctx5.stmts.clone() + } + + pub fn compile_prelude(&mut self) -> Result<()> { + let stmts = ast_prelude::prelude(); + let stmts = self.ast_to_hir(stmts); + let stmts = self.infer(stmts); + let stmts = self.patcomp(stmts); + let stmts = self.monomorphise(stmts); + if self.has_errors() { + self.emit_errors(); + panic!("Prelude should have compiled successfully."); + } + if self.config.show.prelude { + codegen::Context::stderr() + .debug() + .writeln(&stmts, write_hir::write)?; + } + self.interpret(stmts); + Ok(()) + } + + pub fn has_errors(&self) -> bool { + self.ctx0.diagnostics.has_errors() + || self.ctx1.diagnostics.has_errors() + || self.ctx2.diagnostics.has_errors() + || self.ctx3.diagnostics.has_errors() + || self.ctx4.diagnostics.has_errors() + || self.ctx5.diagnostics.has_errors() + || self.ctx6.ctx8.diagnostics.has_errors() + } + + pub fn emit_errors(&mut self) { + let sources = &mut self.ctx0.sources; + let opt = &self.config; + self.ctx0.diagnostics.emit_errors(sources, opt); + self.ctx1.diagnostics.emit_errors(sources, opt); + self.ctx2.diagnostics.emit_errors(sources, opt); + self.ctx3.diagnostics.emit_errors(sources, opt); + self.ctx4.diagnostics.emit_errors(sources, opt); + self.ctx5.diagnostics.emit_errors(sources, opt); + self.ctx6.ctx7.diagnostics.emit_errors(sources, opt); + self.ctx6.ctx8.diagnostics.emit_errors(sources, opt); + self.ctx6.ctx9.diagnostics.emit_errors(sources, opt); + self.ctx6.ctx10.diagnostics.emit_errors(sources, opt); + } + + pub fn clear(&mut self) { + self.ctx0 = Default::default(); + self.ctx1 = Default::default(); + self.ctx2 = Default::default(); + self.ctx3 = Default::default(); + self.ctx4 = Default::default(); + self.ctx5 = Default::default(); + self.ctx6 = Default::default(); + self.ctx6.ctx7 = Default::default(); + self.ctx6.ctx8 = Default::default(); + self.ctx6.ctx9 = Default::default(); + self.ctx6.ctx10 = Default::default(); + } + + pub fn print_value_type(&self, vt: &(Value, Type)) -> Result<(), std::io::Error> { + codegen::Context::stderr() + .colors(true) + .writeln(vt, write_value::write_value_type)?; + Ok(()) + } + + pub fn status(&self) {} + + pub fn show_ast(&self, ast: &Vector) -> Result<()> { + codegen::Context::stderr() + .with_opt(self.config.show) + .writeln(ast, write_ast::write)?; + Ok(()) + } + + pub fn show_hir(&self, hir: &Vector) -> Result<()> { + codegen::Context::stderr() + .with_opt(self.config.show) + .writeln(hir, write_hir::write)?; + Ok(()) + } + + pub fn show_mlir(&self, mlir: &Vector) -> Result<()> { + codegen::Context::stderr() + .with_opt(self.config.show) + .writeln(mlir, write_mlir::write)?; + Ok(()) + } + + pub fn show_rust(&self, rust: &Vector) -> Result<()> { + codegen::Context::stderr() + .with_opt(self.config.show) + .writeln(rust, write_rust::write)?; + Ok(()) + } +} diff --git a/arc-lang/crates/config/Cargo.toml b/arc-lang/crates/config/Cargo.toml new file mode 100644 index 000000000..b9463e4ea --- /dev/null +++ b/arc-lang/crates/config/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "config" +version.workspace = true +edition.workspace = true + +[dependencies] +clap.workspace = true diff --git a/arc-lang/crates/config/src/lib.rs b/arc-lang/crates/config/src/lib.rs new file mode 100644 index 000000000..0fcc8f2d2 --- /dev/null +++ b/arc-lang/crates/config/src/lib.rs @@ -0,0 +1,85 @@ +use clap::Parser; +use std::ffi::OsString; +use std::path::PathBuf; + +fn history() -> OsString { + std::env::temp_dir() + .join("arc-lang") + .join("history.txt") + .into_os_string() +} + +#[derive(Debug, Clone, Parser)] +pub struct Config { + /// Read source from file + pub file: Option, + /// Loads file statement-by-statement into the REPL. + #[clap(long)] + pub interactive: bool, + /// The history file to use + #[clap(long, default_value = history())] + pub history: PathBuf, + /// Clear build caches + #[clap(long)] + pub clear_caches: bool, + /// Print version + #[clap(long)] + pub version: bool, + #[clap(flatten)] + pub show: Show, + /// Fail on first error + #[clap(long)] + pub failfast: bool, +} + +#[derive(Debug, Default, Clone, Copy, Parser)] +pub struct Show { + /// Show build caches + #[clap(long = "show-caches")] + pub caches: bool, + /// Show IR after appending prelude + #[clap(long = "show-prelude")] + pub prelude: bool, + /// Show IR after parsing + #[clap(long = "show-parsed")] + pub parsed: bool, + /// Show IR after name resolution + #[clap(long = "show-resolved")] + pub resolved: bool, + /// Show IR after type inference + #[clap(long = "show-inferred")] + pub inferred: bool, + /// Show IR after pattern compilation + #[clap(long = "show-patcomped")] + pub patcomped: bool, + /// Show IR after monomorphisation + #[clap(long = "show-monomorphised")] + pub monomorphised: bool, + /// Show IR after interpretation + #[clap(long = "show-optimised")] + pub dataflow: bool, + /// Show IR after reachability analysis + #[clap(long = "show-reachable")] + pub reachable: bool, + /// Show Rust + #[clap(long = "show-mlir")] + pub mlir: bool, + /// Show MLIR + #[clap(long = "show-rust")] + pub rust: bool, + /// Show type annotations of expressions and patterns + #[clap(long = "show-types")] + pub types: bool, + /// Show warnings + #[clap(long = "show-warnings")] + pub warnings: bool, + /// Show hints + #[clap(long = "show-hints")] + pub hints: bool, + /// Show backtrace of the location in the compiler where errors are created. Used for debugging + #[clap(long = "show-backtrace")] + pub backtrace: bool, + /// Show colors + #[clap(long = "show-colors", default_value_t = true)] + pub colors: bool, +} diff --git a/arc-lang/crates/logging/Cargo.toml b/arc-lang/crates/logging/Cargo.toml new file mode 100644 index 000000000..d0dddd2ba --- /dev/null +++ b/arc-lang/crates/logging/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "logging" +version.workspace = true +edition.workspace = true +authors.workspace = true +homepage.workspace = true +repository.workspace = true +readme.workspace = true + +[dependencies] +tracing.workspace = true +tracing-subscriber.workspace = true diff --git a/arc-lang/crates/logging/src/lib.rs b/arc-lang/crates/logging/src/lib.rs new file mode 100644 index 000000000..643c11a50 --- /dev/null +++ b/arc-lang/crates/logging/src/lib.rs @@ -0,0 +1,62 @@ +use std::path::Path; +use std::str::FromStr; + +use tracing_subscriber::prelude::*; +use tracing_subscriber::reload::Handle; +use tracing_subscriber::EnvFilter; +use tracing_subscriber::Registry; + +pub struct Logger { + handle: Handle, +} + +pub const FILTER: &str = "info,librdkafka=off,rdkafka::client=off"; + +impl Logger { + pub fn file(path: &Path) -> Self { + let (layer, handle) = + tracing_subscriber::reload::Layer::new(EnvFilter::from_str(FILTER).unwrap()); + let file = std::fs::File::create(path).expect("failed to create log file"); + let fmt = tracing_subscriber::fmt::layer() + .with_file(false) + .with_line_number(false) + .with_ansi(false) + .compact() + .with_writer(file) + .with_filter(layer); + tracing_subscriber::registry().with(fmt).init(); + + Self { handle } + } + + pub fn stderr() -> Self { + let (layer, handle) = + tracing_subscriber::reload::Layer::new(EnvFilter::from_str(FILTER).unwrap()); + let fmt = tracing_subscriber::fmt::layer() + .with_file(false) + .with_line_number(false) + .compact() + .with_writer(std::io::stderr) + .with_filter(layer); + tracing_subscriber::registry().with(fmt).init(); + Self { handle } + } + + pub fn reload(&self, filter: &str) { + self.handle + .reload(EnvFilter::from_str(filter).unwrap()) + .unwrap(); + } + + pub fn enable_kafka(&self) { + self.handle + .reload(EnvFilter::from_str("info,librdkafka=on,rdkafka::client=on").unwrap()) + .unwrap(); + } + + pub fn disable_kafka(&self) { + self.handle + .reload(EnvFilter::from_str("info,librdkafka=off,rdkafka::client=off").unwrap()) + .unwrap(); + } +} diff --git a/arc-lang/crates/manager/Cargo.toml b/arc-lang/crates/manager/Cargo.toml new file mode 100644 index 000000000..a952ede1c --- /dev/null +++ b/arc-lang/crates/manager/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "daemon" +version.workspace = true +edition.workspace = true + +[dependencies] diff --git a/arc-lang/crates/manager/src/lib.rs b/arc-lang/crates/manager/src/lib.rs new file mode 100644 index 000000000..c3b5dc91a --- /dev/null +++ b/arc-lang/crates/manager/src/lib.rs @@ -0,0 +1,13 @@ +pub struct Manager { + pub pids: Vec, +} + +impl Manager { + pub fn new() -> Manager { + Manager { pids: Vec::new() } + } + + pub fn spawn(&mut self) { + + } +} diff --git a/arc-lang/crates/repl/Cargo.toml b/arc-lang/crates/repl/Cargo.toml new file mode 100644 index 000000000..22b6aa9d0 --- /dev/null +++ b/arc-lang/crates/repl/Cargo.toml @@ -0,0 +1,24 @@ +[package] +name = "repl" +version.workspace = true +edition.workspace = true + +[dependencies] +compiler.workspace = true +im-rc.workspace = true +info.workspace = true +codegen.workspace = true +config.workspace = true +build.workspace = true +lexer.workspace = true +rustyline.workspace = true +colored.workspace = true +regex.workspace = true +clap.workspace = true +shlex.workspace = true +anyhow.workspace = true +colors.workspace = true + +completer.workspace = true +highlighter.workspace = true +validator.workspace = true diff --git a/arc-lang/crates/repl/completer/Cargo.toml b/arc-lang/crates/repl/completer/Cargo.toml new file mode 100644 index 000000000..31478fb73 --- /dev/null +++ b/arc-lang/crates/repl/completer/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "completer" +version = "0.1.0" +edition = "2021" + +[dependencies] +lexer.workspace = true +rustyline.workspace = true +clap.workspace = true diff --git a/arc-lang/crates/repl/completer/src/lib.rs b/arc-lang/crates/repl/completer/src/lib.rs new file mode 100644 index 000000000..76b3182b8 --- /dev/null +++ b/arc-lang/crates/repl/completer/src/lib.rs @@ -0,0 +1,48 @@ +use lexer::tokens::KEYWORDS; +use rustyline::completion::Completer; +use rustyline::completion::Pair; +use rustyline::Result; + +pub struct KeywordCompleter; + +impl KeywordCompleter { + pub fn new() -> Self { + Self + } +} + +impl Completer for KeywordCompleter { + type Candidate = Pair; + + fn complete( + &self, + line: &str, + pos: usize, + _ctx: &rustyline::Context<'_>, + ) -> Result<(usize, Vec)> { + let mut start = pos - 1; + let mut end = pos; + let chars = line.chars().collect::>(); + while start > 0 { + match chars[start] { + 'a'..='z' => start -= 1, + _ => break, + } + } + while end < line.len() { + match chars[end] { + 'a'..='z' => end += 1, + _ => break, + } + } + let matches = KEYWORDS + .into_iter() + .filter(|cmd| cmd.starts_with(&line[start..end])) + .map(|x| Pair { + display: x.to_string(), + replacement: x.to_string(), + }) + .collect(); + Ok((start, matches)) + } +} diff --git a/arc-lang/crates/repl/highlighter/Cargo.toml b/arc-lang/crates/repl/highlighter/Cargo.toml new file mode 100644 index 000000000..9d69692c2 --- /dev/null +++ b/arc-lang/crates/repl/highlighter/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "highlighter" +version.workspace = true +edition.workspace = true + +[dependencies] +rustyline.workspace = true +colors.workspace = true +colored.workspace = true +lexer.workspace = true +regex.workspace = true +clap.workspace = true diff --git a/arc-lang/crates/repl/highlighter/src/lib.rs b/arc-lang/crates/repl/highlighter/src/lib.rs new file mode 100644 index 000000000..1a0699782 --- /dev/null +++ b/arc-lang/crates/repl/highlighter/src/lib.rs @@ -0,0 +1,83 @@ +#![allow(unused)] +use std::borrow::Cow; +use std::fmt::Display; + +use colored::Colorize; +use colors::BUILTIN_COLOR; +use colors::COMMENT_COLOR; +use colors::KEYWORD_COLOR; +use colors::NUMERIC_COLOR; +use colors::STRING_COLOR; +use lexer::tokens::BUILTINS; +use lexer::tokens::KEYWORDS; +use lexer::tokens::NUMERICS; +use lexer::tokens::STRINGS; +use regex::Regex; +use rustyline::highlight::Highlighter; + +pub struct SyntaxHighlighter { + pub regex: Regex, +} + +fn join(patterns: impl IntoIterator) -> String { + patterns + .into_iter() + .map(|pattern| pattern.to_string()) + .collect::>() + .join("|") +} + +fn capture_group(name: impl Display, pattern: impl Display) -> String { + format!(r"(?P<{name}>{pattern})") +} + +fn word(pattern: impl Display) -> String { + format!(r"\b(?:{pattern})\b") +} + +fn followed_by(a: impl Display, b: impl Display) -> String { + format!(r"{a} *{b}") +} + +fn maybe(a: impl Display) -> String { + format!(r"(?:{a})?") +} + +impl SyntaxHighlighter { + pub fn new() -> Self { + let pattern = &join(&[ + capture_group("keyword", &word(join(KEYWORDS))), + capture_group("numeric", &word(join(NUMERICS))), + capture_group("string", &join(STRINGS)), + capture_group("builtin", &word(join(BUILTINS))), + capture_group("comment", r"#.*"), + ]); + Self { + regex: Regex::new(pattern).unwrap(), + } + } +} + +impl Highlighter for SyntaxHighlighter { + fn highlight<'l>(&self, line: &'l str, _pos: usize) -> Cow<'l, str> { + self.regex.replace_all(line, |caps: ®ex::Captures| { + if let Some(s) = caps.name("keyword") { + s.as_str().color(KEYWORD_COLOR).bold().to_string() + } else if let Some(s) = caps.name("numeric") { + s.as_str().color(NUMERIC_COLOR).to_string() + } else if let Some(s) = caps.name("string") { + s.as_str().color(STRING_COLOR).to_string() + } else if let Some(s) = caps.name("builtin") { + s.as_str().color(BUILTIN_COLOR).bold().to_string() + } else if let Some(s) = caps.name("comment") { + s.as_str().color(COMMENT_COLOR).to_string() + } else { + unreachable!() + } + }) + } + + fn highlight_char(&self, line: &str, _pos: usize) -> bool { + self.regex.is_match(line) + } +} diff --git a/arc-lang/crates/repl/src/context.rs b/arc-lang/crates/repl/src/context.rs new file mode 100644 index 000000000..a51c5d62e --- /dev/null +++ b/arc-lang/crates/repl/src/context.rs @@ -0,0 +1,102 @@ +use anyhow::Result; +use colored::Color; +use im_rc::Vector; +use rustyline::config::Configurer; +use rustyline::error::ReadlineError; +use rustyline::history::FileHistory; +use rustyline::history::MemHistory; +use rustyline::Cmd; +use rustyline::CompletionType; +use rustyline::EditMode; +use rustyline::Editor; +use rustyline::Helper; +use rustyline::KeyCode; +use rustyline::KeyEvent; +use rustyline::Modifiers; + +use compiler::Compiler; + +use super::helper::Repl; + +#[derive(Debug)] +pub(crate) struct Context { + pub(crate) count: usize, + pub(crate) editor: Editor, + pub(crate) compiler: Compiler, +} + +impl Drop for Context { + fn drop(&mut self) { + self.save_history(); + } +} + +impl Context { + pub(crate) fn new(compiler: Compiler) -> Result { + let mut this = Self { + count: 0, + editor: Editor::new()?, + compiler, + }; + this.editor.set_helper(Some(Repl::default())); + this.config()?; + this.color(Color::Green); + if !this.compiler.config.history.exists() { + std::fs::create_dir_all(this.compiler.config.history.parent().unwrap())?; + std::fs::File::create(&this.compiler.config.history)?; + } + this.load_history(); + Ok(this) + } + + pub(crate) fn save_history(&mut self) { + self.editor.save_history(&self.compiler.config.history).ok(); + } + + pub(crate) fn load_history(&mut self) { + self.editor.load_history(&self.compiler.config.history).ok(); + } + + pub(crate) fn color(&mut self, color: Color) { + self.editor.helper_mut().unwrap().prompt_color = color; + } + + pub(crate) fn readline_initial( + &mut self, + s: &str, + ) -> std::result::Result { + self.count += 1; + self.editor.readline_with_initial(">> ", (s, "")) + } + + pub(crate) fn readline(&mut self) -> std::result::Result { + self.count += 1; + self.editor.readline(">> ") + } + + pub(crate) fn config(&mut self) -> Result<()> { + self.editor.set_history_ignore_dups(true)?; + self.editor.set_edit_mode(EditMode::Vi); + self.editor.set_completion_type(CompletionType::List); + self.editor + .bind_sequence(KeyEvent::ctrl('j'), Cmd::NextHistory); + self.editor + .bind_sequence(KeyEvent::ctrl('k'), Cmd::PreviousHistory); + self.editor + .bind_sequence(KeyEvent::ctrl('l'), Cmd::ClearScreen); + self.editor + .bind_sequence(KeyEvent::ctrl('c'), Cmd::Interrupt); + self.editor.bind_sequence(KeyEvent::ctrl('v'), Cmd::YankPop); + self.editor.bind_sequence( + KeyEvent::ctrl('M'), + Cmd::AcceptOrInsertLine { + accept_in_the_middle: false, + }, + ); + self.editor.bind_sequence( + KeyEvent(KeyCode::Enter, Modifiers::CTRL), + Cmd::HistorySearchForward, + ); + Ok(()) + } +} diff --git a/arc-lang/crates/repl/src/helper/hinter.rs b/arc-lang/crates/repl/src/helper/hinter.rs new file mode 100644 index 000000000..12ed69e38 --- /dev/null +++ b/arc-lang/crates/repl/src/helper/hinter.rs @@ -0,0 +1,5 @@ +use rustyline::hint::Hinter; +use rustyline::Hinter; + +use super::Repl; + diff --git a/arc-lang/crates/repl/src/helper/mod.rs b/arc-lang/crates/repl/src/helper/mod.rs new file mode 100644 index 000000000..0dfdf1233 --- /dev/null +++ b/arc-lang/crates/repl/src/helper/mod.rs @@ -0,0 +1,148 @@ +use std::borrow::Cow; + +use colored::Color; +use colored::Color::Green; +use colored::Colorize; +use rustyline::completion::Completer; +use rustyline::completion::FilenameCompleter; +use rustyline::completion::Pair; +use rustyline::config::Configurer; +use rustyline::highlight::Highlighter; +use rustyline::highlight::MatchingBracketHighlighter; +use rustyline::hint::Hinter; +use rustyline::hint::HistoryHinter; +use rustyline::history::FileHistory; +use rustyline::validate::MatchingBracketValidator; +use rustyline::validate::ValidationContext; +use rustyline::validate::ValidationResult; +use rustyline::validate::ValidationResult::Incomplete; +use rustyline::validate::ValidationResult::Invalid; +use rustyline::validate::ValidationResult::Valid; +use rustyline::validate::Validator; +use rustyline::Cmd; +use rustyline::CompletionType; +use rustyline::EditMode; +use rustyline::Editor; +use rustyline::Helper; +use rustyline::KeyCode; +use rustyline::KeyEvent; +use rustyline::Modifiers; +use rustyline::Result; + +use completer::KeywordCompleter; +use highlighter::SyntaxHighlighter; +use validator::StatementValidator; + +pub(crate) struct Repl { + validator1: MatchingBracketValidator, + validator2: StatementValidator, + completer1: FilenameCompleter, + completer2: KeywordCompleter, + highlighter1: SyntaxHighlighter, + highlighter2: MatchingBracketHighlighter, + hinter: HistoryHinter, + pub(crate) prompt_color: Color, +} + +impl Helper for Repl {} + +impl Default for Repl { + fn default() -> Self { + Self { + validator1: MatchingBracketValidator::new(), + validator2: StatementValidator::new(), + completer1: FilenameCompleter::new(), + completer2: KeywordCompleter::new(), + highlighter1: SyntaxHighlighter::new(), + highlighter2: MatchingBracketHighlighter::new(), + hinter: HistoryHinter {}, + prompt_color: Green, + } + } +} + +impl Repl { + pub(crate) fn new() -> Self { + Self::default() + } +} + +impl Completer for Repl { + type Candidate = Pair; + + fn complete( + &self, + line: &str, + pos: usize, + ctx: &rustyline::Context<'_>, + ) -> Result<(usize, Vec)> { + let (start, matches) = self.completer1.complete(line, pos, ctx)?; + if !matches.is_empty() { + Ok((start, matches)) + } else { + self.completer2.complete(line, pos, ctx) + } + } +} + +impl Validator for Repl { + fn validate(&self, ctx: &mut ValidationContext) -> Result { + if let r @ (Incomplete | Invalid(_)) = self.validator1.validate(ctx)? { + return Ok(r); + } + if let r @ (Incomplete | Invalid(_)) = self.validator2.validate(ctx)? { + return Ok(r); + } + Ok(Valid(None)) + } +} + +impl Highlighter for Repl { + fn highlight<'l>(&self, line: &'l str, pos: usize) -> Cow<'l, str> { + let line = self.highlighter1.highlight(line, pos); + match line { + Cow::Borrowed(line) => self.highlighter2.highlight(line, pos), + Cow::Owned(line) => match self.highlighter2.highlight(line.as_str(), pos) { + Cow::Borrowed(line) => Cow::Owned(line.to_string()), + Cow::Owned(line) => Cow::Owned(line), + }, + } + } + + fn highlight_prompt<'b, 's: 'b, 'p: 'b>( + &'s self, + prompt: &'p str, + default: bool, + ) -> Cow<'b, str> { + if default { + Cow::Owned(prompt.color(self.prompt_color).to_string()) + } else { + Cow::Borrowed(prompt) + } + } + + fn highlight_hint<'h>(&self, hint: &'h str) -> Cow<'h, str> { + Cow::Borrowed(hint) + } + + fn highlight_candidate<'c>( + &self, + candidate: &'c str, // FIXME should be Completer::Candidate + completion: CompletionType, + ) -> Cow<'c, str> { + let _ = completion; + Cow::Borrowed(candidate) + } + + fn highlight_char(&self, line: &str, pos: usize) -> bool { + self.highlighter1.highlight_char(line, pos) || self.highlighter2.highlight_char(line, pos) + } +} + +impl Hinter for Repl { + type Hint = String; + + fn hint(&self, line: &str, pos: usize, ctx: &rustyline::Context<'_>) -> Option { + self.hinter.hint(line, pos, ctx) + } +} diff --git a/arc-lang/crates/repl/src/lib.rs b/arc-lang/crates/repl/src/lib.rs new file mode 100644 index 000000000..4d781ee31 --- /dev/null +++ b/arc-lang/crates/repl/src/lib.rs @@ -0,0 +1,81 @@ +#![allow(unused)] + +use std::io; +use std::io::LineWriter; +use std::io::Write; +use std::process::exit; + +use anyhow::Result; +use colored::Color; +use colored::Color::Blue; +use colored::Color::Green; +use colored::Color::Red; +use colored::Colorize; +use rustyline::completion::FilenameCompleter; +use rustyline::config::Configurer; +use rustyline::error::ReadlineError; +use rustyline::highlight::MatchingBracketHighlighter; +use rustyline::hint::HistoryHinter; +use rustyline::history::FileHistory; +use rustyline::validate::MatchingBracketValidator; +use rustyline::Cmd; +use rustyline::CompletionType; +use rustyline::EditMode; +use rustyline::Editor; +use rustyline::EventHandler; + +use compiler::Compiler; +use validator::StatementIterator; + +use self::context::Context; + +mod context; +pub mod helper; + +pub fn repl(compiler: Compiler, initial: Option) -> Result<()> { + let mut ctx = Context::new(compiler)?; + let mut stmts = initial.iter().flat_map(|s| StatementIterator::new(s)); + loop { + let input = if let Some(stmt) = stmts.next() { + ctx.editor.readline_with_initial(">> ", (stmt, "")) + } else { + ctx.editor.readline(">> ") + }; + match input { + Ok(input) => { + ctx.editor.add_history_entry(&input); + if let Err(e) = handle(&mut ctx, input) { + eprintln!("{}", e); + ctx.color(Red); + } else { + ctx.color(Green); + } + } + Err(ReadlineError::Interrupted) => { + eprintln!("Interrupted"); + ctx.color(Red); + } + Err(ReadlineError::Eof) => break, + Err(err) => { + eprintln!("Error: {:?}", err); + break; + } + } + } + Ok(()) +} + +fn handle(ctx: &mut Context, input: String) -> Result<()> { + let stmts = ctx.compiler.parse(ctx.count.to_string(), input); + let stmts = ctx.compiler.ast_to_hir(stmts); + let stmts = ctx.compiler.infer(stmts); + let stmts = ctx.compiler.patcomp(stmts); + let stmts = ctx.compiler.monomorphise(stmts); + if ctx.compiler.has_errors() { + ctx.color(Red); + ctx.compiler.emit_errors(); + return Ok(()); + } + ctx.compiler.interpret(stmts); + Ok(()) +} diff --git a/arc-lang/crates/repl/validator/Cargo.toml b/arc-lang/crates/repl/validator/Cargo.toml new file mode 100644 index 000000000..ed5e4c564 --- /dev/null +++ b/arc-lang/crates/repl/validator/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "validator" +version.workspace = true +edition.workspace = true + +[dependencies] +rustyline.workspace = true +colored.workspace = true diff --git a/arc-lang/crates/repl/validator/src/lib.rs b/arc-lang/crates/repl/validator/src/lib.rs new file mode 100644 index 000000000..5bace06d8 --- /dev/null +++ b/arc-lang/crates/repl/validator/src/lib.rs @@ -0,0 +1,72 @@ +use colored::Color::Blue; +use colored::Colorize; +use rustyline::validate::ValidationContext; +use rustyline::validate::ValidationResult; +use rustyline::validate::Validator; +use rustyline::Result; + +#[derive(Default)] +pub struct StatementValidator; + +impl StatementValidator { + pub fn new() -> Self { + Self::default() + } +} + +impl Validator for StatementValidator { + fn validate(&self, ctx: &mut ValidationContext) -> Result { + let input = ctx.input(); + let stmts = StatementIterator::new(input); + if (stmts.count() > 0 && input.ends_with(";")) || input.ends_with("\n") { + Ok(ValidationResult::Valid(None)) + } else { + if input.is_empty() { + Ok(ValidationResult::Invalid(Some( + " Enter statement".color(Blue).to_string(), + ))) + } else { + return Ok(ValidationResult::Incomplete); + } + } + } +} + +pub struct StatementIterator<'a> { + input: &'a str, +} + +impl<'a> StatementIterator<'a> { + pub fn new(input: &'a str) -> Self { + Self { + input: input.trim(), + } + } +} + +impl<'a> Iterator for StatementIterator<'a> { + type Item = &'a str; + + fn next(&mut self) -> Option { + let mut depth = 0; + let mut end = 0; + for (i, c) in self.input.char_indices() { + match c { + '(' | '{' | '[' => depth += 1, + ')' | '}' | ']' => depth -= 1, + ';' if depth == 0 => { + end = i; + break; + } + _ => continue, + } + } + if end == 0 { + None + } else { + let stmt = &self.input[..end + 1].trim(); + self.input = &self.input[end + 1..]; + Some(stmt) + } + } +} diff --git a/arc-lang/crates/runtime/Cargo.toml b/arc-lang/crates/runtime/Cargo.toml new file mode 100644 index 000000000..927b29421 --- /dev/null +++ b/arc-lang/crates/runtime/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "runtime" +version.workspace = true +edition.workspace = true + +[dependencies] +macros.workspace = true +builtins.workspace = true +runner.workspace = true +state.workspace = true +formats.workspace = true + +tokio.workspace = true +serde.workspace = true +time.workspace = true +hexf.workspace = true diff --git a/arc-lang/crates/runtime/builtins/.cargo/config b/arc-lang/crates/runtime/builtins/.cargo/config new file mode 100644 index 000000000..bd3e57a4b --- /dev/null +++ b/arc-lang/crates/runtime/builtins/.cargo/config @@ -0,0 +1,8 @@ +[target.x86_64-unknown-linux-gnu] +rustflags = [ "-Clink-args=-Wl,-rpath,\\$ORIGIN" ] + +[target.aarch64-apple-darwin] +rustflags = [ "-Clink-args=-Wl,-rpath,@loader_path" ] + +[target.x86_64-apple-darwin] +rustflags = [ "-Clink-args=-Wl,-rpath,@loader_path" ] diff --git a/arc-lang/crates/runtime/builtins/Cargo.toml b/arc-lang/crates/runtime/builtins/Cargo.toml new file mode 100644 index 000000000..fa5a89437 --- /dev/null +++ b/arc-lang/crates/runtime/builtins/Cargo.toml @@ -0,0 +1,28 @@ +[package] +name = "builtins" +version.workspace = true +edition.workspace = true + +[dependencies] +macros.workspace = true +image.workspace = true +ort.workspace = true +ndarray.workspace = true +time.workspace = true +serde.workspace = true +float-cmp.workspace = true +tokio.workspace = true +tokio-util.workspace = true +formats.workspace = true +num.workspace = true +num-traits.workspace = true +url.workspace = true +tokio-stream.workspace = true +futures.workspace = true +tracing.workspace = true +once_cell.workspace = true +derive_more.workspace = true +minus.workspace = true +hyper.workspace = true +# ouroborus.workspace = true +# polars.workspace = true diff --git a/arc-lang/crates/runtime/builtins/src/aggregator.rs b/arc-lang/crates/runtime/builtins/src/aggregator.rs new file mode 100644 index 000000000..ea7bdb4c8 --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/aggregator.rs @@ -0,0 +1,31 @@ +#![allow(unused)] + +use serde::Deserialize; +use serde::Serialize; + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[repr(C)] +pub enum Aggregator { + Monoid { + lift: F0, + combine: F1, + identity: F2, + lower: F3, + }, +} + +impl Aggregator P, fn(P, P) -> P, fn() -> P, fn(P) -> O> { + pub fn monoid( + lift: fn(I) -> P, + combine: fn(P, P) -> P, + identity: fn() -> P, + lower: fn(P) -> O, + ) -> Self { + Self::Monoid { + lift, + combine, + identity, + lower, + } + } +} diff --git a/arc-lang/crates/runtime/builtins/src/array.rs b/arc-lang/crates/runtime/builtins/src/array.rs new file mode 100644 index 000000000..49b3e7379 --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/array.rs @@ -0,0 +1,89 @@ +use macros::Send; +use macros::Sync; +use macros::Unpin; + +use std::convert::TryInto; +use std::marker::PhantomData; +use std::mem; +use std::mem::MaybeUninit; + +use serde::de::SeqAccess; +use serde::de::Visitor; +use serde::ser::SerializeTuple; +use serde::Deserialize; +use serde::Deserializer; +use serde::Serialize; +use serde::Serializer; + +use crate::traits::Data; +use crate::traits::DeepClone; + +#[derive(Clone, Debug, Send, Sync, Unpin, Eq, PartialEq, Hash)] +#[repr(C)] +pub struct Array(pub [T; N]); + +impl DeepClone for Array { + fn deep_clone(&self) -> Self { + let data = { + let mut data: [MaybeUninit; N] = unsafe { MaybeUninit::uninit().assume_init() }; + for (new, old) in data.iter_mut().zip(self.0.iter()) { + new.write(old.deep_clone()); + } + unsafe { mem::transmute_copy::<[MaybeUninit; N], [T; N]>(&data) } + }; + Array(data) + } +} + +impl Array { + pub fn new(data: [T; N]) -> Self { + Array(data) + } +} + +impl From<[T; N]> for Array { + fn from(data: [T; N]) -> Self { + Array(data) + } +} + +impl Serialize for Array { + fn serialize(&self, s: S) -> Result { + let mut s = s.serialize_tuple(N)?; + for item in &self.0 { + s.serialize_element(item)?; + } + s.end() + } +} + +impl<'de, T: Data, const N: usize> Deserialize<'de> for Array { + fn deserialize>(d: D) -> Result, D::Error> { + Ok(Array(d.deserialize_tuple(N, ArrayVisitor(PhantomData))?)) + } +} + +struct ArrayVisitor(PhantomData); + +impl<'de, T: Data, const N: usize> Visitor<'de> for ArrayVisitor { + type Value = [T; N]; + + fn expecting(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result { + formatter.write_str(&format!("an array of length {}", N)) + } + + #[inline] + fn visit_seq>(self, mut seq: A) -> Result { + let mut data = Vec::with_capacity(N); + for _ in 0..N { + match (seq.next_element())? { + Some(val) => data.push(val), + None => return Err(serde::de::Error::invalid_length(N, &self)), + } + } + match data.try_into() { + Ok(arr) => Ok(arr), + Err(_) => unreachable!(), + } + } +} diff --git a/arc-lang/crates/runtime/builtins/src/blob.rs b/arc-lang/crates/runtime/builtins/src/blob.rs new file mode 100644 index 000000000..73c2f479a --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/blob.rs @@ -0,0 +1,14 @@ +use serde::Deserialize; +use serde::Serialize; + +use crate::cow::Cow; + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[repr(C)] +pub struct Blob(pub Cow>); + +impl Blob { + pub fn new(bytes: std::vec::Vec) -> Self { + Self(Cow::new(bytes)) + } +} diff --git a/arc-lang/crates/runtime/builtins/src/cow.rs b/arc-lang/crates/runtime/builtins/src/cow.rs new file mode 100644 index 000000000..36e61f96c --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/cow.rs @@ -0,0 +1,95 @@ +use macros::DeepClone; +use macros::Send; +use macros::Sync; +use macros::Unpin; +use serde::Deserialize; +use serde::Serialize; + +use crate::traits::DeepClone; + +#[derive( + DeepClone, + Clone, + Debug, + Send, + Sync, + Unpin, + Serialize, + Deserialize, + Eq, + PartialEq, + Hash, + Ord, + PartialOrd, +)] +#[repr(C)] +pub struct Cow(pub std::rc::Rc); + +impl std::ops::Deref for Cow { + type Target = T; + + fn deref(&self) -> &Self::Target { + self.0.as_ref() + } +} + +impl Cow { + /// Create a new cow. + pub fn new(value: T) -> Cow { + Cow(std::rc::Rc::new(value)) + } + + /// Copy the value of the cow. + pub fn copy(&self) -> T + where + T: Clone, + { + self.0.as_ref().clone() + } + + /// Take the value of the cow. If the cow is shared, it will be cloned. + pub fn take(self) -> T + where + T: Clone, + { + match std::rc::Rc::try_unwrap(self.0) { + Ok(this) => this, + Err(this) => this.as_ref().clone(), + } + } + + /// Update the value of the cow. If the cow is shared, it will be cloned. + pub fn update(&mut self, f: impl FnOnce(&mut T) -> O) -> O + where + T: Clone, + { + if let Some(this) = std::rc::Rc::get_mut(&mut self.0) { + f(this) + } else { + let mut this = self.copy(); + let o = f(&mut this); + self.0 = std::rc::Rc::new(this); + o + } + } + + /// Map the value of the cow. If the cow is shared, it will be cloned. + pub fn map(self, f: impl FnOnce(T) -> O) -> O + where + T: Clone, + { + match std::rc::Rc::try_unwrap(self.0) { + Ok(this) => f(this), + Err(this) => f(this.as_ref().clone()), + } + } + + /// Set the value of the cow. If the cow is shared, it will be cloned. + /// This is useful to prevent reallocating new cells. + pub fn set(&mut self, value: T) { + match std::rc::Rc::get_mut(&mut self.0) { + Some(this) => *this = value, + None => self.0 = std::rc::Rc::new(value), + } + } +} diff --git a/arc-lang/crates/runtime/builtins/src/dataflow.rs b/arc-lang/crates/runtime/builtins/src/dataflow.rs new file mode 100644 index 000000000..0794d3573 --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/dataflow.rs @@ -0,0 +1,13 @@ +#[derive(Debug)] +pub struct Dataflow { + pub tx: tokio::sync::broadcast::Sender<()>, +} + +impl Dataflow { + pub fn new(tx: tokio::sync::broadcast::Sender<()>) -> Self { + Self { tx } + } + pub fn run(self) { + self.tx.send(()).unwrap(); + } +} diff --git a/arc-lang/crates/runtime/builtins/src/dataframe.rs b/arc-lang/crates/runtime/builtins/src/dataframe.rs new file mode 100644 index 000000000..511a9751a --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/dataframe.rs @@ -0,0 +1,13 @@ +// use crate::cow::Cow; +// use crate::vec::Vec; +// +// pub struct DataFrame(pub Cow); +// +// pub struct Series(pub Cow); +// +// impl DataFrame { +// pub fn new(columns: Vec) -> Self { +// DataFrame(polars::prelude::DataFrame::new(columns.0.take())) +// } +// +// } diff --git a/arc-lang/crates/runtime/builtins/src/dict.rs b/arc-lang/crates/runtime/builtins/src/dict.rs new file mode 100644 index 000000000..e14b4154f --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/dict.rs @@ -0,0 +1,69 @@ +use std::borrow::Borrow; +use std::collections::HashMap; +use std::hash::Hash; + +use serde::Deserialize; +use serde::Serialize; + +use crate::cow::Cow; +use crate::traits::Data; +use crate::traits::DeepClone; +use crate::traits::Key; + +#[derive(Clone, Debug, Serialize, Deserialize, Eq, PartialEq)] +#[repr(C)] +pub struct Dict(pub Cow>); + +impl DeepClone for Dict { + fn deep_clone(&self) -> Self { + todo!() + // let map = self + // .0 + // .iter() + // .map(|(k, v)| (k.deep_clone(), v.deep_clone())) + // .collect(); + // Dict(map) + } +} + +impl Dict { + pub fn new() -> Dict { + Dict(Cow::new(HashMap::new())) + } + + pub fn get(self, key: impl Borrow) -> Option + where + K: Clone, + V: Clone, + { + self.0.get(key.borrow()).cloned() + } + + pub fn insert(mut self, key: K, val: V) -> Self + where + K: Clone, + V: Clone, + { + self.0.update(|this| this.insert(key, val)); + self + } + + pub fn remove(mut self, key: impl Borrow) -> Self + where + K: Clone, + V: Clone, + { + self.0.update(|this| this.remove(key.borrow())); + self + } + + pub fn contains_key(self, key: impl Borrow) -> bool { + self.0.contains_key(key.borrow()) + } +} + +impl From> for Dict { + fn from(map: std::collections::HashMap) -> Self { + Dict(Cow::new(map)) + } +} diff --git a/arc-lang/crates/runtime/builtins/src/discretizer.rs b/arc-lang/crates/runtime/builtins/src/discretizer.rs new file mode 100644 index 000000000..1b0a527e6 --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/discretizer.rs @@ -0,0 +1,36 @@ +use serde::Deserialize; +use serde::Serialize; + +use crate::duration::Duration; + +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)] +#[repr(C)] +pub enum Discretizer { + Tumbling { length: Duration }, + Sliding { length: Duration, step: Duration }, + Session { gap: Duration }, + Counting { length: i32 }, + Moving { length: i32, step: i32 }, +} + +impl Discretizer { + pub fn tumbling(length: Duration) -> Self { + Self::Tumbling { length } + } + + pub fn sliding(length: Duration, step: Duration) -> Self { + Self::Sliding { length, step } + } + + pub fn session(gap: Duration) -> Self { + Self::Session { gap } + } + + pub fn counting(length: i32) -> Self { + Self::Counting { length } + } + + pub fn moving(length: i32, step: i32) -> Self { + Self::Moving { length, step } + } +} diff --git a/arc-lang/crates/runtime/builtins/src/duration.rs b/arc-lang/crates/runtime/builtins/src/duration.rs new file mode 100644 index 000000000..0d0945dc9 --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/duration.rs @@ -0,0 +1,30 @@ +use serde::Deserialize; +use serde::Serialize; + +#[derive(Clone, Copy, Serialize, Deserialize, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)] +#[repr(C)] +pub struct Duration(pub time::Duration); + +impl Duration { + pub fn from_seconds(seconds: i64) -> Self { + Self(time::Duration::seconds(seconds)) + } + + pub fn from_milliseconds(milliseconds: i64) -> Self { + Self(time::Duration::milliseconds(milliseconds)) + } + + pub fn from_microseconds(microseconds: i64) -> Self { + Self(time::Duration::microseconds(microseconds)) + } + + pub fn from_nanoseconds(nanoseconds: i64) -> Self { + Self(time::Duration::nanoseconds(nanoseconds)) + } + + pub(crate) fn to_std(self) -> std::time::Duration { + let whole_seconds = self.0.whole_seconds() as u64; + let subsec_nanos = self.0.subsec_nanoseconds() as u32; + std::time::Duration::new(whole_seconds, subsec_nanos) + } +} diff --git a/arc-lang/crates/runtime/builtins/src/encoding.rs b/arc-lang/crates/runtime/builtins/src/encoding.rs new file mode 100644 index 000000000..956db6b72 --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/encoding.rs @@ -0,0 +1,18 @@ +use serde::Deserialize; +use serde::Serialize; + +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)] +#[repr(C)] +pub enum Encoding { + Csv { sep: char }, + Json, +} + +impl Encoding { + pub fn csv(sep: char) -> Self { + Self::Csv { sep } + } + pub fn json() -> Self { + Self::Json + } +} diff --git a/arc-lang/crates/runtime/builtins/src/file.rs b/arc-lang/crates/runtime/builtins/src/file.rs new file mode 100644 index 000000000..0cc1ffe59 --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/file.rs @@ -0,0 +1,55 @@ +use std::fmt::Write; +use std::io::Read; + +use minus::ExitStrategy; + +use crate::blob::Blob; +use crate::path::Path; +use crate::string::String; + +#[derive(Debug, Clone)] +#[repr(C)] +pub struct File(pub std::rc::Rc>); + +impl File { + pub fn open(path: impl Into) -> Self { + File::from(std::fs::File::open(&path.into().0).unwrap()) + } + + pub fn read_to_string(self) -> String { + let mut string = std::string::String::new(); + self.0.borrow_mut().read_to_string(&mut string).unwrap(); + String::from(string) + } + + pub fn read_to_bytes(self) -> Blob { + let mut vec = std::vec::Vec::new(); + self.0.borrow_mut().read_to_end(&mut vec).unwrap(); + Blob::new(vec) + } + + pub fn inspect(self) { + let mut string = std::string::String::new(); + self.0.borrow_mut().read_to_string(&mut string).unwrap(); + if let Err(e) = logs(string) { + eprintln!("{}", e); + } + fn logs(string: std::string::String) -> Result<(), std::fmt::Error> { + let mut pager = minus::Pager::new(); + + for line in string.lines() { + writeln!(pager, "{}", line).unwrap(); + } + pager.set_exit_strategy(ExitStrategy::PagerQuit).unwrap(); + minus::page_all(pager).unwrap(); + Ok(()) + } + ().into() + } +} + +impl From for File { + fn from(file: std::fs::File) -> Self { + Self(std::rc::Rc::new(std::cell::RefCell::new(file))) + } +} diff --git a/arc-lang/crates/runtime/builtins/src/image.rs b/arc-lang/crates/runtime/builtins/src/image.rs new file mode 100644 index 000000000..7665c6226 --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/image.rs @@ -0,0 +1,174 @@ +use derive_more::Deref; +use derive_more::DerefMut; +use image::io::Reader; +use image::DynamicImage; +use image::GenericImage; +use image::GenericImageView; +use image::ImageFormat; +use ndarray::ArrayBase; +use serde::Deserialize; +use serde::Deserializer; +use serde::Serialize; +use serde::Serializer; +use std::io::Cursor; + +use crate::array::Array; +use crate::blob::Blob; +use crate::cow::Cow; +use crate::matrix::Matrix; +use crate::path::Path; +use crate::traits::DeepClone; + +#[derive(Clone, Debug)] +#[repr(C)] +pub struct Image(Cow); + +#[derive(Clone, Debug, Deref, DerefMut)] +struct Inner(DynamicImage); + +impl DeepClone for DynamicImage { + fn deep_clone(&self) -> Self { + self.clone() + } +} + +impl DeepClone for Inner { + fn deep_clone(&self) -> Self { + Self(self.0.clone()) + } +} + +impl Serialize for Inner { + fn serialize(&self, serializer: S) -> Result { + let mut bytes = std::vec::Vec::new(); + self.0 + .write_to(&mut Cursor::new(&mut bytes), ImageFormat::Png) + .unwrap(); + serializer.serialize_bytes(&bytes) + } +} + +impl<'de> Deserialize<'de> for Inner { + fn deserialize>(deserializer: D) -> Result { + let bytes = std::vec::Vec::::deserialize(deserializer)?; + let image = Reader::new(Cursor::new(bytes)) + .with_guessed_format() + .unwrap() + .decode() + .unwrap(); + Ok(Self(image)) + } +} + +impl Image { + pub fn new(data: Blob) -> Image { + let rd = Reader::new(Cursor::new(data.0.as_slice())) + .with_guessed_format() + .expect("Unknown image format"); + let img = rd.decode().expect("Failed to decode image"); + Image::from(img) + } + + pub fn crop(self, x: u32, y: u32, new_w: u32, new_h: u32) -> Self { + Image::from(self.0.crop_imm(x, y, new_w, new_h)) + } + + pub fn center_crop(self, new_w: u32, new_h: u32) -> Self { + let old_w = self.0.width(); + let old_h = self.0.height(); + self.crop((old_w - new_w) / 2, (old_h - new_h) / 2, new_w, new_h) + } + + pub fn resize(self, new_w: u32, new_h: u32) -> Self { + Image(Cow::new(Inner(self.0.resize_exact( + new_w, + new_h, + image::imageops::FilterType::Nearest, + )))) + } + + pub fn resize_width(self, new_w: u32) -> Self { + let old_w = self.0.width(); + let old_h = self.0.height(); + let new_h = (old_h as f32 * (new_w as f32 / old_w as f32)) as u32; + self.resize(new_w, new_h) + } + + pub fn resize_height(self, new_h: u32) -> Self { + let old_w = self.0.width(); + let old_h = self.0.height(); + let new_w = (old_w as f32 * (new_h as f32 / old_h as f32)) as u32; + self.resize(new_w, new_h) + } + + pub fn into_matrix(self) -> Matrix { + let w = self.0.width() as usize; + let h = self.0.height() as usize; + let mut array = ArrayBase::zeros(vec![3, w, h]); + for (x, y, rgb) in self.0.pixels() { + let x = x as usize; + let y = y as usize; + array[[0, x, y]] = rgb[0] as f32; + array[[1, x, y]] = rgb[1] as f32; + array[[2, x, y]] = rgb[2] as f32; + array[[3, x, y]] = rgb[3] as f32; + } + Matrix::from(array) + } + + pub fn from_matrix(matrix: Matrix) -> Self { + let w = matrix.0.shape()[1]; + let h = matrix.0.shape()[2]; + let mut img = DynamicImage::new_rgb8(w as u32, h as u32); + for x in 0..w { + for y in 0..h { + img.put_pixel( + x as u32, + y as u32, + image::Rgba([ + matrix.0[[0, x, y]] as u8, + matrix.0[[1, x, y]] as u8, + matrix.0[[2, x, y]] as u8, + matrix.0[[3, x, y]] as u8, + ]), + ); + } + } + Image::from(img) + } + + pub fn save(self, path: Path) { + self.0.save(path.0).unwrap(); + } + + pub fn height(self) -> u32 { + self.0.height() + } + + pub fn width(self) -> u32 { + self.0.width() + } + + pub fn draw_box(mut self, x: u32, y: u32, w: u32, h: u32, rgba: Array) { + let rgba = rgba.0.into(); + if x + w >= self.0.width() || y + h >= self.0.height() { + panic!("Box out of bounds"); + } + self.0.update(|this| { + for i in 0..w { + this.put_pixel(x + i, y, rgba); + this.put_pixel(x + i, y + h, rgba); + } + for i in 0..h { + this.put_pixel(x, y + i, rgba); + this.put_pixel(x + w, y + i, rgba); + } + }) + } +} + +impl From for Image { + fn from(image: DynamicImage) -> Self { + Image(Cow::new(Inner(image))) + } +} diff --git a/arc-lang/crates/runtime/builtins/src/iterator.rs b/arc-lang/crates/runtime/builtins/src/iterator.rs new file mode 100644 index 000000000..3b73a358c --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/iterator.rs @@ -0,0 +1,35 @@ +use crate::cow::Cow; +use crate::traits::Data; + +#[derive(Debug, Clone)] +#[repr(C)] +pub struct Iter + Clone>(Cow); + +impl + Clone> Iter { + pub fn new(i: I) -> Iter { + Iter(Cow::new(i)) + } + + pub fn enumerate(self) -> Iter<(usize, T), std::iter::Enumerate> { + Iter(Cow::new(self.0.take().enumerate())) + } + + pub fn map U + Clone>(self, f: F) -> Iter> { + Iter(Cow::new(self.0.take().map(f))) + } + + pub fn filter bool + Clone>(self, f: F) -> Iter> { + Iter(Cow::new(self.0.take().filter(f))) + } +} + +impl + Clone> Iterator for Iter { + type Item = T; + + fn next(&mut self) -> std::option::Option { + self.0.update(|this| match this.next() { + Some(x) => std::option::Option::Some(x), + None => std::option::Option::None, + }) + } +} diff --git a/arc-lang/crates/runtime/builtins/src/keyed_stream.rs b/arc-lang/crates/runtime/builtins/src/keyed_stream.rs new file mode 100644 index 000000000..5d3fcc5eb --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/keyed_stream.rs @@ -0,0 +1,326 @@ +#![allow(irrefutable_let_patterns)] +use std::collections::BTreeMap; +use std::collections::HashMap; + +use num::Integer; +use time::OffsetDateTime; +use tokio::sync::mpsc::Receiver; + +use crate::aggregator::Aggregator; +use crate::dict::Dict; +use crate::duration::Duration; +use crate::stream::Event; +use crate::stream::Stream; +use crate::time::Time; +use crate::traits::Data; +use crate::traits::Key; +use serde::Deserialize; +use serde::Serialize; + +#[derive(Debug, Serialize, Deserialize)] +pub(crate) enum KeyedEvent { + Data(Time, K, T), + Watermark(Time), + Snapshot(usize), + Sentinel, +} + +pub struct KeyedStream(pub(crate) Receiver>); + +impl KeyedStream { + pub fn map(mut self, f: fn(T) -> O) -> KeyedStream + where + O: Data, + { + let (tx1, rx1) = tokio::sync::mpsc::channel(100); + tokio::task::spawn_local(async move { + loop { + match self.recv().await { + KeyedEvent::Data(t, k, v) => tx1.send(KeyedEvent::Data(t, k, f(v))).await, + KeyedEvent::Watermark(t) => tx1.send(KeyedEvent::Watermark(t)).await, + KeyedEvent::Snapshot(i) => tx1.send(KeyedEvent::Snapshot(i)).await, + KeyedEvent::Sentinel => { + tx1.send(KeyedEvent::Sentinel).await.unwrap(); + break; + } + } + .unwrap() + } + }); + KeyedStream(rx1) + } + pub fn filter(mut self, f: fn(T) -> bool) -> KeyedStream { + let (tx1, rx1) = tokio::sync::mpsc::channel(100); + tokio::task::spawn_local(async move { + loop { + match self.recv().await { + KeyedEvent::Data(t, k, v) => { + if f(v.clone()) { + tx1.send(KeyedEvent::Data(t, k, v)).await.unwrap(); + } + } + KeyedEvent::Watermark(t) => tx1.send(KeyedEvent::Watermark(t)).await.unwrap(), + KeyedEvent::Snapshot(i) => tx1.send(KeyedEvent::Snapshot(i)).await.unwrap(), + KeyedEvent::Sentinel => { + tx1.send(KeyedEvent::Sentinel).await.unwrap(); + break; + } + } + } + }); + KeyedStream(rx1) + } + + pub fn join(mut self, index: Dict, merge: fn(T, T1) -> T2) -> KeyedStream + where + T1: Data, + T2: Data, + { + let (tx1, rx1) = tokio::sync::mpsc::channel(100); + tokio::task::spawn_local(async move { + loop { + match self.recv().await { + KeyedEvent::Data(t, k, v0) => { + if let Some(v1) = index.0.get(&k) { + let v2 = merge(v0, v1.clone()); + tx1.send(KeyedEvent::Data(t, k, v2)).await.unwrap(); + } + } + KeyedEvent::Watermark(t) => { + tx1.send(KeyedEvent::Watermark(t)).await.unwrap(); + } + KeyedEvent::Snapshot(i) => { + tx1.send(KeyedEvent::Snapshot(i)).await.unwrap(); + } + KeyedEvent::Sentinel => { + tx1.send(KeyedEvent::Sentinel).await.unwrap(); + break; + } + } + } + }); + KeyedStream(rx1) + } + + pub fn merge(mut self, mut other: Self) -> Self { + let (tx2, rx2) = tokio::sync::mpsc::channel(100); + tokio::task::spawn_local(async move { + loop { + let event = tokio::select! { + event = self.recv() => { + if let KeyedEvent::Sentinel = event { + other.recv().await + } else { + event + } + }, + event = other.recv() => { + if let KeyedEvent::Sentinel = event { + self.recv().await + } else { + event + } + }, + }; + match event { + KeyedEvent::Data(t, k1, v1) => { + tx2.send(KeyedEvent::Data(t, k1, v1)).await.unwrap(); + } + KeyedEvent::Watermark(t) => { + tx2.send(KeyedEvent::Watermark(t)).await.unwrap(); + } + KeyedEvent::Snapshot(i) => { + tx2.send(KeyedEvent::Snapshot(i)).await.unwrap(); + } + KeyedEvent::Sentinel => { + tx2.send(KeyedEvent::Sentinel).await.unwrap(); + break; + } + } + } + }); + Self(rx2) + } + + pub fn split(mut self) -> (Self, Self) { + let (tx1, rx1) = tokio::sync::mpsc::channel(100); + let (tx2, rx2) = tokio::sync::mpsc::channel(100); + tokio::task::spawn_local(async move { + loop { + let (l, r) = match self.recv().await { + KeyedEvent::Data(t, k1, v1) => { + let k2 = k1.clone(); + let v2 = v1.clone(); + tokio::join!( + tx1.send(KeyedEvent::Data(t, k2, v2)), + tx2.send(KeyedEvent::Data(t, k1, v1)), + ) + } + KeyedEvent::Watermark(t) => { + tokio::join!( + tx1.send(KeyedEvent::Watermark(t)), + tx2.send(KeyedEvent::Watermark(t)) + ) + } + KeyedEvent::Snapshot(i) => { + tokio::join!( + tx1.send(KeyedEvent::Snapshot(i)), + tx2.send(KeyedEvent::Snapshot(i)) + ) + } + KeyedEvent::Sentinel => { + tokio::join!( + tx1.send(KeyedEvent::Sentinel), + tx2.send(KeyedEvent::Sentinel) + ) + } + }; + l.unwrap(); + r.unwrap(); + } + }); + (Self(rx1), Self(rx2)) + } + + pub fn scan( + mut self, + agg: Aggregator P, fn(P, P) -> P, fn() -> P, fn(P) -> O>, + ) -> KeyedStream + where + P: Data, + O: Data, + { + let (tx1, rx1) = tokio::sync::mpsc::channel(100); + let mut state = HashMap::new(); + let Aggregator::Monoid { + lift, + combine, + identity, + lower, + } = agg + else { + unreachable!() + }; + tokio::task::spawn_local(async move { + loop { + match self.recv().await { + KeyedEvent::Data(t, k, v) => { + let p = state.entry(k.clone()).or_insert_with(identity); + *p = combine(p.clone(), lift(v)); + tx1.send(KeyedEvent::Data(t, k, lower(p.clone()))) + .await + .unwrap(); + } + KeyedEvent::Watermark(t) => { + tx1.send(KeyedEvent::Watermark(t)).await.unwrap(); + } + KeyedEvent::Snapshot(i) => { + tx1.send(KeyedEvent::Snapshot(i)).await.unwrap(); + } + KeyedEvent::Sentinel => { + tx1.send(KeyedEvent::Sentinel).await.unwrap(); + break; + } + } + } + }); + KeyedStream(rx1) + } + + #[allow(unstable_name_collisions)] + pub fn window( + mut self, + size: Duration, + agg: Aggregator P, fn(P, P) -> P, fn() -> P, fn(P) -> O>, + ) -> KeyedStream + where + P: Data, + O: Data, + { + let (tx1, rx1) = tokio::sync::mpsc::channel(100); + let mut aggs: BTreeMap> = BTreeMap::new(); + let Aggregator::Monoid { + lift, + combine, + identity, + lower, + } = agg + else { + unreachable!() + }; + tokio::task::spawn_local(async move { + loop { + match self.recv().await { + KeyedEvent::Data(time, key, data) => { + let slot = time + .0 + .unix_timestamp_nanos() + .div_floor(&size.0.whole_nanoseconds()); + let time = OffsetDateTime::from_unix_timestamp_nanos( + slot * size.0.whole_nanoseconds(), + ) + .expect("Error converting timestamp to OffsetDateTime."); + let p = aggs + .entry(time) + .or_insert_with(HashMap::new) + .entry(key) + .or_insert_with(identity); + *p = combine(p.clone(), lift(data)); + } + KeyedEvent::Watermark(watermark) => { + while let Some(entry) = aggs.first_entry() { + let time = *entry.key() + size.0; + if time < watermark.0 { + for (key, p) in entry.remove() { + tx1.send(KeyedEvent::Data(Time(time), key, lower(p))) + .await + .unwrap(); + } + tx1.send(KeyedEvent::Watermark(watermark)).await.unwrap(); + } else { + tx1.send(KeyedEvent::Watermark(watermark)).await.unwrap(); + break; + } + } + } + KeyedEvent::Snapshot(i) => { + tx1.send(KeyedEvent::Snapshot(i)).await.unwrap(); + } + KeyedEvent::Sentinel => { + tx1.send(KeyedEvent::Sentinel).await.unwrap(); + break; + } + } + } + }); + KeyedStream(rx1) + } + + pub fn unkey(mut self) -> Stream { + let (tx1, rx1) = tokio::sync::mpsc::channel(100); + tokio::task::spawn_local(async move { + loop { + match self.recv().await { + KeyedEvent::Data(t, _, v) => { + tx1.send(Event::Data(t, v)).await.unwrap(); + } + KeyedEvent::Watermark(t) => { + tx1.send(Event::Watermark(t)).await.unwrap(); + } + KeyedEvent::Snapshot(i) => { + tx1.send(Event::Snapshot(i)).await.unwrap(); + } + KeyedEvent::Sentinel => { + tx1.send(Event::Sentinel).await.unwrap(); + break; + } + } + } + }); + Stream(rx1) + } + + async fn recv(&mut self) -> KeyedEvent { + self.0.recv().await.unwrap() + } +} diff --git a/arc-lang/crates/runtime/builtins/src/lib.rs b/arc-lang/crates/runtime/builtins/src/lib.rs new file mode 100644 index 000000000..49bfd3096 --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/lib.rs @@ -0,0 +1,30 @@ +pub mod aggregator; +pub mod array; +pub mod cow; +pub mod dataflow; +pub mod dataframe; +pub mod dict; +pub mod discretizer; +pub mod duration; +pub mod encoding; +pub mod file; +pub mod image; +pub mod iterator; +pub mod keyed_stream; +pub mod matrix; +pub mod model; +pub mod option; +pub mod path; +pub mod reader; +pub mod result; +pub mod set; +pub mod socket; +pub mod stream; +pub mod string; +pub mod time; +pub mod time_source; +pub mod traits; +pub mod url; +pub mod vec; +pub mod writer; +pub mod blob; diff --git a/arc-lang/crates/runtime/builtins/src/matrix.rs b/arc-lang/crates/runtime/builtins/src/matrix.rs new file mode 100644 index 000000000..19fc3c3a2 --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/matrix.rs @@ -0,0 +1,83 @@ +#![allow(unused)] + +use std::cmp::Reverse; +use std::collections::BinaryHeap; + +use derive_more::Deref; +use derive_more::DerefMut; +use macros::DeepClone; +use ndarray::ArrayBase; +use ndarray::Axis; +use ndarray::Dim; +use ndarray::IxDynImpl; +use ndarray::OwnedRepr; +use num::Num; +use num::Zero; +use serde::Deserialize; +use serde::Serialize; + +use crate::array::Array; +use crate::cow::Cow; +use crate::iterator::Iter; +use crate::traits::Data; +use crate::traits::DeepClone; +use crate::vec::Vec; + +#[derive(DeepClone, Debug, Clone, Serialize, Deserialize, Eq, PartialEq)] +#[repr(C)] +pub struct Matrix(pub Cow>); + +#[derive(Debug, Clone, Deref, DerefMut, Serialize, Deserialize, Eq, PartialEq)] +#[repr(C)] +pub struct Inner(pub ArrayBase, Dim>); + +impl DeepClone for Inner { + fn deep_clone(&self) -> Self { + Inner(self.0.clone()) + } +} + +impl Matrix { + pub fn new(shape: impl Into>) -> Self + where + T: Clone + Zero, + { + Matrix::from(ArrayBase::zeros(shape.into().0.to_vec())) + } + + pub fn insert_axis(mut self, axis: usize) -> Self + where + T: Clone, + { + self.0.update(|this| this.0.insert_axis_inplace(Axis(axis))); + self + } + + pub fn remove_axis(mut self, axis: usize) -> Self + where + T: Clone, + { + self.0 + .map(|this| Matrix::from(this.0.remove_axis(Axis(axis)))) + } + + pub fn into_vec(self) -> Vec + where + T: Clone, + { + self.0.map(|this| Vec::from(this.0.into_raw_vec())) + } + + pub fn iter(self) -> Iter + Clone> + where + T: Clone, + { + Iter::new(self.0.take().0.into_raw_vec().into_iter()) + } +} + +impl From, Dim>> for Matrix { + fn from(array: ArrayBase, Dim>) -> Self { + Matrix(Cow::new(Inner(array))) + } +} diff --git a/arc-lang/crates/runtime/builtins/src/model.rs b/arc-lang/crates/runtime/builtins/src/model.rs new file mode 100644 index 000000000..a8be7a764 --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/model.rs @@ -0,0 +1,87 @@ +use ndarray::ArrayBase; +use ndarray::CowArray; +use ndarray::CowRepr; +use ndarray::Dim; +use ndarray::IxDynImpl; +use once_cell::sync::Lazy; +use ort::tensor::IntoTensorElementDataType; +use ort::tensor::TensorDataToType; +use ort::value::DynArrayRef; +use ort::Environment; +use ort::InMemorySession; +use ort::SessionBuilder; +use ort::Value; +use serde::Serialize; +use std::fmt::Debug; +use std::rc::Rc; +use std::sync::Arc; + +use crate::blob::Blob; +use crate::matrix::Matrix; + +#[derive(Clone)] +#[repr(C)] +pub struct Model { + bytes: &'static [u8], + session: Rc>, +} + +impl Serialize for Model { + fn serialize(&self, s: S) -> Result { + s.serialize_bytes(self.bytes) + } +} + +impl<'de> serde::Deserialize<'de> for Model { + fn deserialize>(d: D) -> Result { + let bytes = >::deserialize(d)?; + let bytes = std::vec::Vec::leak(bytes); + Ok(Model::from_bytes(bytes)) + } +} + +impl Debug for Model { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("Model").finish() + } +} + +fn init() -> Arc { + Environment::builder() + .build() + .expect("Failed building ONNX") + .into_arc() +} + +static ONNX: Lazy> = Lazy::new(init); + +impl Model { + pub fn new(blob: Blob) -> Self { + Self::from_bytes(blob.0.take().leak()) + } + + fn from_bytes(bytes: &'static [u8]) -> Self { + let session = SessionBuilder::new(&ONNX) + .unwrap() + .with_model_from_memory(bytes) + .unwrap(); + Model { + bytes, + session: Rc::new(session), + } + } + + pub fn predict(&self, x: Matrix) -> Matrix + where + for<'a> DynArrayRef<'a>: From, Dim>>, + I: IntoTensorElementDataType + Debug + Clone, + O: TensorDataToType + Clone, + { + let x = x.0.map(|x| CowArray::from(x.0)); + let x = Value::from_array(self.session.allocator(), &x).unwrap(); + let y = self.session.run(vec![x]).unwrap(); + let y = y[0].try_extract::().unwrap(); + let y = y.view().map(|x| x.clone()); + Matrix::from(y) + } +} diff --git a/arc-lang/crates/runtime/builtins/src/option.rs b/arc-lang/crates/runtime/builtins/src/option.rs new file mode 100644 index 000000000..7c6a62549 --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/option.rs @@ -0,0 +1,50 @@ +use macros::DeepClone; +use serde::Deserialize; +use serde::Serialize; + +use crate::traits::DeepClone; + +#[derive(Clone, DeepClone, Debug, Serialize, Deserialize, Eq, PartialEq, Ord, PartialOrd, Hash)] +#[repr(C)] +pub struct Option(std::option::Option); + +impl DeepClone for std::option::Option { + fn deep_clone(&self) -> Self { + match self { + std::option::Option::Some(x) => std::option::Option::Some(x.deep_clone()), + std::option::Option::None => std::option::Option::None, + } + } +} + +impl Option { + pub fn some(x: T) -> Self { + Self(Some(x)) + } + + pub fn none() -> Self { + Self(None) + } + + pub fn is_some(self) -> bool { + self.0.is_some() + } + + pub fn is_none(self) -> bool { + self.0.is_none() + } + + pub fn unwrap(self) -> T { + self.0.unwrap() + } + + pub fn map U>(self, f: F) -> Option { + self.0.map(f).into() + } +} + +impl From> for Option { + fn from(x: std::option::Option) -> Self { + Self(x) + } +} diff --git a/arc-lang/crates/runtime/builtins/src/path.rs b/arc-lang/crates/runtime/builtins/src/path.rs new file mode 100644 index 000000000..8147baf20 --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/path.rs @@ -0,0 +1,24 @@ +use serde::Deserialize; +use serde::Serialize; + +#[derive(Debug, Clone, PartialEq, Eq, Ord, PartialOrd, Hash, Serialize, Deserialize)] +#[repr(C)] +pub struct Path(pub std::path::PathBuf); + +impl Path { + pub fn new(path: impl AsRef) -> Self { + Self(std::path::PathBuf::from(path.as_ref())) + } +} + +impl<'a> From<&'a str> for Path { + fn from(path: &'a str) -> Self { + Self::new(path) + } +} + +impl From for Path { + fn from(path: std::path::PathBuf) -> Self { + Self(path) + } +} diff --git a/arc-lang/crates/runtime/builtins/src/reader.rs b/arc-lang/crates/runtime/builtins/src/reader.rs new file mode 100644 index 000000000..346a0dc97 --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/reader.rs @@ -0,0 +1,41 @@ +#![allow(unused)] +use serde::Deserialize; +use serde::Serialize; + +use crate::path::Path; +use crate::socket::SocketAddr; +use crate::stream::Stream; +use crate::string::String; +use crate::traits::Data; +use crate::url::Url; + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[repr(C)] +pub enum Reader { + Stdin, + File { path: Path, watch: bool }, + Http { url: Url }, + Tcp { addr: SocketAddr }, + Kafka { addr: SocketAddr, topic: String }, +} + +impl Reader { + pub fn stdin() -> Self { + Self::Stdin + } + pub fn file(path: Path, watch: bool) -> Self { + if !path.0.exists() { + tracing::warn!("{} does not exist", path.0.display()); + } + Self::File { path, watch } + } + pub fn http(url: Url) -> Self { + Self::Http { url } + } + pub fn tcp(addr: SocketAddr) -> Self { + Self::Tcp { addr } + } + pub fn kafka(addr: SocketAddr, topic: String) -> Self { + Self::Kafka { addr, topic } + } +} diff --git a/arc-lang/crates/runtime/builtins/src/result.rs b/arc-lang/crates/runtime/builtins/src/result.rs new file mode 100644 index 000000000..6a56bb2d1 --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/result.rs @@ -0,0 +1,61 @@ +use macros::DeepClone; +use serde::Deserialize; +use serde::Serialize; + +use crate::string::String; +use crate::traits::DeepClone; + +#[derive(Debug, DeepClone, Clone, Deserialize, Serialize, Eq, PartialEq, PartialOrd, Ord, Hash)] +#[repr(C)] +pub struct Result(pub std::result::Result); + +impl DeepClone for std::result::Result { + fn deep_clone(&self) -> Self { + match self { + std::result::Result::Ok(x) => std::result::Result::Ok(x.deep_clone()), + std::result::Result::Err(x) => std::result::Result::Err(x.deep_clone()), + } + } +} + +impl Result { + pub fn ok(x: T) -> Self { + Self(std::result::Result::Ok(x)) + } + + pub fn error(x: String) -> Self { + Self(std::result::Result::Err(x)) + } + + pub fn is_ok(self) -> bool { + matches!(self.0, std::result::Result::Ok(_)) + } + + pub fn is_error(self) -> bool { + matches!(self.0, std::result::Result::Err(_)) + } + + pub fn unwrap_ok(self) -> T { + match self.0 { + std::result::Result::Ok(x) => x, + std::result::Result::Err(_) => unreachable!(), + } + } + + pub fn unwrap_error(self) -> String { + match self.0 { + std::result::Result::Ok(_) => unreachable!(), + std::result::Result::Err(x) => x, + } + } + + pub fn map(self, f: impl FnOnce(T) -> U) -> Result { + Result(self.0.map(f)) + } +} + +impl From> for Result { + fn from(x: std::result::Result) -> Self { + Self(x.map_err(|x| String::from(x.to_string()))) + } +} diff --git a/arc-lang/crates/runtime/builtins/src/set.rs b/arc-lang/crates/runtime/builtins/src/set.rs new file mode 100644 index 000000000..a6843b39a --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/set.rs @@ -0,0 +1,54 @@ +use std::borrow::Borrow; +use std::collections::HashSet; +use std::hash::Hash; + +use serde::Deserialize; +use serde::Serialize; + +use crate::cow::Cow; + +#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] +#[repr(C)] +pub struct Set(pub Cow>); + +impl Set { + pub fn new() -> Self { + Self(Cow::new(HashSet::new())) + } + + pub fn insert(mut self, value: T) -> Self + where + T: Clone, + { + self.0.update(|this| this.insert(value)); + self + } + + pub fn remove(mut self, value: impl Borrow) -> Self + where + T: Clone, + { + self.0.update(|this| this.remove(value.borrow())); + self + } + + pub fn contains(&self, value: impl Borrow) -> bool + where + T: Clone, + { + self.0.contains(value.borrow()) + } + + pub fn group(&self) -> Vec + where + T: Clone, + { + self.0.iter().cloned().collect() + } +} + +impl From> for Set { + fn from(set: HashSet) -> Self { + Self(Cow::new(set)) + } +} diff --git a/arc-lang/crates/runtime/builtins/src/socket.rs b/arc-lang/crates/runtime/builtins/src/socket.rs new file mode 100644 index 000000000..94f44595f --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/socket.rs @@ -0,0 +1,24 @@ +use std::net::ToSocketAddrs; + +use serde::Deserialize; +use serde::Serialize; + +use crate::string::String; + +#[derive(Debug, Clone, Eq, PartialEq, Ord, PartialOrd, Serialize, Deserialize)] +#[repr(C)] +pub struct SocketAddr(pub std::net::SocketAddr); + +impl SocketAddr { + pub fn new(ip: &'static str, port: u16) -> Self { + Self(std::net::SocketAddr::new(ip.parse().unwrap(), port)) + } + pub fn parse(addr: String) -> Self { + addr.as_ref() + .to_socket_addrs() + .unwrap() + .next() + .map(Self) + .unwrap() + } +} diff --git a/arc-lang/crates/runtime/builtins/src/stream.rs b/arc-lang/crates/runtime/builtins/src/stream.rs new file mode 100644 index 000000000..bf83f5847 --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/stream.rs @@ -0,0 +1,561 @@ +use formats::Decode; +use formats::Encode; +use futures::SinkExt; +use futures::StreamExt; +use time::OffsetDateTime; +use tokio::io::AsyncBufReadExt; +use tokio::io::AsyncReadExt; +use tokio::io::AsyncWriteExt; +use tokio::io::BufReader; +use tokio::io::BufWriter; +use tokio::sync::mpsc::Receiver; + +use crate::duration::Duration; +use crate::encoding::Encoding; +use crate::keyed_stream::KeyedEvent; +use crate::keyed_stream::KeyedStream; +use crate::path::Path; +use crate::reader::Reader; +use crate::socket::SocketAddr; +use crate::time::Time; +use crate::time_source::TimeSource; +use crate::traits::Data; +use crate::url::Url; +use crate::writer::Writer; +use serde::Deserialize; +use serde::Serialize; + +#[derive(Debug, Serialize, Deserialize)] +#[repr(C)] +pub(crate) enum Event { + Data(Time, T), + Watermark(Time), + Snapshot(usize), + Sentinel, +} + +pub struct Stream(pub(crate) Receiver>); + +impl Stream { + pub fn source( + reader: Reader, + encoding: Encoding, + time_source: TimeSource Time>, + ) -> Stream { + Self::_source_encoding(reader, encoding, time_source) + } + + fn _source_encoding( + reader: Reader, + encoding: Encoding, + time_source: TimeSource Time>, + ) -> Stream { + match encoding { + Encoding::Csv { sep } => { + let decoder = formats::csv::de::Reader::<1024>::new(sep); + Self::_source_reader(reader, decoder, time_source) + } + Encoding::Json => { + let decoder = formats::json::de::Reader::new(); + Self::_source_reader(reader, decoder, time_source) + } + } + } + + async fn read_pipe( + rx: impl AsyncReadExt + Unpin, + mut decoder: impl Decode + 'static, + watch: bool, + tx: tokio::sync::mpsc::Sender, + ) { + let mut rx = BufReader::new(rx); + let mut buf = Vec::with_capacity(1024); + loop { + match rx.read_until(b'\n', &mut buf).await { + Ok(0) => { + tracing::info!("EOF"); + if watch { + tokio::time::sleep(tokio::time::Duration::from_millis(100)).await; + } else { + break; + } + } + Ok(n) => match decoder.decode(&buf[0..n]) { + Ok(data) => { + tracing::info!("Decoded: {:?}", data); + tx.send(data).await.unwrap(); + buf.clear(); + } + Err(e) => tracing::info!("Failed to decode: {}", e), + }, + Err(e) => panic!("Failed to read from stdin: {}", e), + } + } + } + + async fn read_file( + path: Path, + decoder: impl Decode + 'static, + watch: bool, + tx2: tokio::sync::mpsc::Sender, + ) { + match tokio::fs::File::open(&path.0).await { + Ok(rx) => Self::read_pipe(rx, decoder, watch, tx2).await, + Err(e) => panic!("Failed to open file `{}`: {}", path.0.display(), e), + } + } + + async fn read_socket( + addr: SocketAddr, + mut decoder: impl Decode + 'static, + tx: tokio::sync::mpsc::Sender, + ) { + tracing::info!("Trying to listen on {}", addr.0); + let socket = tokio::net::TcpListener::bind(addr.0).await.unwrap(); + tracing::info!("Listening on {}", addr.0); + let (socket, _) = socket.accept().await.unwrap(); + tracing::info!("Accepted connection from {}", addr.0); + let mut rx = tokio_util::codec::Framed::new(socket, tokio_util::codec::LinesCodec::new()); + loop { + match rx.next().await { + Some(Ok(line)) => match decoder.decode(line.as_bytes()) { + Ok(data) => { + tracing::info!("Decoded: {:?}", data); + tx.send(data).await.unwrap() + } + Err(e) => tracing::info!("Failed to decode: {}", e), + }, + Some(Err(e)) => tracing::info!("Failed to read: {}", e), + None => break, + } + } + } + + #[allow(unused)] + async fn read_http(url: Url, decoder: impl Decode + 'static, tx: tokio::sync::mpsc::Sender) { + todo!() + // let uri: Uri = url.0.to_string().parse().unwrap(); + // let client = hyper::Client::new(); + // let mut resp = client.get(uri).await.unwrap(); + // loop { + // match resp.body_mut().data().await { + // Some(Ok(chunk)) => match decoder.decode(&chunk) { + // Ok(data) => { + // tracing::info!("Decoded: {:?}", data); + // tx.send(data).await.unwrap(); + // } + // Err(e) => tracing::info!("Failed to decode: {}", e), + // }, + // Some(Err(e)) => tracing::info!("Failed to read: {}", e), + // None => break, + // } + // } + } + + #[allow(unused)] + async fn write_http( + rx: tokio::sync::mpsc::Receiver, + url: Url, + encoder: impl Encode + 'static, + ) { + todo!() + // let uri: Uri = url.0.to_string().parse().unwrap(); + // let client = hyper::Client::new(); + // let (mut tx1, rx1) = futures::channel::mpsc::channel(100); + // let req = Request::builder() + // .method(Method::POST) + // .uri(uri) + // .header("content-type", encoder.content_type()) + // .body(Body::wrap_stream(rx1)) + // .unwrap(); + // client.request(req).await.unwrap(); + // let mut buf = vec![0; 1024]; + // loop { + // match rx.recv().await { + // Some(data) => match encoder.encode(&data, &mut buf) { + // Ok(n) => { + // tracing::info!("Encoded: {:?}", data); + // let bytes: Result<_, std::io::Error> = + // Ok(hyper::body::Bytes::from(buf[0..n].to_vec())); + // tx1.send(bytes).await.unwrap(); + // } + // Err(e) => tracing::info!("Failed to encode: {}", e), + // }, + // None => break, + // } + // } + } + + async fn write_pipe( + mut rx: tokio::sync::mpsc::Receiver, + mut encoder: impl Encode + 'static, + tx: impl AsyncWriteExt + Unpin, + ) { + let mut tx = BufWriter::new(tx); + let mut buf = vec![0; 1024]; + loop { + match rx.recv().await { + Some(data) => match encoder.encode(&data, &mut buf) { + Ok(n) => { + tracing::info!("Encoded: {:?}", data); + tx.write_all(&buf[0..n]).await.unwrap(); + tx.flush().await.unwrap(); + } + Err(e) => tracing::info!("Failed to encode: {}", e), + }, + None => break, + } + } + } + + async fn write_file( + rx: tokio::sync::mpsc::Receiver, + path: Path, + encoder: impl Encode + 'static, + ) { + match tokio::fs::File::create(&path.0).await { + Ok(tx) => Self::write_pipe(rx, encoder, tx).await, + Err(e) => panic!("Failed to open file `{}`: {}", path.0.display(), e), + } + } + + async fn write_socket( + mut rx: tokio::sync::mpsc::Receiver, + addr: SocketAddr, + mut encoder: impl Encode + 'static, + ) { + tracing::info!("Connecting to {}", addr.0); + let socket = tokio::net::TcpStream::connect(addr.0).await.unwrap(); + tracing::info!("Connected to {}", addr.0); + let mut tx = tokio_util::codec::Framed::new(socket, tokio_util::codec::LinesCodec::new()); + let mut buf = vec![0; 1024]; + loop { + match rx.recv().await { + Some(data) => match encoder.encode(&data, &mut buf) { + Ok(n) => { + tracing::info!("Encoded: {:?}", data); + let s = std::str::from_utf8(&buf[0..n - 1]).unwrap(); // -1 to remove trailing newline + tracing::info!("Sending: [{}]", s); + tx.send(s).await.unwrap(); + } + Err(e) => tracing::info!("Failed to encode: {}", e), + }, + None => break, + } + } + } + + fn _source_reader( + reader: Reader, + decoder: impl Decode + 'static, + time_source: TimeSource Time>, + ) -> Stream { + let (tx2, rx2) = tokio::sync::mpsc::channel(100); + tokio::task::spawn_local(async move { + match reader { + Reader::Stdin => Self::read_pipe(tokio::io::stdin(), decoder, false, tx2).await, + Reader::File { path, watch } => Self::read_file(path, decoder, watch, tx2).await, + Reader::Http { url } => Self::read_http(url, decoder, tx2).await, + Reader::Tcp { addr } => Self::read_socket(addr, decoder, tx2).await, + Reader::Kafka { addr: _, topic: _ } => todo!(), + } + }); + Self::_source_time(rx2, time_source) + } + + fn _source_time( + rx: tokio::sync::mpsc::Receiver, + time_source: TimeSource Time>, + ) -> Stream { + match time_source { + TimeSource::Ingestion { watermark_interval } => { + false; + Self::_source_ingestion_time(rx, watermark_interval) + } + TimeSource::Event { + extractor, + watermark_interval, + slack, + } => Self::_source_event_time(rx, extractor, watermark_interval, slack), + } + } + + fn _source_ingestion_time( + mut rx: tokio::sync::mpsc::Receiver, + watermark_interval: Duration, + ) -> Stream { + let (tx1, rx1) = tokio::sync::mpsc::channel(100); + tokio::task::spawn(async move { + let mut watermark_interval = tokio::time::interval(watermark_interval.to_std()); + loop { + tokio::select! { + _ = watermark_interval.tick() => { + tx1.send(Event::Watermark(Time::now())).await.expect("Failed to send watermark"); + }, + data = rx.recv() => { + match data { + Some(data) => tx1.send(Event::Data(Time::now(), data)).await.expect("Failed to send data"), + None => { + tx1.send(Event::Sentinel).await.expect("Failed to send sentinel"); + break; + }, + } + } + } + } + }); + Stream(rx1) + } + + fn _source_event_time( + mut rx: tokio::sync::mpsc::Receiver, + extractor: fn(T) -> Time, + watermark_interval: Duration, + slack: Duration, + ) -> Stream { + let (tx1, rx1) = tokio::sync::mpsc::channel(100); + tokio::task::spawn(async move { + let mut latest_time = OffsetDateTime::UNIX_EPOCH; + let slack = slack.to_std(); + let mut watermark_interval = tokio::time::interval(watermark_interval.to_std()); + let mut watermark = OffsetDateTime::UNIX_EPOCH; + loop { + tokio::select! { + _ = watermark_interval.tick() => { + if latest_time > OffsetDateTime::UNIX_EPOCH { + watermark = latest_time - slack; + tx1.send(Event::Watermark(Time(watermark))).await.expect("Failed to send watermark"); + } + }, + data = rx.recv() => { + match data { + Some(data) => { + let time = extractor(data.clone()); + if time.0 < watermark { + continue; + } + if time.0 > latest_time { + latest_time = time.0; + } + tx1.send(Event::Data(time, data)).await.expect("Failed to send data"); + } + None => { + tx1.send(Event::Sentinel).await.expect("Failed to send sentinel"); + break; + }, + } + } + } + } + }); + Stream(rx1) + } + + pub fn sink(self, writer: Writer, encoding: Encoding) { + let mut this = self; + let (tx, rx) = tokio::sync::mpsc::channel(100); + tokio::task::spawn_local(async move { + loop { + let event = this.0.recv().await.expect("failed to receive event"); + match event { + Event::Data(_, data) => tx.send(data).await.unwrap(), + Event::Watermark(_) => continue, + Event::Snapshot(_) => todo!(), + Event::Sentinel => break, + } + } + }); + Self::_sink_encoding(rx, writer, encoding); + } + + fn _sink_encoding(rx: tokio::sync::mpsc::Receiver, writer: Writer, encoding: Encoding) { + match encoding { + Encoding::Csv { sep } => { + let encoder = formats::csv::ser::Writer::new(sep); + Self::_sink_writer(rx, writer, encoder); + } + Encoding::Json => { + let encoder = formats::json::ser::Writer::new(); + Self::_sink_writer(rx, writer, encoder); + } + } + } + + fn _sink_writer( + rx: tokio::sync::mpsc::Receiver, + writer: Writer, + encoder: impl Encode + 'static, + ) { + tokio::task::spawn_local(async move { + match writer { + Writer::Stdout => Self::write_pipe(rx, encoder, tokio::io::stdout()).await, + Writer::File { path } => Self::write_file(rx, path, encoder).await, + Writer::Http { url } => Self::write_http(rx, url, encoder).await, + Writer::Tcp { addr } => Self::write_socket(rx, addr, encoder).await, + Writer::Kafka { addr: _, topic: _ } => todo!(), + } + }); + } + + pub fn map(mut self, f: fn(T) -> O) -> Stream + where + O: Data, + { + let (tx1, rx1) = tokio::sync::mpsc::channel(100); + tokio::task::spawn_local(async move { + loop { + match self.recv().await { + Event::Data(t, v) => tx1.send(Event::Data(t, f(v))).await, + Event::Watermark(t) => tx1.send(Event::Watermark(t)).await, + Event::Snapshot(i) => tx1.send(Event::Snapshot(i)).await, + Event::Sentinel => { + tx1.send(Event::Sentinel).await.unwrap(); + break; + } + } + .unwrap() + } + }); + Stream(rx1) + } + + pub fn filter(mut self, f: fn(T) -> bool) -> Stream { + let (tx1, rx1) = tokio::sync::mpsc::channel(100); + tokio::task::spawn_local(async move { + loop { + match self.recv().await { + Event::Data(t, v) => { + if f(v.clone()) { + tx1.send(Event::Data(t, v)).await.unwrap(); + } + } + Event::Watermark(t) => tx1.send(Event::Watermark(t)).await.unwrap(), + Event::Snapshot(i) => tx1.send(Event::Snapshot(i)).await.unwrap(), + Event::Sentinel => { + tx1.send(Event::Sentinel).await.unwrap(); + break; + } + } + } + }); + Stream(rx1) + } + + pub fn keyby(mut self, fun: fn(T) -> K) -> KeyedStream { + let (tx1, rx1) = tokio::sync::mpsc::channel(100); + tokio::task::spawn_local(async move { + loop { + match self.0.recv().await.unwrap() { + Event::Data(t, v) => { + let k = fun(v.clone()); + tx1.send(KeyedEvent::Data(t, k, v)).await.unwrap(); + } + Event::Watermark(t) => { + tx1.send(KeyedEvent::Watermark(t)).await.unwrap(); + } + Event::Snapshot(i) => { + tx1.send(KeyedEvent::Snapshot(i)).await.unwrap(); + } + Event::Sentinel => { + tx1.send(KeyedEvent::Sentinel).await.unwrap(); + break; + } + } + } + }); + KeyedStream(rx1) + } + + pub fn scan(mut self, init: A, fun: fn(T, A) -> A) -> Stream { + let (tx1, rx1) = tokio::sync::mpsc::channel(100); + tokio::task::spawn_local(async move { + let mut acc = init; + loop { + match self.0.recv().await.unwrap() { + Event::Data(t, v) => { + acc = fun(v.clone(), acc); + tx1.send(Event::Data(t, acc.clone())).await.unwrap(); + } + Event::Watermark(t) => { + tx1.send(Event::Watermark(t)).await.unwrap(); + } + Event::Snapshot(i) => { + tx1.send(Event::Snapshot(i)).await.unwrap(); + } + Event::Sentinel => { + tx1.send(Event::Sentinel).await.unwrap(); + break; + } + } + } + }); + Stream(rx1) + } + + pub fn merge(mut self, mut other: Self) -> Self { + let (tx2, rx2) = tokio::sync::mpsc::channel(100); + tokio::task::spawn_local(async move { + loop { + let event = tokio::select! { + event = self.recv() => if let Event::Sentinel = event { + other.recv().await + } else { + event + }, + event = other.recv() => if let Event::Sentinel = event { + self.recv().await + } else { + event + }, + }; + match event { + Event::Data(t, v1) => { + tx2.send(Event::Data(t, v1)).await.unwrap(); + } + Event::Watermark(t) => { + tx2.send(Event::Watermark(t)).await.unwrap(); + } + Event::Snapshot(i) => { + tx2.send(Event::Snapshot(i)).await.unwrap(); + } + Event::Sentinel => { + tx2.send(Event::Sentinel).await.unwrap(); + break; + } + } + } + }); + Self(rx2) + } + + pub fn split(mut self) -> (Self, Self) { + let (tx1, rx1) = tokio::sync::mpsc::channel(100); + let (tx2, rx2) = tokio::sync::mpsc::channel(100); + tokio::task::spawn_local(async move { + loop { + let (l, r) = match self.recv().await { + Event::Data(t, v1) => { + let v2 = v1.clone(); + tokio::join!(tx1.send(Event::Data(t, v2)), tx2.send(Event::Data(t, v1)),) + } + Event::Watermark(t) => { + tokio::join!(tx1.send(Event::Watermark(t)), tx2.send(Event::Watermark(t))) + } + Event::Snapshot(i) => { + tokio::join!(tx1.send(Event::Snapshot(i)), tx2.send(Event::Snapshot(i))) + } + Event::Sentinel => { + tokio::join!(tx1.send(Event::Sentinel), tx2.send(Event::Sentinel)) + } + }; + l.unwrap(); + r.unwrap(); + } + }); + (Self(rx1), Self(rx2)) + } + + async fn recv(&mut self) -> Event { + self.0.recv().await.unwrap() + } +} diff --git a/arc-lang/crates/runtime/builtins/src/string.rs b/arc-lang/crates/runtime/builtins/src/string.rs new file mode 100644 index 000000000..610006300 --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/string.rs @@ -0,0 +1,174 @@ +use formats::Decode; +use formats::Encode; +use macros::DeepClone; +use macros::Send; +use macros::Unpin; + +use serde::de::DeserializeOwned; +use serde::Deserialize; +use serde::Serialize; + +use crate::cow::Cow; +use crate::encoding::Encoding; +use crate::traits::DeepClone; +use crate::vec::Vec; + +#[derive(Clone, DeepClone, Send, Hash, Eq, PartialEq, Ord, PartialOrd, Debug, Unpin)] +#[repr(C)] +pub enum String { + Text(&'static str), + Heap(Cow), +} + +impl Serialize for String { + fn serialize(&self, serializer: S) -> Result + where + S: serde::Serializer, + { + match self { + String::Text(s) => s.serialize(serializer), + String::Heap(s) => s.serialize(serializer), + } + } +} + +impl<'de> Deserialize<'de> for String { + fn deserialize(deserializer: D) -> Result + where + D: serde::Deserializer<'de>, + { + let s = ::deserialize(deserializer)?; + Ok(String::from(s)) + } +} + +impl std::fmt::Display for String { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, r#""{}""#, self.as_ref()) + } +} + +impl DeepClone for std::string::String { + fn deep_clone(&self) -> Self { + self.clone() + } +} + +impl AsRef for String { + fn as_ref(&self) -> &str { + match self { + String::Text(s) => s, + String::Heap(s) => s.as_ref(), + } + } +} + +impl String { + pub fn new() -> String { + String::Text("") + } + + pub fn with_capacity(capacity: usize) -> String { + String::from(std::string::String::with_capacity(capacity)) + } + + fn update(&mut self, f: impl FnOnce(&mut std::string::String) -> O) -> O { + match self { + String::Text(s) => { + let mut s = std::string::String::from(*s); + let o = f(&mut s); + *self = String::Heap(Cow::new(s)); + o + } + String::Heap(s) => s.update(f), + } + } + + pub fn push(mut self, ch: char) -> Self { + self.update(|s| s.push(ch)); + self + } + + pub fn push_string(mut self, other: String) -> Self { + self.update(|s| s.push_str(other.as_ref())); + self + } + + pub fn remove(mut self, idx: usize) -> (Self, char) { + let c = self.update(|s| s.remove(idx)); + (self, c) + } + + pub fn insert(mut self, idx: usize, ch: char) -> Self { + self.update(|s| s.insert(idx, ch)); + self + } + + pub fn is_empty(self) -> bool { + self.as_ref().is_empty() + } + + pub fn split_off(mut self, at: usize) -> (Self, String) { + let s = self.update(|s| String::from(s.split_off(at))); + (self, s) + } + + pub fn lines(self) -> Vec { + self.as_ref() + .lines() + .map(|s| String::from(s.to_string())) + .collect::>() + .into() + } + + pub fn clear(mut self) -> Self { + self.update(|s| s.clear()); + self + } + + pub fn len(self) -> usize { + self.as_ref().len() + } + + pub fn decode(self, encoding: Encoding) -> T { + match encoding { + Encoding::Csv { sep } => formats::csv::de::Reader::<1024>::new(sep) + .decode(self.as_ref().as_bytes()) + .unwrap(), + Encoding::Json => formats::json::de::Reader::new() + .decode(self.as_ref().as_bytes()) + .unwrap(), + } + } + + pub fn encode(value: T, encoding: Encoding) -> Self { + let mut output = std::vec::Vec::new(); + match encoding { + Encoding::Csv { sep } => formats::csv::ser::Writer::new(sep) + .encode(&value, &mut output) + .unwrap(), + Encoding::Json => formats::json::ser::Writer::new() + .encode(&value, &mut output) + .unwrap(), + }; + String::from(std::string::String::from_utf8(output).unwrap()) + } +} + +impl<'a> From<&'a str> for String { + fn from(s: &'a str) -> Self { + String::from(s.to_string()) + } +} + +impl From for String { + fn from(i: i32) -> Self { + String::from(i.to_string()) + } +} + +impl From for String { + fn from(s: std::string::String) -> Self { + String::Heap(Cow::new(s)) + } +} diff --git a/arc-lang/crates/runtime/builtins/src/time.rs b/arc-lang/crates/runtime/builtins/src/time.rs new file mode 100644 index 000000000..640bd3e16 --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/time.rs @@ -0,0 +1,92 @@ +use crate::traits::DeepClone; +use serde::Deserialize; +use serde::Deserializer; +use serde::Serialize; +use serde::Serializer; +use time::format_description::well_known; + +use super::string::String; + +#[derive(Copy, Clone, Debug, Hash, Eq, PartialEq, Ord, PartialOrd)] +#[repr(C)] +pub struct Time(pub time::OffsetDateTime); + +const EU: &[time::format_description::FormatItem<'_>] = + time::macros::format_description!(version = 2, "[year]-[month]-[day] [hour]:[minute]:[second]"); + +const US: &[time::format_description::FormatItem<'_>] = time::macros::format_description!( + version = 2, + "[month]/[day]/[year] [hour]:[minute]:[second] [period case:upper]" +); + +impl Serialize for Time { + fn serialize(&self, s: S) -> Result { + let v = time::OffsetDateTime::format(self.0, &well_known::Iso8601::DEFAULT) + .map_err(serde::ser::Error::custom)?; + v.serialize(s) + } +} + +impl<'de> Deserialize<'de> for Time { + fn deserialize>(d: D) -> Result { + let s: std::string::String = Deserialize::deserialize(d)?; + match time::PrimitiveDateTime::parse(s.as_ref(), &well_known::Iso8601::DEFAULT) + .or_else(|_| time::PrimitiveDateTime::parse(s.as_ref(), &well_known::Rfc2822)) + .or_else(|_| time::PrimitiveDateTime::parse(s.as_ref(), &well_known::Rfc3339)) + .or_else(|_| time::PrimitiveDateTime::parse(s.as_ref(), &EU)) + .or_else(|_| time::PrimitiveDateTime::parse(s.as_ref(), &US)) + .map_err(serde::de::Error::custom) + { + Ok(v) => Ok(Time(v.assume_utc())), + Err(e) => s + .as_str() + .parse() + .ok() + .and_then(|v| time::OffsetDateTime::from_unix_timestamp(v).ok()) + .map(|v| Time(v)) + .ok_or(e), + } + } +} + +impl DeepClone for Time { + fn deep_clone(&self) -> Self { + Time(self.0) + } +} + +impl Time { + pub fn now() -> Time { + Time(time::OffsetDateTime::now_utc()) + } + + pub fn from_seconds(seconds: i64) -> Time { + Time(time::OffsetDateTime::from_unix_timestamp(seconds).unwrap()) + } + + pub fn from_nanoseconds(nanoseconds: i128) -> Time { + Time(time::OffsetDateTime::from_unix_timestamp_nanos(nanoseconds).unwrap()) + } + + pub fn from_string(text: String, format: String) -> Time { + let format = time::format_description::parse_owned::<2>(format.as_ref()).unwrap(); + Time(time::OffsetDateTime::parse(text.as_ref(), &format).unwrap()) + } + + pub fn seconds(self) -> i64 { + self.0.unix_timestamp() + } + + pub fn nanoseconds(self) -> i128 { + self.0.unix_timestamp_nanos() + } + + pub fn year(self) -> i32 { + self.0.year() as i32 + } + + pub fn to_text(self, format: String) -> String { + let format = time::format_description::parse_owned::<2>(format.as_ref()).unwrap(); + String::from(self.0.format(&format).unwrap().as_str()) + } +} diff --git a/arc-lang/crates/runtime/builtins/src/time_source.rs b/arc-lang/crates/runtime/builtins/src/time_source.rs new file mode 100644 index 000000000..520bee3a9 --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/time_source.rs @@ -0,0 +1,35 @@ +use serde::Deserialize; +use serde::Serialize; + +use crate::duration::Duration; +use crate::time::Time; + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[repr(C)] +pub enum TimeSource { + Ingestion { + watermark_interval: Duration, + }, + Event { + extractor: F, + watermark_interval: Duration, + slack: Duration, + }, +} + +impl TimeSource Time> { + pub fn ingestion(watermark_interval: Duration) -> Self { + Self::Ingestion { watermark_interval } + } + pub fn event( + extractor: fn(T) -> Time, + watermark_interval: Duration, + slack: Duration, + ) -> Self { + Self::Event { + extractor, + watermark_interval, + slack, + } + } +} diff --git a/arc-lang/crates/runtime/builtins/src/traits.rs b/arc-lang/crates/runtime/builtins/src/traits.rs new file mode 100644 index 000000000..87743d9c8 --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/traits.rs @@ -0,0 +1,83 @@ +use serde::Deserialize; +use serde::Serialize; +use std::fmt::Debug; +use std::hash::Hash; + +pub trait Data: + DeepClone + Clone + Send + Serialize + for<'a> Deserialize<'a> + Unpin + Debug + 'static +{ +} +impl Data for T where + T: DeepClone + Clone + Send + Serialize + for<'a> Deserialize<'a> + Unpin + Debug + 'static +{ +} + +pub trait Key: Data + Eq + PartialEq + Hash {} +impl Key for T where T: Data + Eq + PartialEq + Hash {} + +pub trait DeepClone: Clone { + fn deep_clone(&self) -> Self; +} + +macro_rules! impl_deep_clone_tuple { + { $h:ident $(, $t:ident)* } => { + impl<$h: DeepClone, $($t: DeepClone),*> DeepClone for ($h, $($t,)*) { + #[allow(non_snake_case)] + fn deep_clone(&self) -> Self { + let ($h, $($t,)*) = self; + ($h.deep_clone(), $($t.deep_clone(),)*) + } + } + impl_deep_clone_tuple! { $($t),* } + }; + {} => {} +} + +impl_deep_clone_tuple!(A, B, C, D, E, F, G, H); + +impl DeepClone for std::rc::Rc { + fn deep_clone(&self) -> Self { + std::rc::Rc::new(self.as_ref().deep_clone()) + } +} + +impl DeepClone for std::sync::Arc { + fn deep_clone(&self) -> Self { + std::sync::Arc::new(self.as_ref().deep_clone()) + } +} + +impl DeepClone for std::vec::Vec { + fn deep_clone(&self) -> Self { + self.iter().map(|x| x.deep_clone()).collect() + } +} + +macro_rules! impl_deep_clone_scalar { + { $t:ty } => { + impl DeepClone for $t { + fn deep_clone(&self) -> Self { + *self + } + } + }; +} + +impl_deep_clone_scalar! { () } +impl_deep_clone_scalar! { bool } +impl_deep_clone_scalar! { i8 } +impl_deep_clone_scalar! { i16 } +impl_deep_clone_scalar! { i32 } +impl_deep_clone_scalar! { i64 } +impl_deep_clone_scalar! { i128 } +impl_deep_clone_scalar! { isize } +impl_deep_clone_scalar! { u8 } +impl_deep_clone_scalar! { u16 } +impl_deep_clone_scalar! { u32 } +impl_deep_clone_scalar! { u64 } +impl_deep_clone_scalar! { u128 } +impl_deep_clone_scalar! { usize } +impl_deep_clone_scalar! { f32 } +impl_deep_clone_scalar! { f64 } +impl_deep_clone_scalar! { char } +impl_deep_clone_scalar! { &'static str } diff --git a/arc-lang/crates/runtime/builtins/src/url.rs b/arc-lang/crates/runtime/builtins/src/url.rs new file mode 100644 index 000000000..1eeb84dc6 --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/url.rs @@ -0,0 +1,22 @@ +use serde::Deserialize; +use serde::Serialize; + +use crate::result::Result; +use crate::string::String; + +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)] +#[repr(C)] +pub struct Url(pub url::Url); + +impl Url { + pub fn parse(s: String) -> Result { + match url::Url::parse(s.as_ref()) { + Ok(v) => Result::ok(Url(v)), + Err(s) => Result::error(s.to_string().into()), + } + } + + pub fn to_string(self) -> String { + String::from(self.0.to_string()) + } +} diff --git a/arc-lang/crates/runtime/builtins/src/vec.rs b/arc-lang/crates/runtime/builtins/src/vec.rs new file mode 100644 index 000000000..22f51b3b6 --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/vec.rs @@ -0,0 +1,112 @@ +use macros::Send; +use macros::Sync; +use macros::Unpin; +use serde::Deserialize; +use serde::Serialize; + +use crate::cow::Cow; +use crate::iterator::Iter; +use crate::option::Option; +use crate::traits::DeepClone; + +#[derive(Clone, Debug, Send, Sync, Unpin, Serialize, Deserialize, Eq, PartialEq, Hash, Ord, PartialOrd)] +#[repr(C)] +pub struct Vec(pub Cow>); + +impl DeepClone for Vec { + fn deep_clone(&self) -> Self { + Self(self.0.deep_clone()) + } +} + +impl std::ops::Index for Vec { + type Output = T; + + fn index(&self, index: usize) -> &Self::Output { + &self.0[index] + } +} + +impl Vec { + /// Returns an iterator over the slice. + pub fn iter(self) -> Iter + Clone> + where + T: Clone, + { + Iter::new(self.0.take().into_iter()) + } + + pub fn new() -> Vec { + Vec(Cow::new(std::vec::Vec::::new())) + } + + pub fn len(self) -> usize { + self.0.len() + } + + pub fn push(mut self, value: T) -> Self + where + T: Clone, + { + self.0.update(|this| this.push(value)); + self + } + + pub fn pop(mut self) -> (Self, Option) + where + T: Clone, + { + let x = self.0.update(|this| this.pop()); + (self, Option::from(x)) + } + + pub fn remove(mut self, index: usize) -> (Self, T) + where + T: Clone, + { + let x = self.0.update(|this| this.remove(index)); + (self, x) + } + + pub fn get(self, index: usize) -> Option + where + T: Clone, + { + Option::from(self.0.get(index).map(|x| x.clone())) + } + + pub fn insert(mut self, index: usize, value: T) -> Self + where + T: Clone, + { + self.0.update(|this| this.insert(index, value)); + self + } + + pub fn is_empty(self) -> bool { + self.0.is_empty() + } + + pub fn sort(mut self) -> Self + where + T: Clone + PartialOrd, + { + self.0 + .update(|this| this.sort_by(|a, b| a.partial_cmp(b).unwrap())); + self + } + + pub fn truncate(mut self, len: usize) -> Self + where + T: Clone, + { + self.0.update(|this| this.truncate(len)); + self + } +} + +impl From> for Vec { + fn from(vec: std::vec::Vec) -> Self { + Vec(Cow::new(vec)) + } +} diff --git a/arc-lang/crates/runtime/builtins/src/writer.rs b/arc-lang/crates/runtime/builtins/src/writer.rs new file mode 100644 index 000000000..c6d57edc0 --- /dev/null +++ b/arc-lang/crates/runtime/builtins/src/writer.rs @@ -0,0 +1,38 @@ +#![allow(unused)] +use serde::Deserialize; +use serde::Serialize; + +use crate::path::Path; +use crate::socket::SocketAddr; +use crate::stream::Stream; +use crate::string::String; +use crate::traits::Data; +use crate::url::Url; + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[repr(C)] +pub enum Writer { + Stdout, + File { path: Path }, + Http { url: Url }, + Tcp { addr: SocketAddr }, + Kafka { addr: SocketAddr, topic: String }, +} + +impl Writer { + pub fn stdout() -> Self { + Self::Stdout + } + pub fn file(path: Path) -> Self { + Self::File { path } + } + pub fn http(url: Url) -> Self { + Self::Http { url } + } + pub fn tcp(addr: SocketAddr) -> Self { + Self::Tcp { addr } + } + pub fn kafka(addr: SocketAddr, topic: String) -> Self { + Self::Kafka { addr, topic } + } +} diff --git a/arc-lang/crates/runtime/formats/Cargo.toml b/arc-lang/crates/runtime/formats/Cargo.toml new file mode 100644 index 000000000..7e5276a2c --- /dev/null +++ b/arc-lang/crates/runtime/formats/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "formats" +version.workspace = true +edition.workspace = true + +[dependencies] +atoi.workspace = true +csv-core.workspace = true +itoa.workspace = true +lexical-parse-float.workspace = true +ryu.workspace = true +serde.workspace = true +serde_json.workspace = true +tracing.workspace = true diff --git a/arc-lang/crates/runtime/formats/src/csv/de.rs b/arc-lang/crates/runtime/formats/src/csv/de.rs new file mode 100644 index 000000000..66c9c23ce --- /dev/null +++ b/arc-lang/crates/runtime/formats/src/csv/de.rs @@ -0,0 +1,467 @@ +use serde::de::DeserializeSeed; +use serde::Deserialize; + +use crate::Decode; + +pub struct Reader { + inner: csv_core::Reader, + buffer: [u8; N], +} + +struct Deserializer<'a, const N: usize> { + reader: &'a mut Reader, + input: &'a [u8], + nread: usize, + record_end: bool, + peeked: Option, +} + +impl Reader { + #[allow(clippy::new_without_default)] + pub fn new(sep: char) -> Self { + Self { + inner: csv_core::ReaderBuilder::new().delimiter(sep as u8).build(), + buffer: [0; N], + } + } +} +impl Decode for Reader { + type Error = Error; + fn decode<'de, T>(&mut self, input: &'de [u8]) -> Result + where + T: Deserialize<'de>, + { + let mut deserializer = Deserializer::new(self, input); + T::deserialize(&mut deserializer) + } +} + +#[derive(Debug, PartialEq, Eq)] +pub enum Error { + /// Buffer overflow. + Overflow, + /// Expected an empty field. + ExpectedEmpty, + /// Invalid boolean value. Expected either `true` or `false`. + InvalidBool(String), + /// Invalid integer. + InvalidInt(String), + /// Invalid floating-point number. + InvalidFloat(lexical_parse_float::Error), + /// Invalid UTF-8 encoded character. + InvalidChar(String), + /// Invalid UTF-8 encoded string. + InvalidStr(std::str::Utf8Error), + /// Invalid UTF-8 encoded string. + InvalidString(std::string::FromUtf8Error), + /// Error with a custom message had to be discard. + Custom(String), +} + +pub type Result = std::result::Result; + +impl std::fmt::Display for Error { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Self::Overflow => write!(f, "Buffer overflow."), + Self::ExpectedEmpty => write!(f, "Expected an empty field."), + Self::InvalidBool(s) => write!(f, "Invalid bool: {s}"), + Self::InvalidInt(s) => write!(f, "Invalid integer: {s}"), + Self::InvalidFloat(e) => write!(f, "Invalid float: {e}"), + Self::InvalidChar(s) => write!(f, "Invalid character: {s}"), + Self::InvalidStr(e) => write!(f, "Invalid string: {e}"), + Self::InvalidString(e) => write!(f, "Invalid string: {e}"), + Self::Custom(s) => write!(f, "CSV does not match deserializer's expected format: {s}"), + } + } +} + +impl serde::de::StdError for Error {} + +impl serde::de::Error for Error { + fn custom(msg: T) -> Self { + Self::Custom(msg.to_string()) + } +} + +impl<'a, const N: usize> Deserializer<'a, N> { + pub fn new(reader: &'a mut Reader, input: &'a [u8]) -> Self { + Self { + reader, + input, + nread: 0, + record_end: false, + peeked: None, + } + } + + /// Read a single field from the CSV input. + fn advance(&mut self) -> Result { + let (result, r, w) = self + .reader + .inner + .read_field(&self.input[self.nread..], &mut self.reader.buffer); + self.nread += r; + match result { + csv_core::ReadFieldResult::InputEmpty => {} + csv_core::ReadFieldResult::OutputFull => return Err(Error::Overflow), + csv_core::ReadFieldResult::Field { record_end } => self.record_end = record_end, + csv_core::ReadFieldResult::End => {} + } + Ok(w) + } + + fn peek_bytes(&mut self) -> Result<&[u8]> { + let len = match self.peeked { + Some(len) => len, + None => { + let len = self.advance()?; + self.peeked = Some(len); + len + } + }; + Ok(&self.reader.buffer[..len]) + } + + fn read_bytes(&mut self) -> Result<&[u8]> { + let len = match self.peeked.take() { + Some(len) => len, + None => self.advance()?, + }; + Ok(&self.reader.buffer[..len]) + } + + fn read_int(&mut self) -> Result { + let bytes = self.read_bytes()?; + atoi::atoi(bytes) + .ok_or_else(|| Error::InvalidInt(std::str::from_utf8(bytes).unwrap().to_string())) + } + + fn read_float(&mut self) -> Result { + T::from_lexical(self.read_bytes()?) + .map_err(|e: lexical_parse_float::Error| Error::InvalidFloat(e)) + } + + fn read_bool(&mut self) -> Result { + let bytes = self.read_bytes()?; + match bytes { + b"true" => Ok(true), + b"false" => Ok(false), + _ => Err(Error::InvalidBool( + std::str::from_utf8(bytes).unwrap().to_string(), + )), + } + } + + fn read_char(&mut self) -> Result { + let str = self.read_str()?; + let mut iter = str.chars(); + let c = iter + .next() + .ok_or_else(|| Error::InvalidChar(str.to_string()))?; + if iter.next().is_some() { + return Err(Error::InvalidChar(str.to_string())); + } else { + Ok(c) + } + } + + fn read_str(&mut self) -> Result<&str> { + std::str::from_utf8(self.read_bytes()?) + .map_err(|e: std::str::Utf8Error| Error::InvalidStr(e)) + } + + fn read_string(&mut self) -> Result { + std::string::String::from_utf8(self.read_bytes()?.to_vec()) + .map_err(|e| Error::InvalidString(e)) + } +} + +impl<'de, 'a, 'b, const N: usize> serde::de::Deserializer<'de> for &'a mut Deserializer<'b, N> { + type Error = Error; + + fn deserialize_any(self, _visitor: V) -> Result + where + V: serde::de::Visitor<'de>, + { + unreachable!("`Deserializer::deserialize_any` is not supported") + } + + fn deserialize_bool(self, visitor: V) -> Result + where + V: serde::de::Visitor<'de>, + { + visitor.visit_bool(self.read_bool()?) + } + + fn deserialize_i8(self, visitor: V) -> Result + where + V: serde::de::Visitor<'de>, + { + visitor.visit_i8(self.read_int()?) + } + + fn deserialize_i16(self, visitor: V) -> Result + where + V: serde::de::Visitor<'de>, + { + visitor.visit_i16(self.read_int()?) + } + + fn deserialize_i32(self, visitor: V) -> Result + where + V: serde::de::Visitor<'de>, + { + visitor.visit_i32(self.read_int()?) + } + + fn deserialize_i64(self, visitor: V) -> Result + where + V: serde::de::Visitor<'de>, + { + visitor.visit_i64(self.read_int()?) + } + + fn deserialize_u8(self, visitor: V) -> Result + where + V: serde::de::Visitor<'de>, + { + visitor.visit_u8(self.read_int()?) + } + + fn deserialize_u16(self, visitor: V) -> Result + where + V: serde::de::Visitor<'de>, + { + visitor.visit_u16(self.read_int()?) + } + + fn deserialize_u32(self, visitor: V) -> Result + where + V: serde::de::Visitor<'de>, + { + visitor.visit_u32(self.read_int()?) + } + + fn deserialize_u64(self, visitor: V) -> Result + where + V: serde::de::Visitor<'de>, + { + visitor.visit_u64(self.read_int()?) + } + + fn deserialize_f32(self, visitor: V) -> Result + where + V: serde::de::Visitor<'de>, + { + visitor.visit_f32(self.read_float()?) + } + + fn deserialize_f64(self, visitor: V) -> Result + where + V: serde::de::Visitor<'de>, + { + visitor.visit_f64(self.read_float()?) + } + + fn deserialize_char(self, visitor: V) -> Result + where + V: serde::de::Visitor<'de>, + { + visitor.visit_char(self.read_char()?) + } + + fn deserialize_str(self, visitor: V) -> Result + where + V: serde::de::Visitor<'de>, + { + visitor.visit_str(self.read_str()?) + } + + fn deserialize_string(self, visitor: V) -> Result + where + V: serde::de::Visitor<'de>, + { + visitor.visit_string(self.read_string()?) + } + + fn deserialize_bytes(self, visitor: V) -> Result + where + V: serde::de::Visitor<'de>, + { + visitor.visit_bytes(self.read_bytes()?) + } + + fn deserialize_byte_buf(self, visitor: V) -> Result + where + V: serde::de::Visitor<'de>, + { + visitor.visit_byte_buf(self.read_bytes()?.to_vec()) + } + + fn deserialize_option(self, visitor: V) -> Result + where + V: serde::de::Visitor<'de>, + { + if self.peek_bytes()?.is_empty() { + visitor.visit_none() + } else { + visitor.visit_some(self) + } + } + + fn deserialize_unit(self, visitor: V) -> Result + where + V: serde::de::Visitor<'de>, + { + if !self.read_bytes()?.is_empty() { + return Err(Error::ExpectedEmpty); + } + visitor.visit_unit() + } + + fn deserialize_unit_struct(self, _name: &'static str, visitor: V) -> Result + where + V: serde::de::Visitor<'de>, + { + self.deserialize_unit(visitor) + } + + fn deserialize_newtype_struct(self, _name: &'static str, visitor: V) -> Result + where + V: serde::de::Visitor<'de>, + { + visitor.visit_newtype_struct(self) + } + + fn deserialize_seq(self, visitor: V) -> Result + where + V: serde::de::Visitor<'de>, + { + visitor.visit_seq(self) + } + + fn deserialize_tuple(self, _len: usize, visitor: V) -> Result + where + V: serde::de::Visitor<'de>, + { + visitor.visit_seq(self) + } + + fn deserialize_tuple_struct( + self, + _name: &'static str, + _len: usize, + visitor: V, + ) -> Result + where + V: serde::de::Visitor<'de>, + { + visitor.visit_seq(self) + } + + fn deserialize_map(self, visitor: V) -> Result + where + V: serde::de::Visitor<'de>, + { + visitor.visit_seq(self) + } + + fn deserialize_struct( + self, + _name: &'static str, + _fields: &'static [&'static str], + visitor: V, + ) -> Result + where + V: serde::de::Visitor<'de>, + { + visitor.visit_seq(self) + } + + fn deserialize_enum( + self, + _name: &'static str, + _variants: &'static [&'static str], + visitor: V, + ) -> Result + where + V: serde::de::Visitor<'de>, + { + visitor.visit_enum(self) + } + + fn deserialize_identifier(self, _visitor: V) -> Result + where + V: serde::de::Visitor<'de>, + { + unimplemented!("`Deserializer::deserialize_identifier` is not supported"); + } + + fn deserialize_ignored_any(self, visitor: V) -> Result + where + V: serde::de::Visitor<'de>, + { + let _ = self.read_bytes()?; + visitor.visit_unit() + } +} + +impl<'de, 'a, 'b, const N: usize> serde::de::VariantAccess<'de> for &'a mut Deserializer<'b, N> { + type Error = Error; + + fn unit_variant(self) -> Result<()> { + Ok(()) + } + + fn newtype_variant_seed>(self, _seed: U) -> Result { + unimplemented!("`VariantAccess::newtype_variant_seed` is not implemented"); + } + + fn tuple_variant>( + self, + _len: usize, + _visitor: V, + ) -> Result { + unimplemented!("`VariantAccess::tuple_variant` is not implemented"); + } + + fn struct_variant>( + self, + _fields: &'static [&'static str], + _visitor: V, + ) -> Result { + unimplemented!("`VariantAccess::struct_variant` is not implemented"); + } +} + +impl<'de, 'a, 'b, const N: usize> serde::de::EnumAccess<'de> for &'a mut Deserializer<'b, N> { + type Error = Error; + + type Variant = Self; + + fn variant_seed(self, seed: V) -> Result<(V::Value, Self::Variant)> + where + V: DeserializeSeed<'de>, + { + use serde::de::IntoDeserializer; + let variant_name = self.read_bytes()?; + seed.deserialize(variant_name.into_deserializer()) + .map(|v| (v, self)) + } +} + +impl<'de, 'a, 'b, const N: usize> serde::de::SeqAccess<'de> for &'a mut Deserializer<'b, N> { + type Error = Error; + + fn next_element_seed(&mut self, seed: V) -> Result> + where + V: DeserializeSeed<'de>, + { + if self.record_end { + Ok(None) + } else { + seed.deserialize(&mut **self).map(Some) + } + } +} diff --git a/arc-lang/crates/runtime/formats/src/csv/ser.rs b/arc-lang/crates/runtime/formats/src/csv/ser.rs new file mode 100644 index 000000000..2edde9be6 --- /dev/null +++ b/arc-lang/crates/runtime/formats/src/csv/ser.rs @@ -0,0 +1,443 @@ +use serde::ser; +use serde::Serialize; + +use crate::Encode; + +pub struct Writer { + inner: csv_core::Writer, +} + +impl Writer { + #[allow(clippy::new_without_default)] + pub fn new(sep: char) -> Self { + Self { + inner: csv_core::WriterBuilder::new().delimiter(sep as u8).build(), + } + } +} + +impl Encode for Writer { + type Error = Error; + fn encode(&mut self, value: &T, output: &mut Vec) -> Result + where + T: Serialize + ?Sized, + { + let mut nwritten = 0; + + let mut serializer = Serializer::new(&mut self.inner, output); + value.serialize(&mut serializer)?; + nwritten += serializer.nwritten; + + let (result, n) = self.inner.terminator(&mut output[nwritten..]); + if result == csv_core::WriteResult::OutputFull { + return Err(Error::Overflow); + } + nwritten += n; + + Ok(nwritten) + } + + fn content_type(&self) -> &'static str { + "text/csv" + } +} + +/// This type represents all possible errors that can occur when serializing CSV data. +#[derive(Debug, PartialEq, Eq)] +pub enum Error { + /// Buffer overflow. + Overflow, +} + +pub type Result = std::result::Result; + +impl std::fmt::Display for Error { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Self::Overflow => write!(f, "Buffer overflow"), + } + } +} + +impl serde::ser::StdError for Error {} + +impl serde::ser::Error for Error { + fn custom(_msg: T) -> Self + where + T: std::fmt::Display, + { + unimplemented!("custom is not supported") + } +} + +/// A structure for serializing Rust values into CSV. +pub struct Serializer<'a> { + writer: &'a mut csv_core::Writer, + output: &'a mut [u8], + nwritten: usize, +} + +impl<'a> Serializer<'a> { + /// Creates a new CSV serializer. + pub fn new(writer: &'a mut csv_core::Writer, output: &'a mut [u8]) -> Self { + Self { + writer, + output, + nwritten: 0, + } + } + + fn field(&mut self, input: impl AsRef<[u8]>) -> Result<()> { + let (r, _, n) = self + .writer + .field(input.as_ref(), &mut self.output[self.nwritten..]); + self.nwritten += n; + if r == csv_core::WriteResult::OutputFull { + return Err(Error::Overflow); + } + Ok(()) + } + + fn delimiter(&mut self) -> Result<()> { + let (r, n) = self.writer.delimiter(&mut self.output[self.nwritten..]); + self.nwritten += n; + if r == csv_core::WriteResult::OutputFull { + return Err(Error::Overflow); + } + Ok(()) + } +} + +impl<'a, 'b> ser::Serializer for &'a mut Serializer<'b> { + type Ok = (); + + type Error = Error; + + type SerializeSeq = Compound<'a, 'b>; + + type SerializeTuple = Compound<'a, 'b>; + + type SerializeTupleStruct = Compound<'a, 'b>; + + type SerializeTupleVariant = Unreachable; + + type SerializeMap = Unreachable; + + type SerializeStruct = Compound<'a, 'b>; + + type SerializeStructVariant = Unreachable; + + fn serialize_bool(self, v: bool) -> Result { + if v { + self.field(b"true") + } else { + self.field(b"false") + } + } + + fn serialize_i8(self, v: i8) -> Result { + self.field(itoa::Buffer::new().format(v)) + } + + fn serialize_i16(self, v: i16) -> Result { + self.field(itoa::Buffer::new().format(v)) + } + + fn serialize_i32(self, v: i32) -> Result { + self.field(itoa::Buffer::new().format(v)) + } + + fn serialize_i64(self, v: i64) -> Result { + self.field(itoa::Buffer::new().format(v)) + } + + fn serialize_u8(self, v: u8) -> Result { + self.field(itoa::Buffer::new().format(v)) + } + + fn serialize_u16(self, v: u16) -> Result { + self.field(itoa::Buffer::new().format(v)) + } + + fn serialize_u32(self, v: u32) -> Result { + self.field(itoa::Buffer::new().format(v)) + } + + fn serialize_u64(self, v: u64) -> Result { + self.field(itoa::Buffer::new().format(v)) + } + + fn serialize_f32(self, v: f32) -> Result { + self.field(ryu::Buffer::new().format(v)) + } + + fn serialize_f64(self, v: f64) -> Result { + self.field(ryu::Buffer::new().format(v)) + } + + fn serialize_char(self, v: char) -> Result { + self.field(v.encode_utf8(&mut [0; 4])) + } + + fn serialize_str(self, v: &str) -> Result { + self.field(v) + } + + fn serialize_bytes(self, v: &[u8]) -> Result { + self.field(v) + } + + fn serialize_none(self) -> Result { + self.field([]) + } + + fn serialize_some(self, value: &T) -> Result + where + T: ser::Serialize, + { + value.serialize(self) + } + + fn serialize_unit(self) -> Result { + self.field([]) + } + + fn serialize_unit_struct(self, name: &'static str) -> Result { + self.field(name) + } + + fn serialize_unit_variant( + self, + _name: &'static str, + _variant_index: u32, + variant: &'static str, + ) -> Result { + self.field(variant) + } + + fn serialize_newtype_struct(self, _name: &'static str, value: &T) -> Result + where + T: ser::Serialize, + { + value.serialize(self) + } + + fn serialize_newtype_variant( + self, + _name: &'static str, + _variant_index: u32, + _variant: &'static str, + value: &T, + ) -> Result + where + T: ser::Serialize, + { + value.serialize(self) + } + + fn serialize_seq(self, _len: Option) -> Result { + Ok(Compound::new(self)) + } + + fn serialize_tuple(self, _len: usize) -> Result { + Ok(Compound::new(self)) + } + + fn serialize_tuple_struct( + self, + _name: &'static str, + _len: usize, + ) -> Result { + Ok(Compound::new(self)) + } + + fn serialize_tuple_variant( + self, + _name: &'static str, + _variant_index: u32, + _variant: &'static str, + _len: usize, + ) -> Result { + unimplemented!("`Serializer::serialize_tuple_variant` is not supported"); + } + + fn serialize_map(self, _len: Option) -> Result { + unimplemented!("`Serializer::serialize_map` is not supported"); + } + + fn serialize_struct(self, _name: &'static str, _len: usize) -> Result { + Ok(Compound::new(self)) + } + + fn serialize_struct_variant( + self, + _name: &'static str, + _variant_index: u32, + _variant: &'static str, + _len: usize, + ) -> Result { + unimplemented!("`Serializer::serialize_struct_variant` is not supported"); + } + + fn collect_str(self, _value: &T) -> Result + where + T: std::fmt::Display, + { + unimplemented!("`Serializer::collect_str` is not supported"); + } +} + +#[doc(hidden)] +pub struct Compound<'a, 'b> { + serializer: &'a mut Serializer<'b>, + nfields: usize, +} + +impl<'a, 'b> Compound<'a, 'b> { + fn new(serializer: &'a mut Serializer<'b>) -> Self { + Self { + serializer, + nfields: 0, + } + } + + fn element(&mut self, value: &T) -> Result<()> + where + T: ser::Serialize, + { + if self.nfields > 0 { + self.serializer.delimiter()?; + } + self.nfields += 1; + value.serialize(&mut *self.serializer) + } +} + +impl ser::SerializeSeq for Compound<'_, '_> { + type Ok = (); + + type Error = Error; + + fn serialize_element(&mut self, value: &T) -> Result<()> + where + T: ser::Serialize, + { + self.element(value) + } + + fn end(self) -> Result { + Ok(()) + } +} + +impl ser::SerializeTuple for Compound<'_, '_> { + type Ok = (); + + type Error = Error; + + fn serialize_element(&mut self, value: &T) -> Result<()> + where + T: ser::Serialize, + { + self.element(value) + } + + fn end(self) -> Result { + Ok(()) + } +} + +impl ser::SerializeTupleStruct for Compound<'_, '_> { + type Ok = (); + + type Error = Error; + + fn serialize_field(&mut self, value: &T) -> Result<()> + where + T: ser::Serialize, + { + self.element(value) + } + + fn end(self) -> Result { + Ok(()) + } +} + +impl ser::SerializeStruct for Compound<'_, '_> { + type Ok = (); + + type Error = Error; + + fn serialize_field(&mut self, _key: &'static str, value: &T) -> Result<()> + where + T: ser::Serialize, + { + self.element(value) + } + + fn end(self) -> Result { + Ok(()) + } +} + +#[doc(hidden)] +pub struct Unreachable; + +impl ser::SerializeTupleVariant for Unreachable { + type Ok = (); + + type Error = Error; + + fn serialize_field(&mut self, _value: &T) -> Result<()> + where + T: ser::Serialize, + { + unreachable!() + } + + fn end(self) -> Result { + unreachable!() + } +} + +impl ser::SerializeMap for Unreachable { + type Ok = (); + + type Error = Error; + + fn serialize_key(&mut self, _key: &T) -> Result<()> + where + T: ser::Serialize, + { + unreachable!() + } + + fn serialize_value(&mut self, _value: &T) -> Result<()> + where + T: ser::Serialize, + { + unreachable!() + } + + fn end(self) -> Result { + unreachable!() + } +} + +impl ser::SerializeStructVariant for Unreachable { + type Ok = (); + + type Error = Error; + + fn serialize_field(&mut self, _key: &'static str, _value: &T) -> Result<()> + where + T: ser::Serialize, + { + unreachable!() + } + + fn end(self) -> Result { + unreachable!() + } +} diff --git a/arc-lang/crates/runtime/formats/src/json/de.rs b/arc-lang/crates/runtime/formats/src/json/de.rs new file mode 100644 index 000000000..ce17fe307 --- /dev/null +++ b/arc-lang/crates/runtime/formats/src/json/de.rs @@ -0,0 +1,25 @@ +use serde_json::Deserializer; + +use crate::Decode; + +pub struct Reader {} + +impl Reader { + pub fn new() -> Self { + Self {} + } +} + +impl Decode for Reader { + type Error = serde_json::Error; + + fn decode<'de, T>(&mut self, input: &'de [u8]) -> Result + where + T: serde::Deserialize<'de>, + { + let mut deserializer = Deserializer::from_slice(input); + let value = T::deserialize(&mut deserializer)?; + deserializer.end()?; + Ok(value) + } +} diff --git a/arc-lang/crates/runtime/formats/src/json/ser.rs b/arc-lang/crates/runtime/formats/src/json/ser.rs new file mode 100644 index 000000000..44c5327cb --- /dev/null +++ b/arc-lang/crates/runtime/formats/src/json/ser.rs @@ -0,0 +1,26 @@ +use crate::Encode; + +pub struct Writer {} + +impl Writer { + pub fn new() -> Self { + Self {} + } +} + +impl Encode for Writer { + type Error = serde_json::Error; + + fn encode(&mut self, input: &T, output: &mut Vec) -> Result + where + T: serde::Serialize + ?Sized, + { + let mut serializer = serde_json::Serializer::new(output); + input.serialize(&mut serializer)?; + Ok(1) + } + + fn content_type(&self) -> &'static str { + "application/json" + } +} diff --git a/arc-lang/crates/runtime/formats/src/lib.rs b/arc-lang/crates/runtime/formats/src/lib.rs new file mode 100644 index 000000000..c757e7435 --- /dev/null +++ b/arc-lang/crates/runtime/formats/src/lib.rs @@ -0,0 +1,27 @@ +use serde::Deserialize; +use serde::Serialize; + +pub mod csv { + pub mod de; + pub mod ser; +} + +pub mod json { + pub mod de; + pub mod ser; +} + +pub trait Decode { + type Error: std::error::Error; + fn decode<'de, T>(&mut self, input: &'de [u8]) -> Result + where + T: Deserialize<'de>; +} + +pub trait Encode { + type Error: std::error::Error; + fn encode(&mut self, input: &T, output: &mut Vec) -> Result + where + T: Serialize + ?Sized; + fn content_type(&self) -> &'static str; +} diff --git a/arc-runtime/macros/Cargo.lock b/arc-lang/crates/runtime/macros/Cargo.lock similarity index 100% rename from arc-runtime/macros/Cargo.lock rename to arc-lang/crates/runtime/macros/Cargo.lock diff --git a/arc-lang/crates/runtime/macros/Cargo.toml b/arc-lang/crates/runtime/macros/Cargo.toml new file mode 100644 index 000000000..570ca7949 --- /dev/null +++ b/arc-lang/crates/runtime/macros/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "macros" +version.workspace = true +edition.workspace = true + +[lib] +proc-macro = true + +[dependencies] +quote.workspace = true +syn.workspace = true +proc-macro2.workspace = true diff --git a/arc-lang/crates/runtime/macros/src/lib.rs b/arc-lang/crates/runtime/macros/src/lib.rs new file mode 100644 index 000000000..552018905 --- /dev/null +++ b/arc-lang/crates/runtime/macros/src/lib.rs @@ -0,0 +1,37 @@ +use proc_macro::TokenStream; + +mod proc_macro_attrs; +mod proc_macro_derives; +mod proc_macros; +pub(crate) mod utils; + +#[proc_macro_derive(Send)] +pub fn derive_send(input: TokenStream) -> TokenStream { + proc_macro_derives::derive_send(syn::parse_macro_input!(input as syn::DeriveInput)) +} + +#[proc_macro_derive(Sync)] +pub fn derive_sync(input: TokenStream) -> TokenStream { + proc_macro_derives::derive_sync(syn::parse_macro_input!(input as syn::DeriveInput)) +} + +#[proc_macro_derive(Unpin)] +pub fn derive_unpin(input: TokenStream) -> TokenStream { + proc_macro_derives::derive_unpin(syn::parse_macro_input!(input as syn::DeriveInput)) +} + +#[proc_macro_derive(DeepClone)] +pub fn derive_deep_clone(input: TokenStream) -> TokenStream { + proc_macro_derives::derive_deep_clone(syn::parse_macro_input!(input as syn::DeriveInput)) +} + +/// Unwraps a value out of an enum-variant. Panics if it's the wrong variant. +#[proc_macro] +pub fn unwrap(input: TokenStream) -> TokenStream { + proc_macros::unwrap(input) +} + +#[proc_macro_attribute] +pub fn data(_attr: TokenStream, input: TokenStream) -> TokenStream { + proc_macro_attrs::data(syn::parse_macro_input!(input as syn::DeriveInput)) +} diff --git a/arc-lang/crates/runtime/macros/src/proc_macro_attrs.rs b/arc-lang/crates/runtime/macros/src/proc_macro_attrs.rs new file mode 100644 index 000000000..e961b2d18 --- /dev/null +++ b/arc-lang/crates/runtime/macros/src/proc_macro_attrs.rs @@ -0,0 +1,12 @@ +use proc_macro as pm; + +#[allow(unused)] +pub(crate) fn data(mut item: syn::DeriveInput) -> pm::TokenStream { + quote::quote! { + #[derive(Debug, Clone, Send, DeepClone, serde::Serialize, serde::Deserialize)] + #[serde(crate = "runtime::prelude::serde")] + #[serde(bound(deserialize = ""))] + #item + } + .into() +} diff --git a/arc-lang/crates/runtime/macros/src/proc_macro_attrs/export/functions.rs b/arc-lang/crates/runtime/macros/src/proc_macro_attrs/export/functions.rs new file mode 100644 index 000000000..7a728692d --- /dev/null +++ b/arc-lang/crates/runtime/macros/src/proc_macro_attrs/export/functions.rs @@ -0,0 +1,33 @@ +use proc_macro as pm; +use quote::quote; + +pub(crate) fn export(_attr: syn::AttributeArgs, item: syn::ItemFn) -> pm::TokenStream { + let mut inputs = item.sig.inputs.clone().into_iter().collect::>(); + let fn_name = &item.sig.ident; + let name = crate::utils::new_id(format!("export_{}", fn_name)); + let output = &item.sig.output; + let (impl_generics, _, where_clause) = item.sig.generics.split_for_impl(); + let (ids, tys): (Vec<_>, Vec<_>) = inputs + .iter() + .map(|i| match i { + syn::FnArg::Receiver(_) => unreachable!(), + syn::FnArg::Typed(i) => (&i.pat, &i.ty), + }) + .unzip(); + if item.sig.asyncness.is_some() { + quote! { + #item + pub async fn #name #impl_generics ((#(#ids,)*):(#(#tys,)*)) #output #where_clause { + #fn_name(#(#ids,)*).await + } + } + } else { + quote! { + #item + pub fn #name #impl_generics ((#(#ids,)*):(#(#tys,)*)) #output #where_clause { + #fn_name(#(#ids,)*) + } + } + } + .into() +} diff --git a/arc-lang/crates/runtime/macros/src/proc_macro_attrs/export/impls.rs b/arc-lang/crates/runtime/macros/src/proc_macro_attrs/export/impls.rs new file mode 100644 index 000000000..832937fae --- /dev/null +++ b/arc-lang/crates/runtime/macros/src/proc_macro_attrs/export/impls.rs @@ -0,0 +1,67 @@ +use proc_macro as pm; +use quote::quote; + +pub(crate) fn export(_attr: syn::AttributeArgs, item: syn::ItemImpl) -> pm::TokenStream { + let mut functions = Vec::new(); + let ty_name = if let syn::Type::Path(x) = item.self_ty.as_ref() { + &x.path.segments.last().unwrap().ident + } else { + unreachable!("Found non-path type in impl") + }; + let (_, ty_generics, _) = item.generics.split_for_impl(); + let impl_generics = &item.generics.params; + let where_clause = &item.generics.where_clause; + for item in &item.items { + if let syn::ImplItem::Method(item) = item { + let mut inputs = item.sig.inputs.clone().into_iter().collect::>(); + let method_name = &item.sig.ident; + let name = crate::utils::new_id(format!("{}_{}", ty_name, method_name)); + let output = &item.sig.output; + // Replace receiver with parameter + if let Some(syn::FnArg::Receiver(r)) = inputs.first() { + assert!(r.reference.is_none(), "Found reference to receiver"); + inputs[0] = syn::parse_quote!(self_param: #ty_name #ty_generics); + } + let (ids, tys): (Vec<_>, Vec<_>) = inputs + .iter() + .map(|i| match i { + syn::FnArg::Receiver(_) => unreachable!(), + syn::FnArg::Typed(i) => (&i.pat, &i.ty), + }) + .unzip(); + // Merge generics and predicates + let generics = match (&item.sig.generics.params, impl_generics) { + (gs0, gs1) if !gs0.is_empty() && !gs1.is_empty() => quote!(<#gs0, #gs1>), + (gs0, _) if !gs0.is_empty() => quote!(<#gs0>), + (_, gs1) if !gs1.is_empty() => quote!(<#gs1>), + _ => quote!(), + }; + let where_clause = match (where_clause, &item.sig.generics.where_clause) { + (Some(w0), Some(w1)) => quote!(where #w0, #w1), + (Some(w), None) | (None, Some(w)) => quote!(where #w), + (None, None) => quote!(), + }; + // Construct wrapper + let item = if item.sig.asyncness.is_some() { + quote! { + pub async fn #name #generics ((#(#ids,)*):(#(#tys,)*)) #output #where_clause { + #ty_name::#method_name(#(#ids,)*).await + } + } + } else { + quote! { + pub fn #name #generics (#(#ids: #tys,)*) #output #where_clause { + #ty_name::#method_name(#(#ids,)*) + } + } + }; + functions.push(item); + } + } + + quote::quote!( + #item + #(#functions)* + ) + .into() +} diff --git a/arc-lang/crates/runtime/macros/src/proc_macro_attrs/rewrite/enums.rs b/arc-lang/crates/runtime/macros/src/proc_macro_attrs/rewrite/enums.rs new file mode 100644 index 000000000..f545ffcc0 --- /dev/null +++ b/arc-lang/crates/runtime/macros/src/proc_macro_attrs/rewrite/enums.rs @@ -0,0 +1,25 @@ +use proc_macro as pm; +use quote::quote; + +#[allow(unused)] +pub(crate) fn rewrite(attr: syn::AttributeArgs, mut item: syn::ItemEnum) -> pm::TokenStream { + item.vis = syn::parse_quote!(pub); + item.generics.params.iter_mut().for_each(|g| { + if let syn::GenericParam::Type(t) = g { + t.bounds.push(syn::parse_quote!(Data)) + } + }); + + let (impl_generics, type_generics, where_clause) = item.generics.split_for_impl(); + + let variant_id = item.variants.iter().map(|v| &v.ident).collect::>(); + + quote!( + use prelude::*; + + #[derive(Clone, Debug, Unpin, Serialize, Deserialize)] + #[serde(bound = "")] + #item + ) + .into() +} diff --git a/arc-lang/crates/runtime/macros/src/proc_macro_attrs/rewrite/externs.rs b/arc-lang/crates/runtime/macros/src/proc_macro_attrs/rewrite/externs.rs new file mode 100644 index 000000000..fbf57656c --- /dev/null +++ b/arc-lang/crates/runtime/macros/src/proc_macro_attrs/rewrite/externs.rs @@ -0,0 +1,19 @@ +use proc_macro as pm; + +pub(crate) fn rewrite(attr: syn::AttributeArgs, mut item: syn::ItemFn) -> pm::TokenStream { + let unmangled: syn::Path = crate::utils::get_attr_val("unmangled", &attr); + let ids = item.sig.inputs.iter().map(|arg| { + if let syn::FnArg::Typed(p) = arg { + p.pat.as_ref() + } else { + unreachable!() + } + }); + item.sig.abi = None; + if item.sig.asyncness.is_some() { + item.block = syn::parse_quote!({ #unmangled(#(#ids),*).await }); + } else { + item.block = syn::parse_quote!({ #unmangled(#(#ids),*) }); + } + quote::quote!(#item).into() +} diff --git a/arc-lang/crates/runtime/macros/src/proc_macro_attrs/rewrite/functions.rs b/arc-lang/crates/runtime/macros/src/proc_macro_attrs/rewrite/functions.rs new file mode 100644 index 000000000..52305df82 --- /dev/null +++ b/arc-lang/crates/runtime/macros/src/proc_macro_attrs/rewrite/functions.rs @@ -0,0 +1,10 @@ +use proc_macro as pm; + +pub(crate) fn rewrite(_attr: syn::AttributeArgs, mut item: syn::ItemFn) -> pm::TokenStream { + item.sig.generics.params.iter_mut().for_each(|p| { + if let syn::GenericParam::Type(p) = p { + p.bounds.push(syn::parse_quote!(Data)); + } + }); + quote::quote!(#item).into() +} diff --git a/arc-lang/crates/runtime/macros/src/proc_macro_attrs/rewrite/main.rs b/arc-lang/crates/runtime/macros/src/proc_macro_attrs/rewrite/main.rs new file mode 100644 index 000000000..f1dec3927 --- /dev/null +++ b/arc-lang/crates/runtime/macros/src/proc_macro_attrs/rewrite/main.rs @@ -0,0 +1,5 @@ +use proc_macro as pm; + +pub(crate) fn rewrite(_attr: syn::AttributeArgs, _item: syn::ItemFn) -> pm::TokenStream { + todo!() +} diff --git a/arc-lang/crates/runtime/macros/src/proc_macro_attrs/rewrite/structs.rs b/arc-lang/crates/runtime/macros/src/proc_macro_attrs/rewrite/structs.rs new file mode 100644 index 000000000..66ab7ec4e --- /dev/null +++ b/arc-lang/crates/runtime/macros/src/proc_macro_attrs/rewrite/structs.rs @@ -0,0 +1,51 @@ +use proc_macro as pm; +use quote::quote; + +#[allow(unused)] +pub(crate) fn rewrite(attr: syn::AttributeArgs, mut item: syn::ItemStruct) -> pm::TokenStream { + item.vis = syn::parse_quote!(pub); + item.fields.iter_mut().for_each(|field| { + field.vis = syn::parse_quote!(pub); + }); + item.generics.params.iter_mut().for_each(|g| { + if let syn::GenericParam::Type(t) = g { + t.bounds.push(syn::parse_quote!(Data)) + } + }); + let (impl_generics, type_generics, where_clause) = item.generics.split_for_impl(); + + let wrapper_id = item.ident.clone(); + item.ident = crate::utils::new_id(format!("_{}", wrapper_id)); + let id = &item.ident; + + let field_id = item.fields.iter().map(|f| &f.ident).collect::>(); + + let (inner_type, inner_expr) = + if crate::utils::has_meta_key("compact", &crate::utils::get_metas(&attr)) { + (quote::quote!(#id #type_generics), quote::quote!(data)) + } else { + ( + quote::quote!(Rc<#id #type_generics>), + quote::quote!(Rc::new(data)), + ) + }; + + quote!( + use prelude::*; + + #[derive(Clone, Debug, Unpin, Serialize, Deserialize)] + #[serde(bound = "")] + pub struct #wrapper_id #impl_generics(pub #inner_type) #where_clause; + + impl #impl_generics #wrapper_id #type_generics #where_clause { + pub fn new(data: #id #type_generics) -> Self { + Self(#inner_expr) + } + } + + #[derive(Clone, Debug, Unpin, Serialize, Deserialize)] + #[serde(bound = "")] + #item + ) + .into() +} diff --git a/arc-lang/crates/runtime/macros/src/proc_macro_derives.rs b/arc-lang/crates/runtime/macros/src/proc_macro_derives.rs new file mode 100644 index 000000000..b4f51eefc --- /dev/null +++ b/arc-lang/crates/runtime/macros/src/proc_macro_derives.rs @@ -0,0 +1,90 @@ +use proc_macro::TokenStream; +use syn::TypeParam; + +pub fn derive_send(input: syn::DeriveInput) -> TokenStream { + let (impl_generics, type_generics, where_clause) = input.generics.split_for_impl(); + let name = &input.ident; + quote::quote!(unsafe impl #impl_generics Send for #name #type_generics #where_clause {}).into() +} + +pub fn derive_sync(input: syn::DeriveInput) -> TokenStream { + let (impl_generics, type_generics, where_clause) = input.generics.split_for_impl(); + let name = &input.ident; + quote::quote!(unsafe impl #impl_generics Sync for #name #type_generics #where_clause {}).into() +} + +pub fn derive_unpin(input: syn::DeriveInput) -> TokenStream { + let (impl_generics, type_generics, where_clause) = input.generics.split_for_impl(); + let name = &input.ident; + quote::quote!(impl #impl_generics Unpin for #name #type_generics #where_clause {}).into() +} + +pub fn derive_deep_clone(mut input: syn::DeriveInput) -> TokenStream { + for param in &mut input.generics.params { + if let syn::GenericParam::Type(TypeParam { bounds, .. }) = param { + bounds.push(syn::parse_quote!(DeepClone)); + } + } + + let (impl_generics, type_generics, where_clause) = input.generics.split_for_impl(); + let name = &input.ident; + match &input.data { + syn::Data::Struct(data) => { + let fields = data.fields.iter().enumerate().map(|(i, field)| { + if let Some(name) = &field.ident { + quote::quote!(#name: <_ as DeepClone>::deep_clone(&self.#name)) + } else { + let index = syn::Index::from(i); + quote::quote!(#index: <_ as DeepClone>::deep_clone(&self.#index)) + } + }); + quote::quote!( + impl #impl_generics DeepClone for #name #type_generics #where_clause { + fn deep_clone(&self) -> Self { + Self { + #(#fields),* + } + } + } + ) + .into() + } + syn::Data::Enum(data) => { + let variants = data.variants.iter().map(|variant| { + let name = &variant.ident; + let names = variant.fields.iter().enumerate().map(|(i, field)| { + if let Some(name) = &field.ident { + quote::quote!(#name) + } else { + let index = syn::Index::from(i); + let id = + syn::Ident::new(&format!("field{}", i), proc_macro2::Span::call_site()); + quote::quote!(#index: #id) + } + }); + let fields = variant.fields.iter().enumerate().map(|(i, field)| { + if let Some(name) = &field.ident { + quote::quote!(#name: <_ as DeepClone>::deep_clone(&self.#name)) + } else { + let index = syn::Index::from(i); + let id = + syn::Ident::new(&format!("field{}", i), proc_macro2::Span::call_site()); + quote::quote!(#index: <_ as DeepClone>::deep_clone(&#id)) + } + }); + quote::quote!(Self::#name { #(#names),* } => Self::#name { #(#fields),* }) + }); + quote::quote!( + impl #impl_generics DeepClone for #name #type_generics #where_clause { + fn deep_clone(&self) -> Self { + match self { + #(#variants),* + } + } + } + ) + .into() + } + syn::Data::Union(_) => unreachable!(), + } +} diff --git a/arc-lang/crates/runtime/macros/src/proc_macros.rs b/arc-lang/crates/runtime/macros/src/proc_macros.rs new file mode 100644 index 000000000..f9baf4085 --- /dev/null +++ b/arc-lang/crates/runtime/macros/src/proc_macros.rs @@ -0,0 +1,8 @@ +use proc_macro::TokenStream; + +pub fn unwrap(input: TokenStream) -> TokenStream { + let mut iter = input.into_iter(); + let expr: syn::Expr = crate::utils::parse(&mut iter); + let path: syn::Path = crate::utils::parse(&mut iter); + quote::quote!(if let #path(v) = &#expr { v.clone() } else { unreachable!() }).into() +} diff --git a/arc-lang/crates/runtime/macros/src/utils.rs b/arc-lang/crates/runtime/macros/src/utils.rs new file mode 100644 index 000000000..050af0e5a --- /dev/null +++ b/arc-lang/crates/runtime/macros/src/utils.rs @@ -0,0 +1,12 @@ +use proc_macro as pm; + +pub(crate) fn parse(input: &mut impl Iterator) -> T { + let mut stream = pm::TokenStream::new(); + for token in input.by_ref() { + match token { + pm::TokenTree::Punct(t) if t.as_char() == ',' => break, + _ => stream.extend([token]), + } + } + syn::parse::(stream).unwrap() +} diff --git a/arc-lang/crates/runtime/runner/Cargo.toml b/arc-lang/crates/runtime/runner/Cargo.toml new file mode 100644 index 000000000..e38db5349 --- /dev/null +++ b/arc-lang/crates/runtime/runner/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "runner" +version.workspace = true +edition.workspace = true + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[features] +thread-pinning = ["hwloc", "num_cpus", "libc"] + +[dependencies] +tokio.workspace = true +logging.workspace = true +cfg-if.workspace = true + +# Thread Pinning +hwloc = { version = "0.5.0", optional = true } +num_cpus = { version = "1.15.0", optional = true } +libc = { version = "0.2.139" , optional = true } diff --git a/arc-lang/crates/runtime/runner/src/lib.rs b/arc-lang/crates/runtime/runner/src/lib.rs new file mode 100644 index 000000000..73f95890e --- /dev/null +++ b/arc-lang/crates/runtime/runner/src/lib.rs @@ -0,0 +1,86 @@ +#![allow(unused)] + +use std::future::Future; +use std::path::Path; + +use logging::Logger; + +pub struct Runner { + #[cfg(feature = "thread-pinning")] + topology: std::sync::Arc>, + threads: Vec>, + logger: Logger, +} + +impl Runner { + pub fn new(path: impl AsRef) -> Self { + Self { + #[cfg(feature = "thread-pinning")] + topology: std::sync::Arc::new(std::sync::Mutex::new(hwloc::Topology::new())), + threads: Vec::new(), + logger: Logger::file(path.as_ref()), + } + } + + pub fn spawn(&mut self, instance: impl Future + Send + 'static) -> &mut Self { + self.threads.push(std::thread::spawn(move || { + tokio::runtime::Builder::new_current_thread() + .enable_io() + .enable_time() + .build() + .expect("Failed to build runtime") + .block_on(async { + let set = tokio::task::LocalSet::new(); + set.run_until(instance).await; + set.await; + }); + })); + self + } + + pub fn spawn_pinned( + &mut self, + instance: impl Future + Send + 'static, + _cpu_id: usize, + ) -> &mut Self { + #[cfg(feature = "thread-pinning")] + let topology = self.topology.clone(); + self.threads.push(std::thread::spawn(move || { + #[cfg(feature = "thread-pinning")] + bind_thread_to_cpu(_cpu_id, topology); + tokio::runtime::Builder::new_current_thread() + .enable_io() + .enable_time() + .build() + .unwrap() + .block_on(tokio::task::LocalSet::new().run_until(instance)); + })); + self + } +} + +#[cfg(feature = "thread-pinning")] +fn bind_thread_to_cpu( + _cpu_id: usize, + _topology: std::sync::Arc>, +) { + cfg_if::cfg_if! { + if #[cfg(target_os = "linux")] { + let thread_id = unsafe { libc::pthread_self() }; + let mut topology = topology.lock().unwrap(); + let cpus = topology.objects_with_type(&ObjectType::Core).unwrap(); + let cpuset = cpus.get(_cpu_id).expect("Core not found").cpuset().unwrap(); + _topology + .set_cpubind_for_thread(thread_id, cpuset, CPUBIND_THREAD) + .unwrap(); + } + } +} + +impl Drop for Runner { + fn drop(&mut self) { + for thread in self.threads.drain(..) { + thread.join().expect("Failed to join thread"); + } + } +} diff --git a/arc-lang/crates/runtime/src/lib.rs b/arc-lang/crates/runtime/src/lib.rs new file mode 100644 index 000000000..ed5737e60 --- /dev/null +++ b/arc-lang/crates/runtime/src/lib.rs @@ -0,0 +1,45 @@ +pub mod prelude { + pub use macros::data; + pub use macros::unwrap; + pub use macros::DeepClone; + pub use macros::Send; + pub use macros::Sync; + pub use macros::Unpin; + + pub use builtins::array::Array; + pub use builtins::blob::Blob; + pub use builtins::dict::Dict; + pub use builtins::duration::Duration; + pub use builtins::encoding::Encoding; + pub use builtins::file::File; + pub use builtins::image::Image; + pub use builtins::keyed_stream::KeyedStream; + pub use builtins::matrix::Matrix; + pub use builtins::model::Model; + pub use builtins::option::Option; + pub use builtins::path::Path; + pub use builtins::reader::Reader; + pub use builtins::result::Result; + pub use builtins::set::Set; + pub use builtins::socket::SocketAddr; + pub use builtins::stream::Stream; + pub use builtins::string::String; + pub use builtins::time::Time; + pub use builtins::time_source::TimeSource; + pub use builtins::traits::Data; + pub use builtins::traits::DeepClone; + pub use builtins::url::Url; + pub use builtins::vec::Vec; + pub use builtins::writer::Writer; + + pub use runner::Runner; + + pub use state::Database; + pub use state::State; + + pub type Unit = (); + + pub use hexf; + pub use serde; + pub use tokio; +} diff --git a/arc-lang/crates/runtime/state/Cargo.toml b/arc-lang/crates/runtime/state/Cargo.toml new file mode 100644 index 000000000..14779501b --- /dev/null +++ b/arc-lang/crates/runtime/state/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "state" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +# [features] +# remote = ["tikv-client"] +# local = ["sled"] +# default = [] + +[dependencies] +builtins.workspace = true +serde.workspace = true +sled.workspace = true +# tikv-client.workspace = true +tokio.workspace = true +serde_json.workspace = true diff --git a/arc-lang/crates/runtime/state/src/lib.rs b/arc-lang/crates/runtime/state/src/lib.rs new file mode 100644 index 000000000..2a094cc98 --- /dev/null +++ b/arc-lang/crates/runtime/state/src/lib.rs @@ -0,0 +1,111 @@ +#![allow(unused)] + +use std::collections::HashMap; +use std::hash::Hash; +use std::ops::Index; +use std::ops::IndexMut; +use std::path::PathBuf; + +use serde::de::DeserializeOwned; +use serde::Serialize; + +use builtins::traits::Data; +use builtins::traits::Key; + +#[derive(Clone)] +pub struct Database( + // tikv_client::RawClient, + sled::Db, + // HashMap, +); + +impl Database { + // #[cfg(feature = "tikv")] + // pub fn new(addr: &str) -> Self { + // let db = tokio::runtime::Runtime::new() + // .expect("failed to create runtime") + // .block_on(tikv_client::RawClient::new(vec![addr]).await) + // .expect("Failed to connect to tikv"); + // Self(db) + // } + + // #[cfg(feature = "local")] + pub fn new(path: impl AsRef) -> Self { + let db = sled::open(path).expect("Failed to connect to sled"); + Self(db) + } + + // #[cfg(not(any(feature = "tikv", feature = "sled")))] + // pub fn new(path: &str) -> Self { + // let db = sled::open(path).expect("Failed to connect to sled"); + // Self(db) + // } +} + +#[derive(Clone)] +pub struct State { + name: String, + db: Database, + uncommitted: HashMap, + default: T, +} + +impl State { + pub fn new(name: impl ToString, db: Database, default: T) -> Self { + Self { + name: name.to_string(), + db, + uncommitted: HashMap::new(), + default, + } + } + pub fn iter_mut(&mut self) -> impl Iterator { + self.uncommitted.iter_mut() + } + // #[cfg(feature = "remote")] + // pub async fn snapshot(&mut self, snapshot_version: usize) { + // let name = &self.name; + // let batch = self.uncommitted.iter().filter_map(|(key, data)| { + // let key = ser((name, key)).ok()?; + // let data = ser(data).ok()?; + // Some((key, data)) + // }); + // db.batch_put(batch).await.expect("tikv: failed to insert") + // } + pub async fn snapshot(&mut self, snapshot_version: usize) { + self.uncommitted + .iter() + .filter_map(|(key, data)| { + let key = ser((key, snapshot_version)).ok()?; + let data = ser(data).ok()?; + Some((key, data)) + }) + .for_each(|(key, data)| { + self.db.0.insert(key, data).expect("sled: failed to insert"); + }); + } +} + +impl IndexMut for State { + fn index_mut(&mut self, key: K) -> &mut T { + let default = &self.default; + self.uncommitted + .entry(key) + .or_insert_with(|| default.clone()) + } +} + +impl Index for State { + type Output = T; + fn index(&self, key: K) -> &T { + self.uncommitted.get(&key).unwrap_or(&self.default) + } +} + +pub fn ser(v: T) -> Result, serde_json::Error> { + serde_json::to_vec(&v) +} + +pub fn deser(v: Option>) -> Result, serde_json::Error> { + v.map(|v| serde_json::from_slice(&v)).transpose() +} diff --git a/arc-lang/crates/runtime/timer/Cargo.toml b/arc-lang/crates/runtime/timer/Cargo.toml new file mode 100644 index 000000000..716d8fc44 --- /dev/null +++ b/arc-lang/crates/runtime/timer/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "timer" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +uuid = "1.3.1" +wheel = { version = "1.2.0", package = "hierarchical_hash_wheel_timer" } diff --git a/arc-lang/crates/runtime/timer/src/lib.rs b/arc-lang/crates/runtime/timer/src/lib.rs new file mode 100644 index 000000000..1d0b44c05 --- /dev/null +++ b/arc-lang/crates/runtime/timer/src/lib.rs @@ -0,0 +1,71 @@ +#![allow(deprecated)] + +use uuid::Uuid; +use wheel::wheels::quad_wheel::QuadWheelWithOverflow; +use wheel::wheels::Skip; +use wheel::UuidOnlyTimerEntry as Entry; + +use std::collections::HashMap; +use std::time::Duration; + +/// A timer +pub struct Timer { + pub wheel: QuadWheelWithOverflow, + pub callbacks: HashMap, + pub duration: Duration, +} + +type Callback = fn(); + +impl Default for Timer { + fn default() -> Self { + Self { + wheel: QuadWheelWithOverflow::default(), + callbacks: HashMap::new(), + duration: Duration::from_millis(0), + } + } +} + +impl Timer { + /// Execute callback after duration + pub fn after(&mut self, duration: Duration, callback: Callback) { + let entry = Entry::with_random_id(duration); + self.callbacks.insert(entry.id, callback); + self.wheel.insert(entry).unwrap(); + } + + /// Advance the timer and execute timers which have expired. + /// TODO: Handle overflow. Currently assumes Duration <= u32::MAX. + pub fn advance(&mut self, mut remaining: Duration) { + while remaining.as_millis() > 0 { + match self.wheel.can_skip() { + // No timers are scheduled + Skip::Empty => { + self.duration += remaining; + } + // Timers are scheduled at the next millisecond + Skip::None => { + self.duration += Duration::from_millis(1); + remaining -= Duration::from_millis(1); + for e in self.wheel.tick() { + (self.callbacks.remove(&e.id).unwrap())(); + } + } + // Timers are scheduled sometime later + Skip::Millis(skip) => { + if skip as u128 >= remaining.as_millis() { + // No more entries to expire + self.wheel.skip(remaining.as_millis() as u32); + break; + } else { + // Skip until next entry + self.wheel.skip(skip); + self.duration += Duration::from_millis(skip as u64); + remaining -= Duration::from_millis(skip as u64); + } + } + } + } + } +} diff --git a/arc-lang/crates/tree-sitter/.gitignore b/arc-lang/crates/tree-sitter/.gitignore new file mode 100644 index 000000000..aa8afe611 --- /dev/null +++ b/arc-lang/crates/tree-sitter/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +target/ diff --git a/arc-lang/crates/tree-sitter/Cargo.lock b/arc-lang/crates/tree-sitter/Cargo.lock new file mode 100644 index 000000000..aea7d3a06 --- /dev/null +++ b/arc-lang/crates/tree-sitter/Cargo.lock @@ -0,0 +1,170 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "aho-corasick" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" +dependencies = [ + "memchr", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "cc" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "proc-macro2" +version = "1.0.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "regex" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" + +[[package]] +name = "syn" +version = "2.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b60f673f44a8255b9c8c657daf66a596d435f2da81a555b06dc644d080ba45e0" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "thiserror" +version = "1.0.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tree-sitter" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e747b1f9b7b931ed39a548c1fae149101497de3c1fc8d9e18c62c1a66c683d3d" +dependencies = [ + "cc", + "regex", +] + +[[package]] +name = "tree-sitter-arclang" +version = "0.0.1" +dependencies = [ + "ansi_term", + "cc", + "tree-sitter", + "tree-sitter-highlight", +] + +[[package]] +name = "tree-sitter-highlight" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "042342584c5a7a0b833d9fc4e2bdab3f9868ddc6c4b339a1e01451c6720868bc" +dependencies = [ + "regex", + "thiserror", + "tree-sitter", +] + +[[package]] +name = "unicode-ident" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" diff --git a/arc-lang/crates/tree-sitter/Cargo.toml b/arc-lang/crates/tree-sitter/Cargo.toml new file mode 100644 index 000000000..3bdf68c7d --- /dev/null +++ b/arc-lang/crates/tree-sitter/Cargo.toml @@ -0,0 +1,28 @@ +[package] +name = "tree-sitter-arclang" +description = "arclang grammar for the tree-sitter parsing library" +version = "0.0.1" +keywords = ["incremental", "parsing", "arclang"] +categories = ["parsing", "text-editors"] +repository = "https://github.com/tree-sitter/tree-sitter-arclang" +edition = "2018" +license = "MIT" + +build = "bindings/rust/build.rs" +include = [ + "bindings/rust/*", + "grammar.js", + "queries/*", + "src/*", +] + +[lib] +path = "bindings/rust/lib.rs" + +[dependencies] +tree-sitter = "~0.20.10" +tree-sitter-highlight = "0.20.1" +ansi_term = "0.12.1" + +[build-dependencies] +cc = "1.0" diff --git a/arc-lang/crates/tree-sitter/binding.gyp b/arc-lang/crates/tree-sitter/binding.gyp new file mode 100644 index 000000000..189c65e9c --- /dev/null +++ b/arc-lang/crates/tree-sitter/binding.gyp @@ -0,0 +1,19 @@ +{ + "targets": [ + { + "target_name": "tree_sitter_arclang_binding", + "include_dirs": [ + " +#include "nan.h" + +using namespace v8; + +extern "C" TSLanguage * tree_sitter_arclang(); + +namespace { + +NAN_METHOD(New) {} + +void Init(Local exports, Local module) { + Local tpl = Nan::New(New); + tpl->SetClassName(Nan::New("Language").ToLocalChecked()); + tpl->InstanceTemplate()->SetInternalFieldCount(1); + + Local constructor = Nan::GetFunction(tpl).ToLocalChecked(); + Local instance = constructor->NewInstance(Nan::GetCurrentContext()).ToLocalChecked(); + Nan::SetInternalFieldPointer(instance, 0, tree_sitter_arclang()); + + Nan::Set(instance, Nan::New("name").ToLocalChecked(), Nan::New("arclang").ToLocalChecked()); + Nan::Set(module, Nan::New("exports").ToLocalChecked(), instance); +} + +NODE_MODULE(tree_sitter_arclang_binding, Init) + +} // namespace diff --git a/arc-lang/crates/tree-sitter/bindings/node/index.js b/arc-lang/crates/tree-sitter/bindings/node/index.js new file mode 100644 index 000000000..5a7b57a4c --- /dev/null +++ b/arc-lang/crates/tree-sitter/bindings/node/index.js @@ -0,0 +1,19 @@ +try { + module.exports = require("../../build/Release/tree_sitter_arc_lang_binding"); +} catch (error1) { + if (error1.code !== 'MODULE_NOT_FOUND') { + throw error1; + } + try { + module.exports = require("../../build/Debug/tree_sitter_arc_lang_binding"); + } catch (error2) { + if (error2.code !== 'MODULE_NOT_FOUND') { + throw error2; + } + throw error1 + } +} + +try { + module.exports.nodeTypeInfo = require("../../src/node-types.json"); +} catch (_) {} diff --git a/arc-lang/crates/tree-sitter/bindings/rust/build.rs b/arc-lang/crates/tree-sitter/bindings/rust/build.rs new file mode 100644 index 000000000..3946bad39 --- /dev/null +++ b/arc-lang/crates/tree-sitter/bindings/rust/build.rs @@ -0,0 +1,15 @@ +fn main() { + let src_dir = std::path::Path::new("src"); + + let mut c_config = cc::Build::new(); + c_config.include(&src_dir); + c_config + .flag_if_supported("-Wno-unused-parameter") + .flag_if_supported("-Wno-unused-but-set-variable") + .flag_if_supported("-Wno-trigraphs"); + let parser_path = src_dir.join("parser.c"); + c_config.file(&parser_path); + + c_config.compile("parser"); + println!("cargo:rerun-if-changed={}", parser_path.to_str().unwrap()); +} diff --git a/arc-lang/crates/tree-sitter/bindings/rust/lib.rs b/arc-lang/crates/tree-sitter/bindings/rust/lib.rs new file mode 100644 index 000000000..8e4f91e97 --- /dev/null +++ b/arc-lang/crates/tree-sitter/bindings/rust/lib.rs @@ -0,0 +1,93 @@ +//! This crate provides arc-lang language support for the [tree-sitter][] parsing library. +//! +//! Typically, you will use the [language][language func] function to add this language to a +//! tree-sitter [Parser][], and then use the parser to parse some code: +//! +//! [Language]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Language.html +//! [language func]: fn.language.html +//! [Parser]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Parser.html +//! [tree-sitter]: https://tree-sitter.github.io/ + +use tree_sitter::Language; + +extern "C" { + fn tree_sitter_arc_lang() -> Language; +} + +/// Get the tree-sitter [Language][] for this grammar. +/// +/// [Language]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Language.html +pub fn language() -> Language { + unsafe { tree_sitter_arc_lang() } +} + +/// The content of the [`node-types.json`][] file for this grammar. +/// +/// [`node-types.json`]: https://tree-sitter.github.io/tree-sitter/using-parsers#static-node-types +pub const NODE_TYPES: &str = include_str!("../../src/node-types.json"); + +// Uncomment these to include any queries that this grammar contains + +pub const HIGHLIGHTS_QUERY: &str = include_str!("../../queries/arc_lang/highlights.scm"); +pub const INJECTIONS_QUERY: &str = include_str!("../../queries/arc_lang/injections.scm"); +pub const LOCALS_QUERY: &str = include_str!("../../queries/arc_lang/locals.scm"); +pub const TAGS_QUERY: &str = include_str!("../../queries/arc_lang/tags.scm"); +pub const HIGHLIGHT_NAMES: &[&str] = &[ + "string", + "number", + "boolean", + "comment", + "keyword", + "function", + "variable", + "type", + "type.builtin", + "conditional", + "repeat", + "punctuation", + "operator", +]; + +#[cfg(test)] +mod tests { + use tree_sitter_highlight::HighlightConfiguration; + use tree_sitter_highlight::Highlighter; + + #[test] + fn can_highlight() { + let code = "def foo() = 1+1;"; + + let mut highlighter = Highlighter::new(); + let mut config = HighlightConfiguration::new( + super::language(), + super::HIGHLIGHTS_QUERY, + super::INJECTIONS_QUERY, + super::LOCALS_QUERY, + ) + .unwrap(); + + config.configure(super::HIGHLIGHT_NAMES); + + use tree_sitter_highlight::HighlightEvent; + + let highlights = highlighter + .highlight(&config, code.as_bytes(), None, |_| None) + .unwrap(); + + for event in highlights { + if let Ok(event) = event { + match event { + HighlightEvent::Source { start, end } => { + eprint!("[{}]", &code[start..end]); + } + HighlightEvent::HighlightStart(i) => { + eprint!("<{}", i.0); + } + HighlightEvent::HighlightEnd => { + eprint!(">"); + } + } + } + } + } +} diff --git a/arc-lang/crates/tree-sitter/build/Makefile b/arc-lang/crates/tree-sitter/build/Makefile new file mode 100644 index 000000000..5c1464f2b --- /dev/null +++ b/arc-lang/crates/tree-sitter/build/Makefile @@ -0,0 +1,342 @@ +# We borrow heavily from the kernel build setup, though we are simpler since +# we don't have Kconfig tweaking settings on us. + +# The implicit make rules have it looking for RCS files, among other things. +# We instead explicitly write all the rules we care about. +# It's even quicker (saves ~200ms) to pass -r on the command line. +MAKEFLAGS=-r + +# The source directory tree. +srcdir := .. +abs_srcdir := $(abspath $(srcdir)) + +# The name of the builddir. +builddir_name ?= . + +# The V=1 flag on command line makes us verbosely print command lines. +ifdef V + quiet= +else + quiet=quiet_ +endif + +# Specify BUILDTYPE=Release on the command line for a release build. +BUILDTYPE ?= Release + +# Directory all our build output goes into. +# Note that this must be two directories beneath src/ for unit tests to pass, +# as they reach into the src/ directory for data with relative paths. +builddir ?= $(builddir_name)/$(BUILDTYPE) +abs_builddir := $(abspath $(builddir)) +depsdir := $(builddir)/.deps + +# Object output directory. +obj := $(builddir)/obj +abs_obj := $(abspath $(obj)) + +# We build up a list of every single one of the targets so we can slurp in the +# generated dependency rule Makefiles in one pass. +all_deps := + + + +CC.target ?= $(CC) +CFLAGS.target ?= $(CPPFLAGS) $(CFLAGS) +CXX.target ?= $(CXX) +CXXFLAGS.target ?= $(CPPFLAGS) $(CXXFLAGS) +LINK.target ?= $(LINK) +LDFLAGS.target ?= $(LDFLAGS) +AR.target ?= $(AR) + +# C++ apps need to be linked with g++. +LINK ?= $(CXX.target) + +# TODO(evan): move all cross-compilation logic to gyp-time so we don't need +# to replicate this environment fallback in make as well. +CC.host ?= gcc +CFLAGS.host ?= $(CPPFLAGS_host) $(CFLAGS_host) +CXX.host ?= g++ +CXXFLAGS.host ?= $(CPPFLAGS_host) $(CXXFLAGS_host) +LINK.host ?= $(CXX.host) +LDFLAGS.host ?= $(LDFLAGS_host) +AR.host ?= ar + +# Define a dir function that can handle spaces. +# http://www.gnu.org/software/make/manual/make.html#Syntax-of-Functions +# "leading spaces cannot appear in the text of the first argument as written. +# These characters can be put into the argument value by variable substitution." +empty := +space := $(empty) $(empty) + +# http://stackoverflow.com/questions/1189781/using-make-dir-or-notdir-on-a-path-with-spaces +replace_spaces = $(subst $(space),?,$1) +unreplace_spaces = $(subst ?,$(space),$1) +dirx = $(call unreplace_spaces,$(dir $(call replace_spaces,$1))) + +# Flags to make gcc output dependency info. Note that you need to be +# careful here to use the flags that ccache and distcc can understand. +# We write to a dep file on the side first and then rename at the end +# so we can't end up with a broken dep file. +depfile = $(depsdir)/$(call replace_spaces,$@).d +DEPFLAGS = -MMD -MF $(depfile).raw + +# We have to fixup the deps output in a few ways. +# (1) the file output should mention the proper .o file. +# ccache or distcc lose the path to the target, so we convert a rule of +# the form: +# foobar.o: DEP1 DEP2 +# into +# path/to/foobar.o: DEP1 DEP2 +# (2) we want missing files not to cause us to fail to build. +# We want to rewrite +# foobar.o: DEP1 DEP2 \ +# DEP3 +# to +# DEP1: +# DEP2: +# DEP3: +# so if the files are missing, they're just considered phony rules. +# We have to do some pretty insane escaping to get those backslashes +# and dollar signs past make, the shell, and sed at the same time. +# Doesn't work with spaces, but that's fine: .d files have spaces in +# their names replaced with other characters. +define fixup_dep +# The depfile may not exist if the input file didn't have any #includes. +touch $(depfile).raw +# Fixup path as in (1). +sed -e "s|^$(notdir $@)|$@|" $(depfile).raw >> $(depfile) +# Add extra rules as in (2). +# We remove slashes and replace spaces with new lines; +# remove blank lines; +# delete the first line and append a colon to the remaining lines. +sed -e 's|\\||' -e 'y| |\n|' $(depfile).raw |\ + grep -v '^$$' |\ + sed -e 1d -e 's|$$|:|' \ + >> $(depfile) +rm $(depfile).raw +endef + +# Command definitions: +# - cmd_foo is the actual command to run; +# - quiet_cmd_foo is the brief-output summary of the command. + +quiet_cmd_cc = CC($(TOOLSET)) $@ +cmd_cc = $(CC.$(TOOLSET)) -o $@ $< $(GYP_CFLAGS) $(DEPFLAGS) $(CFLAGS.$(TOOLSET)) -c + +quiet_cmd_cxx = CXX($(TOOLSET)) $@ +cmd_cxx = $(CXX.$(TOOLSET)) -o $@ $< $(GYP_CXXFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c + +quiet_cmd_objc = CXX($(TOOLSET)) $@ +cmd_objc = $(CC.$(TOOLSET)) $(GYP_OBJCFLAGS) $(DEPFLAGS) -c -o $@ $< + +quiet_cmd_objcxx = CXX($(TOOLSET)) $@ +cmd_objcxx = $(CXX.$(TOOLSET)) $(GYP_OBJCXXFLAGS) $(DEPFLAGS) -c -o $@ $< + +# Commands for precompiled header files. +quiet_cmd_pch_c = CXX($(TOOLSET)) $@ +cmd_pch_c = $(CC.$(TOOLSET)) $(GYP_PCH_CFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< +quiet_cmd_pch_cc = CXX($(TOOLSET)) $@ +cmd_pch_cc = $(CC.$(TOOLSET)) $(GYP_PCH_CXXFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< +quiet_cmd_pch_m = CXX($(TOOLSET)) $@ +cmd_pch_m = $(CC.$(TOOLSET)) $(GYP_PCH_OBJCFLAGS) $(DEPFLAGS) -c -o $@ $< +quiet_cmd_pch_mm = CXX($(TOOLSET)) $@ +cmd_pch_mm = $(CC.$(TOOLSET)) $(GYP_PCH_OBJCXXFLAGS) $(DEPFLAGS) -c -o $@ $< + +# gyp-mac-tool is written next to the root Makefile by gyp. +# Use $(4) for the command, since $(2) and $(3) are used as flag by do_cmd +# already. +quiet_cmd_mac_tool = MACTOOL $(4) $< +cmd_mac_tool = ./gyp-mac-tool $(4) $< "$@" + +quiet_cmd_mac_package_framework = PACKAGE FRAMEWORK $@ +cmd_mac_package_framework = ./gyp-mac-tool package-framework "$@" $(4) + +quiet_cmd_infoplist = INFOPLIST $@ +cmd_infoplist = $(CC.$(TOOLSET)) -E -P -Wno-trigraphs -x c $(INFOPLIST_DEFINES) "$<" -o "$@" + +quiet_cmd_touch = TOUCH $@ +cmd_touch = touch $@ + +quiet_cmd_copy = COPY $@ +# send stderr to /dev/null to ignore messages when linking directories. +cmd_copy = ln -f "$<" "$@" 2>/dev/null || (rm -rf "$@" && cp -af "$<" "$@") + +quiet_cmd_alink = LIBTOOL-STATIC $@ +cmd_alink = rm -f $@ && ./gyp-mac-tool filter-libtool libtool $(GYP_LIBTOOLFLAGS) -static -o $@ $(filter %.o,$^) + +quiet_cmd_link = LINK($(TOOLSET)) $@ +cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o "$@" $(LD_INPUTS) $(LIBS) + +quiet_cmd_solink = SOLINK($(TOOLSET)) $@ +cmd_solink = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o "$@" $(LD_INPUTS) $(LIBS) + +quiet_cmd_solink_module = SOLINK_MODULE($(TOOLSET)) $@ +cmd_solink_module = $(LINK.$(TOOLSET)) -bundle $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ $(filter-out FORCE_DO_CMD, $^) $(LIBS) + + +# Define an escape_quotes function to escape single quotes. +# This allows us to handle quotes properly as long as we always use +# use single quotes and escape_quotes. +escape_quotes = $(subst ','\'',$(1)) +# This comment is here just to include a ' to unconfuse syntax highlighting. +# Define an escape_vars function to escape '$' variable syntax. +# This allows us to read/write command lines with shell variables (e.g. +# $LD_LIBRARY_PATH), without triggering make substitution. +escape_vars = $(subst $$,$$$$,$(1)) +# Helper that expands to a shell command to echo a string exactly as it is in +# make. This uses printf instead of echo because printf's behaviour with respect +# to escape sequences is more portable than echo's across different shells +# (e.g., dash, bash). +exact_echo = printf '%s\n' '$(call escape_quotes,$(1))' + +# Helper to compare the command we're about to run against the command +# we logged the last time we ran the command. Produces an empty +# string (false) when the commands match. +# Tricky point: Make has no string-equality test function. +# The kernel uses the following, but it seems like it would have false +# positives, where one string reordered its arguments. +# arg_check = $(strip $(filter-out $(cmd_$(1)), $(cmd_$@)) \ +# $(filter-out $(cmd_$@), $(cmd_$(1)))) +# We instead substitute each for the empty string into the other, and +# say they're equal if both substitutions produce the empty string. +# .d files contain ? instead of spaces, take that into account. +command_changed = $(or $(subst $(cmd_$(1)),,$(cmd_$(call replace_spaces,$@))),\ + $(subst $(cmd_$(call replace_spaces,$@)),,$(cmd_$(1)))) + +# Helper that is non-empty when a prerequisite changes. +# Normally make does this implicitly, but we force rules to always run +# so we can check their command lines. +# $? -- new prerequisites +# $| -- order-only dependencies +prereq_changed = $(filter-out FORCE_DO_CMD,$(filter-out $|,$?)) + +# Helper that executes all postbuilds until one fails. +define do_postbuilds + @E=0;\ + for p in $(POSTBUILDS); do\ + eval $$p;\ + E=$$?;\ + if [ $$E -ne 0 ]; then\ + break;\ + fi;\ + done;\ + if [ $$E -ne 0 ]; then\ + rm -rf "$@";\ + exit $$E;\ + fi +endef + +# do_cmd: run a command via the above cmd_foo names, if necessary. +# Should always run for a given target to handle command-line changes. +# Second argument, if non-zero, makes it do asm/C/C++ dependency munging. +# Third argument, if non-zero, makes it do POSTBUILDS processing. +# Note: We intentionally do NOT call dirx for depfile, since it contains ? for +# spaces already and dirx strips the ? characters. +define do_cmd +$(if $(or $(command_changed),$(prereq_changed)), + @$(call exact_echo, $($(quiet)cmd_$(1))) + @mkdir -p "$(call dirx,$@)" "$(dir $(depfile))" + $(if $(findstring flock,$(word 2,$(cmd_$1))), + @$(cmd_$(1)) + @echo " $(quiet_cmd_$(1)): Finished", + @$(cmd_$(1)) + ) + @$(call exact_echo,$(call escape_vars,cmd_$(call replace_spaces,$@) := $(cmd_$(1)))) > $(depfile) + @$(if $(2),$(fixup_dep)) + $(if $(and $(3), $(POSTBUILDS)), + $(call do_postbuilds) + ) +) +endef + +# Declare the "all" target first so it is the default, +# even though we don't have the deps yet. +.PHONY: all +all: + +# make looks for ways to re-generate included makefiles, but in our case, we +# don't have a direct way. Explicitly telling make that it has nothing to do +# for them makes it go faster. +%.d: ; + +# Use FORCE_DO_CMD to force a target to run. Should be coupled with +# do_cmd. +.PHONY: FORCE_DO_CMD +FORCE_DO_CMD: + +TOOLSET := target +# Suffix rules, putting all outputs into $(obj). +$(obj).$(TOOLSET)/%.o: $(srcdir)/%.c FORCE_DO_CMD + @$(call do_cmd,cc,1) +$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cc FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cpp FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cxx FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(srcdir)/%.m FORCE_DO_CMD + @$(call do_cmd,objc,1) +$(obj).$(TOOLSET)/%.o: $(srcdir)/%.mm FORCE_DO_CMD + @$(call do_cmd,objcxx,1) +$(obj).$(TOOLSET)/%.o: $(srcdir)/%.s FORCE_DO_CMD + @$(call do_cmd,cc,1) +$(obj).$(TOOLSET)/%.o: $(srcdir)/%.S FORCE_DO_CMD + @$(call do_cmd,cc,1) + +# Try building from generated source, too. +$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.c FORCE_DO_CMD + @$(call do_cmd,cc,1) +$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cc FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cpp FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cxx FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.m FORCE_DO_CMD + @$(call do_cmd,objc,1) +$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.mm FORCE_DO_CMD + @$(call do_cmd,objcxx,1) +$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.s FORCE_DO_CMD + @$(call do_cmd,cc,1) +$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.S FORCE_DO_CMD + @$(call do_cmd,cc,1) + +$(obj).$(TOOLSET)/%.o: $(obj)/%.c FORCE_DO_CMD + @$(call do_cmd,cc,1) +$(obj).$(TOOLSET)/%.o: $(obj)/%.cc FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(obj)/%.cpp FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(obj)/%.cxx FORCE_DO_CMD + @$(call do_cmd,cxx,1) +$(obj).$(TOOLSET)/%.o: $(obj)/%.m FORCE_DO_CMD + @$(call do_cmd,objc,1) +$(obj).$(TOOLSET)/%.o: $(obj)/%.mm FORCE_DO_CMD + @$(call do_cmd,objcxx,1) +$(obj).$(TOOLSET)/%.o: $(obj)/%.s FORCE_DO_CMD + @$(call do_cmd,cc,1) +$(obj).$(TOOLSET)/%.o: $(obj)/%.S FORCE_DO_CMD + @$(call do_cmd,cc,1) + + +ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ + $(findstring $(join ^,$(prefix)),\ + $(join ^,tree_sitter_arclang_binding.target.mk)))),) + include tree_sitter_arclang_binding.target.mk +endif + +quiet_cmd_regen_makefile = ACTION Regenerating $@ +cmd_regen_makefile = cd $(srcdir); /opt/homebrew/Cellar/node@16/16.20.1_1/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py -fmake --ignore-environment "-Dlibrary=shared_library" "-Dvisibility=default" "-Dnode_root_dir=/Users/klasseg/Library/Caches/node-gyp/16.20.1" "-Dnode_gyp_dir=/opt/homebrew/Cellar/node@16/16.20.1_1/lib/node_modules/npm/node_modules/node-gyp" "-Dnode_lib_file=/Users/klasseg/Library/Caches/node-gyp/16.20.1/<(target_arch)/node.lib" "-Dmodule_root_dir=/Users/klasseg/Workspace/arc/arc-lang/crates/tree-sitter" "-Dnode_engine=v8" "--depth=." "-Goutput_dir=." "--generator-output=build" -I/Users/klasseg/Workspace/arc/arc-lang/crates/tree-sitter/build/config.gypi -I/opt/homebrew/Cellar/node@16/16.20.1_1/lib/node_modules/npm/node_modules/node-gyp/addon.gypi -I/Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/common.gypi "--toplevel-dir=." binding.gyp +Makefile: $(srcdir)/build/config.gypi $(srcdir)/binding.gyp $(srcdir)/../../../../../Library/Caches/node-gyp/16.20.1/include/node/common.gypi $(srcdir)/../../../../../../../opt/homebrew/Cellar/node@16/16.20.1_1/lib/node_modules/npm/node_modules/node-gyp/addon.gypi + $(call do_cmd,regen_makefile) + +# "all" is a concatenation of the "all" targets from all the included +# sub-makefiles. This is just here to clarify. +all: + +# Add in dependency-tracking rules. $(all_deps) is the list of every single +# target in our tree. Only consider the ones with .d (dependency) info: +d_files := $(wildcard $(foreach f,$(all_deps),$(depsdir)/$(f).d)) +ifneq ($(d_files),) + include $(d_files) +endif diff --git a/arc-lang/crates/tree-sitter/build/Release/.deps/Release/obj.target/tree_sitter_arclang_binding/bindings/node/binding.o.d b/arc-lang/crates/tree-sitter/build/Release/.deps/Release/obj.target/tree_sitter_arclang_binding/bindings/node/binding.o.d new file mode 100644 index 000000000..4e0593d84 --- /dev/null +++ b/arc-lang/crates/tree-sitter/build/Release/.deps/Release/obj.target/tree_sitter_arclang_binding/bindings/node/binding.o.d @@ -0,0 +1,65 @@ +cmd_Release/obj.target/tree_sitter_arclang_binding/bindings/node/binding.o := c++ -o Release/obj.target/tree_sitter_arclang_binding/bindings/node/binding.o ../bindings/node/binding.cc '-DNODE_GYP_MODULE_NAME=tree_sitter_arclang_binding' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DBUILDING_NODE_EXTENSION' -I/Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node -I/Users/klasseg/Library/Caches/node-gyp/16.20.1/src -I/Users/klasseg/Library/Caches/node-gyp/16.20.1/deps/openssl/config -I/Users/klasseg/Library/Caches/node-gyp/16.20.1/deps/openssl/openssl/include -I/Users/klasseg/Library/Caches/node-gyp/16.20.1/deps/uv/include -I/Users/klasseg/Library/Caches/node-gyp/16.20.1/deps/zlib -I/Users/klasseg/Library/Caches/node-gyp/16.20.1/deps/v8/include -I../node_modules/nan -I../src -O3 -gdwarf-2 -mmacosx-version-min=10.13 -arch arm64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++14 -stdlib=libc++ -fno-rtti -fno-exceptions -fno-strict-aliasing -MMD -MF ./Release/.deps/Release/obj.target/tree_sitter_arclang_binding/bindings/node/binding.o.d.raw -I/opt/homebrew/opt/llvm/include -c +Release/obj.target/tree_sitter_arclang_binding/bindings/node/binding.o: \ + ../bindings/node/binding.cc ../src/tree_sitter/parser.h \ + /Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/node.h \ + /Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/v8.h \ + /Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/cppgc/common.h \ + /Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/v8config.h \ + /Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/v8-internal.h \ + /Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/v8-version.h \ + /Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/v8-platform.h \ + /Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/node_version.h \ + ../node_modules/nan/nan.h \ + /Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/uv.h \ + /Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/uv/errno.h \ + /Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/uv/version.h \ + /Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/uv/unix.h \ + /Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/uv/threadpool.h \ + /Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/uv/darwin.h \ + /Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/node_buffer.h \ + /Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/node_object_wrap.h \ + ../node_modules/nan/nan_callbacks.h \ + ../node_modules/nan/nan_callbacks_12_inl.h \ + ../node_modules/nan/nan_maybe_43_inl.h \ + ../node_modules/nan/nan_converters.h \ + ../node_modules/nan/nan_converters_43_inl.h \ + ../node_modules/nan/nan_new.h \ + ../node_modules/nan/nan_implementation_12_inl.h \ + ../node_modules/nan/nan_persistent_12_inl.h \ + ../node_modules/nan/nan_weak.h ../node_modules/nan/nan_object_wrap.h \ + ../node_modules/nan/nan_private.h \ + ../node_modules/nan/nan_typedarray_contents.h \ + ../node_modules/nan/nan_json.h ../node_modules/nan/nan_scriptorigin.h +../bindings/node/binding.cc: +../src/tree_sitter/parser.h: +/Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/node.h: +/Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/v8.h: +/Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/cppgc/common.h: +/Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/v8config.h: +/Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/v8-internal.h: +/Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/v8-version.h: +/Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/v8-platform.h: +/Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/node_version.h: +../node_modules/nan/nan.h: +/Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/uv.h: +/Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/uv/errno.h: +/Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/uv/version.h: +/Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/uv/unix.h: +/Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/uv/threadpool.h: +/Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/uv/darwin.h: +/Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/node_buffer.h: +/Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node/node_object_wrap.h: +../node_modules/nan/nan_callbacks.h: +../node_modules/nan/nan_callbacks_12_inl.h: +../node_modules/nan/nan_maybe_43_inl.h: +../node_modules/nan/nan_converters.h: +../node_modules/nan/nan_converters_43_inl.h: +../node_modules/nan/nan_new.h: +../node_modules/nan/nan_implementation_12_inl.h: +../node_modules/nan/nan_persistent_12_inl.h: +../node_modules/nan/nan_weak.h: +../node_modules/nan/nan_object_wrap.h: +../node_modules/nan/nan_private.h: +../node_modules/nan/nan_typedarray_contents.h: +../node_modules/nan/nan_json.h: +../node_modules/nan/nan_scriptorigin.h: diff --git a/arc-lang/crates/tree-sitter/build/Release/.deps/Release/obj.target/tree_sitter_arclang_binding/src/parser.o.d b/arc-lang/crates/tree-sitter/build/Release/.deps/Release/obj.target/tree_sitter_arclang_binding/src/parser.o.d new file mode 100644 index 000000000..cc94907ac --- /dev/null +++ b/arc-lang/crates/tree-sitter/build/Release/.deps/Release/obj.target/tree_sitter_arclang_binding/src/parser.o.d @@ -0,0 +1,5 @@ +cmd_Release/obj.target/tree_sitter_arclang_binding/src/parser.o := cc -o Release/obj.target/tree_sitter_arclang_binding/src/parser.o ../src/parser.c '-DNODE_GYP_MODULE_NAME=tree_sitter_arclang_binding' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DBUILDING_NODE_EXTENSION' -I/Users/klasseg/Library/Caches/node-gyp/16.20.1/include/node -I/Users/klasseg/Library/Caches/node-gyp/16.20.1/src -I/Users/klasseg/Library/Caches/node-gyp/16.20.1/deps/openssl/config -I/Users/klasseg/Library/Caches/node-gyp/16.20.1/deps/openssl/openssl/include -I/Users/klasseg/Library/Caches/node-gyp/16.20.1/deps/uv/include -I/Users/klasseg/Library/Caches/node-gyp/16.20.1/deps/zlib -I/Users/klasseg/Library/Caches/node-gyp/16.20.1/deps/v8/include -I../node_modules/nan -I../src -O3 -gdwarf-2 -mmacosx-version-min=10.13 -arch arm64 -Wall -Wendif-labels -W -Wno-unused-parameter -fno-strict-aliasing -MMD -MF ./Release/.deps/Release/obj.target/tree_sitter_arclang_binding/src/parser.o.d.raw -I/opt/homebrew/opt/llvm/include -I/opt/homebrew/include -c +Release/obj.target/tree_sitter_arclang_binding/src/parser.o: \ + ../src/parser.c ../src/tree_sitter/parser.h +../src/parser.c: +../src/tree_sitter/parser.h: diff --git a/arc-lang/crates/tree-sitter/build/Release/.deps/Release/tree_sitter_arclang_binding.node.d b/arc-lang/crates/tree-sitter/build/Release/.deps/Release/tree_sitter_arclang_binding.node.d new file mode 100644 index 000000000..0b0583b4e --- /dev/null +++ b/arc-lang/crates/tree-sitter/build/Release/.deps/Release/tree_sitter_arclang_binding.node.d @@ -0,0 +1 @@ +cmd_Release/tree_sitter_arclang_binding.node := c++ -bundle -undefined dynamic_lookup -Wl,-search_paths_first -mmacosx-version-min=10.13 -arch arm64 -L./Release -stdlib=libc++ -L/opt/homebrew/opt/llvm/lib -o Release/tree_sitter_arclang_binding.node Release/obj.target/tree_sitter_arclang_binding/bindings/node/binding.o Release/obj.target/tree_sitter_arclang_binding/src/parser.o diff --git a/arc-lang/crates/tree-sitter/build/Release/obj.target/tree_sitter_arclang_binding/bindings/node/binding.o b/arc-lang/crates/tree-sitter/build/Release/obj.target/tree_sitter_arclang_binding/bindings/node/binding.o new file mode 100644 index 0000000000000000000000000000000000000000..a711acb27f39809efa0b4b30647cf540dbbfecbe GIT binary patch literal 257192 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 >>s&vZvSM9rRIay; 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 Tl`)jD%1jJeWv@aDGl2gefCnl3 literal 0 HcmV?d00001 diff --git a/arc-lang/crates/tree-sitter/build/Release/tree_sitter_arclang_binding.node b/arc-lang/crates/tree-sitter/build/Release/tree_sitter_arclang_binding.node new file mode 100755 index 0000000000000000000000000000000000000000..5922975f598c12b196107c0921190be23d98e91a GIT binary patch literal 304989 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 z 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 QM7;i0;ybIW4V&`+0hm-t>;M1& literal 0 HcmV?d00001 diff --git a/arc-lang/crates/tree-sitter/build/binding.Makefile b/arc-lang/crates/tree-sitter/build/binding.Makefile new file mode 100644 index 000000000..82424124b --- /dev/null +++ b/arc-lang/crates/tree-sitter/build/binding.Makefile @@ -0,0 +1,6 @@ +# This file is generated by gyp; do not edit. + +export builddir_name ?= ./build/. +.PHONY: all +all: + $(MAKE) tree_sitter_arclang_binding diff --git a/arc-lang/crates/tree-sitter/build/config.gypi b/arc-lang/crates/tree-sitter/build/config.gypi new file mode 100644 index 000000000..bbaa72b44 --- /dev/null +++ b/arc-lang/crates/tree-sitter/build/config.gypi @@ -0,0 +1,388 @@ +# Do not edit. File was generated by node-gyp's "configure" step +{ + "target_defaults": { + "cflags": [], + "default_configuration": "Release", + "defines": [], + "include_dirs": [], + "libraries": [], + "msvs_configuration_platform": "ARM64", + "xcode_configuration_platform": "arm64" + }, + "variables": { + "asan": 0, + "coverage": "false", + "dcheck_always_on": 0, + "debug_nghttp2": "false", + "debug_node": "false", + "enable_lto": "false", + "enable_pgo_generate": "false", + "enable_pgo_use": "false", + "error_on_warn": "false", + "force_dynamic_crt": 0, + "host_arch": "arm64", + "icu_gyp_path": "tools/icu/icu-system.gyp", + "icu_small": "false", + "icu_ver_major": "73", + "is_debug": 0, + "libdir": "lib", + "llvm_version": "14.0", + "napi_build_version": "8", + "node_builtin_shareable_builtins": [ + "deps/cjs-module-lexer/lexer.js", + "deps/cjs-module-lexer/dist/lexer.js", + "deps/undici/undici.js" + ], + "node_byteorder": "little", + "node_debug_lib": "false", + "node_enable_d8": "false", + "node_install_corepack": "true", + "node_install_npm": "true", + "node_library_files": [ + "lib/_http_agent.js", + "lib/_http_client.js", + "lib/_http_common.js", + "lib/_http_incoming.js", + "lib/_http_outgoing.js", + "lib/_http_server.js", + "lib/_stream_duplex.js", + "lib/_stream_passthrough.js", + "lib/_stream_readable.js", + "lib/_stream_transform.js", + "lib/_stream_wrap.js", + "lib/_stream_writable.js", + "lib/_tls_common.js", + "lib/_tls_wrap.js", + "lib/assert.js", + "lib/assert/strict.js", + "lib/async_hooks.js", + "lib/buffer.js", + "lib/child_process.js", + "lib/cluster.js", + "lib/console.js", + "lib/constants.js", + "lib/crypto.js", + "lib/dgram.js", + "lib/diagnostics_channel.js", + "lib/dns.js", + "lib/dns/promises.js", + "lib/domain.js", + "lib/events.js", + "lib/fs.js", + "lib/fs/promises.js", + "lib/http.js", + "lib/http2.js", + "lib/https.js", + "lib/inspector.js", + "lib/internal/abort_controller.js", + "lib/internal/assert.js", + "lib/internal/assert/assertion_error.js", + "lib/internal/assert/calltracker.js", + "lib/internal/async_hooks.js", + "lib/internal/blob.js", + "lib/internal/blocklist.js", + "lib/internal/bootstrap/environment.js", + "lib/internal/bootstrap/loaders.js", + "lib/internal/bootstrap/node.js", + "lib/internal/bootstrap/pre_execution.js", + "lib/internal/bootstrap/switches/does_not_own_process_state.js", + "lib/internal/bootstrap/switches/does_own_process_state.js", + "lib/internal/bootstrap/switches/is_main_thread.js", + "lib/internal/bootstrap/switches/is_not_main_thread.js", + "lib/internal/buffer.js", + "lib/internal/child_process.js", + "lib/internal/child_process/serialization.js", + "lib/internal/cli_table.js", + "lib/internal/cluster/child.js", + "lib/internal/cluster/primary.js", + "lib/internal/cluster/round_robin_handle.js", + "lib/internal/cluster/shared_handle.js", + "lib/internal/cluster/utils.js", + "lib/internal/cluster/worker.js", + "lib/internal/console/constructor.js", + "lib/internal/console/global.js", + "lib/internal/constants.js", + "lib/internal/crypto/aes.js", + "lib/internal/crypto/certificate.js", + "lib/internal/crypto/cfrg.js", + "lib/internal/crypto/cipher.js", + "lib/internal/crypto/diffiehellman.js", + "lib/internal/crypto/ec.js", + "lib/internal/crypto/hash.js", + "lib/internal/crypto/hashnames.js", + "lib/internal/crypto/hkdf.js", + "lib/internal/crypto/keygen.js", + "lib/internal/crypto/keys.js", + "lib/internal/crypto/mac.js", + "lib/internal/crypto/pbkdf2.js", + "lib/internal/crypto/random.js", + "lib/internal/crypto/rsa.js", + "lib/internal/crypto/scrypt.js", + "lib/internal/crypto/sig.js", + "lib/internal/crypto/util.js", + "lib/internal/crypto/webcrypto.js", + "lib/internal/crypto/x509.js", + "lib/internal/debugger/inspect.js", + "lib/internal/debugger/inspect_client.js", + "lib/internal/debugger/inspect_repl.js", + "lib/internal/dgram.js", + "lib/internal/dns/promises.js", + "lib/internal/dns/utils.js", + "lib/internal/dtrace.js", + "lib/internal/encoding.js", + "lib/internal/error_serdes.js", + "lib/internal/errors.js", + "lib/internal/event_target.js", + "lib/internal/fixed_queue.js", + "lib/internal/freelist.js", + "lib/internal/freeze_intrinsics.js", + "lib/internal/fs/cp/cp-sync.js", + "lib/internal/fs/cp/cp.js", + "lib/internal/fs/dir.js", + "lib/internal/fs/promises.js", + "lib/internal/fs/read_file_context.js", + "lib/internal/fs/rimraf.js", + "lib/internal/fs/streams.js", + "lib/internal/fs/sync_write_stream.js", + "lib/internal/fs/utils.js", + "lib/internal/fs/watchers.js", + "lib/internal/heap_utils.js", + "lib/internal/histogram.js", + "lib/internal/http.js", + "lib/internal/http2/compat.js", + "lib/internal/http2/core.js", + "lib/internal/http2/util.js", + "lib/internal/idna.js", + "lib/internal/inspector_async_hook.js", + "lib/internal/js_stream_socket.js", + "lib/internal/legacy/processbinding.js", + "lib/internal/linkedlist.js", + "lib/internal/main/check_syntax.js", + "lib/internal/main/eval_stdin.js", + "lib/internal/main/eval_string.js", + "lib/internal/main/inspect.js", + "lib/internal/main/mksnapshot.js", + "lib/internal/main/print_help.js", + "lib/internal/main/prof_process.js", + "lib/internal/main/repl.js", + "lib/internal/main/run_main_module.js", + "lib/internal/main/test_runner.js", + "lib/internal/main/watch_mode.js", + "lib/internal/main/worker_thread.js", + "lib/internal/modules/cjs/helpers.js", + "lib/internal/modules/cjs/loader.js", + "lib/internal/modules/esm/assert.js", + "lib/internal/modules/esm/create_dynamic_module.js", + "lib/internal/modules/esm/fetch_module.js", + "lib/internal/modules/esm/formats.js", + "lib/internal/modules/esm/get_format.js", + "lib/internal/modules/esm/handle_process_exit.js", + "lib/internal/modules/esm/initialize_import_meta.js", + "lib/internal/modules/esm/load.js", + "lib/internal/modules/esm/loader.js", + "lib/internal/modules/esm/module_job.js", + "lib/internal/modules/esm/module_map.js", + "lib/internal/modules/esm/package_config.js", + "lib/internal/modules/esm/resolve.js", + "lib/internal/modules/esm/translators.js", + "lib/internal/modules/package_json_reader.js", + "lib/internal/modules/run_main.js", + "lib/internal/net.js", + "lib/internal/options.js", + "lib/internal/per_context/domexception.js", + "lib/internal/per_context/messageport.js", + "lib/internal/per_context/primordials.js", + "lib/internal/perf/event_loop_delay.js", + "lib/internal/perf/event_loop_utilization.js", + "lib/internal/perf/nodetiming.js", + "lib/internal/perf/observe.js", + "lib/internal/perf/performance.js", + "lib/internal/perf/performance_entry.js", + "lib/internal/perf/resource_timing.js", + "lib/internal/perf/timerify.js", + "lib/internal/perf/usertiming.js", + "lib/internal/perf/utils.js", + "lib/internal/policy/manifest.js", + "lib/internal/policy/sri.js", + "lib/internal/priority_queue.js", + "lib/internal/process/esm_loader.js", + "lib/internal/process/execution.js", + "lib/internal/process/per_thread.js", + "lib/internal/process/policy.js", + "lib/internal/process/promises.js", + "lib/internal/process/report.js", + "lib/internal/process/signal.js", + "lib/internal/process/task_queues.js", + "lib/internal/process/warning.js", + "lib/internal/process/worker_thread_only.js", + "lib/internal/promise_hooks.js", + "lib/internal/querystring.js", + "lib/internal/readline/callbacks.js", + "lib/internal/readline/emitKeypressEvents.js", + "lib/internal/readline/interface.js", + "lib/internal/readline/utils.js", + "lib/internal/repl.js", + "lib/internal/repl/await.js", + "lib/internal/repl/history.js", + "lib/internal/repl/utils.js", + "lib/internal/socket_list.js", + "lib/internal/socketaddress.js", + "lib/internal/source_map/prepare_stack_trace.js", + "lib/internal/source_map/source_map.js", + "lib/internal/source_map/source_map_cache.js", + "lib/internal/stream_base_commons.js", + "lib/internal/streams/add-abort-signal.js", + "lib/internal/streams/buffer_list.js", + "lib/internal/streams/compose.js", + "lib/internal/streams/destroy.js", + "lib/internal/streams/duplex.js", + "lib/internal/streams/duplexify.js", + "lib/internal/streams/end-of-stream.js", + "lib/internal/streams/from.js", + "lib/internal/streams/lazy_transform.js", + "lib/internal/streams/legacy.js", + "lib/internal/streams/operators.js", + "lib/internal/streams/passthrough.js", + "lib/internal/streams/pipeline.js", + "lib/internal/streams/readable.js", + "lib/internal/streams/state.js", + "lib/internal/streams/transform.js", + "lib/internal/streams/utils.js", + "lib/internal/streams/writable.js", + "lib/internal/test/binding.js", + "lib/internal/test/transfer.js", + "lib/internal/test_runner/harness.js", + "lib/internal/test_runner/runner.js", + "lib/internal/test_runner/tap_stream.js", + "lib/internal/test_runner/test.js", + "lib/internal/test_runner/utils.js", + "lib/internal/timers.js", + "lib/internal/tls/parse-cert-string.js", + "lib/internal/tls/secure-context.js", + "lib/internal/tls/secure-pair.js", + "lib/internal/trace_events_async_hooks.js", + "lib/internal/tty.js", + "lib/internal/url.js", + "lib/internal/util.js", + "lib/internal/util/colors.js", + "lib/internal/util/comparisons.js", + "lib/internal/util/debuglog.js", + "lib/internal/util/inspect.js", + "lib/internal/util/inspector.js", + "lib/internal/util/iterable_weak_map.js", + "lib/internal/util/parse_args/parse_args.js", + "lib/internal/util/parse_args/utils.js", + "lib/internal/util/types.js", + "lib/internal/v8/startup_snapshot.js", + "lib/internal/v8_prof_polyfill.js", + "lib/internal/v8_prof_processor.js", + "lib/internal/validators.js", + "lib/internal/vm/module.js", + "lib/internal/watch_mode/files_watcher.js", + "lib/internal/watchdog.js", + "lib/internal/webstreams/adapters.js", + "lib/internal/webstreams/compression.js", + "lib/internal/webstreams/encoding.js", + "lib/internal/webstreams/queuingstrategies.js", + "lib/internal/webstreams/readablestream.js", + "lib/internal/webstreams/transfer.js", + "lib/internal/webstreams/transformstream.js", + "lib/internal/webstreams/util.js", + "lib/internal/webstreams/writablestream.js", + "lib/internal/worker.js", + "lib/internal/worker/io.js", + "lib/internal/worker/js_transferable.js", + "lib/module.js", + "lib/net.js", + "lib/os.js", + "lib/path.js", + "lib/path/posix.js", + "lib/path/win32.js", + "lib/perf_hooks.js", + "lib/process.js", + "lib/punycode.js", + "lib/querystring.js", + "lib/readline.js", + "lib/repl.js", + "lib/stream.js", + "lib/stream/consumers.js", + "lib/stream/promises.js", + "lib/stream/web.js", + "lib/string_decoder.js", + "lib/sys.js", + "lib/test.js", + "lib/timers.js", + "lib/timers/promises.js", + "lib/tls.js", + "lib/trace_events.js", + "lib/tty.js", + "lib/url.js", + "lib/util.js", + "lib/util/types.js", + "lib/v8.js", + "lib/vm.js", + "lib/wasi.js", + "lib/worker_threads.js", + "lib/zlib.js" + ], + "node_module_version": 93, + "node_no_browser_globals": "false", + "node_prefix": "/opt/homebrew/Cellar/node@16/16.20.1_1", + "node_release_urlbase": "", + "node_shared": "false", + "node_shared_brotli": "true", + "node_shared_cares": "true", + "node_shared_http_parser": "false", + "node_shared_libuv": "true", + "node_shared_nghttp2": "true", + "node_shared_nghttp3": "false", + "node_shared_ngtcp2": "false", + "node_shared_openssl": "true", + "node_shared_zlib": "true", + "node_tag": "", + "node_target_type": "executable", + "node_use_bundled_v8": "true", + "node_use_dtrace": "true", + "node_use_etw": "false", + "node_use_node_code_cache": "true", + "node_use_node_snapshot": "true", + "node_use_openssl": "true", + "node_use_v8_platform": "true", + "node_with_ltcg": "false", + "node_without_node_options": "false", + "openssl_fips": "", + "openssl_is_fips": "false", + "openssl_quic": "false", + "ossfuzz": "false", + "shlib_suffix": "93.dylib", + "target_arch": "arm64", + "v8_enable_31bit_smis_on_64bit_arch": 0, + "v8_enable_gdbjit": 0, + "v8_enable_hugepage": 0, + "v8_enable_i18n_support": 1, + "v8_enable_inspector": 1, + "v8_enable_lite_mode": 0, + "v8_enable_object_print": 1, + "v8_enable_pointer_compression": 0, + "v8_enable_webassembly": 1, + "v8_no_strict_aliasing": 1, + "v8_optimized_debug": 1, + "v8_promise_internal_field_count": 1, + "v8_random_seed": 0, + "v8_trace_maps": 0, + "v8_use_siphash": 1, + "want_separate_host_toolset": 0, + "nodedir": "/Users/klasseg/Library/Caches/node-gyp/16.20.1", + "standalone_static_library": 1, + "metrics_registry": "https://registry.npmjs.org/", + "global_prefix": "/opt/homebrew", + "local_prefix": "/Users/klasseg/Workspace/arc/arc-lang/crates/tree-sitter", + "globalconfig": "/opt/homebrew/etc/npmrc", + "init_module": "/Users/klasseg/.npm-init.js", + "userconfig": "/Users/klasseg/.npmrc", + "node_gyp": "/opt/homebrew/Cellar/node@16/16.20.1_1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js", + "cache": "/Users/klasseg/.npm", + "user_agent": "npm/8.19.4 node/v16.20.1 darwin arm64 workspaces/false", + "prefix": "/opt/homebrew" + } +} diff --git a/arc-lang/crates/tree-sitter/build/gyp-mac-tool b/arc-lang/crates/tree-sitter/build/gyp-mac-tool new file mode 100755 index 000000000..ffef860c4 --- /dev/null +++ b/arc-lang/crates/tree-sitter/build/gyp-mac-tool @@ -0,0 +1,772 @@ +#!/usr/bin/env python3 +# Generated by gyp. Do not edit. +# Copyright (c) 2012 Google Inc. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +"""Utility functions to perform Xcode-style build steps. + +These functions are executed via gyp-mac-tool when using the Makefile generator. +""" + + +import fcntl +import fnmatch +import glob +import json +import os +import plistlib +import re +import shutil +import struct +import subprocess +import sys +import tempfile + + +def main(args): + executor = MacTool() + exit_code = executor.Dispatch(args) + if exit_code is not None: + sys.exit(exit_code) + + +class MacTool: + """This class performs all the Mac tooling steps. The methods can either be + executed directly, or dispatched from an argument list.""" + + def Dispatch(self, args): + """Dispatches a string command to a method.""" + if len(args) < 1: + raise Exception("Not enough arguments") + + method = "Exec%s" % self._CommandifyName(args[0]) + return getattr(self, method)(*args[1:]) + + def _CommandifyName(self, name_string): + """Transforms a tool name like copy-info-plist to CopyInfoPlist""" + return name_string.title().replace("-", "") + + def ExecCopyBundleResource(self, source, dest, convert_to_binary): + """Copies a resource file to the bundle/Resources directory, performing any + necessary compilation on each resource.""" + convert_to_binary = convert_to_binary == "True" + extension = os.path.splitext(source)[1].lower() + if os.path.isdir(source): + # Copy tree. + # TODO(thakis): This copies file attributes like mtime, while the + # single-file branch below doesn't. This should probably be changed to + # be consistent with the single-file branch. + if os.path.exists(dest): + shutil.rmtree(dest) + shutil.copytree(source, dest) + elif extension == ".xib": + return self._CopyXIBFile(source, dest) + elif extension == ".storyboard": + return self._CopyXIBFile(source, dest) + elif extension == ".strings" and not convert_to_binary: + self._CopyStringsFile(source, dest) + else: + if os.path.exists(dest): + os.unlink(dest) + shutil.copy(source, dest) + + if convert_to_binary and extension in (".plist", ".strings"): + self._ConvertToBinary(dest) + + def _CopyXIBFile(self, source, dest): + """Compiles a XIB file with ibtool into a binary plist in the bundle.""" + + # ibtool sometimes crashes with relative paths. See crbug.com/314728. + base = os.path.dirname(os.path.realpath(__file__)) + if os.path.relpath(source): + source = os.path.join(base, source) + if os.path.relpath(dest): + dest = os.path.join(base, dest) + + args = ["xcrun", "ibtool", "--errors", "--warnings", "--notices"] + + if os.environ["XCODE_VERSION_ACTUAL"] > "0700": + args.extend(["--auto-activate-custom-fonts"]) + if "IPHONEOS_DEPLOYMENT_TARGET" in os.environ: + args.extend( + [ + "--target-device", + "iphone", + "--target-device", + "ipad", + "--minimum-deployment-target", + os.environ["IPHONEOS_DEPLOYMENT_TARGET"], + ] + ) + else: + args.extend( + [ + "--target-device", + "mac", + "--minimum-deployment-target", + os.environ["MACOSX_DEPLOYMENT_TARGET"], + ] + ) + + args.extend( + ["--output-format", "human-readable-text", "--compile", dest, source] + ) + + ibtool_section_re = re.compile(r"/\*.*\*/") + ibtool_re = re.compile(r".*note:.*is clipping its content") + try: + stdout = subprocess.check_output(args) + except subprocess.CalledProcessError as e: + print(e.output) + raise + current_section_header = None + for line in stdout.splitlines(): + if ibtool_section_re.match(line): + current_section_header = line + elif not ibtool_re.match(line): + if current_section_header: + print(current_section_header) + current_section_header = None + print(line) + return 0 + + def _ConvertToBinary(self, dest): + subprocess.check_call( + ["xcrun", "plutil", "-convert", "binary1", "-o", dest, dest] + ) + + def _CopyStringsFile(self, source, dest): + """Copies a .strings file using iconv to reconvert the input into UTF-16.""" + input_code = self._DetectInputEncoding(source) or "UTF-8" + + # Xcode's CpyCopyStringsFile / builtin-copyStrings seems to call + # CFPropertyListCreateFromXMLData() behind the scenes; at least it prints + # CFPropertyListCreateFromXMLData(): Old-style plist parser: missing + # semicolon in dictionary. + # on invalid files. Do the same kind of validation. + import CoreFoundation + + with open(source, "rb") as in_file: + s = in_file.read() + d = CoreFoundation.CFDataCreate(None, s, len(s)) + _, error = CoreFoundation.CFPropertyListCreateFromXMLData(None, d, 0, None) + if error: + return + + with open(dest, "wb") as fp: + fp.write(s.decode(input_code).encode("UTF-16")) + + def _DetectInputEncoding(self, file_name): + """Reads the first few bytes from file_name and tries to guess the text + encoding. Returns None as a guess if it can't detect it.""" + with open(file_name, "rb") as fp: + try: + header = fp.read(3) + except Exception: + return None + if header.startswith(b"\xFE\xFF"): + return "UTF-16" + elif header.startswith(b"\xFF\xFE"): + return "UTF-16" + elif header.startswith(b"\xEF\xBB\xBF"): + return "UTF-8" + else: + return None + + def ExecCopyInfoPlist(self, source, dest, convert_to_binary, *keys): + """Copies the |source| Info.plist to the destination directory |dest|.""" + # Read the source Info.plist into memory. + with open(source) as fd: + lines = fd.read() + + # Insert synthesized key/value pairs (e.g. BuildMachineOSBuild). + plist = plistlib.readPlistFromString(lines) + if keys: + plist.update(json.loads(keys[0])) + lines = plistlib.writePlistToString(plist) + + # Go through all the environment variables and replace them as variables in + # the file. + IDENT_RE = re.compile(r"[_/\s]") + for key in os.environ: + if key.startswith("_"): + continue + evar = "${%s}" % key + evalue = os.environ[key] + lines = lines.replace(lines, evar, evalue) + + # Xcode supports various suffices on environment variables, which are + # all undocumented. :rfc1034identifier is used in the standard project + # template these days, and :identifier was used earlier. They are used to + # convert non-url characters into things that look like valid urls -- + # except that the replacement character for :identifier, '_' isn't valid + # in a URL either -- oops, hence :rfc1034identifier was born. + evar = "${%s:identifier}" % key + evalue = IDENT_RE.sub("_", os.environ[key]) + lines = lines.replace(lines, evar, evalue) + + evar = "${%s:rfc1034identifier}" % key + evalue = IDENT_RE.sub("-", os.environ[key]) + lines = lines.replace(lines, evar, evalue) + + # Remove any keys with values that haven't been replaced. + lines = lines.splitlines() + for i in range(len(lines)): + if lines[i].strip().startswith("${"): + lines[i] = None + lines[i - 1] = None + lines = "\n".join(line for line in lines if line is not None) + + # Write out the file with variables replaced. + with open(dest, "w") as fd: + fd.write(lines) + + # Now write out PkgInfo file now that the Info.plist file has been + # "compiled". + self._WritePkgInfo(dest) + + if convert_to_binary == "True": + self._ConvertToBinary(dest) + + def _WritePkgInfo(self, info_plist): + """This writes the PkgInfo file from the data stored in Info.plist.""" + plist = plistlib.readPlist(info_plist) + if not plist: + return + + # Only create PkgInfo for executable types. + package_type = plist["CFBundlePackageType"] + if package_type != "APPL": + return + + # The format of PkgInfo is eight characters, representing the bundle type + # and bundle signature, each four characters. If that is missing, four + # '?' characters are used instead. + signature_code = plist.get("CFBundleSignature", "????") + if len(signature_code) != 4: # Wrong length resets everything, too. + signature_code = "?" * 4 + + dest = os.path.join(os.path.dirname(info_plist), "PkgInfo") + with open(dest, "w") as fp: + fp.write(f"{package_type}{signature_code}") + + def ExecFlock(self, lockfile, *cmd_list): + """Emulates the most basic behavior of Linux's flock(1).""" + # Rely on exception handling to report errors. + fd = os.open(lockfile, os.O_RDONLY | os.O_NOCTTY | os.O_CREAT, 0o666) + fcntl.flock(fd, fcntl.LOCK_EX) + return subprocess.call(cmd_list) + + def ExecFilterLibtool(self, *cmd_list): + """Calls libtool and filters out '/path/to/libtool: file: foo.o has no + symbols'.""" + libtool_re = re.compile( + r"^.*libtool: (?:for architecture: \S* )?" r"file: .* has no symbols$" + ) + libtool_re5 = re.compile( + r"^.*libtool: warning for library: " + + r".* the table of contents is empty " + + r"\(no object file members in the library define global symbols\)$" + ) + env = os.environ.copy() + # Ref: + # http://www.opensource.apple.com/source/cctools/cctools-809/misc/libtool.c + # The problem with this flag is that it resets the file mtime on the file to + # epoch=0, e.g. 1970-1-1 or 1969-12-31 depending on timezone. + env["ZERO_AR_DATE"] = "1" + libtoolout = subprocess.Popen(cmd_list, stderr=subprocess.PIPE, env=env) + err = libtoolout.communicate()[1].decode("utf-8") + for line in err.splitlines(): + if not libtool_re.match(line) and not libtool_re5.match(line): + print(line, file=sys.stderr) + # Unconditionally touch the output .a file on the command line if present + # and the command succeeded. A bit hacky. + if not libtoolout.returncode: + for i in range(len(cmd_list) - 1): + if cmd_list[i] == "-o" and cmd_list[i + 1].endswith(".a"): + os.utime(cmd_list[i + 1], None) + break + return libtoolout.returncode + + def ExecPackageIosFramework(self, framework): + # Find the name of the binary based on the part before the ".framework". + binary = os.path.basename(framework).split(".")[0] + module_path = os.path.join(framework, "Modules") + if not os.path.exists(module_path): + os.mkdir(module_path) + module_template = ( + "framework module %s {\n" + ' umbrella header "%s.h"\n' + "\n" + " export *\n" + " module * { export * }\n" + "}\n" % (binary, binary) + ) + + with open(os.path.join(module_path, "module.modulemap"), "w") as module_file: + module_file.write(module_template) + + def ExecPackageFramework(self, framework, version): + """Takes a path to Something.framework and the Current version of that and + sets up all the symlinks.""" + # Find the name of the binary based on the part before the ".framework". + binary = os.path.basename(framework).split(".")[0] + + CURRENT = "Current" + RESOURCES = "Resources" + VERSIONS = "Versions" + + if not os.path.exists(os.path.join(framework, VERSIONS, version, binary)): + # Binary-less frameworks don't seem to contain symlinks (see e.g. + # chromium's out/Debug/org.chromium.Chromium.manifest/ bundle). + return + + # Move into the framework directory to set the symlinks correctly. + pwd = os.getcwd() + os.chdir(framework) + + # Set up the Current version. + self._Relink(version, os.path.join(VERSIONS, CURRENT)) + + # Set up the root symlinks. + self._Relink(os.path.join(VERSIONS, CURRENT, binary), binary) + self._Relink(os.path.join(VERSIONS, CURRENT, RESOURCES), RESOURCES) + + # Back to where we were before! + os.chdir(pwd) + + def _Relink(self, dest, link): + """Creates a symlink to |dest| named |link|. If |link| already exists, + it is overwritten.""" + if os.path.lexists(link): + os.remove(link) + os.symlink(dest, link) + + def ExecCompileIosFrameworkHeaderMap(self, out, framework, *all_headers): + framework_name = os.path.basename(framework).split(".")[0] + all_headers = [os.path.abspath(header) for header in all_headers] + filelist = {} + for header in all_headers: + filename = os.path.basename(header) + filelist[filename] = header + filelist[os.path.join(framework_name, filename)] = header + WriteHmap(out, filelist) + + def ExecCopyIosFrameworkHeaders(self, framework, *copy_headers): + header_path = os.path.join(framework, "Headers") + if not os.path.exists(header_path): + os.makedirs(header_path) + for header in copy_headers: + shutil.copy(header, os.path.join(header_path, os.path.basename(header))) + + def ExecCompileXcassets(self, keys, *inputs): + """Compiles multiple .xcassets files into a single .car file. + + This invokes 'actool' to compile all the inputs .xcassets files. The + |keys| arguments is a json-encoded dictionary of extra arguments to + pass to 'actool' when the asset catalogs contains an application icon + or a launch image. + + Note that 'actool' does not create the Assets.car file if the asset + catalogs does not contains imageset. + """ + command_line = [ + "xcrun", + "actool", + "--output-format", + "human-readable-text", + "--compress-pngs", + "--notices", + "--warnings", + "--errors", + ] + is_iphone_target = "IPHONEOS_DEPLOYMENT_TARGET" in os.environ + if is_iphone_target: + platform = os.environ["CONFIGURATION"].split("-")[-1] + if platform not in ("iphoneos", "iphonesimulator"): + platform = "iphonesimulator" + command_line.extend( + [ + "--platform", + platform, + "--target-device", + "iphone", + "--target-device", + "ipad", + "--minimum-deployment-target", + os.environ["IPHONEOS_DEPLOYMENT_TARGET"], + "--compile", + os.path.abspath(os.environ["CONTENTS_FOLDER_PATH"]), + ] + ) + else: + command_line.extend( + [ + "--platform", + "macosx", + "--target-device", + "mac", + "--minimum-deployment-target", + os.environ["MACOSX_DEPLOYMENT_TARGET"], + "--compile", + os.path.abspath(os.environ["UNLOCALIZED_RESOURCES_FOLDER_PATH"]), + ] + ) + if keys: + keys = json.loads(keys) + for key, value in keys.items(): + arg_name = "--" + key + if isinstance(value, bool): + if value: + command_line.append(arg_name) + elif isinstance(value, list): + for v in value: + command_line.append(arg_name) + command_line.append(str(v)) + else: + command_line.append(arg_name) + command_line.append(str(value)) + # Note: actool crashes if inputs path are relative, so use os.path.abspath + # to get absolute path name for inputs. + command_line.extend(map(os.path.abspath, inputs)) + subprocess.check_call(command_line) + + def ExecMergeInfoPlist(self, output, *inputs): + """Merge multiple .plist files into a single .plist file.""" + merged_plist = {} + for path in inputs: + plist = self._LoadPlistMaybeBinary(path) + self._MergePlist(merged_plist, plist) + plistlib.writePlist(merged_plist, output) + + def ExecCodeSignBundle(self, key, entitlements, provisioning, path, preserve): + """Code sign a bundle. + + This function tries to code sign an iOS bundle, following the same + algorithm as Xcode: + 1. pick the provisioning profile that best match the bundle identifier, + and copy it into the bundle as embedded.mobileprovision, + 2. copy Entitlements.plist from user or SDK next to the bundle, + 3. code sign the bundle. + """ + substitutions, overrides = self._InstallProvisioningProfile( + provisioning, self._GetCFBundleIdentifier() + ) + entitlements_path = self._InstallEntitlements( + entitlements, substitutions, overrides + ) + + args = ["codesign", "--force", "--sign", key] + if preserve == "True": + args.extend(["--deep", "--preserve-metadata=identifier,entitlements"]) + else: + args.extend(["--entitlements", entitlements_path]) + args.extend(["--timestamp=none", path]) + subprocess.check_call(args) + + def _InstallProvisioningProfile(self, profile, bundle_identifier): + """Installs embedded.mobileprovision into the bundle. + + Args: + profile: string, optional, short name of the .mobileprovision file + to use, if empty or the file is missing, the best file installed + will be used + bundle_identifier: string, value of CFBundleIdentifier from Info.plist + + Returns: + A tuple containing two dictionary: variables substitutions and values + to overrides when generating the entitlements file. + """ + source_path, provisioning_data, team_id = self._FindProvisioningProfile( + profile, bundle_identifier + ) + target_path = os.path.join( + os.environ["BUILT_PRODUCTS_DIR"], + os.environ["CONTENTS_FOLDER_PATH"], + "embedded.mobileprovision", + ) + shutil.copy2(source_path, target_path) + substitutions = self._GetSubstitutions(bundle_identifier, team_id + ".") + return substitutions, provisioning_data["Entitlements"] + + def _FindProvisioningProfile(self, profile, bundle_identifier): + """Finds the .mobileprovision file to use for signing the bundle. + + Checks all the installed provisioning profiles (or if the user specified + the PROVISIONING_PROFILE variable, only consult it) and select the most + specific that correspond to the bundle identifier. + + Args: + profile: string, optional, short name of the .mobileprovision file + to use, if empty or the file is missing, the best file installed + will be used + bundle_identifier: string, value of CFBundleIdentifier from Info.plist + + Returns: + A tuple of the path to the selected provisioning profile, the data of + the embedded plist in the provisioning profile and the team identifier + to use for code signing. + + Raises: + SystemExit: if no .mobileprovision can be used to sign the bundle. + """ + profiles_dir = os.path.join( + os.environ["HOME"], "Library", "MobileDevice", "Provisioning Profiles" + ) + if not os.path.isdir(profiles_dir): + print( + "cannot find mobile provisioning for %s" % (bundle_identifier), + file=sys.stderr, + ) + sys.exit(1) + provisioning_profiles = None + if profile: + profile_path = os.path.join(profiles_dir, profile + ".mobileprovision") + if os.path.exists(profile_path): + provisioning_profiles = [profile_path] + if not provisioning_profiles: + provisioning_profiles = glob.glob( + os.path.join(profiles_dir, "*.mobileprovision") + ) + valid_provisioning_profiles = {} + for profile_path in provisioning_profiles: + profile_data = self._LoadProvisioningProfile(profile_path) + app_id_pattern = profile_data.get("Entitlements", {}).get( + "application-identifier", "" + ) + for team_identifier in profile_data.get("TeamIdentifier", []): + app_id = f"{team_identifier}.{bundle_identifier}" + if fnmatch.fnmatch(app_id, app_id_pattern): + valid_provisioning_profiles[app_id_pattern] = ( + profile_path, + profile_data, + team_identifier, + ) + if not valid_provisioning_profiles: + print( + "cannot find mobile provisioning for %s" % (bundle_identifier), + file=sys.stderr, + ) + sys.exit(1) + # If the user has multiple provisioning profiles installed that can be + # used for ${bundle_identifier}, pick the most specific one (ie. the + # provisioning profile whose pattern is the longest). + selected_key = max(valid_provisioning_profiles, key=lambda v: len(v)) + return valid_provisioning_profiles[selected_key] + + def _LoadProvisioningProfile(self, profile_path): + """Extracts the plist embedded in a provisioning profile. + + Args: + profile_path: string, path to the .mobileprovision file + + Returns: + Content of the plist embedded in the provisioning profile as a dictionary. + """ + with tempfile.NamedTemporaryFile() as temp: + subprocess.check_call( + ["security", "cms", "-D", "-i", profile_path, "-o", temp.name] + ) + return self._LoadPlistMaybeBinary(temp.name) + + def _MergePlist(self, merged_plist, plist): + """Merge |plist| into |merged_plist|.""" + for key, value in plist.items(): + if isinstance(value, dict): + merged_value = merged_plist.get(key, {}) + if isinstance(merged_value, dict): + self._MergePlist(merged_value, value) + merged_plist[key] = merged_value + else: + merged_plist[key] = value + else: + merged_plist[key] = value + + def _LoadPlistMaybeBinary(self, plist_path): + """Loads into a memory a plist possibly encoded in binary format. + + This is a wrapper around plistlib.readPlist that tries to convert the + plist to the XML format if it can't be parsed (assuming that it is in + the binary format). + + Args: + plist_path: string, path to a plist file, in XML or binary format + + Returns: + Content of the plist as a dictionary. + """ + try: + # First, try to read the file using plistlib that only supports XML, + # and if an exception is raised, convert a temporary copy to XML and + # load that copy. + return plistlib.readPlist(plist_path) + except Exception: + pass + with tempfile.NamedTemporaryFile() as temp: + shutil.copy2(plist_path, temp.name) + subprocess.check_call(["plutil", "-convert", "xml1", temp.name]) + return plistlib.readPlist(temp.name) + + def _GetSubstitutions(self, bundle_identifier, app_identifier_prefix): + """Constructs a dictionary of variable substitutions for Entitlements.plist. + + Args: + bundle_identifier: string, value of CFBundleIdentifier from Info.plist + app_identifier_prefix: string, value for AppIdentifierPrefix + + Returns: + Dictionary of substitutions to apply when generating Entitlements.plist. + """ + return { + "CFBundleIdentifier": bundle_identifier, + "AppIdentifierPrefix": app_identifier_prefix, + } + + def _GetCFBundleIdentifier(self): + """Extracts CFBundleIdentifier value from Info.plist in the bundle. + + Returns: + Value of CFBundleIdentifier in the Info.plist located in the bundle. + """ + info_plist_path = os.path.join( + os.environ["TARGET_BUILD_DIR"], os.environ["INFOPLIST_PATH"] + ) + info_plist_data = self._LoadPlistMaybeBinary(info_plist_path) + return info_plist_data["CFBundleIdentifier"] + + def _InstallEntitlements(self, entitlements, substitutions, overrides): + """Generates and install the ${BundleName}.xcent entitlements file. + + Expands variables "$(variable)" pattern in the source entitlements file, + add extra entitlements defined in the .mobileprovision file and the copy + the generated plist to "${BundlePath}.xcent". + + Args: + entitlements: string, optional, path to the Entitlements.plist template + to use, defaults to "${SDKROOT}/Entitlements.plist" + substitutions: dictionary, variable substitutions + overrides: dictionary, values to add to the entitlements + + Returns: + Path to the generated entitlements file. + """ + source_path = entitlements + target_path = os.path.join( + os.environ["BUILT_PRODUCTS_DIR"], os.environ["PRODUCT_NAME"] + ".xcent" + ) + if not source_path: + source_path = os.path.join(os.environ["SDKROOT"], "Entitlements.plist") + shutil.copy2(source_path, target_path) + data = self._LoadPlistMaybeBinary(target_path) + data = self._ExpandVariables(data, substitutions) + if overrides: + for key in overrides: + if key not in data: + data[key] = overrides[key] + plistlib.writePlist(data, target_path) + return target_path + + def _ExpandVariables(self, data, substitutions): + """Expands variables "$(variable)" in data. + + Args: + data: object, can be either string, list or dictionary + substitutions: dictionary, variable substitutions to perform + + Returns: + Copy of data where each references to "$(variable)" has been replaced + by the corresponding value found in substitutions, or left intact if + the key was not found. + """ + if isinstance(data, str): + for key, value in substitutions.items(): + data = data.replace("$(%s)" % key, value) + return data + if isinstance(data, list): + return [self._ExpandVariables(v, substitutions) for v in data] + if isinstance(data, dict): + return {k: self._ExpandVariables(data[k], substitutions) for k in data} + return data + + +def NextGreaterPowerOf2(x): + return 2 ** (x).bit_length() + + +def WriteHmap(output_name, filelist): + """Generates a header map based on |filelist|. + + Per Mark Mentovai: + A header map is structured essentially as a hash table, keyed by names used + in #includes, and providing pathnames to the actual files. + + The implementation below and the comment above comes from inspecting: + http://www.opensource.apple.com/source/distcc/distcc-2503/distcc_dist/include_server/headermap.py?txt + while also looking at the implementation in clang in: + https://llvm.org/svn/llvm-project/cfe/trunk/lib/Lex/HeaderMap.cpp + """ + magic = 1751998832 + version = 1 + _reserved = 0 + count = len(filelist) + capacity = NextGreaterPowerOf2(count) + strings_offset = 24 + (12 * capacity) + max_value_length = max(len(value) for value in filelist.values()) + + out = open(output_name, "wb") + out.write( + struct.pack( + " [ + $._whitespace, + $.line_comment, + // $.block_comment + ], + + externals: $ => [], + + word: $ => $.name, + + rules: { + program: $ => optional($._stmts), + _whitespace: $ => /[ \t\r\n]/, + line_comment: $ => token(seq('#', /.*/)), + name: $ => /[a-zA-Z_][a-zA-Z0-9_]*/, + index: $ => /[0-9]+/, + meta: $ => seq('@', '{', optional($._attributes), '}'), + _attributes: $ => seq($.attribute, repeat(seq(',', $.attribute))), + attribute: $ => seq($.name, optional(seq(':', $._constant))), + _constant: $ => choice( + $.constant_int, + $.constant_float, + $.constant_string, + $.constant_char, + $.constant_bool, + $.constant_unit, + ), + constant_int: $ => token.immediate(seq( + /-?[0-9]+/, + optional(/[a-zA-Z_][a-zA-Z0-9_]*/) + )), + constant_float: $ => /-?[0-9]+\.[0-9]+/, + constant_string: $ => seq( + $.string_quote, + repeat(choice( + $.string_interpolation, + $.string_content + )), + $.string_quote, + ), + string_quote: $ => '"', + string_content: $ => /[^$"]+/, + string_interpolation: $ => seq('$', choice($.block, $.name)), + constant_char: $ => seq("'", /[^']*/, "'"), + constant_bool: $ => choice('true', 'false'), + constant_unit: $ => seq('(', ')'), + _stmts: $ => repeat1($._stmt), + _stmt: $ => choice( + $.stmt_def, + $.stmt_type, + $.stmt_enum, + $.stmt_val, + $.stmt_var, + $.stmt_expr, + $.stmt_code, + $._stmt_noop + ), + stmt_def: $ => seq( + optional($.meta), + 'def', + field('name', $.name), + field('inner', seq( + optional(seq('[', optional($._generics), ']')), + '(', optional($._patterns), ')', + optional(seq(':', $._type)), + choice( + seq('=', $._expr, ';'), + $.block + ) + )) + ), + stmt_type: $ => seq( + optional($.meta), + 'type', + field('name', $.name), + field('inner', seq( + optional(seq('[', optional($._generics), ']')), + '=', + $._type, + ';' + )) + ), + stmt_enum: $ => seq( + optional($.meta), + 'enum', + field('name', $.name), + field('inner', seq( + optional(seq('[', optional($._generics), ']')), + '{', + repeat( + field('variant', + seq( + $.name, + optional( + choice( + seq('(', optional($._types), ')'), + seq('{', optional($._type_fields), '}'), + ) + ) + ) + ) + ), + '}', + )) + ), + stmt_val: $ => prec(1, seq('val', $._pattern, '=', $._expr, ';')), + stmt_var: $ => seq('var', $._pattern, '=', $._expr, ';'), + stmt_expr: $ => seq($._expr, ';'), + stmt_code: $ => prec(10, seq( + '---', + field('lang', choice('rust', 'python')), + optional(field('code', $.code)), + '---' + )), + code: $ => repeat1(/[^-]+|-[^-]/), + _stmt_noop: $ => ';', + _types: $ => seq($._type, repeat(seq(',', $._type))), + _type: $ => choice( + $.type_fun, + $.type_record_concat, + $.type_array_concat, + $.type_paren, + $.type_nominal, + $.type_tuple, + $.type_record, + $.type_array, + $.type_unit, + $.type_never, + $.type_wild, + ), + type_fun: $ => prec(1, seq('fun', '(', optional($._types), ')', ':', $._type)), + type_record_concat: $ => prec.left(2, seq($._type, '&', $._type)), + type_array_concat: $ => prec.left(2, seq($._type, '++', $._type)), + type_paren: $ => seq('(', $._type, ')'), + type_nominal: $ => prec.left(3, seq($.type_name, optional(seq('[', optional($._types), ']')))), + type_name: $ => $.name, + type_tuple: $ => seq('(', $._type, ',', optional($._type), ')'), + type_record: $ => seq('{', $._type_fields, '}'), + type_array: $ => seq('[', optional($._types), ']'), + type_unit: $ => seq('(', ')'), + type_never: $ => '!', + type_wild: $ => '_', + _type_fields: $ => seq($.type_field, repeat(seq(',', $.type_field))), + type_field: $ => seq($.name, optional(seq(':', $._type))), + generic: $ => $.name, + _generics: $ => seq($.generic, repeat(seq(',', $.generic))), + _patterns: $ => seq($._pattern, repeat(seq(',', $._pattern))), + _pattern_fields: $ => seq($.pattern_field, repeat(seq(',', $.pattern_field))), + pattern_field: $ => seq($.name, ':', $._pattern), + _pattern: $ => choice( + $.pattern_annot, + $.pattern_or, + $.pattern_record_concat, + $.pattern_array_concat, + $.pattern_paren, + $.pattern_constant, + $.pattern_name, + $.pattern_variant, + $.pattern_tuple, + $.pattern_record, + $.pattern_array, + $.pattern_wild, + ), + pattern_annot: $ => prec(1, seq($._pattern, ':', $._type)), + pattern_or: $ => prec.left(2, seq($._pattern, 'or', $._pattern)), + pattern_record_concat: $ => prec.left(2, seq($._pattern, '&', $._pattern)), + pattern_array_concat: $ => prec.left(2, seq($._pattern, '++', $._pattern)), + pattern_paren: $ => seq('(', $._pattern, ')'), + pattern_constant: $ => $._constant, + pattern_name: $ => $.name, + pattern_variant: $ => choice( + seq($.variant_name, '(', optional($._patterns), ')'), + seq($.variant_name, '{', optional($._pattern_fields), '}') + ), + pattern_tuple: $ => seq('(', $._pattern, ',', optional($._patterns), ')'), + pattern_record: $ => seq('{', optional($._pattern_fields), '}'), + pattern_array: $ => seq('[', optional($._patterns), ']'), + pattern_wild: $ => '_', + + variant_name: $ => $.name, + + _exprs: $ => seq($._expr, repeat(seq(',', $._expr))), + _expr_fields: $ => seq($.expr_field, repeat(seq(',', $.expr_field))), + expr_field: $ => choice( + $.expr_field_expr, + $.expr_field_name, + ), + expr_field_expr: $ => prec(1, seq($.name, ':', $._expr)), + expr_field_name: $ => prec(2, seq($._expr, '.', $.name)), + _expr: $ => choice( + $.expr_return, + $.expr_break, + $.expr_continue, + $.expr_throw, + $.expr_query, + $.expr_fun, + $.expr_binary, + $.expr_annot, + $.expr_call, + $.expr_tuple_access, + $.expr_record_access, + $.expr_array_access, + $.expr_method_call, + $.expr_paren, + $.expr_constant, + $.expr_name, + $.expr_array, + $.expr_tuple, + $.expr_record, + $.expr_do, + $.expr_if, + $.expr_match, + $.expr_loop, + $.expr_while, + $.expr_for, + $.expr_try, + $.expr_rust, + // $._expr_inject, + ), + expr_return: $ => prec.left(1, seq('return', optional($._expr))), + expr_break: $ => prec.left(1, seq('break', optional($._expr))), + expr_continue: $ => prec.left(1, 'continue'), + expr_throw: $ => prec.left(1, seq('throw', $._expr)), + expr_query: $ => prec.left(2, seq($.query_from, optional($._query_stmts))), + expr_rust: $ => seq('rust', $.rust), + rust: $ => $._rust, + _rust: $ => seq('{', repeat(choice(/[^{}]+/, $._rust)), '}'), + _query_stmts: $ => repeat1($._query_stmt), + _query_stmt: $ => choice( + $.query_from, + $.query_where, + $.query_join, + $.query_union, + $.query_group, + $.query_over, + $.query_select, + $.query_roll, + $.query_compute, + $.query_select, + $.query_into, + $.query_order, + $.query_val, + ), + + query_from: $ => seq('from', $._pattern, 'in', $._expr), + query_where: $ => seq('where', $._expr), + query_join: $ => seq('join', $._pattern, 'in', $._expr, 'on', $._expr), + query_union: $ => seq('union', $._expr), + query_group: $ => prec.left(2, seq('group', $._expr, optional($._as), '{', optional($._query_stmts), '}', optional($._as))), + query_over: $ => prec.left(2, seq('over', $._expr, '{', optional($._query_stmts), '}', optional($._as))), + query_roll: $ => prec.left(2, seq('roll', $._expr, optional($._of), optional($._as))), + query_compute: $ => prec.left(2, seq('compute', $._expr, optional($._of), optional($._as))), + query_select: $ => prec.left(2, seq('select', $._expr, optional($._as))), + query_val: $ => prec.left(2, seq('with', $._pattern, '=', $._expr)), + query_into: $ => seq('into', $._expr), + query_order: $ => prec.left(2, seq('order', $._expr, optional('desc'))), + + _as: $ => seq('as', $.name), + _of: $ => seq('of', $._expr), + + expr_fun: $ => prec.left(2, seq( + 'fun', + '(', $._patterns, ')', + optional(seq(':', $._type)), + choice( + seq('=', $._expr), + $.block + ) + )), + expr_binary: $ => choice( + prec.left(1, seq($._expr, choice('=', '+=', '-=', '*=', '/='), $._expr)), + prec.left(2, seq($._expr, choice('..', '..='), $._expr)), + prec.left(3, seq($._expr, choice('and', 'or'), $._expr)), + prec.left(4, seq($._expr, choice('==', '!='), $._expr)), + prec.left(5, seq($._expr, choice('<', '>', '<=', '>='), $._expr)), + prec.left(6, seq($._expr, choice('+', '-'), $._expr)), + prec.left(7, seq($._expr, choice('*', '/'), $._expr)), + ), + expr_unary: $ => prec(8, seq(choice('not', '-', '+'), $._expr)), + expr_annot: $ => prec(9, seq($._expr, ':', $._type)), + expr_call: $ => prec(10, seq( + field('function', $._expr), + optional(seq('::', '[', $._types, ']')), + '(', optional($._exprs), ')') + ), + expr_tuple_access: $ => prec(11, seq($._expr, '.', $.index)), + expr_record_access: $ => prec(11, seq($._expr, '.', $.name)), + expr_array_access: $ => prec(11, seq($._expr, '[', $._expr, ']')), + expr_method_call: $ => prec(12, seq( + $._expr, + '.', + field('name', $.name), + optional(seq('::', '[', $._types, ']')), + '(', optional($._exprs), ')' + )), + expr_paren: $ => seq('(', $._expr, ')'), + expr_constant: $ => $._constant, + expr_name: $ => $.name, + expr_array: $ => seq('[', optional($._exprs), ']'), + expr_tuple: $ => seq('(', $._expr, ',', optional($._exprs), ')'), + expr_record: $ => seq('{', optional($._expr_fields), '}'), + expr_do: $ => seq('do', $.block), + expr_if: $ => seq('if', $._expr, $.block, optional(seq('else', $.block))), + expr_match: $ => seq('match', $._expr, '{', $._arms, '}'), + expr_loop: $ => seq('loop', $.block), + expr_while: $ => seq('while', $._expr, $.block), + expr_for: $ => seq('for', $._pattern, 'in', $._expr, $.block), + expr_try: $ => seq('try', $.block, 'catch', '{', optional($._arms), '}', 'finally', $.block), + block: $ => seq('{', optional($._stmts), optional($._expr), '}'), + _arms: $ => seq($.arm, repeat(seq(',', $.arm))), + arm: $ => field('arm', seq($._pattern, '=>', $._expr)), + } +}); diff --git a/arc-lang/crates/tree-sitter/package.json b/arc-lang/crates/tree-sitter/package.json new file mode 100644 index 000000000..cd8d8c648 --- /dev/null +++ b/arc-lang/crates/tree-sitter/package.json @@ -0,0 +1,17 @@ +{ + "name": "tree-sitter-arclang", + "version": "1.0.0", + "description": "", + "main": "bindings/node", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "nan": "^2.17.0" + }, + "devDependencies": { + "tree-sitter-cli": "^0.20.8" + } +} diff --git a/arc-lang/crates/tree-sitter/parser/arclang.so b/arc-lang/crates/tree-sitter/parser/arclang.so new file mode 100755 index 0000000000000000000000000000000000000000..604c9124ba1d112edb60577cbf702b93437d9fcb GIT binary patch literal 132983 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 mM)Le*&gR~i%lFEe@u4m?Ane}u=GpJx?0Bl#" "_" ] @punctuation + +[ "not" "and" "or" "+" "-" "*" "/" "==" "!=" "<" ">" "<=" ">=" "+=" "-=" "*=" "/=" ".." "..=" "&" "++" ] @operator diff --git a/arc-lang/crates/tree-sitter/queries/arc_lang/injections.scm b/arc-lang/crates/tree-sitter/queries/arc_lang/injections.scm new file mode 100644 index 000000000..05021ab6a --- /dev/null +++ b/arc-lang/crates/tree-sitter/queries/arc_lang/injections.scm @@ -0,0 +1,2 @@ +(stmt_code lang: "rust" code: (code) @injection.content (#set! injection.language "rust")) +(stmt_code lang: "python" code: (code) @injection.content (#set! injection.language "python")) diff --git a/arc-lang/crates/tree-sitter/queries/arc_lang/locals.scm b/arc-lang/crates/tree-sitter/queries/arc_lang/locals.scm new file mode 100644 index 000000000..7b6cf4562 --- /dev/null +++ b/arc-lang/crates/tree-sitter/queries/arc_lang/locals.scm @@ -0,0 +1,17 @@ +(stmt_def name: (name) @definition.function) +(stmt_type name: (name) @definition.type) +(stmt_enum name: (name) @definition.type) +(pattern_name (name) @definition.var) + +(expr_name (name) @reference) +(type_name (name) @reference) +(expr_call function: (expr_name (name) @reference)) +(expr_method_call name: ((name) @reference)) + +[ + (program) + ((_) @x (#has-parent? @x stmt_def)) + ((_) @x (#has-parent? @x stmt_type)) + ((_) @x (#has-parent? @x stmt_enum)) + (block) +] @scope diff --git a/arc-docs/src/history/mod.md b/arc-lang/crates/tree-sitter/queries/arc_lang/tags.scm similarity index 100% rename from arc-docs/src/history/mod.md rename to arc-lang/crates/tree-sitter/queries/arc_lang/tags.scm diff --git a/arc-lang/crates/tree-sitter/src/grammar.json b/arc-lang/crates/tree-sitter/src/grammar.json new file mode 100644 index 000000000..2692ca720 --- /dev/null +++ b/arc-lang/crates/tree-sitter/src/grammar.json @@ -0,0 +1,3389 @@ +{ + "name": "arc_lang", + "word": "name", + "rules": { + "program": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_stmts" + }, + { + "type": "BLANK" + } + ] + }, + "_whitespace": { + "type": "PATTERN", + "value": "[ \\t\\r\\n]" + }, + "line_comment": { + "type": "TOKEN", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "#" + }, + { + "type": "PATTERN", + "value": ".*" + } + ] + } + }, + "name": { + "type": "PATTERN", + "value": "[a-zA-Z_][a-zA-Z0-9_]*" + }, + "index": { + "type": "PATTERN", + "value": "[0-9]+" + }, + "meta": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "@" + }, + { + "type": "STRING", + "value": "{" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_attributes" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "_attributes": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "attribute" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "attribute" + } + ] + } + } + ] + }, + "attribute": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "name" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": ":" + }, + { + "type": "SYMBOL", + "name": "_constant" + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "_constant": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "constant_int" + }, + { + "type": "SYMBOL", + "name": "constant_float" + }, + { + "type": "SYMBOL", + "name": "constant_string" + }, + { + "type": "SYMBOL", + "name": "constant_char" + }, + { + "type": "SYMBOL", + "name": "constant_bool" + }, + { + "type": "SYMBOL", + "name": "constant_unit" + } + ] + }, + "constant_int": { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "SEQ", + "members": [ + { + "type": "PATTERN", + "value": "-?[0-9]+" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "[a-zA-Z_][a-zA-Z0-9_]*" + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "constant_float": { + "type": "PATTERN", + "value": "-?[0-9]+\\.[0-9]+" + }, + "constant_string": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "string_quote" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "string_interpolation" + }, + { + "type": "SYMBOL", + "name": "string_content" + } + ] + } + }, + { + "type": "SYMBOL", + "name": "string_quote" + } + ] + }, + "string_quote": { + "type": "STRING", + "value": "\"" + }, + "string_content": { + "type": "PATTERN", + "value": "[^$\"]+" + }, + "string_interpolation": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "$" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "block" + }, + { + "type": "SYMBOL", + "name": "name" + } + ] + } + ] + }, + "constant_char": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "'" + }, + { + "type": "PATTERN", + "value": "[^']*" + }, + { + "type": "STRING", + "value": "'" + } + ] + }, + "constant_bool": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "true" + }, + { + "type": "STRING", + "value": "false" + } + ] + }, + "constant_unit": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "_stmts": { + "type": "REPEAT1", + "content": { + "type": "SYMBOL", + "name": "_stmt" + } + }, + "_stmt": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "stmt_def" + }, + { + "type": "SYMBOL", + "name": "stmt_type" + }, + { + "type": "SYMBOL", + "name": "stmt_enum" + }, + { + "type": "SYMBOL", + "name": "stmt_val" + }, + { + "type": "SYMBOL", + "name": "stmt_var" + }, + { + "type": "SYMBOL", + "name": "stmt_expr" + }, + { + "type": "SYMBOL", + "name": "stmt_code" + }, + { + "type": "SYMBOL", + "name": "_stmt_noop" + } + ] + }, + "stmt_def": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "meta" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "def" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "name" + } + }, + { + "type": "FIELD", + "name": "inner", + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "[" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_generics" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "]" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_patterns" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": ":" + }, + { + "type": "SYMBOL", + "name": "_type" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "=" + }, + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": ";" + } + ] + }, + { + "type": "SYMBOL", + "name": "block" + } + ] + } + ] + } + } + ] + }, + "stmt_type": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "meta" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "type" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "name" + } + }, + { + "type": "FIELD", + "name": "inner", + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "[" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_generics" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "]" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "=" + }, + { + "type": "SYMBOL", + "name": "_type" + }, + { + "type": "STRING", + "value": ";" + } + ] + } + } + ] + }, + "stmt_enum": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "meta" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "enum" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "name" + } + }, + { + "type": "FIELD", + "name": "inner", + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "[" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_generics" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "]" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "{" + }, + { + "type": "REPEAT", + "content": { + "type": "FIELD", + "name": "variant", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "name" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_types" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_type_fields" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "}" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + } + } + }, + { + "type": "STRING", + "value": "}" + } + ] + } + } + ] + }, + "stmt_val": { + "type": "PREC", + "value": 1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "val" + }, + { + "type": "SYMBOL", + "name": "_pattern" + }, + { + "type": "STRING", + "value": "=" + }, + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": ";" + } + ] + } + }, + "stmt_var": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "var" + }, + { + "type": "SYMBOL", + "name": "_pattern" + }, + { + "type": "STRING", + "value": "=" + }, + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": ";" + } + ] + }, + "stmt_expr": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": ";" + } + ] + }, + "stmt_code": { + "type": "PREC", + "value": 10, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "---" + }, + { + "type": "FIELD", + "name": "lang", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "rust" + }, + { + "type": "STRING", + "value": "python" + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "code", + "content": { + "type": "SYMBOL", + "name": "code" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "---" + } + ] + } + }, + "code": { + "type": "REPEAT1", + "content": { + "type": "PATTERN", + "value": "[^-]+|-[^-]" + } + }, + "_stmt_noop": { + "type": "STRING", + "value": ";" + }, + "_types": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_type" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "_type" + } + ] + } + } + ] + }, + "_type": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "type_fun" + }, + { + "type": "SYMBOL", + "name": "type_record_concat" + }, + { + "type": "SYMBOL", + "name": "type_array_concat" + }, + { + "type": "SYMBOL", + "name": "type_paren" + }, + { + "type": "SYMBOL", + "name": "type_nominal" + }, + { + "type": "SYMBOL", + "name": "type_tuple" + }, + { + "type": "SYMBOL", + "name": "type_record" + }, + { + "type": "SYMBOL", + "name": "type_array" + }, + { + "type": "SYMBOL", + "name": "type_unit" + }, + { + "type": "SYMBOL", + "name": "type_never" + }, + { + "type": "SYMBOL", + "name": "type_wild" + } + ] + }, + "type_fun": { + "type": "PREC", + "value": 1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "fun" + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_types" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "SYMBOL", + "name": "_type" + } + ] + } + }, + "type_record_concat": { + "type": "PREC_LEFT", + "value": 2, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_type" + }, + { + "type": "STRING", + "value": "&" + }, + { + "type": "SYMBOL", + "name": "_type" + } + ] + } + }, + "type_array_concat": { + "type": "PREC_LEFT", + "value": 2, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_type" + }, + { + "type": "STRING", + "value": "++" + }, + { + "type": "SYMBOL", + "name": "_type" + } + ] + } + }, + "type_paren": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "_type" + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "type_nominal": { + "type": "PREC_LEFT", + "value": 3, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "type_name" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "[" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_types" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "]" + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "type_name": { + "type": "SYMBOL", + "name": "name" + }, + "type_tuple": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "_type" + }, + { + "type": "STRING", + "value": "," + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_type" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "type_record": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "SYMBOL", + "name": "_type_fields" + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "type_array": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "[" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_types" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "]" + } + ] + }, + "type_unit": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "type_never": { + "type": "STRING", + "value": "!" + }, + "type_wild": { + "type": "STRING", + "value": "_" + }, + "_type_fields": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "type_field" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "type_field" + } + ] + } + } + ] + }, + "type_field": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "name" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": ":" + }, + { + "type": "SYMBOL", + "name": "_type" + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "generic": { + "type": "SYMBOL", + "name": "name" + }, + "_generics": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "generic" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "generic" + } + ] + } + } + ] + }, + "_patterns": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_pattern" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "_pattern" + } + ] + } + } + ] + }, + "_pattern_fields": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "pattern_field" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "pattern_field" + } + ] + } + } + ] + }, + "pattern_field": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "name" + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "SYMBOL", + "name": "_pattern" + } + ] + }, + "_pattern": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "pattern_annot" + }, + { + "type": "SYMBOL", + "name": "pattern_or" + }, + { + "type": "SYMBOL", + "name": "pattern_record_concat" + }, + { + "type": "SYMBOL", + "name": "pattern_array_concat" + }, + { + "type": "SYMBOL", + "name": "pattern_paren" + }, + { + "type": "SYMBOL", + "name": "pattern_constant" + }, + { + "type": "SYMBOL", + "name": "pattern_name" + }, + { + "type": "SYMBOL", + "name": "pattern_variant" + }, + { + "type": "SYMBOL", + "name": "pattern_tuple" + }, + { + "type": "SYMBOL", + "name": "pattern_record" + }, + { + "type": "SYMBOL", + "name": "pattern_array" + }, + { + "type": "SYMBOL", + "name": "pattern_wild" + } + ] + }, + "pattern_annot": { + "type": "PREC", + "value": 1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_pattern" + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "SYMBOL", + "name": "_type" + } + ] + } + }, + "pattern_or": { + "type": "PREC_LEFT", + "value": 2, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_pattern" + }, + { + "type": "STRING", + "value": "or" + }, + { + "type": "SYMBOL", + "name": "_pattern" + } + ] + } + }, + "pattern_record_concat": { + "type": "PREC_LEFT", + "value": 2, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_pattern" + }, + { + "type": "STRING", + "value": "&" + }, + { + "type": "SYMBOL", + "name": "_pattern" + } + ] + } + }, + "pattern_array_concat": { + "type": "PREC_LEFT", + "value": 2, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_pattern" + }, + { + "type": "STRING", + "value": "++" + }, + { + "type": "SYMBOL", + "name": "_pattern" + } + ] + } + }, + "pattern_paren": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "_pattern" + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "pattern_constant": { + "type": "SYMBOL", + "name": "_constant" + }, + "pattern_name": { + "type": "SYMBOL", + "name": "name" + }, + "pattern_variant": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "variant_name" + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_patterns" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "variant_name" + }, + { + "type": "STRING", + "value": "{" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_pattern_fields" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "}" + } + ] + } + ] + }, + "pattern_tuple": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "_pattern" + }, + { + "type": "STRING", + "value": "," + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_patterns" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "pattern_record": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_pattern_fields" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "pattern_array": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "[" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_patterns" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "]" + } + ] + }, + "pattern_wild": { + "type": "STRING", + "value": "_" + }, + "variant_name": { + "type": "SYMBOL", + "name": "name" + }, + "_exprs": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + } + ] + }, + "_expr_fields": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "expr_field" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "expr_field" + } + ] + } + } + ] + }, + "expr_field": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expr_field_expr" + }, + { + "type": "SYMBOL", + "name": "expr_field_name" + } + ] + }, + "expr_field_expr": { + "type": "PREC", + "value": 1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "name" + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + "expr_field_name": { + "type": "PREC", + "value": 2, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "." + }, + { + "type": "SYMBOL", + "name": "name" + } + ] + } + }, + "_expr": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expr_return" + }, + { + "type": "SYMBOL", + "name": "expr_break" + }, + { + "type": "SYMBOL", + "name": "expr_continue" + }, + { + "type": "SYMBOL", + "name": "expr_throw" + }, + { + "type": "SYMBOL", + "name": "expr_query" + }, + { + "type": "SYMBOL", + "name": "expr_fun" + }, + { + "type": "SYMBOL", + "name": "expr_binary" + }, + { + "type": "SYMBOL", + "name": "expr_annot" + }, + { + "type": "SYMBOL", + "name": "expr_call" + }, + { + "type": "SYMBOL", + "name": "expr_tuple_access" + }, + { + "type": "SYMBOL", + "name": "expr_record_access" + }, + { + "type": "SYMBOL", + "name": "expr_array_access" + }, + { + "type": "SYMBOL", + "name": "expr_method_call" + }, + { + "type": "SYMBOL", + "name": "expr_paren" + }, + { + "type": "SYMBOL", + "name": "expr_constant" + }, + { + "type": "SYMBOL", + "name": "expr_name" + }, + { + "type": "SYMBOL", + "name": "expr_array" + }, + { + "type": "SYMBOL", + "name": "expr_tuple" + }, + { + "type": "SYMBOL", + "name": "expr_record" + }, + { + "type": "SYMBOL", + "name": "expr_do" + }, + { + "type": "SYMBOL", + "name": "expr_if" + }, + { + "type": "SYMBOL", + "name": "expr_match" + }, + { + "type": "SYMBOL", + "name": "expr_loop" + }, + { + "type": "SYMBOL", + "name": "expr_while" + }, + { + "type": "SYMBOL", + "name": "expr_for" + }, + { + "type": "SYMBOL", + "name": "expr_try" + }, + { + "type": "SYMBOL", + "name": "expr_rust" + } + ] + }, + "expr_return": { + "type": "PREC_LEFT", + "value": 1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "return" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "expr_break": { + "type": "PREC_LEFT", + "value": 1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "break" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "expr_continue": { + "type": "PREC_LEFT", + "value": 1, + "content": { + "type": "STRING", + "value": "continue" + } + }, + "expr_throw": { + "type": "PREC_LEFT", + "value": 1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "throw" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + "expr_query": { + "type": "PREC_LEFT", + "value": 2, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "query_from" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_query_stmts" + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "expr_rust": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "rust" + }, + { + "type": "SYMBOL", + "name": "rust" + } + ] + }, + "rust": { + "type": "SYMBOL", + "name": "_rust" + }, + "_rust": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "[^{}]+" + }, + { + "type": "SYMBOL", + "name": "_rust" + } + ] + } + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "_query_stmts": { + "type": "REPEAT1", + "content": { + "type": "SYMBOL", + "name": "_query_stmt" + } + }, + "_query_stmt": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "query_from" + }, + { + "type": "SYMBOL", + "name": "query_where" + }, + { + "type": "SYMBOL", + "name": "query_join" + }, + { + "type": "SYMBOL", + "name": "query_union" + }, + { + "type": "SYMBOL", + "name": "query_group" + }, + { + "type": "SYMBOL", + "name": "query_over" + }, + { + "type": "SYMBOL", + "name": "query_select" + }, + { + "type": "SYMBOL", + "name": "query_roll" + }, + { + "type": "SYMBOL", + "name": "query_compute" + }, + { + "type": "SYMBOL", + "name": "query_select" + }, + { + "type": "SYMBOL", + "name": "query_into" + }, + { + "type": "SYMBOL", + "name": "query_order" + }, + { + "type": "SYMBOL", + "name": "query_val" + } + ] + }, + "query_from": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "from" + }, + { + "type": "SYMBOL", + "name": "_pattern" + }, + { + "type": "STRING", + "value": "in" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + }, + "query_where": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "where" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + }, + "query_join": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "join" + }, + { + "type": "SYMBOL", + "name": "_pattern" + }, + { + "type": "STRING", + "value": "in" + }, + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "on" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + }, + "query_union": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "union" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + }, + "query_group": { + "type": "PREC_LEFT", + "value": 2, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "group" + }, + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_as" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "{" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_query_stmts" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "}" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_as" + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "query_over": { + "type": "PREC_LEFT", + "value": 2, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "over" + }, + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "{" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_query_stmts" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "}" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_as" + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "query_roll": { + "type": "PREC_LEFT", + "value": 2, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "roll" + }, + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_of" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_as" + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "query_compute": { + "type": "PREC_LEFT", + "value": 2, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "compute" + }, + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_of" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_as" + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "query_select": { + "type": "PREC_LEFT", + "value": 2, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "select" + }, + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_as" + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "query_val": { + "type": "PREC_LEFT", + "value": 2, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "with" + }, + { + "type": "SYMBOL", + "name": "_pattern" + }, + { + "type": "STRING", + "value": "=" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + "query_into": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "into" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + }, + "query_order": { + "type": "PREC_LEFT", + "value": 2, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "order" + }, + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "desc" + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "_as": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "as" + }, + { + "type": "SYMBOL", + "name": "name" + } + ] + }, + "_of": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "of" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + }, + "expr_fun": { + "type": "PREC_LEFT", + "value": 2, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "fun" + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "_patterns" + }, + { + "type": "STRING", + "value": ")" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": ":" + }, + { + "type": "SYMBOL", + "name": "_type" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "=" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + }, + { + "type": "SYMBOL", + "name": "block" + } + ] + } + ] + } + }, + "expr_binary": { + "type": "CHOICE", + "members": [ + { + "type": "PREC_LEFT", + "value": 1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "=" + }, + { + "type": "STRING", + "value": "+=" + }, + { + "type": "STRING", + "value": "-=" + }, + { + "type": "STRING", + "value": "*=" + }, + { + "type": "STRING", + "value": "/=" + } + ] + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 2, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": ".." + }, + { + "type": "STRING", + "value": "..=" + } + ] + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 3, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "and" + }, + { + "type": "STRING", + "value": "or" + } + ] + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 4, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "==" + }, + { + "type": "STRING", + "value": "!=" + } + ] + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 5, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "<" + }, + { + "type": "STRING", + "value": ">" + }, + { + "type": "STRING", + "value": "<=" + }, + { + "type": "STRING", + "value": ">=" + } + ] + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 6, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "+" + }, + { + "type": "STRING", + "value": "-" + } + ] + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 7, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "*" + }, + { + "type": "STRING", + "value": "/" + } + ] + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + } + ] + }, + "expr_unary": { + "type": "PREC", + "value": 8, + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "not" + }, + { + "type": "STRING", + "value": "-" + }, + { + "type": "STRING", + "value": "+" + } + ] + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + "expr_annot": { + "type": "PREC", + "value": 9, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "SYMBOL", + "name": "_type" + } + ] + } + }, + "expr_call": { + "type": "PREC", + "value": 10, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "function", + "content": { + "type": "SYMBOL", + "name": "_expr" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "::" + }, + { + "type": "STRING", + "value": "[" + }, + { + "type": "SYMBOL", + "name": "_types" + }, + { + "type": "STRING", + "value": "]" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_exprs" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + } + ] + } + }, + "expr_tuple_access": { + "type": "PREC", + "value": 11, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "." + }, + { + "type": "SYMBOL", + "name": "index" + } + ] + } + }, + "expr_record_access": { + "type": "PREC", + "value": 11, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "." + }, + { + "type": "SYMBOL", + "name": "name" + } + ] + } + }, + "expr_array_access": { + "type": "PREC", + "value": 11, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "[" + }, + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "]" + } + ] + } + }, + "expr_method_call": { + "type": "PREC", + "value": 12, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "." + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "name" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "::" + }, + { + "type": "STRING", + "value": "[" + }, + { + "type": "SYMBOL", + "name": "_types" + }, + { + "type": "STRING", + "value": "]" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_exprs" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + } + ] + } + }, + "expr_paren": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "expr_constant": { + "type": "SYMBOL", + "name": "_constant" + }, + "expr_name": { + "type": "SYMBOL", + "name": "name" + }, + "expr_array": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "[" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_exprs" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "]" + } + ] + }, + "expr_tuple": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "," + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_exprs" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "expr_record": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expr_fields" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "expr_do": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "do" + }, + { + "type": "SYMBOL", + "name": "block" + } + ] + }, + "expr_if": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "if" + }, + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "SYMBOL", + "name": "block" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "else" + }, + { + "type": "SYMBOL", + "name": "block" + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "expr_match": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "match" + }, + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "{" + }, + { + "type": "SYMBOL", + "name": "_arms" + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "expr_loop": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "loop" + }, + { + "type": "SYMBOL", + "name": "block" + } + ] + }, + "expr_while": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "while" + }, + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "SYMBOL", + "name": "block" + } + ] + }, + "expr_for": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "for" + }, + { + "type": "SYMBOL", + "name": "_pattern" + }, + { + "type": "STRING", + "value": "in" + }, + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "SYMBOL", + "name": "block" + } + ] + }, + "expr_try": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "try" + }, + { + "type": "SYMBOL", + "name": "block" + }, + { + "type": "STRING", + "value": "catch" + }, + { + "type": "STRING", + "value": "{" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_arms" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "}" + }, + { + "type": "STRING", + "value": "finally" + }, + { + "type": "SYMBOL", + "name": "block" + } + ] + }, + "block": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_stmts" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "_arms": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "arm" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "arm" + } + ] + } + } + ] + }, + "arm": { + "type": "FIELD", + "name": "arm", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_pattern" + }, + { + "type": "STRING", + "value": "=>" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + } + }, + "extras": [ + { + "type": "SYMBOL", + "name": "_whitespace" + }, + { + "type": "SYMBOL", + "name": "line_comment" + } + ], + "conflicts": [], + "precedences": [], + "externals": [], + "inline": [], + "supertypes": [] +} + diff --git a/arc-lang/crates/tree-sitter/src/node-types.json b/arc-lang/crates/tree-sitter/src/node-types.json new file mode 100644 index 000000000..d4920e625 --- /dev/null +++ b/arc-lang/crates/tree-sitter/src/node-types.json @@ -0,0 +1,7771 @@ +[ + { + "type": "arm", + "named": true, + "fields": { + "arm": { + "multiple": true, + "required": true, + "types": [ + { + "type": "=>", + "named": false + }, + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + }, + { + "type": "pattern_annot", + "named": true + }, + { + "type": "pattern_array", + "named": true + }, + { + "type": "pattern_array_concat", + "named": true + }, + { + "type": "pattern_constant", + "named": true + }, + { + "type": "pattern_name", + "named": true + }, + { + "type": "pattern_or", + "named": true + }, + { + "type": "pattern_paren", + "named": true + }, + { + "type": "pattern_record", + "named": true + }, + { + "type": "pattern_record_concat", + "named": true + }, + { + "type": "pattern_tuple", + "named": true + }, + { + "type": "pattern_variant", + "named": true + }, + { + "type": "pattern_wild", + "named": true + } + ] + } + } + }, + { + "type": "attribute", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "constant_bool", + "named": true + }, + { + "type": "constant_char", + "named": true + }, + { + "type": "constant_float", + "named": true + }, + { + "type": "constant_int", + "named": true + }, + { + "type": "constant_string", + "named": true + }, + { + "type": "constant_unit", + "named": true + }, + { + "type": "name", + "named": true + } + ] + } + }, + { + "type": "block", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + }, + { + "type": "stmt_code", + "named": true + }, + { + "type": "stmt_def", + "named": true + }, + { + "type": "stmt_enum", + "named": true + }, + { + "type": "stmt_expr", + "named": true + }, + { + "type": "stmt_type", + "named": true + }, + { + "type": "stmt_val", + "named": true + }, + { + "type": "stmt_var", + "named": true + } + ] + } + }, + { + "type": "code", + "named": true, + "fields": {} + }, + { + "type": "constant_bool", + "named": true, + "fields": {} + }, + { + "type": "constant_char", + "named": true, + "fields": {} + }, + { + "type": "constant_string", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "string_content", + "named": true + }, + { + "type": "string_interpolation", + "named": true + }, + { + "type": "string_quote", + "named": true + } + ] + } + }, + { + "type": "constant_unit", + "named": true, + "fields": {} + }, + { + "type": "expr_annot", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + }, + { + "type": "type_array", + "named": true + }, + { + "type": "type_array_concat", + "named": true + }, + { + "type": "type_fun", + "named": true + }, + { + "type": "type_never", + "named": true + }, + { + "type": "type_nominal", + "named": true + }, + { + "type": "type_paren", + "named": true + }, + { + "type": "type_record", + "named": true + }, + { + "type": "type_record_concat", + "named": true + }, + { + "type": "type_tuple", + "named": true + }, + { + "type": "type_unit", + "named": true + }, + { + "type": "type_wild", + "named": true + } + ] + } + }, + { + "type": "expr_array", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + } + ] + } + }, + { + "type": "expr_array_access", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + } + ] + } + }, + { + "type": "expr_binary", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + } + ] + } + }, + { + "type": "expr_break", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + } + ] + } + }, + { + "type": "expr_call", + "named": true, + "fields": { + "function": { + "multiple": false, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + } + ] + } + }, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + }, + { + "type": "type_array", + "named": true + }, + { + "type": "type_array_concat", + "named": true + }, + { + "type": "type_fun", + "named": true + }, + { + "type": "type_never", + "named": true + }, + { + "type": "type_nominal", + "named": true + }, + { + "type": "type_paren", + "named": true + }, + { + "type": "type_record", + "named": true + }, + { + "type": "type_record_concat", + "named": true + }, + { + "type": "type_tuple", + "named": true + }, + { + "type": "type_unit", + "named": true + }, + { + "type": "type_wild", + "named": true + } + ] + } + }, + { + "type": "expr_constant", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "constant_bool", + "named": true + }, + { + "type": "constant_char", + "named": true + }, + { + "type": "constant_float", + "named": true + }, + { + "type": "constant_int", + "named": true + }, + { + "type": "constant_string", + "named": true + }, + { + "type": "constant_unit", + "named": true + } + ] + } + }, + { + "type": "expr_continue", + "named": true, + "fields": {} + }, + { + "type": "expr_do", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "block", + "named": true + } + ] + } + }, + { + "type": "expr_field", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "expr_field_expr", + "named": true + }, + { + "type": "expr_field_name", + "named": true + } + ] + } + }, + { + "type": "expr_field_expr", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + }, + { + "type": "name", + "named": true + } + ] + } + }, + { + "type": "expr_field_name", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + }, + { + "type": "name", + "named": true + } + ] + } + }, + { + "type": "expr_for", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "block", + "named": true + }, + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + }, + { + "type": "pattern_annot", + "named": true + }, + { + "type": "pattern_array", + "named": true + }, + { + "type": "pattern_array_concat", + "named": true + }, + { + "type": "pattern_constant", + "named": true + }, + { + "type": "pattern_name", + "named": true + }, + { + "type": "pattern_or", + "named": true + }, + { + "type": "pattern_paren", + "named": true + }, + { + "type": "pattern_record", + "named": true + }, + { + "type": "pattern_record_concat", + "named": true + }, + { + "type": "pattern_tuple", + "named": true + }, + { + "type": "pattern_variant", + "named": true + }, + { + "type": "pattern_wild", + "named": true + } + ] + } + }, + { + "type": "expr_fun", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "block", + "named": true + }, + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + }, + { + "type": "pattern_annot", + "named": true + }, + { + "type": "pattern_array", + "named": true + }, + { + "type": "pattern_array_concat", + "named": true + }, + { + "type": "pattern_constant", + "named": true + }, + { + "type": "pattern_name", + "named": true + }, + { + "type": "pattern_or", + "named": true + }, + { + "type": "pattern_paren", + "named": true + }, + { + "type": "pattern_record", + "named": true + }, + { + "type": "pattern_record_concat", + "named": true + }, + { + "type": "pattern_tuple", + "named": true + }, + { + "type": "pattern_variant", + "named": true + }, + { + "type": "pattern_wild", + "named": true + }, + { + "type": "type_array", + "named": true + }, + { + "type": "type_array_concat", + "named": true + }, + { + "type": "type_fun", + "named": true + }, + { + "type": "type_never", + "named": true + }, + { + "type": "type_nominal", + "named": true + }, + { + "type": "type_paren", + "named": true + }, + { + "type": "type_record", + "named": true + }, + { + "type": "type_record_concat", + "named": true + }, + { + "type": "type_tuple", + "named": true + }, + { + "type": "type_unit", + "named": true + }, + { + "type": "type_wild", + "named": true + } + ] + } + }, + { + "type": "expr_if", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "block", + "named": true + }, + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + } + ] + } + }, + { + "type": "expr_loop", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "block", + "named": true + } + ] + } + }, + { + "type": "expr_match", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "arm", + "named": true + }, + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + } + ] + } + }, + { + "type": "expr_method_call", + "named": true, + "fields": { + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "name", + "named": true + } + ] + } + }, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + }, + { + "type": "type_array", + "named": true + }, + { + "type": "type_array_concat", + "named": true + }, + { + "type": "type_fun", + "named": true + }, + { + "type": "type_never", + "named": true + }, + { + "type": "type_nominal", + "named": true + }, + { + "type": "type_paren", + "named": true + }, + { + "type": "type_record", + "named": true + }, + { + "type": "type_record_concat", + "named": true + }, + { + "type": "type_tuple", + "named": true + }, + { + "type": "type_unit", + "named": true + }, + { + "type": "type_wild", + "named": true + } + ] + } + }, + { + "type": "expr_name", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "name", + "named": true + } + ] + } + }, + { + "type": "expr_paren", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + } + ] + } + }, + { + "type": "expr_query", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "query_compute", + "named": true + }, + { + "type": "query_from", + "named": true + }, + { + "type": "query_group", + "named": true + }, + { + "type": "query_into", + "named": true + }, + { + "type": "query_join", + "named": true + }, + { + "type": "query_order", + "named": true + }, + { + "type": "query_over", + "named": true + }, + { + "type": "query_roll", + "named": true + }, + { + "type": "query_select", + "named": true + }, + { + "type": "query_union", + "named": true + }, + { + "type": "query_val", + "named": true + }, + { + "type": "query_where", + "named": true + } + ] + } + }, + { + "type": "expr_record", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "expr_field", + "named": true + } + ] + } + }, + { + "type": "expr_record_access", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + }, + { + "type": "name", + "named": true + } + ] + } + }, + { + "type": "expr_return", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + } + ] + } + }, + { + "type": "expr_rust", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "rust", + "named": true + } + ] + } + }, + { + "type": "expr_throw", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + } + ] + } + }, + { + "type": "expr_try", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "arm", + "named": true + }, + { + "type": "block", + "named": true + } + ] + } + }, + { + "type": "expr_tuple", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + } + ] + } + }, + { + "type": "expr_tuple_access", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + }, + { + "type": "index", + "named": true + } + ] + } + }, + { + "type": "expr_while", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "block", + "named": true + }, + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + } + ] + } + }, + { + "type": "generic", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "name", + "named": true + } + ] + } + }, + { + "type": "meta", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "attribute", + "named": true + } + ] + } + }, + { + "type": "pattern_annot", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "pattern_annot", + "named": true + }, + { + "type": "pattern_array", + "named": true + }, + { + "type": "pattern_array_concat", + "named": true + }, + { + "type": "pattern_constant", + "named": true + }, + { + "type": "pattern_name", + "named": true + }, + { + "type": "pattern_or", + "named": true + }, + { + "type": "pattern_paren", + "named": true + }, + { + "type": "pattern_record", + "named": true + }, + { + "type": "pattern_record_concat", + "named": true + }, + { + "type": "pattern_tuple", + "named": true + }, + { + "type": "pattern_variant", + "named": true + }, + { + "type": "pattern_wild", + "named": true + }, + { + "type": "type_array", + "named": true + }, + { + "type": "type_array_concat", + "named": true + }, + { + "type": "type_fun", + "named": true + }, + { + "type": "type_never", + "named": true + }, + { + "type": "type_nominal", + "named": true + }, + { + "type": "type_paren", + "named": true + }, + { + "type": "type_record", + "named": true + }, + { + "type": "type_record_concat", + "named": true + }, + { + "type": "type_tuple", + "named": true + }, + { + "type": "type_unit", + "named": true + }, + { + "type": "type_wild", + "named": true + } + ] + } + }, + { + "type": "pattern_array", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "pattern_annot", + "named": true + }, + { + "type": "pattern_array", + "named": true + }, + { + "type": "pattern_array_concat", + "named": true + }, + { + "type": "pattern_constant", + "named": true + }, + { + "type": "pattern_name", + "named": true + }, + { + "type": "pattern_or", + "named": true + }, + { + "type": "pattern_paren", + "named": true + }, + { + "type": "pattern_record", + "named": true + }, + { + "type": "pattern_record_concat", + "named": true + }, + { + "type": "pattern_tuple", + "named": true + }, + { + "type": "pattern_variant", + "named": true + }, + { + "type": "pattern_wild", + "named": true + } + ] + } + }, + { + "type": "pattern_array_concat", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "pattern_annot", + "named": true + }, + { + "type": "pattern_array", + "named": true + }, + { + "type": "pattern_array_concat", + "named": true + }, + { + "type": "pattern_constant", + "named": true + }, + { + "type": "pattern_name", + "named": true + }, + { + "type": "pattern_or", + "named": true + }, + { + "type": "pattern_paren", + "named": true + }, + { + "type": "pattern_record", + "named": true + }, + { + "type": "pattern_record_concat", + "named": true + }, + { + "type": "pattern_tuple", + "named": true + }, + { + "type": "pattern_variant", + "named": true + }, + { + "type": "pattern_wild", + "named": true + } + ] + } + }, + { + "type": "pattern_constant", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "constant_bool", + "named": true + }, + { + "type": "constant_char", + "named": true + }, + { + "type": "constant_float", + "named": true + }, + { + "type": "constant_int", + "named": true + }, + { + "type": "constant_string", + "named": true + }, + { + "type": "constant_unit", + "named": true + } + ] + } + }, + { + "type": "pattern_field", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "name", + "named": true + }, + { + "type": "pattern_annot", + "named": true + }, + { + "type": "pattern_array", + "named": true + }, + { + "type": "pattern_array_concat", + "named": true + }, + { + "type": "pattern_constant", + "named": true + }, + { + "type": "pattern_name", + "named": true + }, + { + "type": "pattern_or", + "named": true + }, + { + "type": "pattern_paren", + "named": true + }, + { + "type": "pattern_record", + "named": true + }, + { + "type": "pattern_record_concat", + "named": true + }, + { + "type": "pattern_tuple", + "named": true + }, + { + "type": "pattern_variant", + "named": true + }, + { + "type": "pattern_wild", + "named": true + } + ] + } + }, + { + "type": "pattern_name", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "name", + "named": true + } + ] + } + }, + { + "type": "pattern_or", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "pattern_annot", + "named": true + }, + { + "type": "pattern_array", + "named": true + }, + { + "type": "pattern_array_concat", + "named": true + }, + { + "type": "pattern_constant", + "named": true + }, + { + "type": "pattern_name", + "named": true + }, + { + "type": "pattern_or", + "named": true + }, + { + "type": "pattern_paren", + "named": true + }, + { + "type": "pattern_record", + "named": true + }, + { + "type": "pattern_record_concat", + "named": true + }, + { + "type": "pattern_tuple", + "named": true + }, + { + "type": "pattern_variant", + "named": true + }, + { + "type": "pattern_wild", + "named": true + } + ] + } + }, + { + "type": "pattern_paren", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "pattern_annot", + "named": true + }, + { + "type": "pattern_array", + "named": true + }, + { + "type": "pattern_array_concat", + "named": true + }, + { + "type": "pattern_constant", + "named": true + }, + { + "type": "pattern_name", + "named": true + }, + { + "type": "pattern_or", + "named": true + }, + { + "type": "pattern_paren", + "named": true + }, + { + "type": "pattern_record", + "named": true + }, + { + "type": "pattern_record_concat", + "named": true + }, + { + "type": "pattern_tuple", + "named": true + }, + { + "type": "pattern_variant", + "named": true + }, + { + "type": "pattern_wild", + "named": true + } + ] + } + }, + { + "type": "pattern_record", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "pattern_field", + "named": true + } + ] + } + }, + { + "type": "pattern_record_concat", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "pattern_annot", + "named": true + }, + { + "type": "pattern_array", + "named": true + }, + { + "type": "pattern_array_concat", + "named": true + }, + { + "type": "pattern_constant", + "named": true + }, + { + "type": "pattern_name", + "named": true + }, + { + "type": "pattern_or", + "named": true + }, + { + "type": "pattern_paren", + "named": true + }, + { + "type": "pattern_record", + "named": true + }, + { + "type": "pattern_record_concat", + "named": true + }, + { + "type": "pattern_tuple", + "named": true + }, + { + "type": "pattern_variant", + "named": true + }, + { + "type": "pattern_wild", + "named": true + } + ] + } + }, + { + "type": "pattern_tuple", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "pattern_annot", + "named": true + }, + { + "type": "pattern_array", + "named": true + }, + { + "type": "pattern_array_concat", + "named": true + }, + { + "type": "pattern_constant", + "named": true + }, + { + "type": "pattern_name", + "named": true + }, + { + "type": "pattern_or", + "named": true + }, + { + "type": "pattern_paren", + "named": true + }, + { + "type": "pattern_record", + "named": true + }, + { + "type": "pattern_record_concat", + "named": true + }, + { + "type": "pattern_tuple", + "named": true + }, + { + "type": "pattern_variant", + "named": true + }, + { + "type": "pattern_wild", + "named": true + } + ] + } + }, + { + "type": "pattern_variant", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "pattern_annot", + "named": true + }, + { + "type": "pattern_array", + "named": true + }, + { + "type": "pattern_array_concat", + "named": true + }, + { + "type": "pattern_constant", + "named": true + }, + { + "type": "pattern_field", + "named": true + }, + { + "type": "pattern_name", + "named": true + }, + { + "type": "pattern_or", + "named": true + }, + { + "type": "pattern_paren", + "named": true + }, + { + "type": "pattern_record", + "named": true + }, + { + "type": "pattern_record_concat", + "named": true + }, + { + "type": "pattern_tuple", + "named": true + }, + { + "type": "pattern_variant", + "named": true + }, + { + "type": "pattern_wild", + "named": true + }, + { + "type": "variant_name", + "named": true + } + ] + } + }, + { + "type": "pattern_wild", + "named": true, + "fields": {} + }, + { + "type": "program", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "stmt_code", + "named": true + }, + { + "type": "stmt_def", + "named": true + }, + { + "type": "stmt_enum", + "named": true + }, + { + "type": "stmt_expr", + "named": true + }, + { + "type": "stmt_type", + "named": true + }, + { + "type": "stmt_val", + "named": true + }, + { + "type": "stmt_var", + "named": true + } + ] + } + }, + { + "type": "query_compute", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + }, + { + "type": "name", + "named": true + } + ] + } + }, + { + "type": "query_from", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + }, + { + "type": "pattern_annot", + "named": true + }, + { + "type": "pattern_array", + "named": true + }, + { + "type": "pattern_array_concat", + "named": true + }, + { + "type": "pattern_constant", + "named": true + }, + { + "type": "pattern_name", + "named": true + }, + { + "type": "pattern_or", + "named": true + }, + { + "type": "pattern_paren", + "named": true + }, + { + "type": "pattern_record", + "named": true + }, + { + "type": "pattern_record_concat", + "named": true + }, + { + "type": "pattern_tuple", + "named": true + }, + { + "type": "pattern_variant", + "named": true + }, + { + "type": "pattern_wild", + "named": true + } + ] + } + }, + { + "type": "query_group", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + }, + { + "type": "name", + "named": true + }, + { + "type": "query_compute", + "named": true + }, + { + "type": "query_from", + "named": true + }, + { + "type": "query_group", + "named": true + }, + { + "type": "query_into", + "named": true + }, + { + "type": "query_join", + "named": true + }, + { + "type": "query_order", + "named": true + }, + { + "type": "query_over", + "named": true + }, + { + "type": "query_roll", + "named": true + }, + { + "type": "query_select", + "named": true + }, + { + "type": "query_union", + "named": true + }, + { + "type": "query_val", + "named": true + }, + { + "type": "query_where", + "named": true + } + ] + } + }, + { + "type": "query_into", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + } + ] + } + }, + { + "type": "query_join", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + }, + { + "type": "pattern_annot", + "named": true + }, + { + "type": "pattern_array", + "named": true + }, + { + "type": "pattern_array_concat", + "named": true + }, + { + "type": "pattern_constant", + "named": true + }, + { + "type": "pattern_name", + "named": true + }, + { + "type": "pattern_or", + "named": true + }, + { + "type": "pattern_paren", + "named": true + }, + { + "type": "pattern_record", + "named": true + }, + { + "type": "pattern_record_concat", + "named": true + }, + { + "type": "pattern_tuple", + "named": true + }, + { + "type": "pattern_variant", + "named": true + }, + { + "type": "pattern_wild", + "named": true + } + ] + } + }, + { + "type": "query_order", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + } + ] + } + }, + { + "type": "query_over", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + }, + { + "type": "name", + "named": true + }, + { + "type": "query_compute", + "named": true + }, + { + "type": "query_from", + "named": true + }, + { + "type": "query_group", + "named": true + }, + { + "type": "query_into", + "named": true + }, + { + "type": "query_join", + "named": true + }, + { + "type": "query_order", + "named": true + }, + { + "type": "query_over", + "named": true + }, + { + "type": "query_roll", + "named": true + }, + { + "type": "query_select", + "named": true + }, + { + "type": "query_union", + "named": true + }, + { + "type": "query_val", + "named": true + }, + { + "type": "query_where", + "named": true + } + ] + } + }, + { + "type": "query_roll", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + }, + { + "type": "name", + "named": true + } + ] + } + }, + { + "type": "query_select", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + }, + { + "type": "name", + "named": true + } + ] + } + }, + { + "type": "query_union", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + } + ] + } + }, + { + "type": "query_val", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + }, + { + "type": "pattern_annot", + "named": true + }, + { + "type": "pattern_array", + "named": true + }, + { + "type": "pattern_array_concat", + "named": true + }, + { + "type": "pattern_constant", + "named": true + }, + { + "type": "pattern_name", + "named": true + }, + { + "type": "pattern_or", + "named": true + }, + { + "type": "pattern_paren", + "named": true + }, + { + "type": "pattern_record", + "named": true + }, + { + "type": "pattern_record_concat", + "named": true + }, + { + "type": "pattern_tuple", + "named": true + }, + { + "type": "pattern_variant", + "named": true + }, + { + "type": "pattern_wild", + "named": true + } + ] + } + }, + { + "type": "query_where", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + } + ] + } + }, + { + "type": "rust", + "named": true, + "fields": {} + }, + { + "type": "stmt_code", + "named": true, + "fields": { + "code": { + "multiple": false, + "required": false, + "types": [ + { + "type": "code", + "named": true + } + ] + }, + "lang": { + "multiple": false, + "required": true, + "types": [ + { + "type": "python", + "named": false + }, + { + "type": "rust", + "named": false + } + ] + } + } + }, + { + "type": "stmt_def", + "named": true, + "fields": { + "inner": { + "multiple": true, + "required": true, + "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, + { + "type": ",", + "named": false + }, + { + "type": ":", + "named": false + }, + { + "type": ";", + "named": false + }, + { + "type": "=", + "named": false + }, + { + "type": "[", + "named": false + }, + { + "type": "]", + "named": false + }, + { + "type": "block", + "named": true + }, + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + }, + { + "type": "generic", + "named": true + }, + { + "type": "pattern_annot", + "named": true + }, + { + "type": "pattern_array", + "named": true + }, + { + "type": "pattern_array_concat", + "named": true + }, + { + "type": "pattern_constant", + "named": true + }, + { + "type": "pattern_name", + "named": true + }, + { + "type": "pattern_or", + "named": true + }, + { + "type": "pattern_paren", + "named": true + }, + { + "type": "pattern_record", + "named": true + }, + { + "type": "pattern_record_concat", + "named": true + }, + { + "type": "pattern_tuple", + "named": true + }, + { + "type": "pattern_variant", + "named": true + }, + { + "type": "pattern_wild", + "named": true + }, + { + "type": "type_array", + "named": true + }, + { + "type": "type_array_concat", + "named": true + }, + { + "type": "type_fun", + "named": true + }, + { + "type": "type_never", + "named": true + }, + { + "type": "type_nominal", + "named": true + }, + { + "type": "type_paren", + "named": true + }, + { + "type": "type_record", + "named": true + }, + { + "type": "type_record_concat", + "named": true + }, + { + "type": "type_tuple", + "named": true + }, + { + "type": "type_unit", + "named": true + }, + { + "type": "type_wild", + "named": true + } + ] + }, + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "name", + "named": true + } + ] + } + }, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "meta", + "named": true + } + ] + } + }, + { + "type": "stmt_enum", + "named": true, + "fields": { + "inner": { + "multiple": true, + "required": true, + "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, + { + "type": ",", + "named": false + }, + { + "type": "[", + "named": false + }, + { + "type": "]", + "named": false + }, + { + "type": "generic", + "named": true + }, + { + "type": "name", + "named": true + }, + { + "type": "type_array", + "named": true + }, + { + "type": "type_array_concat", + "named": true + }, + { + "type": "type_field", + "named": true + }, + { + "type": "type_fun", + "named": true + }, + { + "type": "type_never", + "named": true + }, + { + "type": "type_nominal", + "named": true + }, + { + "type": "type_paren", + "named": true + }, + { + "type": "type_record", + "named": true + }, + { + "type": "type_record_concat", + "named": true + }, + { + "type": "type_tuple", + "named": true + }, + { + "type": "type_unit", + "named": true + }, + { + "type": "type_wild", + "named": true + }, + { + "type": "{", + "named": false + }, + { + "type": "}", + "named": false + } + ] + }, + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "name", + "named": true + } + ] + }, + "variant": { + "multiple": true, + "required": false, + "types": [ + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, + { + "type": ",", + "named": false + }, + { + "type": "name", + "named": true + }, + { + "type": "type_array", + "named": true + }, + { + "type": "type_array_concat", + "named": true + }, + { + "type": "type_field", + "named": true + }, + { + "type": "type_fun", + "named": true + }, + { + "type": "type_never", + "named": true + }, + { + "type": "type_nominal", + "named": true + }, + { + "type": "type_paren", + "named": true + }, + { + "type": "type_record", + "named": true + }, + { + "type": "type_record_concat", + "named": true + }, + { + "type": "type_tuple", + "named": true + }, + { + "type": "type_unit", + "named": true + }, + { + "type": "type_wild", + "named": true + }, + { + "type": "{", + "named": false + }, + { + "type": "}", + "named": false + } + ] + } + }, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "meta", + "named": true + } + ] + } + }, + { + "type": "stmt_expr", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + } + ] + } + }, + { + "type": "stmt_type", + "named": true, + "fields": { + "inner": { + "multiple": true, + "required": true, + "types": [ + { + "type": ",", + "named": false + }, + { + "type": ";", + "named": false + }, + { + "type": "=", + "named": false + }, + { + "type": "[", + "named": false + }, + { + "type": "]", + "named": false + }, + { + "type": "generic", + "named": true + }, + { + "type": "type_array", + "named": true + }, + { + "type": "type_array_concat", + "named": true + }, + { + "type": "type_fun", + "named": true + }, + { + "type": "type_never", + "named": true + }, + { + "type": "type_nominal", + "named": true + }, + { + "type": "type_paren", + "named": true + }, + { + "type": "type_record", + "named": true + }, + { + "type": "type_record_concat", + "named": true + }, + { + "type": "type_tuple", + "named": true + }, + { + "type": "type_unit", + "named": true + }, + { + "type": "type_wild", + "named": true + } + ] + }, + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "name", + "named": true + } + ] + } + }, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "meta", + "named": true + } + ] + } + }, + { + "type": "stmt_val", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + }, + { + "type": "pattern_annot", + "named": true + }, + { + "type": "pattern_array", + "named": true + }, + { + "type": "pattern_array_concat", + "named": true + }, + { + "type": "pattern_constant", + "named": true + }, + { + "type": "pattern_name", + "named": true + }, + { + "type": "pattern_or", + "named": true + }, + { + "type": "pattern_paren", + "named": true + }, + { + "type": "pattern_record", + "named": true + }, + { + "type": "pattern_record_concat", + "named": true + }, + { + "type": "pattern_tuple", + "named": true + }, + { + "type": "pattern_variant", + "named": true + }, + { + "type": "pattern_wild", + "named": true + } + ] + } + }, + { + "type": "stmt_var", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "expr_annot", + "named": true + }, + { + "type": "expr_array", + "named": true + }, + { + "type": "expr_array_access", + "named": true + }, + { + "type": "expr_binary", + "named": true + }, + { + "type": "expr_break", + "named": true + }, + { + "type": "expr_call", + "named": true + }, + { + "type": "expr_constant", + "named": true + }, + { + "type": "expr_continue", + "named": true + }, + { + "type": "expr_do", + "named": true + }, + { + "type": "expr_for", + "named": true + }, + { + "type": "expr_fun", + "named": true + }, + { + "type": "expr_if", + "named": true + }, + { + "type": "expr_loop", + "named": true + }, + { + "type": "expr_match", + "named": true + }, + { + "type": "expr_method_call", + "named": true + }, + { + "type": "expr_name", + "named": true + }, + { + "type": "expr_paren", + "named": true + }, + { + "type": "expr_query", + "named": true + }, + { + "type": "expr_record", + "named": true + }, + { + "type": "expr_record_access", + "named": true + }, + { + "type": "expr_return", + "named": true + }, + { + "type": "expr_rust", + "named": true + }, + { + "type": "expr_throw", + "named": true + }, + { + "type": "expr_try", + "named": true + }, + { + "type": "expr_tuple", + "named": true + }, + { + "type": "expr_tuple_access", + "named": true + }, + { + "type": "expr_while", + "named": true + }, + { + "type": "pattern_annot", + "named": true + }, + { + "type": "pattern_array", + "named": true + }, + { + "type": "pattern_array_concat", + "named": true + }, + { + "type": "pattern_constant", + "named": true + }, + { + "type": "pattern_name", + "named": true + }, + { + "type": "pattern_or", + "named": true + }, + { + "type": "pattern_paren", + "named": true + }, + { + "type": "pattern_record", + "named": true + }, + { + "type": "pattern_record_concat", + "named": true + }, + { + "type": "pattern_tuple", + "named": true + }, + { + "type": "pattern_variant", + "named": true + }, + { + "type": "pattern_wild", + "named": true + } + ] + } + }, + { + "type": "string_interpolation", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "block", + "named": true + }, + { + "type": "name", + "named": true + } + ] + } + }, + { + "type": "type_array", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "type_array", + "named": true + }, + { + "type": "type_array_concat", + "named": true + }, + { + "type": "type_fun", + "named": true + }, + { + "type": "type_never", + "named": true + }, + { + "type": "type_nominal", + "named": true + }, + { + "type": "type_paren", + "named": true + }, + { + "type": "type_record", + "named": true + }, + { + "type": "type_record_concat", + "named": true + }, + { + "type": "type_tuple", + "named": true + }, + { + "type": "type_unit", + "named": true + }, + { + "type": "type_wild", + "named": true + } + ] + } + }, + { + "type": "type_array_concat", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "type_array", + "named": true + }, + { + "type": "type_array_concat", + "named": true + }, + { + "type": "type_fun", + "named": true + }, + { + "type": "type_never", + "named": true + }, + { + "type": "type_nominal", + "named": true + }, + { + "type": "type_paren", + "named": true + }, + { + "type": "type_record", + "named": true + }, + { + "type": "type_record_concat", + "named": true + }, + { + "type": "type_tuple", + "named": true + }, + { + "type": "type_unit", + "named": true + }, + { + "type": "type_wild", + "named": true + } + ] + } + }, + { + "type": "type_field", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "name", + "named": true + }, + { + "type": "type_array", + "named": true + }, + { + "type": "type_array_concat", + "named": true + }, + { + "type": "type_fun", + "named": true + }, + { + "type": "type_never", + "named": true + }, + { + "type": "type_nominal", + "named": true + }, + { + "type": "type_paren", + "named": true + }, + { + "type": "type_record", + "named": true + }, + { + "type": "type_record_concat", + "named": true + }, + { + "type": "type_tuple", + "named": true + }, + { + "type": "type_unit", + "named": true + }, + { + "type": "type_wild", + "named": true + } + ] + } + }, + { + "type": "type_fun", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "type_array", + "named": true + }, + { + "type": "type_array_concat", + "named": true + }, + { + "type": "type_fun", + "named": true + }, + { + "type": "type_never", + "named": true + }, + { + "type": "type_nominal", + "named": true + }, + { + "type": "type_paren", + "named": true + }, + { + "type": "type_record", + "named": true + }, + { + "type": "type_record_concat", + "named": true + }, + { + "type": "type_tuple", + "named": true + }, + { + "type": "type_unit", + "named": true + }, + { + "type": "type_wild", + "named": true + } + ] + } + }, + { + "type": "type_name", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "name", + "named": true + } + ] + } + }, + { + "type": "type_nominal", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "type_array", + "named": true + }, + { + "type": "type_array_concat", + "named": true + }, + { + "type": "type_fun", + "named": true + }, + { + "type": "type_name", + "named": true + }, + { + "type": "type_never", + "named": true + }, + { + "type": "type_nominal", + "named": true + }, + { + "type": "type_paren", + "named": true + }, + { + "type": "type_record", + "named": true + }, + { + "type": "type_record_concat", + "named": true + }, + { + "type": "type_tuple", + "named": true + }, + { + "type": "type_unit", + "named": true + }, + { + "type": "type_wild", + "named": true + } + ] + } + }, + { + "type": "type_paren", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "type_array", + "named": true + }, + { + "type": "type_array_concat", + "named": true + }, + { + "type": "type_fun", + "named": true + }, + { + "type": "type_never", + "named": true + }, + { + "type": "type_nominal", + "named": true + }, + { + "type": "type_paren", + "named": true + }, + { + "type": "type_record", + "named": true + }, + { + "type": "type_record_concat", + "named": true + }, + { + "type": "type_tuple", + "named": true + }, + { + "type": "type_unit", + "named": true + }, + { + "type": "type_wild", + "named": true + } + ] + } + }, + { + "type": "type_record", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "type_field", + "named": true + } + ] + } + }, + { + "type": "type_record_concat", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "type_array", + "named": true + }, + { + "type": "type_array_concat", + "named": true + }, + { + "type": "type_fun", + "named": true + }, + { + "type": "type_never", + "named": true + }, + { + "type": "type_nominal", + "named": true + }, + { + "type": "type_paren", + "named": true + }, + { + "type": "type_record", + "named": true + }, + { + "type": "type_record_concat", + "named": true + }, + { + "type": "type_tuple", + "named": true + }, + { + "type": "type_unit", + "named": true + }, + { + "type": "type_wild", + "named": true + } + ] + } + }, + { + "type": "type_tuple", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "type_array", + "named": true + }, + { + "type": "type_array_concat", + "named": true + }, + { + "type": "type_fun", + "named": true + }, + { + "type": "type_never", + "named": true + }, + { + "type": "type_nominal", + "named": true + }, + { + "type": "type_paren", + "named": true + }, + { + "type": "type_record", + "named": true + }, + { + "type": "type_record_concat", + "named": true + }, + { + "type": "type_tuple", + "named": true + }, + { + "type": "type_unit", + "named": true + }, + { + "type": "type_wild", + "named": true + } + ] + } + }, + { + "type": "type_unit", + "named": true, + "fields": {} + }, + { + "type": "type_wild", + "named": true, + "fields": {} + }, + { + "type": "variant_name", + "named": true, + "fields": {}, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "name", + "named": true + } + ] + } + }, + { + "type": "!=", + "named": false + }, + { + "type": "$", + "named": false + }, + { + "type": "&", + "named": false + }, + { + "type": "'", + "named": false + }, + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, + { + "type": "*", + "named": false + }, + { + "type": "*=", + "named": false + }, + { + "type": "+", + "named": false + }, + { + "type": "++", + "named": false + }, + { + "type": "+=", + "named": false + }, + { + "type": ",", + "named": false + }, + { + "type": "-", + "named": false + }, + { + "type": "---", + "named": false + }, + { + "type": "-=", + "named": false + }, + { + "type": ".", + "named": false + }, + { + "type": "..", + "named": false + }, + { + "type": "..=", + "named": false + }, + { + "type": "/", + "named": false + }, + { + "type": "/=", + "named": false + }, + { + "type": ":", + "named": false + }, + { + "type": "::", + "named": false + }, + { + "type": ";", + "named": false + }, + { + "type": "<", + "named": false + }, + { + "type": "<=", + "named": false + }, + { + "type": "=", + "named": false + }, + { + "type": "==", + "named": false + }, + { + "type": "=>", + "named": false + }, + { + "type": ">", + "named": false + }, + { + "type": ">=", + "named": false + }, + { + "type": "@", + "named": false + }, + { + "type": "[", + "named": false + }, + { + "type": "]", + "named": false + }, + { + "type": "_", + "named": false + }, + { + "type": "and", + "named": false + }, + { + "type": "as", + "named": false + }, + { + "type": "break", + "named": false + }, + { + "type": "catch", + "named": false + }, + { + "type": "compute", + "named": false + }, + { + "type": "constant_float", + "named": true + }, + { + "type": "constant_int", + "named": true + }, + { + "type": "continue", + "named": false + }, + { + "type": "def", + "named": false + }, + { + "type": "desc", + "named": false + }, + { + "type": "do", + "named": false + }, + { + "type": "else", + "named": false + }, + { + "type": "enum", + "named": false + }, + { + "type": "false", + "named": false + }, + { + "type": "finally", + "named": false + }, + { + "type": "for", + "named": false + }, + { + "type": "from", + "named": false + }, + { + "type": "fun", + "named": false + }, + { + "type": "group", + "named": false + }, + { + "type": "if", + "named": false + }, + { + "type": "in", + "named": false + }, + { + "type": "index", + "named": true + }, + { + "type": "into", + "named": false + }, + { + "type": "join", + "named": false + }, + { + "type": "line_comment", + "named": true + }, + { + "type": "loop", + "named": false + }, + { + "type": "match", + "named": false + }, + { + "type": "name", + "named": true + }, + { + "type": "not", + "named": false + }, + { + "type": "of", + "named": false + }, + { + "type": "on", + "named": false + }, + { + "type": "or", + "named": false + }, + { + "type": "order", + "named": false + }, + { + "type": "over", + "named": false + }, + { + "type": "python", + "named": false + }, + { + "type": "return", + "named": false + }, + { + "type": "roll", + "named": false + }, + { + "type": "rust", + "named": false + }, + { + "type": "select", + "named": false + }, + { + "type": "string_content", + "named": true + }, + { + "type": "string_quote", + "named": true + }, + { + "type": "throw", + "named": false + }, + { + "type": "true", + "named": false + }, + { + "type": "try", + "named": false + }, + { + "type": "type", + "named": false + }, + { + "type": "type_never", + "named": true + }, + { + "type": "union", + "named": false + }, + { + "type": "val", + "named": false + }, + { + "type": "var", + "named": false + }, + { + "type": "where", + "named": false + }, + { + "type": "while", + "named": false + }, + { + "type": "with", + "named": false + }, + { + "type": "{", + "named": false + }, + { + "type": "}", + "named": false + } +] \ No newline at end of file diff --git a/arc-lang/crates/tree-sitter/src/parser.c b/arc-lang/crates/tree-sitter/src/parser.c new file mode 100644 index 000000000..9127aca05 --- /dev/null +++ b/arc-lang/crates/tree-sitter/src/parser.c @@ -0,0 +1,84605 @@ +#include + +#if defined(__GNUC__) || defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmissing-field-initializers" +#endif + +#define LANGUAGE_VERSION 14 +#define STATE_COUNT 1511 +#define LARGE_STATE_COUNT 44 +#define SYMBOL_COUNT 215 +#define ALIAS_COUNT 0 +#define TOKEN_COUNT 93 +#define EXTERNAL_TOKEN_COUNT 0 +#define FIELD_COUNT 7 +#define MAX_ALIAS_SEQUENCE_LENGTH 14 +#define PRODUCTION_ID_COUNT 36 + +enum { + sym_name = 1, + sym__whitespace = 2, + sym_line_comment = 3, + sym_index = 4, + anon_sym_AT = 5, + anon_sym_LBRACE = 6, + anon_sym_RBRACE = 7, + anon_sym_COMMA = 8, + anon_sym_COLON = 9, + sym_constant_int = 10, + sym_constant_float = 11, + sym_string_quote = 12, + sym_string_content = 13, + anon_sym_DOLLAR = 14, + anon_sym_SQUOTE = 15, + aux_sym_constant_char_token1 = 16, + anon_sym_true = 17, + anon_sym_false = 18, + anon_sym_LPAREN = 19, + anon_sym_RPAREN = 20, + anon_sym_def = 21, + anon_sym_LBRACK = 22, + anon_sym_RBRACK = 23, + anon_sym_EQ = 24, + anon_sym_SEMI = 25, + anon_sym_type = 26, + anon_sym_enum = 27, + anon_sym_val = 28, + anon_sym_var = 29, + anon_sym_DASH_DASH_DASH = 30, + anon_sym_rust = 31, + anon_sym_python = 32, + aux_sym_code_token1 = 33, + anon_sym_fun = 34, + anon_sym_AMP = 35, + anon_sym_PLUS_PLUS = 36, + sym_type_never = 37, + anon_sym__ = 38, + anon_sym_or = 39, + anon_sym_DOT = 40, + anon_sym_return = 41, + anon_sym_break = 42, + anon_sym_continue = 43, + anon_sym_throw = 44, + aux_sym__rust_token1 = 45, + anon_sym_from = 46, + anon_sym_in = 47, + anon_sym_where = 48, + anon_sym_join = 49, + anon_sym_on = 50, + anon_sym_union = 51, + anon_sym_group = 52, + anon_sym_over = 53, + anon_sym_roll = 54, + anon_sym_compute = 55, + anon_sym_select = 56, + anon_sym_with = 57, + anon_sym_into = 58, + anon_sym_order = 59, + anon_sym_desc = 60, + anon_sym_as = 61, + anon_sym_of = 62, + anon_sym_PLUS_EQ = 63, + anon_sym_DASH_EQ = 64, + anon_sym_STAR_EQ = 65, + anon_sym_SLASH_EQ = 66, + anon_sym_DOT_DOT = 67, + anon_sym_DOT_DOT_EQ = 68, + anon_sym_and = 69, + anon_sym_EQ_EQ = 70, + anon_sym_BANG_EQ = 71, + anon_sym_LT = 72, + anon_sym_GT = 73, + anon_sym_LT_EQ = 74, + anon_sym_GT_EQ = 75, + anon_sym_PLUS = 76, + anon_sym_DASH = 77, + anon_sym_STAR = 78, + anon_sym_SLASH = 79, + anon_sym_not = 80, + anon_sym_COLON_COLON = 81, + anon_sym_do = 82, + anon_sym_if = 83, + anon_sym_else = 84, + anon_sym_match = 85, + anon_sym_loop = 86, + anon_sym_while = 87, + anon_sym_for = 88, + anon_sym_try = 89, + anon_sym_catch = 90, + anon_sym_finally = 91, + anon_sym_EQ_GT = 92, + sym_program = 93, + sym_meta = 94, + sym__attributes = 95, + sym_attribute = 96, + sym__constant = 97, + sym_constant_string = 98, + sym_string_interpolation = 99, + sym_constant_char = 100, + sym_constant_bool = 101, + sym_constant_unit = 102, + aux_sym__stmts = 103, + sym__stmt = 104, + sym_stmt_def = 105, + sym_stmt_type = 106, + sym_stmt_enum = 107, + sym_stmt_val = 108, + sym_stmt_var = 109, + sym_stmt_expr = 110, + sym_stmt_code = 111, + sym_code = 112, + sym__stmt_noop = 113, + sym__types = 114, + sym__type = 115, + sym_type_fun = 116, + sym_type_record_concat = 117, + sym_type_array_concat = 118, + sym_type_paren = 119, + sym_type_nominal = 120, + sym_type_name = 121, + sym_type_tuple = 122, + sym_type_record = 123, + sym_type_array = 124, + sym_type_unit = 125, + sym_type_wild = 126, + sym__type_fields = 127, + sym_type_field = 128, + sym_generic = 129, + sym__generics = 130, + sym__patterns = 131, + sym__pattern_fields = 132, + sym_pattern_field = 133, + sym__pattern = 134, + sym_pattern_annot = 135, + sym_pattern_or = 136, + sym_pattern_record_concat = 137, + sym_pattern_array_concat = 138, + sym_pattern_paren = 139, + sym_pattern_constant = 140, + sym_pattern_name = 141, + sym_pattern_variant = 142, + sym_pattern_tuple = 143, + sym_pattern_record = 144, + sym_pattern_array = 145, + sym_pattern_wild = 146, + sym_variant_name = 147, + sym__exprs = 148, + sym__expr_fields = 149, + sym_expr_field = 150, + sym_expr_field_expr = 151, + sym_expr_field_name = 152, + sym__expr = 153, + sym_expr_return = 154, + sym_expr_break = 155, + sym_expr_continue = 156, + sym_expr_throw = 157, + sym_expr_query = 158, + sym_expr_rust = 159, + sym_rust = 160, + sym__rust = 161, + aux_sym__query_stmts = 162, + sym__query_stmt = 163, + sym_query_from = 164, + sym_query_where = 165, + sym_query_join = 166, + sym_query_union = 167, + sym_query_group = 168, + sym_query_over = 169, + sym_query_roll = 170, + sym_query_compute = 171, + sym_query_select = 172, + sym_query_val = 173, + sym_query_into = 174, + sym_query_order = 175, + sym__as = 176, + sym__of = 177, + sym_expr_fun = 178, + sym_expr_binary = 179, + sym_expr_annot = 180, + sym_expr_call = 181, + sym_expr_tuple_access = 182, + sym_expr_record_access = 183, + sym_expr_array_access = 184, + sym_expr_method_call = 185, + sym_expr_paren = 186, + sym_expr_constant = 187, + sym_expr_name = 188, + sym_expr_array = 189, + sym_expr_tuple = 190, + sym_expr_record = 191, + sym_expr_do = 192, + sym_expr_if = 193, + sym_expr_match = 194, + sym_expr_loop = 195, + sym_expr_while = 196, + sym_expr_for = 197, + sym_expr_try = 198, + sym_block = 199, + sym__arms = 200, + sym_arm = 201, + aux_sym__attributes_repeat1 = 202, + aux_sym_constant_string_repeat1 = 203, + aux_sym_stmt_enum_repeat1 = 204, + aux_sym_code_repeat1 = 205, + aux_sym__types_repeat1 = 206, + aux_sym__type_fields_repeat1 = 207, + aux_sym__generics_repeat1 = 208, + aux_sym__patterns_repeat1 = 209, + aux_sym__pattern_fields_repeat1 = 210, + aux_sym__exprs_repeat1 = 211, + aux_sym__expr_fields_repeat1 = 212, + aux_sym__rust_repeat1 = 213, + aux_sym__arms_repeat1 = 214, +}; + +static const char * const ts_symbol_names[] = { + [ts_builtin_sym_end] = "end", + [sym_name] = "name", + [sym__whitespace] = "_whitespace", + [sym_line_comment] = "line_comment", + [sym_index] = "index", + [anon_sym_AT] = "@", + [anon_sym_LBRACE] = "{", + [anon_sym_RBRACE] = "}", + [anon_sym_COMMA] = ",", + [anon_sym_COLON] = ":", + [sym_constant_int] = "constant_int", + [sym_constant_float] = "constant_float", + [sym_string_quote] = "string_quote", + [sym_string_content] = "string_content", + [anon_sym_DOLLAR] = "$", + [anon_sym_SQUOTE] = "'", + [aux_sym_constant_char_token1] = "constant_char_token1", + [anon_sym_true] = "true", + [anon_sym_false] = "false", + [anon_sym_LPAREN] = "(", + [anon_sym_RPAREN] = ")", + [anon_sym_def] = "def", + [anon_sym_LBRACK] = "[", + [anon_sym_RBRACK] = "]", + [anon_sym_EQ] = "=", + [anon_sym_SEMI] = ";", + [anon_sym_type] = "type", + [anon_sym_enum] = "enum", + [anon_sym_val] = "val", + [anon_sym_var] = "var", + [anon_sym_DASH_DASH_DASH] = "---", + [anon_sym_rust] = "rust", + [anon_sym_python] = "python", + [aux_sym_code_token1] = "code_token1", + [anon_sym_fun] = "fun", + [anon_sym_AMP] = "&", + [anon_sym_PLUS_PLUS] = "++", + [sym_type_never] = "type_never", + [anon_sym__] = "_", + [anon_sym_or] = "or", + [anon_sym_DOT] = ".", + [anon_sym_return] = "return", + [anon_sym_break] = "break", + [anon_sym_continue] = "continue", + [anon_sym_throw] = "throw", + [aux_sym__rust_token1] = "_rust_token1", + [anon_sym_from] = "from", + [anon_sym_in] = "in", + [anon_sym_where] = "where", + [anon_sym_join] = "join", + [anon_sym_on] = "on", + [anon_sym_union] = "union", + [anon_sym_group] = "group", + [anon_sym_over] = "over", + [anon_sym_roll] = "roll", + [anon_sym_compute] = "compute", + [anon_sym_select] = "select", + [anon_sym_with] = "with", + [anon_sym_into] = "into", + [anon_sym_order] = "order", + [anon_sym_desc] = "desc", + [anon_sym_as] = "as", + [anon_sym_of] = "of", + [anon_sym_PLUS_EQ] = "+=", + [anon_sym_DASH_EQ] = "-=", + [anon_sym_STAR_EQ] = "*=", + [anon_sym_SLASH_EQ] = "/=", + [anon_sym_DOT_DOT] = "..", + [anon_sym_DOT_DOT_EQ] = "..=", + [anon_sym_and] = "and", + [anon_sym_EQ_EQ] = "==", + [anon_sym_BANG_EQ] = "!=", + [anon_sym_LT] = "<", + [anon_sym_GT] = ">", + [anon_sym_LT_EQ] = "<=", + [anon_sym_GT_EQ] = ">=", + [anon_sym_PLUS] = "+", + [anon_sym_DASH] = "-", + [anon_sym_STAR] = "*", + [anon_sym_SLASH] = "/", + [anon_sym_not] = "not", + [anon_sym_COLON_COLON] = "::", + [anon_sym_do] = "do", + [anon_sym_if] = "if", + [anon_sym_else] = "else", + [anon_sym_match] = "match", + [anon_sym_loop] = "loop", + [anon_sym_while] = "while", + [anon_sym_for] = "for", + [anon_sym_try] = "try", + [anon_sym_catch] = "catch", + [anon_sym_finally] = "finally", + [anon_sym_EQ_GT] = "=>", + [sym_program] = "program", + [sym_meta] = "meta", + [sym__attributes] = "_attributes", + [sym_attribute] = "attribute", + [sym__constant] = "_constant", + [sym_constant_string] = "constant_string", + [sym_string_interpolation] = "string_interpolation", + [sym_constant_char] = "constant_char", + [sym_constant_bool] = "constant_bool", + [sym_constant_unit] = "constant_unit", + [aux_sym__stmts] = "_stmts", + [sym__stmt] = "_stmt", + [sym_stmt_def] = "stmt_def", + [sym_stmt_type] = "stmt_type", + [sym_stmt_enum] = "stmt_enum", + [sym_stmt_val] = "stmt_val", + [sym_stmt_var] = "stmt_var", + [sym_stmt_expr] = "stmt_expr", + [sym_stmt_code] = "stmt_code", + [sym_code] = "code", + [sym__stmt_noop] = "_stmt_noop", + [sym__types] = "_types", + [sym__type] = "_type", + [sym_type_fun] = "type_fun", + [sym_type_record_concat] = "type_record_concat", + [sym_type_array_concat] = "type_array_concat", + [sym_type_paren] = "type_paren", + [sym_type_nominal] = "type_nominal", + [sym_type_name] = "type_name", + [sym_type_tuple] = "type_tuple", + [sym_type_record] = "type_record", + [sym_type_array] = "type_array", + [sym_type_unit] = "type_unit", + [sym_type_wild] = "type_wild", + [sym__type_fields] = "_type_fields", + [sym_type_field] = "type_field", + [sym_generic] = "generic", + [sym__generics] = "_generics", + [sym__patterns] = "_patterns", + [sym__pattern_fields] = "_pattern_fields", + [sym_pattern_field] = "pattern_field", + [sym__pattern] = "_pattern", + [sym_pattern_annot] = "pattern_annot", + [sym_pattern_or] = "pattern_or", + [sym_pattern_record_concat] = "pattern_record_concat", + [sym_pattern_array_concat] = "pattern_array_concat", + [sym_pattern_paren] = "pattern_paren", + [sym_pattern_constant] = "pattern_constant", + [sym_pattern_name] = "pattern_name", + [sym_pattern_variant] = "pattern_variant", + [sym_pattern_tuple] = "pattern_tuple", + [sym_pattern_record] = "pattern_record", + [sym_pattern_array] = "pattern_array", + [sym_pattern_wild] = "pattern_wild", + [sym_variant_name] = "variant_name", + [sym__exprs] = "_exprs", + [sym__expr_fields] = "_expr_fields", + [sym_expr_field] = "expr_field", + [sym_expr_field_expr] = "expr_field_expr", + [sym_expr_field_name] = "expr_field_name", + [sym__expr] = "_expr", + [sym_expr_return] = "expr_return", + [sym_expr_break] = "expr_break", + [sym_expr_continue] = "expr_continue", + [sym_expr_throw] = "expr_throw", + [sym_expr_query] = "expr_query", + [sym_expr_rust] = "expr_rust", + [sym_rust] = "rust", + [sym__rust] = "_rust", + [aux_sym__query_stmts] = "_query_stmts", + [sym__query_stmt] = "_query_stmt", + [sym_query_from] = "query_from", + [sym_query_where] = "query_where", + [sym_query_join] = "query_join", + [sym_query_union] = "query_union", + [sym_query_group] = "query_group", + [sym_query_over] = "query_over", + [sym_query_roll] = "query_roll", + [sym_query_compute] = "query_compute", + [sym_query_select] = "query_select", + [sym_query_val] = "query_val", + [sym_query_into] = "query_into", + [sym_query_order] = "query_order", + [sym__as] = "_as", + [sym__of] = "_of", + [sym_expr_fun] = "expr_fun", + [sym_expr_binary] = "expr_binary", + [sym_expr_annot] = "expr_annot", + [sym_expr_call] = "expr_call", + [sym_expr_tuple_access] = "expr_tuple_access", + [sym_expr_record_access] = "expr_record_access", + [sym_expr_array_access] = "expr_array_access", + [sym_expr_method_call] = "expr_method_call", + [sym_expr_paren] = "expr_paren", + [sym_expr_constant] = "expr_constant", + [sym_expr_name] = "expr_name", + [sym_expr_array] = "expr_array", + [sym_expr_tuple] = "expr_tuple", + [sym_expr_record] = "expr_record", + [sym_expr_do] = "expr_do", + [sym_expr_if] = "expr_if", + [sym_expr_match] = "expr_match", + [sym_expr_loop] = "expr_loop", + [sym_expr_while] = "expr_while", + [sym_expr_for] = "expr_for", + [sym_expr_try] = "expr_try", + [sym_block] = "block", + [sym__arms] = "_arms", + [sym_arm] = "arm", + [aux_sym__attributes_repeat1] = "_attributes_repeat1", + [aux_sym_constant_string_repeat1] = "constant_string_repeat1", + [aux_sym_stmt_enum_repeat1] = "stmt_enum_repeat1", + [aux_sym_code_repeat1] = "code_repeat1", + [aux_sym__types_repeat1] = "_types_repeat1", + [aux_sym__type_fields_repeat1] = "_type_fields_repeat1", + [aux_sym__generics_repeat1] = "_generics_repeat1", + [aux_sym__patterns_repeat1] = "_patterns_repeat1", + [aux_sym__pattern_fields_repeat1] = "_pattern_fields_repeat1", + [aux_sym__exprs_repeat1] = "_exprs_repeat1", + [aux_sym__expr_fields_repeat1] = "_expr_fields_repeat1", + [aux_sym__rust_repeat1] = "_rust_repeat1", + [aux_sym__arms_repeat1] = "_arms_repeat1", +}; + +static const TSSymbol ts_symbol_map[] = { + [ts_builtin_sym_end] = ts_builtin_sym_end, + [sym_name] = sym_name, + [sym__whitespace] = sym__whitespace, + [sym_line_comment] = sym_line_comment, + [sym_index] = sym_index, + [anon_sym_AT] = anon_sym_AT, + [anon_sym_LBRACE] = anon_sym_LBRACE, + [anon_sym_RBRACE] = anon_sym_RBRACE, + [anon_sym_COMMA] = anon_sym_COMMA, + [anon_sym_COLON] = anon_sym_COLON, + [sym_constant_int] = sym_constant_int, + [sym_constant_float] = sym_constant_float, + [sym_string_quote] = sym_string_quote, + [sym_string_content] = sym_string_content, + [anon_sym_DOLLAR] = anon_sym_DOLLAR, + [anon_sym_SQUOTE] = anon_sym_SQUOTE, + [aux_sym_constant_char_token1] = aux_sym_constant_char_token1, + [anon_sym_true] = anon_sym_true, + [anon_sym_false] = anon_sym_false, + [anon_sym_LPAREN] = anon_sym_LPAREN, + [anon_sym_RPAREN] = anon_sym_RPAREN, + [anon_sym_def] = anon_sym_def, + [anon_sym_LBRACK] = anon_sym_LBRACK, + [anon_sym_RBRACK] = anon_sym_RBRACK, + [anon_sym_EQ] = anon_sym_EQ, + [anon_sym_SEMI] = anon_sym_SEMI, + [anon_sym_type] = anon_sym_type, + [anon_sym_enum] = anon_sym_enum, + [anon_sym_val] = anon_sym_val, + [anon_sym_var] = anon_sym_var, + [anon_sym_DASH_DASH_DASH] = anon_sym_DASH_DASH_DASH, + [anon_sym_rust] = anon_sym_rust, + [anon_sym_python] = anon_sym_python, + [aux_sym_code_token1] = aux_sym_code_token1, + [anon_sym_fun] = anon_sym_fun, + [anon_sym_AMP] = anon_sym_AMP, + [anon_sym_PLUS_PLUS] = anon_sym_PLUS_PLUS, + [sym_type_never] = sym_type_never, + [anon_sym__] = anon_sym__, + [anon_sym_or] = anon_sym_or, + [anon_sym_DOT] = anon_sym_DOT, + [anon_sym_return] = anon_sym_return, + [anon_sym_break] = anon_sym_break, + [anon_sym_continue] = anon_sym_continue, + [anon_sym_throw] = anon_sym_throw, + [aux_sym__rust_token1] = aux_sym__rust_token1, + [anon_sym_from] = anon_sym_from, + [anon_sym_in] = anon_sym_in, + [anon_sym_where] = anon_sym_where, + [anon_sym_join] = anon_sym_join, + [anon_sym_on] = anon_sym_on, + [anon_sym_union] = anon_sym_union, + [anon_sym_group] = anon_sym_group, + [anon_sym_over] = anon_sym_over, + [anon_sym_roll] = anon_sym_roll, + [anon_sym_compute] = anon_sym_compute, + [anon_sym_select] = anon_sym_select, + [anon_sym_with] = anon_sym_with, + [anon_sym_into] = anon_sym_into, + [anon_sym_order] = anon_sym_order, + [anon_sym_desc] = anon_sym_desc, + [anon_sym_as] = anon_sym_as, + [anon_sym_of] = anon_sym_of, + [anon_sym_PLUS_EQ] = anon_sym_PLUS_EQ, + [anon_sym_DASH_EQ] = anon_sym_DASH_EQ, + [anon_sym_STAR_EQ] = anon_sym_STAR_EQ, + [anon_sym_SLASH_EQ] = anon_sym_SLASH_EQ, + [anon_sym_DOT_DOT] = anon_sym_DOT_DOT, + [anon_sym_DOT_DOT_EQ] = anon_sym_DOT_DOT_EQ, + [anon_sym_and] = anon_sym_and, + [anon_sym_EQ_EQ] = anon_sym_EQ_EQ, + [anon_sym_BANG_EQ] = anon_sym_BANG_EQ, + [anon_sym_LT] = anon_sym_LT, + [anon_sym_GT] = anon_sym_GT, + [anon_sym_LT_EQ] = anon_sym_LT_EQ, + [anon_sym_GT_EQ] = anon_sym_GT_EQ, + [anon_sym_PLUS] = anon_sym_PLUS, + [anon_sym_DASH] = anon_sym_DASH, + [anon_sym_STAR] = anon_sym_STAR, + [anon_sym_SLASH] = anon_sym_SLASH, + [anon_sym_not] = anon_sym_not, + [anon_sym_COLON_COLON] = anon_sym_COLON_COLON, + [anon_sym_do] = anon_sym_do, + [anon_sym_if] = anon_sym_if, + [anon_sym_else] = anon_sym_else, + [anon_sym_match] = anon_sym_match, + [anon_sym_loop] = anon_sym_loop, + [anon_sym_while] = anon_sym_while, + [anon_sym_for] = anon_sym_for, + [anon_sym_try] = anon_sym_try, + [anon_sym_catch] = anon_sym_catch, + [anon_sym_finally] = anon_sym_finally, + [anon_sym_EQ_GT] = anon_sym_EQ_GT, + [sym_program] = sym_program, + [sym_meta] = sym_meta, + [sym__attributes] = sym__attributes, + [sym_attribute] = sym_attribute, + [sym__constant] = sym__constant, + [sym_constant_string] = sym_constant_string, + [sym_string_interpolation] = sym_string_interpolation, + [sym_constant_char] = sym_constant_char, + [sym_constant_bool] = sym_constant_bool, + [sym_constant_unit] = sym_constant_unit, + [aux_sym__stmts] = aux_sym__stmts, + [sym__stmt] = sym__stmt, + [sym_stmt_def] = sym_stmt_def, + [sym_stmt_type] = sym_stmt_type, + [sym_stmt_enum] = sym_stmt_enum, + [sym_stmt_val] = sym_stmt_val, + [sym_stmt_var] = sym_stmt_var, + [sym_stmt_expr] = sym_stmt_expr, + [sym_stmt_code] = sym_stmt_code, + [sym_code] = sym_code, + [sym__stmt_noop] = sym__stmt_noop, + [sym__types] = sym__types, + [sym__type] = sym__type, + [sym_type_fun] = sym_type_fun, + [sym_type_record_concat] = sym_type_record_concat, + [sym_type_array_concat] = sym_type_array_concat, + [sym_type_paren] = sym_type_paren, + [sym_type_nominal] = sym_type_nominal, + [sym_type_name] = sym_type_name, + [sym_type_tuple] = sym_type_tuple, + [sym_type_record] = sym_type_record, + [sym_type_array] = sym_type_array, + [sym_type_unit] = sym_type_unit, + [sym_type_wild] = sym_type_wild, + [sym__type_fields] = sym__type_fields, + [sym_type_field] = sym_type_field, + [sym_generic] = sym_generic, + [sym__generics] = sym__generics, + [sym__patterns] = sym__patterns, + [sym__pattern_fields] = sym__pattern_fields, + [sym_pattern_field] = sym_pattern_field, + [sym__pattern] = sym__pattern, + [sym_pattern_annot] = sym_pattern_annot, + [sym_pattern_or] = sym_pattern_or, + [sym_pattern_record_concat] = sym_pattern_record_concat, + [sym_pattern_array_concat] = sym_pattern_array_concat, + [sym_pattern_paren] = sym_pattern_paren, + [sym_pattern_constant] = sym_pattern_constant, + [sym_pattern_name] = sym_pattern_name, + [sym_pattern_variant] = sym_pattern_variant, + [sym_pattern_tuple] = sym_pattern_tuple, + [sym_pattern_record] = sym_pattern_record, + [sym_pattern_array] = sym_pattern_array, + [sym_pattern_wild] = sym_pattern_wild, + [sym_variant_name] = sym_variant_name, + [sym__exprs] = sym__exprs, + [sym__expr_fields] = sym__expr_fields, + [sym_expr_field] = sym_expr_field, + [sym_expr_field_expr] = sym_expr_field_expr, + [sym_expr_field_name] = sym_expr_field_name, + [sym__expr] = sym__expr, + [sym_expr_return] = sym_expr_return, + [sym_expr_break] = sym_expr_break, + [sym_expr_continue] = sym_expr_continue, + [sym_expr_throw] = sym_expr_throw, + [sym_expr_query] = sym_expr_query, + [sym_expr_rust] = sym_expr_rust, + [sym_rust] = sym_rust, + [sym__rust] = sym__rust, + [aux_sym__query_stmts] = aux_sym__query_stmts, + [sym__query_stmt] = sym__query_stmt, + [sym_query_from] = sym_query_from, + [sym_query_where] = sym_query_where, + [sym_query_join] = sym_query_join, + [sym_query_union] = sym_query_union, + [sym_query_group] = sym_query_group, + [sym_query_over] = sym_query_over, + [sym_query_roll] = sym_query_roll, + [sym_query_compute] = sym_query_compute, + [sym_query_select] = sym_query_select, + [sym_query_val] = sym_query_val, + [sym_query_into] = sym_query_into, + [sym_query_order] = sym_query_order, + [sym__as] = sym__as, + [sym__of] = sym__of, + [sym_expr_fun] = sym_expr_fun, + [sym_expr_binary] = sym_expr_binary, + [sym_expr_annot] = sym_expr_annot, + [sym_expr_call] = sym_expr_call, + [sym_expr_tuple_access] = sym_expr_tuple_access, + [sym_expr_record_access] = sym_expr_record_access, + [sym_expr_array_access] = sym_expr_array_access, + [sym_expr_method_call] = sym_expr_method_call, + [sym_expr_paren] = sym_expr_paren, + [sym_expr_constant] = sym_expr_constant, + [sym_expr_name] = sym_expr_name, + [sym_expr_array] = sym_expr_array, + [sym_expr_tuple] = sym_expr_tuple, + [sym_expr_record] = sym_expr_record, + [sym_expr_do] = sym_expr_do, + [sym_expr_if] = sym_expr_if, + [sym_expr_match] = sym_expr_match, + [sym_expr_loop] = sym_expr_loop, + [sym_expr_while] = sym_expr_while, + [sym_expr_for] = sym_expr_for, + [sym_expr_try] = sym_expr_try, + [sym_block] = sym_block, + [sym__arms] = sym__arms, + [sym_arm] = sym_arm, + [aux_sym__attributes_repeat1] = aux_sym__attributes_repeat1, + [aux_sym_constant_string_repeat1] = aux_sym_constant_string_repeat1, + [aux_sym_stmt_enum_repeat1] = aux_sym_stmt_enum_repeat1, + [aux_sym_code_repeat1] = aux_sym_code_repeat1, + [aux_sym__types_repeat1] = aux_sym__types_repeat1, + [aux_sym__type_fields_repeat1] = aux_sym__type_fields_repeat1, + [aux_sym__generics_repeat1] = aux_sym__generics_repeat1, + [aux_sym__patterns_repeat1] = aux_sym__patterns_repeat1, + [aux_sym__pattern_fields_repeat1] = aux_sym__pattern_fields_repeat1, + [aux_sym__exprs_repeat1] = aux_sym__exprs_repeat1, + [aux_sym__expr_fields_repeat1] = aux_sym__expr_fields_repeat1, + [aux_sym__rust_repeat1] = aux_sym__rust_repeat1, + [aux_sym__arms_repeat1] = aux_sym__arms_repeat1, +}; + +static const TSSymbolMetadata ts_symbol_metadata[] = { + [ts_builtin_sym_end] = { + .visible = false, + .named = true, + }, + [sym_name] = { + .visible = true, + .named = true, + }, + [sym__whitespace] = { + .visible = false, + .named = true, + }, + [sym_line_comment] = { + .visible = true, + .named = true, + }, + [sym_index] = { + .visible = true, + .named = true, + }, + [anon_sym_AT] = { + .visible = true, + .named = false, + }, + [anon_sym_LBRACE] = { + .visible = true, + .named = false, + }, + [anon_sym_RBRACE] = { + .visible = true, + .named = false, + }, + [anon_sym_COMMA] = { + .visible = true, + .named = false, + }, + [anon_sym_COLON] = { + .visible = true, + .named = false, + }, + [sym_constant_int] = { + .visible = true, + .named = true, + }, + [sym_constant_float] = { + .visible = true, + .named = true, + }, + [sym_string_quote] = { + .visible = true, + .named = true, + }, + [sym_string_content] = { + .visible = true, + .named = true, + }, + [anon_sym_DOLLAR] = { + .visible = true, + .named = false, + }, + [anon_sym_SQUOTE] = { + .visible = true, + .named = false, + }, + [aux_sym_constant_char_token1] = { + .visible = false, + .named = false, + }, + [anon_sym_true] = { + .visible = true, + .named = false, + }, + [anon_sym_false] = { + .visible = true, + .named = false, + }, + [anon_sym_LPAREN] = { + .visible = true, + .named = false, + }, + [anon_sym_RPAREN] = { + .visible = true, + .named = false, + }, + [anon_sym_def] = { + .visible = true, + .named = false, + }, + [anon_sym_LBRACK] = { + .visible = true, + .named = false, + }, + [anon_sym_RBRACK] = { + .visible = true, + .named = false, + }, + [anon_sym_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_SEMI] = { + .visible = true, + .named = false, + }, + [anon_sym_type] = { + .visible = true, + .named = false, + }, + [anon_sym_enum] = { + .visible = true, + .named = false, + }, + [anon_sym_val] = { + .visible = true, + .named = false, + }, + [anon_sym_var] = { + .visible = true, + .named = false, + }, + [anon_sym_DASH_DASH_DASH] = { + .visible = true, + .named = false, + }, + [anon_sym_rust] = { + .visible = true, + .named = false, + }, + [anon_sym_python] = { + .visible = true, + .named = false, + }, + [aux_sym_code_token1] = { + .visible = false, + .named = false, + }, + [anon_sym_fun] = { + .visible = true, + .named = false, + }, + [anon_sym_AMP] = { + .visible = true, + .named = false, + }, + [anon_sym_PLUS_PLUS] = { + .visible = true, + .named = false, + }, + [sym_type_never] = { + .visible = true, + .named = true, + }, + [anon_sym__] = { + .visible = true, + .named = false, + }, + [anon_sym_or] = { + .visible = true, + .named = false, + }, + [anon_sym_DOT] = { + .visible = true, + .named = false, + }, + [anon_sym_return] = { + .visible = true, + .named = false, + }, + [anon_sym_break] = { + .visible = true, + .named = false, + }, + [anon_sym_continue] = { + .visible = true, + .named = false, + }, + [anon_sym_throw] = { + .visible = true, + .named = false, + }, + [aux_sym__rust_token1] = { + .visible = false, + .named = false, + }, + [anon_sym_from] = { + .visible = true, + .named = false, + }, + [anon_sym_in] = { + .visible = true, + .named = false, + }, + [anon_sym_where] = { + .visible = true, + .named = false, + }, + [anon_sym_join] = { + .visible = true, + .named = false, + }, + [anon_sym_on] = { + .visible = true, + .named = false, + }, + [anon_sym_union] = { + .visible = true, + .named = false, + }, + [anon_sym_group] = { + .visible = true, + .named = false, + }, + [anon_sym_over] = { + .visible = true, + .named = false, + }, + [anon_sym_roll] = { + .visible = true, + .named = false, + }, + [anon_sym_compute] = { + .visible = true, + .named = false, + }, + [anon_sym_select] = { + .visible = true, + .named = false, + }, + [anon_sym_with] = { + .visible = true, + .named = false, + }, + [anon_sym_into] = { + .visible = true, + .named = false, + }, + [anon_sym_order] = { + .visible = true, + .named = false, + }, + [anon_sym_desc] = { + .visible = true, + .named = false, + }, + [anon_sym_as] = { + .visible = true, + .named = false, + }, + [anon_sym_of] = { + .visible = true, + .named = false, + }, + [anon_sym_PLUS_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_DASH_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_STAR_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_SLASH_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_DOT_DOT] = { + .visible = true, + .named = false, + }, + [anon_sym_DOT_DOT_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_and] = { + .visible = true, + .named = false, + }, + [anon_sym_EQ_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_BANG_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_LT] = { + .visible = true, + .named = false, + }, + [anon_sym_GT] = { + .visible = true, + .named = false, + }, + [anon_sym_LT_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_GT_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_PLUS] = { + .visible = true, + .named = false, + }, + [anon_sym_DASH] = { + .visible = true, + .named = false, + }, + [anon_sym_STAR] = { + .visible = true, + .named = false, + }, + [anon_sym_SLASH] = { + .visible = true, + .named = false, + }, + [anon_sym_not] = { + .visible = true, + .named = false, + }, + [anon_sym_COLON_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_do] = { + .visible = true, + .named = false, + }, + [anon_sym_if] = { + .visible = true, + .named = false, + }, + [anon_sym_else] = { + .visible = true, + .named = false, + }, + [anon_sym_match] = { + .visible = true, + .named = false, + }, + [anon_sym_loop] = { + .visible = true, + .named = false, + }, + [anon_sym_while] = { + .visible = true, + .named = false, + }, + [anon_sym_for] = { + .visible = true, + .named = false, + }, + [anon_sym_try] = { + .visible = true, + .named = false, + }, + [anon_sym_catch] = { + .visible = true, + .named = false, + }, + [anon_sym_finally] = { + .visible = true, + .named = false, + }, + [anon_sym_EQ_GT] = { + .visible = true, + .named = false, + }, + [sym_program] = { + .visible = true, + .named = true, + }, + [sym_meta] = { + .visible = true, + .named = true, + }, + [sym__attributes] = { + .visible = false, + .named = true, + }, + [sym_attribute] = { + .visible = true, + .named = true, + }, + [sym__constant] = { + .visible = false, + .named = true, + }, + [sym_constant_string] = { + .visible = true, + .named = true, + }, + [sym_string_interpolation] = { + .visible = true, + .named = true, + }, + [sym_constant_char] = { + .visible = true, + .named = true, + }, + [sym_constant_bool] = { + .visible = true, + .named = true, + }, + [sym_constant_unit] = { + .visible = true, + .named = true, + }, + [aux_sym__stmts] = { + .visible = false, + .named = false, + }, + [sym__stmt] = { + .visible = false, + .named = true, + }, + [sym_stmt_def] = { + .visible = true, + .named = true, + }, + [sym_stmt_type] = { + .visible = true, + .named = true, + }, + [sym_stmt_enum] = { + .visible = true, + .named = true, + }, + [sym_stmt_val] = { + .visible = true, + .named = true, + }, + [sym_stmt_var] = { + .visible = true, + .named = true, + }, + [sym_stmt_expr] = { + .visible = true, + .named = true, + }, + [sym_stmt_code] = { + .visible = true, + .named = true, + }, + [sym_code] = { + .visible = true, + .named = true, + }, + [sym__stmt_noop] = { + .visible = false, + .named = true, + }, + [sym__types] = { + .visible = false, + .named = true, + }, + [sym__type] = { + .visible = false, + .named = true, + }, + [sym_type_fun] = { + .visible = true, + .named = true, + }, + [sym_type_record_concat] = { + .visible = true, + .named = true, + }, + [sym_type_array_concat] = { + .visible = true, + .named = true, + }, + [sym_type_paren] = { + .visible = true, + .named = true, + }, + [sym_type_nominal] = { + .visible = true, + .named = true, + }, + [sym_type_name] = { + .visible = true, + .named = true, + }, + [sym_type_tuple] = { + .visible = true, + .named = true, + }, + [sym_type_record] = { + .visible = true, + .named = true, + }, + [sym_type_array] = { + .visible = true, + .named = true, + }, + [sym_type_unit] = { + .visible = true, + .named = true, + }, + [sym_type_wild] = { + .visible = true, + .named = true, + }, + [sym__type_fields] = { + .visible = false, + .named = true, + }, + [sym_type_field] = { + .visible = true, + .named = true, + }, + [sym_generic] = { + .visible = true, + .named = true, + }, + [sym__generics] = { + .visible = false, + .named = true, + }, + [sym__patterns] = { + .visible = false, + .named = true, + }, + [sym__pattern_fields] = { + .visible = false, + .named = true, + }, + [sym_pattern_field] = { + .visible = true, + .named = true, + }, + [sym__pattern] = { + .visible = false, + .named = true, + }, + [sym_pattern_annot] = { + .visible = true, + .named = true, + }, + [sym_pattern_or] = { + .visible = true, + .named = true, + }, + [sym_pattern_record_concat] = { + .visible = true, + .named = true, + }, + [sym_pattern_array_concat] = { + .visible = true, + .named = true, + }, + [sym_pattern_paren] = { + .visible = true, + .named = true, + }, + [sym_pattern_constant] = { + .visible = true, + .named = true, + }, + [sym_pattern_name] = { + .visible = true, + .named = true, + }, + [sym_pattern_variant] = { + .visible = true, + .named = true, + }, + [sym_pattern_tuple] = { + .visible = true, + .named = true, + }, + [sym_pattern_record] = { + .visible = true, + .named = true, + }, + [sym_pattern_array] = { + .visible = true, + .named = true, + }, + [sym_pattern_wild] = { + .visible = true, + .named = true, + }, + [sym_variant_name] = { + .visible = true, + .named = true, + }, + [sym__exprs] = { + .visible = false, + .named = true, + }, + [sym__expr_fields] = { + .visible = false, + .named = true, + }, + [sym_expr_field] = { + .visible = true, + .named = true, + }, + [sym_expr_field_expr] = { + .visible = true, + .named = true, + }, + [sym_expr_field_name] = { + .visible = true, + .named = true, + }, + [sym__expr] = { + .visible = false, + .named = true, + }, + [sym_expr_return] = { + .visible = true, + .named = true, + }, + [sym_expr_break] = { + .visible = true, + .named = true, + }, + [sym_expr_continue] = { + .visible = true, + .named = true, + }, + [sym_expr_throw] = { + .visible = true, + .named = true, + }, + [sym_expr_query] = { + .visible = true, + .named = true, + }, + [sym_expr_rust] = { + .visible = true, + .named = true, + }, + [sym_rust] = { + .visible = true, + .named = true, + }, + [sym__rust] = { + .visible = false, + .named = true, + }, + [aux_sym__query_stmts] = { + .visible = false, + .named = false, + }, + [sym__query_stmt] = { + .visible = false, + .named = true, + }, + [sym_query_from] = { + .visible = true, + .named = true, + }, + [sym_query_where] = { + .visible = true, + .named = true, + }, + [sym_query_join] = { + .visible = true, + .named = true, + }, + [sym_query_union] = { + .visible = true, + .named = true, + }, + [sym_query_group] = { + .visible = true, + .named = true, + }, + [sym_query_over] = { + .visible = true, + .named = true, + }, + [sym_query_roll] = { + .visible = true, + .named = true, + }, + [sym_query_compute] = { + .visible = true, + .named = true, + }, + [sym_query_select] = { + .visible = true, + .named = true, + }, + [sym_query_val] = { + .visible = true, + .named = true, + }, + [sym_query_into] = { + .visible = true, + .named = true, + }, + [sym_query_order] = { + .visible = true, + .named = true, + }, + [sym__as] = { + .visible = false, + .named = true, + }, + [sym__of] = { + .visible = false, + .named = true, + }, + [sym_expr_fun] = { + .visible = true, + .named = true, + }, + [sym_expr_binary] = { + .visible = true, + .named = true, + }, + [sym_expr_annot] = { + .visible = true, + .named = true, + }, + [sym_expr_call] = { + .visible = true, + .named = true, + }, + [sym_expr_tuple_access] = { + .visible = true, + .named = true, + }, + [sym_expr_record_access] = { + .visible = true, + .named = true, + }, + [sym_expr_array_access] = { + .visible = true, + .named = true, + }, + [sym_expr_method_call] = { + .visible = true, + .named = true, + }, + [sym_expr_paren] = { + .visible = true, + .named = true, + }, + [sym_expr_constant] = { + .visible = true, + .named = true, + }, + [sym_expr_name] = { + .visible = true, + .named = true, + }, + [sym_expr_array] = { + .visible = true, + .named = true, + }, + [sym_expr_tuple] = { + .visible = true, + .named = true, + }, + [sym_expr_record] = { + .visible = true, + .named = true, + }, + [sym_expr_do] = { + .visible = true, + .named = true, + }, + [sym_expr_if] = { + .visible = true, + .named = true, + }, + [sym_expr_match] = { + .visible = true, + .named = true, + }, + [sym_expr_loop] = { + .visible = true, + .named = true, + }, + [sym_expr_while] = { + .visible = true, + .named = true, + }, + [sym_expr_for] = { + .visible = true, + .named = true, + }, + [sym_expr_try] = { + .visible = true, + .named = true, + }, + [sym_block] = { + .visible = true, + .named = true, + }, + [sym__arms] = { + .visible = false, + .named = true, + }, + [sym_arm] = { + .visible = true, + .named = true, + }, + [aux_sym__attributes_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_constant_string_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_stmt_enum_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_code_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym__types_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym__type_fields_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym__generics_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym__patterns_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym__pattern_fields_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym__exprs_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym__expr_fields_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym__rust_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym__arms_repeat1] = { + .visible = false, + .named = false, + }, +}; + +enum { + field_arm = 1, + field_code = 2, + field_function = 3, + field_inner = 4, + field_lang = 5, + field_name = 6, + field_variant = 7, +}; + +static const char * const ts_field_names[] = { + [0] = NULL, + [field_arm] = "arm", + [field_code] = "code", + [field_function] = "function", + [field_inner] = "inner", + [field_lang] = "lang", + [field_name] = "name", + [field_variant] = "variant", +}; + +static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { + [1] = {.index = 0, .length = 1}, + [2] = {.index = 1, .length = 1}, + [3] = {.index = 2, .length = 1}, + [4] = {.index = 3, .length = 3}, + [5] = {.index = 6, .length = 2}, + [6] = {.index = 8, .length = 4}, + [7] = {.index = 12, .length = 5}, + [8] = {.index = 17, .length = 2}, + [9] = {.index = 19, .length = 3}, + [10] = {.index = 22, .length = 1}, + [11] = {.index = 23, .length = 5}, + [12] = {.index = 28, .length = 3}, + [13] = {.index = 31, .length = 3}, + [14] = {.index = 34, .length = 4}, + [15] = {.index = 38, .length = 5}, + [16] = {.index = 43, .length = 6}, + [17] = {.index = 49, .length = 4}, + [18] = {.index = 53, .length = 7}, + [19] = {.index = 60, .length = 5}, + [20] = {.index = 65, .length = 7}, + [21] = {.index = 72, .length = 8}, + [22] = {.index = 80, .length = 6}, + [23] = {.index = 86, .length = 7}, + [24] = {.index = 93, .length = 8}, + [25] = {.index = 101, .length = 7}, + [26] = {.index = 108, .length = 8}, + [27] = {.index = 116, .length = 9}, + [28] = {.index = 125, .length = 8}, + [29] = {.index = 133, .length = 10}, + [30] = {.index = 143, .length = 9}, + [31] = {.index = 152, .length = 11}, + [32] = {.index = 163, .length = 10}, + [33] = {.index = 173, .length = 12}, + [34] = {.index = 185, .length = 11}, + [35] = {.index = 196, .length = 12}, +}; + +static const TSFieldMapEntry ts_field_map_entries[] = { + [0] = + {field_lang, 1}, + [1] = + {field_function, 0}, + [2] = + {field_variant, 0}, + [3] = + {field_inner, 2}, + {field_inner, 3}, + {field_name, 1}, + [6] = + {field_code, 2}, + {field_lang, 1}, + [8] = + {field_inner, 2}, + {field_inner, 3}, + {field_inner, 4}, + {field_name, 1}, + [12] = + {field_inner, 2}, + {field_inner, 3}, + {field_inner, 4}, + {field_name, 1}, + {field_variant, 3, .inherited = true}, + [17] = + {field_variant, 0, .inherited = true}, + {field_variant, 1, .inherited = true}, + [19] = + {field_inner, 3}, + {field_inner, 4}, + {field_name, 2}, + [22] = + {field_name, 2}, + [23] = + {field_inner, 2}, + {field_inner, 3}, + {field_inner, 4}, + {field_inner, 5}, + {field_name, 1}, + [28] = + {field_variant, 0}, + {field_variant, 1}, + {field_variant, 2}, + [31] = + {field_arm, 0}, + {field_arm, 1}, + {field_arm, 2}, + [34] = + {field_inner, 3}, + {field_inner, 4}, + {field_inner, 5}, + {field_name, 2}, + [38] = + {field_inner, 3}, + {field_inner, 4}, + {field_inner, 5}, + {field_name, 2}, + {field_variant, 4, .inherited = true}, + [43] = + {field_inner, 2}, + {field_inner, 3}, + {field_inner, 4}, + {field_inner, 5}, + {field_inner, 6}, + {field_name, 1}, + [49] = + {field_variant, 0}, + {field_variant, 1}, + {field_variant, 2}, + {field_variant, 3}, + [53] = + {field_inner, 2}, + {field_inner, 3}, + {field_inner, 4}, + {field_inner, 5}, + {field_inner, 6}, + {field_name, 1}, + {field_variant, 5, .inherited = true}, + [60] = + {field_inner, 3}, + {field_inner, 4}, + {field_inner, 5}, + {field_inner, 6}, + {field_name, 2}, + [65] = + {field_inner, 2}, + {field_inner, 3}, + {field_inner, 4}, + {field_inner, 5}, + {field_inner, 6}, + {field_inner, 7}, + {field_name, 1}, + [72] = + {field_inner, 2}, + {field_inner, 3}, + {field_inner, 4}, + {field_inner, 5}, + {field_inner, 6}, + {field_inner, 7}, + {field_name, 1}, + {field_variant, 6, .inherited = true}, + [80] = + {field_inner, 3}, + {field_inner, 4}, + {field_inner, 5}, + {field_inner, 6}, + {field_inner, 7}, + {field_name, 2}, + [86] = + {field_inner, 3}, + {field_inner, 4}, + {field_inner, 5}, + {field_inner, 6}, + {field_inner, 7}, + {field_name, 2}, + {field_variant, 6, .inherited = true}, + [93] = + {field_inner, 2}, + {field_inner, 3}, + {field_inner, 4}, + {field_inner, 5}, + {field_inner, 6}, + {field_inner, 7}, + {field_inner, 8}, + {field_name, 1}, + [101] = + {field_inner, 3}, + {field_inner, 4}, + {field_inner, 5}, + {field_inner, 6}, + {field_inner, 7}, + {field_inner, 8}, + {field_name, 2}, + [108] = + {field_inner, 3}, + {field_inner, 4}, + {field_inner, 5}, + {field_inner, 6}, + {field_inner, 7}, + {field_inner, 8}, + {field_name, 2}, + {field_variant, 7, .inherited = true}, + [116] = + {field_inner, 2}, + {field_inner, 3}, + {field_inner, 4}, + {field_inner, 5}, + {field_inner, 6}, + {field_inner, 7}, + {field_inner, 8}, + {field_inner, 9}, + {field_name, 1}, + [125] = + {field_inner, 3}, + {field_inner, 4}, + {field_inner, 5}, + {field_inner, 6}, + {field_inner, 7}, + {field_inner, 8}, + {field_inner, 9}, + {field_name, 2}, + [133] = + {field_inner, 2}, + {field_inner, 3}, + {field_inner, 4}, + {field_inner, 5}, + {field_inner, 6}, + {field_inner, 7}, + {field_inner, 8}, + {field_inner, 9}, + {field_inner, 10}, + {field_name, 1}, + [143] = + {field_inner, 3}, + {field_inner, 4}, + {field_inner, 5}, + {field_inner, 6}, + {field_inner, 7}, + {field_inner, 8}, + {field_inner, 9}, + {field_inner, 10}, + {field_name, 2}, + [152] = + {field_inner, 2}, + {field_inner, 3}, + {field_inner, 4}, + {field_inner, 5}, + {field_inner, 6}, + {field_inner, 7}, + {field_inner, 8}, + {field_inner, 9}, + {field_inner, 10}, + {field_inner, 11}, + {field_name, 1}, + [163] = + {field_inner, 3}, + {field_inner, 4}, + {field_inner, 5}, + {field_inner, 6}, + {field_inner, 7}, + {field_inner, 8}, + {field_inner, 9}, + {field_inner, 10}, + {field_inner, 11}, + {field_name, 2}, + [173] = + {field_inner, 2}, + {field_inner, 3}, + {field_inner, 4}, + {field_inner, 5}, + {field_inner, 6}, + {field_inner, 7}, + {field_inner, 8}, + {field_inner, 9}, + {field_inner, 10}, + {field_inner, 11}, + {field_inner, 12}, + {field_name, 1}, + [185] = + {field_inner, 3}, + {field_inner, 4}, + {field_inner, 5}, + {field_inner, 6}, + {field_inner, 7}, + {field_inner, 8}, + {field_inner, 9}, + {field_inner, 10}, + {field_inner, 11}, + {field_inner, 12}, + {field_name, 2}, + [196] = + {field_inner, 3}, + {field_inner, 4}, + {field_inner, 5}, + {field_inner, 6}, + {field_inner, 7}, + {field_inner, 8}, + {field_inner, 9}, + {field_inner, 10}, + {field_inner, 11}, + {field_inner, 12}, + {field_inner, 13}, + {field_name, 2}, +}; + +static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { + [0] = {0}, +}; + +static const uint16_t ts_non_terminal_alias_map[] = { + 0, +}; + +static const TSStateId ts_primary_state_ids[STATE_COUNT] = { + [0] = 0, + [1] = 1, + [2] = 2, + [3] = 3, + [4] = 2, + [5] = 3, + [6] = 2, + [7] = 3, + [8] = 2, + [9] = 3, + [10] = 2, + [11] = 3, + [12] = 3, + [13] = 2, + [14] = 2, + [15] = 3, + [16] = 3, + [17] = 2, + [18] = 2, + [19] = 3, + [20] = 2, + [21] = 3, + [22] = 3, + [23] = 2, + [24] = 3, + [25] = 2, + [26] = 2, + [27] = 3, + [28] = 2, + [29] = 3, + [30] = 2, + [31] = 3, + [32] = 32, + [33] = 33, + [34] = 34, + [35] = 33, + [36] = 34, + [37] = 34, + [38] = 33, + [39] = 39, + [40] = 33, + [41] = 34, + [42] = 42, + [43] = 42, + [44] = 44, + [45] = 45, + [46] = 46, + [47] = 47, + [48] = 48, + [49] = 47, + [50] = 50, + [51] = 45, + [52] = 48, + [53] = 53, + [54] = 46, + [55] = 53, + [56] = 50, + [57] = 57, + [58] = 57, + [59] = 59, + [60] = 60, + [61] = 61, + [62] = 62, + [63] = 63, + [64] = 64, + [65] = 65, + [66] = 66, + [67] = 67, + [68] = 68, + [69] = 69, + [70] = 70, + [71] = 71, + [72] = 64, + [73] = 65, + [74] = 74, + [75] = 66, + [76] = 76, + [77] = 77, + [78] = 67, + [79] = 68, + [80] = 69, + [81] = 77, + [82] = 82, + [83] = 83, + [84] = 62, + [85] = 85, + [86] = 86, + [87] = 86, + [88] = 77, + [89] = 74, + [90] = 76, + [91] = 91, + [92] = 68, + [93] = 82, + [94] = 67, + [95] = 83, + [96] = 66, + [97] = 65, + [98] = 64, + [99] = 71, + [100] = 70, + [101] = 62, + [102] = 85, + [103] = 85, + [104] = 62, + [105] = 105, + [106] = 106, + [107] = 107, + [108] = 108, + [109] = 86, + [110] = 110, + [111] = 83, + [112] = 112, + [113] = 113, + [114] = 63, + [115] = 70, + [116] = 71, + [117] = 64, + [118] = 118, + [119] = 65, + [120] = 66, + [121] = 67, + [122] = 68, + [123] = 69, + [124] = 74, + [125] = 125, + [126] = 76, + [127] = 77, + [128] = 128, + [129] = 82, + [130] = 83, + [131] = 62, + [132] = 85, + [133] = 112, + [134] = 86, + [135] = 112, + [136] = 86, + [137] = 137, + [138] = 74, + [139] = 76, + [140] = 140, + [141] = 82, + [142] = 112, + [143] = 143, + [144] = 83, + [145] = 62, + [146] = 85, + [147] = 110, + [148] = 63, + [149] = 149, + [150] = 70, + [151] = 71, + [152] = 64, + [153] = 65, + [154] = 66, + [155] = 67, + [156] = 82, + [157] = 68, + [158] = 83, + [159] = 69, + [160] = 70, + [161] = 63, + [162] = 74, + [163] = 163, + [164] = 70, + [165] = 140, + [166] = 77, + [167] = 82, + [168] = 112, + [169] = 83, + [170] = 62, + [171] = 85, + [172] = 110, + [173] = 71, + [174] = 110, + [175] = 70, + [176] = 71, + [177] = 64, + [178] = 65, + [179] = 66, + [180] = 67, + [181] = 68, + [182] = 69, + [183] = 85, + [184] = 62, + [185] = 108, + [186] = 107, + [187] = 108, + [188] = 107, + [189] = 112, + [190] = 86, + [191] = 108, + [192] = 107, + [193] = 112, + [194] = 194, + [195] = 195, + [196] = 86, + [197] = 108, + [198] = 107, + [199] = 199, + [200] = 200, + [201] = 77, + [202] = 74, + [203] = 76, + [204] = 82, + [205] = 112, + [206] = 83, + [207] = 86, + [208] = 108, + [209] = 107, + [210] = 62, + [211] = 85, + [212] = 110, + [213] = 63, + [214] = 70, + [215] = 71, + [216] = 64, + [217] = 65, + [218] = 66, + [219] = 67, + [220] = 68, + [221] = 69, + [222] = 83, + [223] = 82, + [224] = 63, + [225] = 225, + [226] = 110, + [227] = 63, + [228] = 228, + [229] = 70, + [230] = 71, + [231] = 64, + [232] = 65, + [233] = 66, + [234] = 67, + [235] = 68, + [236] = 69, + [237] = 76, + [238] = 74, + [239] = 74, + [240] = 76, + [241] = 77, + [242] = 110, + [243] = 77, + [244] = 244, + [245] = 245, + [246] = 82, + [247] = 112, + [248] = 83, + [249] = 86, + [250] = 108, + [251] = 107, + [252] = 106, + [253] = 105, + [254] = 62, + [255] = 85, + [256] = 69, + [257] = 59, + [258] = 68, + [259] = 85, + [260] = 60, + [261] = 67, + [262] = 62, + [263] = 66, + [264] = 65, + [265] = 110, + [266] = 64, + [267] = 71, + [268] = 70, + [269] = 63, + [270] = 110, + [271] = 271, + [272] = 63, + [273] = 110, + [274] = 74, + [275] = 77, + [276] = 74, + [277] = 76, + [278] = 69, + [279] = 279, + [280] = 70, + [281] = 71, + [282] = 77, + [283] = 64, + [284] = 65, + [285] = 66, + [286] = 67, + [287] = 140, + [288] = 68, + [289] = 67, + [290] = 66, + [291] = 65, + [292] = 64, + [293] = 76, + [294] = 71, + [295] = 68, + [296] = 69, + [297] = 82, + [298] = 77, + [299] = 70, + [300] = 63, + [301] = 301, + [302] = 110, + [303] = 63, + [304] = 76, + [305] = 71, + [306] = 64, + [307] = 65, + [308] = 66, + [309] = 67, + [310] = 68, + [311] = 69, + [312] = 76, + [313] = 74, + [314] = 110, + [315] = 82, + [316] = 110, + [317] = 63, + [318] = 70, + [319] = 71, + [320] = 64, + [321] = 65, + [322] = 66, + [323] = 67, + [324] = 68, + [325] = 69, + [326] = 83, + [327] = 69, + [328] = 63, + [329] = 62, + [330] = 85, + [331] = 110, + [332] = 332, + [333] = 110, + [334] = 63, + [335] = 70, + [336] = 71, + [337] = 64, + [338] = 65, + [339] = 66, + [340] = 67, + [341] = 68, + [342] = 69, + [343] = 68, + [344] = 67, + [345] = 59, + [346] = 163, + [347] = 91, + [348] = 85, + [349] = 349, + [350] = 279, + [351] = 107, + [352] = 61, + [353] = 66, + [354] = 108, + [355] = 86, + [356] = 356, + [357] = 108, + [358] = 107, + [359] = 83, + [360] = 108, + [361] = 107, + [362] = 112, + [363] = 112, + [364] = 86, + [365] = 108, + [366] = 107, + [367] = 61, + [368] = 65, + [369] = 112, + [370] = 69, + [371] = 86, + [372] = 82, + [373] = 108, + [374] = 63, + [375] = 107, + [376] = 64, + [377] = 70, + [378] = 140, + [379] = 76, + [380] = 76, + [381] = 77, + [382] = 349, + [383] = 383, + [384] = 74, + [385] = 112, + [386] = 86, + [387] = 108, + [388] = 107, + [389] = 71, + [390] = 245, + [391] = 60, + [392] = 60, + [393] = 60, + [394] = 59, + [395] = 59, + [396] = 61, + [397] = 61, + [398] = 61, + [399] = 59, + [400] = 60, + [401] = 59, + [402] = 60, + [403] = 60, + [404] = 61, + [405] = 59, + [406] = 59, + [407] = 60, + [408] = 59, + [409] = 60, + [410] = 61, + [411] = 61, + [412] = 60, + [413] = 60, + [414] = 59, + [415] = 61, + [416] = 59, + [417] = 59, + [418] = 60, + [419] = 61, + [420] = 60, + [421] = 59, + [422] = 59, + [423] = 60, + [424] = 61, + [425] = 425, + [426] = 426, + [427] = 427, + [428] = 428, + [429] = 429, + [430] = 430, + [431] = 431, + [432] = 432, + [433] = 433, + [434] = 434, + [435] = 435, + [436] = 436, + [437] = 437, + [438] = 438, + [439] = 439, + [440] = 440, + [441] = 441, + [442] = 442, + [443] = 443, + [444] = 444, + [445] = 445, + [446] = 446, + [447] = 447, + [448] = 442, + [449] = 449, + [450] = 450, + [451] = 451, + [452] = 452, + [453] = 453, + [454] = 454, + [455] = 455, + [456] = 442, + [457] = 446, + [458] = 446, + [459] = 459, + [460] = 460, + [461] = 442, + [462] = 462, + [463] = 463, + [464] = 464, + [465] = 465, + [466] = 466, + [467] = 467, + [468] = 468, + [469] = 469, + [470] = 450, + [471] = 471, + [472] = 446, + [473] = 473, + [474] = 474, + [475] = 454, + [476] = 476, + [477] = 477, + [478] = 478, + [479] = 479, + [480] = 480, + [481] = 455, + [482] = 482, + [483] = 483, + [484] = 484, + [485] = 485, + [486] = 486, + [487] = 487, + [488] = 488, + [489] = 489, + [490] = 490, + [491] = 491, + [492] = 492, + [493] = 493, + [494] = 494, + [495] = 495, + [496] = 496, + [497] = 497, + [498] = 498, + [499] = 499, + [500] = 453, + [501] = 501, + [502] = 502, + [503] = 451, + [504] = 446, + [505] = 505, + [506] = 506, + [507] = 507, + [508] = 442, + [509] = 509, + [510] = 510, + [511] = 511, + [512] = 443, + [513] = 513, + [514] = 446, + [515] = 442, + [516] = 516, + [517] = 517, + [518] = 444, + [519] = 519, + [520] = 520, + [521] = 521, + [522] = 522, + [523] = 523, + [524] = 524, + [525] = 525, + [526] = 526, + [527] = 527, + [528] = 516, + [529] = 529, + [530] = 530, + [531] = 531, + [532] = 532, + [533] = 533, + [534] = 534, + [535] = 535, + [536] = 516, + [537] = 537, + [538] = 538, + [539] = 539, + [540] = 540, + [541] = 541, + [542] = 542, + [543] = 543, + [544] = 544, + [545] = 545, + [546] = 530, + [547] = 516, + [548] = 548, + [549] = 533, + [550] = 539, + [551] = 529, + [552] = 530, + [553] = 530, + [554] = 545, + [555] = 544, + [556] = 527, + [557] = 542, + [558] = 534, + [559] = 532, + [560] = 531, + [561] = 516, + [562] = 516, + [563] = 541, + [564] = 531, + [565] = 532, + [566] = 533, + [567] = 534, + [568] = 542, + [569] = 540, + [570] = 527, + [571] = 539, + [572] = 537, + [573] = 544, + [574] = 545, + [575] = 543, + [576] = 529, + [577] = 526, + [578] = 535, + [579] = 548, + [580] = 538, + [581] = 537, + [582] = 543, + [583] = 526, + [584] = 535, + [585] = 548, + [586] = 538, + [587] = 541, + [588] = 540, + [589] = 537, + [590] = 540, + [591] = 543, + [592] = 538, + [593] = 538, + [594] = 548, + [595] = 535, + [596] = 537, + [597] = 526, + [598] = 543, + [599] = 539, + [600] = 540, + [601] = 541, + [602] = 539, + [603] = 541, + [604] = 530, + [605] = 545, + [606] = 530, + [607] = 529, + [608] = 544, + [609] = 526, + [610] = 535, + [611] = 548, + [612] = 531, + [613] = 532, + [614] = 531, + [615] = 532, + [616] = 533, + [617] = 534, + [618] = 542, + [619] = 527, + [620] = 544, + [621] = 545, + [622] = 533, + [623] = 534, + [624] = 527, + [625] = 542, + [626] = 541, + [627] = 535, + [628] = 533, + [629] = 526, + [630] = 527, + [631] = 537, + [632] = 532, + [633] = 542, + [634] = 534, + [635] = 544, + [636] = 446, + [637] = 543, + [638] = 539, + [639] = 548, + [640] = 531, + [641] = 540, + [642] = 538, + [643] = 545, + [644] = 442, + [645] = 446, + [646] = 442, + [647] = 446, + [648] = 442, + [649] = 446, + [650] = 442, + [651] = 442, + [652] = 442, + [653] = 516, + [654] = 446, + [655] = 446, + [656] = 446, + [657] = 442, + [658] = 530, + [659] = 529, + [660] = 538, + [661] = 548, + [662] = 535, + [663] = 530, + [664] = 516, + [665] = 516, + [666] = 531, + [667] = 532, + [668] = 533, + [669] = 526, + [670] = 534, + [671] = 542, + [672] = 527, + [673] = 544, + [674] = 543, + [675] = 545, + [676] = 539, + [677] = 540, + [678] = 541, + [679] = 516, + [680] = 537, + [681] = 534, + [682] = 516, + [683] = 537, + [684] = 543, + [685] = 526, + [686] = 535, + [687] = 548, + [688] = 538, + [689] = 529, + [690] = 530, + [691] = 529, + [692] = 530, + [693] = 541, + [694] = 540, + [695] = 539, + [696] = 545, + [697] = 544, + [698] = 527, + [699] = 542, + [700] = 516, + [701] = 534, + [702] = 533, + [703] = 538, + [704] = 548, + [705] = 532, + [706] = 535, + [707] = 531, + [708] = 526, + [709] = 543, + [710] = 537, + [711] = 516, + [712] = 531, + [713] = 532, + [714] = 533, + [715] = 542, + [716] = 527, + [717] = 544, + [718] = 545, + [719] = 539, + [720] = 541, + [721] = 540, + [722] = 543, + [723] = 526, + [724] = 543, + [725] = 526, + [726] = 535, + [727] = 548, + [728] = 538, + [729] = 533, + [730] = 532, + [731] = 531, + [732] = 531, + [733] = 530, + [734] = 542, + [735] = 541, + [736] = 540, + [737] = 534, + [738] = 542, + [739] = 527, + [740] = 544, + [741] = 545, + [742] = 539, + [743] = 537, + [744] = 529, + [745] = 540, + [746] = 541, + [747] = 544, + [748] = 530, + [749] = 530, + [750] = 535, + [751] = 548, + [752] = 538, + [753] = 534, + [754] = 545, + [755] = 533, + [756] = 527, + [757] = 539, + [758] = 532, + [759] = 537, + [760] = 531, + [761] = 541, + [762] = 539, + [763] = 544, + [764] = 545, + [765] = 527, + [766] = 537, + [767] = 526, + [768] = 542, + [769] = 534, + [770] = 533, + [771] = 543, + [772] = 538, + [773] = 532, + [774] = 535, + [775] = 548, + [776] = 543, + [777] = 540, + [778] = 439, + [779] = 428, + [780] = 440, + [781] = 433, + [782] = 432, + [783] = 479, + [784] = 426, + [785] = 427, + [786] = 431, + [787] = 429, + [788] = 430, + [789] = 438, + [790] = 425, + [791] = 480, + [792] = 521, + [793] = 520, + [794] = 441, + [795] = 517, + [796] = 796, + [797] = 797, + [798] = 798, + [799] = 799, + [800] = 800, + [801] = 436, + [802] = 434, + [803] = 447, + [804] = 449, + [805] = 445, + [806] = 806, + [807] = 445, + [808] = 808, + [809] = 809, + [810] = 810, + [811] = 811, + [812] = 812, + [813] = 813, + [814] = 449, + [815] = 815, + [816] = 816, + [817] = 817, + [818] = 818, + [819] = 819, + [820] = 435, + [821] = 821, + [822] = 822, + [823] = 823, + [824] = 824, + [825] = 825, + [826] = 826, + [827] = 827, + [828] = 828, + [829] = 437, + [830] = 830, + [831] = 831, + [832] = 832, + [833] = 833, + [834] = 447, + [835] = 835, + [836] = 836, + [837] = 837, + [838] = 838, + [839] = 839, + [840] = 840, + [841] = 841, + [842] = 842, + [843] = 843, + [844] = 844, + [845] = 845, + [846] = 846, + [847] = 452, + [848] = 848, + [849] = 848, + [850] = 850, + [851] = 493, + [852] = 469, + [853] = 853, + [854] = 463, + [855] = 855, + [856] = 856, + [857] = 459, + [858] = 507, + [859] = 465, + [860] = 478, + [861] = 523, + [862] = 484, + [863] = 468, + [864] = 506, + [865] = 464, + [866] = 866, + [867] = 473, + [868] = 499, + [869] = 498, + [870] = 488, + [871] = 871, + [872] = 460, + [873] = 489, + [874] = 466, + [875] = 495, + [876] = 510, + [877] = 494, + [878] = 496, + [879] = 879, + [880] = 880, + [881] = 881, + [882] = 477, + [883] = 505, + [884] = 884, + [885] = 467, + [886] = 485, + [887] = 462, + [888] = 490, + [889] = 866, + [890] = 491, + [891] = 519, + [892] = 482, + [893] = 492, + [894] = 511, + [895] = 522, + [896] = 525, + [897] = 897, + [898] = 897, + [899] = 897, + [900] = 897, + [901] = 897, + [902] = 897, + [903] = 897, + [904] = 897, + [905] = 897, + [906] = 906, + [907] = 897, + [908] = 897, + [909] = 897, + [910] = 897, + [911] = 897, + [912] = 897, + [913] = 913, + [914] = 914, + [915] = 915, + [916] = 915, + [917] = 917, + [918] = 918, + [919] = 914, + [920] = 920, + [921] = 921, + [922] = 921, + [923] = 914, + [924] = 914, + [925] = 921, + [926] = 921, + [927] = 914, + [928] = 921, + [929] = 915, + [930] = 542, + [931] = 914, + [932] = 915, + [933] = 920, + [934] = 545, + [935] = 915, + [936] = 936, + [937] = 914, + [938] = 914, + [939] = 544, + [940] = 921, + [941] = 941, + [942] = 531, + [943] = 914, + [944] = 915, + [945] = 915, + [946] = 921, + [947] = 539, + [948] = 540, + [949] = 541, + [950] = 950, + [951] = 921, + [952] = 952, + [953] = 953, + [954] = 921, + [955] = 914, + [956] = 921, + [957] = 921, + [958] = 532, + [959] = 915, + [960] = 914, + [961] = 915, + [962] = 915, + [963] = 921, + [964] = 533, + [965] = 534, + [966] = 915, + [967] = 527, + [968] = 914, + [969] = 915, + [970] = 921, + [971] = 971, + [972] = 972, + [973] = 973, + [974] = 972, + [975] = 975, + [976] = 61, + [977] = 977, + [978] = 978, + [979] = 979, + [980] = 980, + [981] = 977, + [982] = 979, + [983] = 983, + [984] = 975, + [985] = 978, + [986] = 983, + [987] = 973, + [988] = 988, + [989] = 989, + [990] = 990, + [991] = 991, + [992] = 992, + [993] = 993, + [994] = 994, + [995] = 989, + [996] = 541, + [997] = 540, + [998] = 539, + [999] = 999, + [1000] = 1000, + [1001] = 545, + [1002] = 544, + [1003] = 992, + [1004] = 527, + [1005] = 991, + [1006] = 542, + [1007] = 534, + [1008] = 999, + [1009] = 1000, + [1010] = 533, + [1011] = 532, + [1012] = 531, + [1013] = 999, + [1014] = 999, + [1015] = 990, + [1016] = 989, + [1017] = 989, + [1018] = 1018, + [1019] = 1019, + [1020] = 1019, + [1021] = 1019, + [1022] = 1022, + [1023] = 1023, + [1024] = 1024, + [1025] = 1025, + [1026] = 1026, + [1027] = 527, + [1028] = 542, + [1029] = 1029, + [1030] = 1019, + [1031] = 1019, + [1032] = 545, + [1033] = 1033, + [1034] = 1019, + [1035] = 1035, + [1036] = 1036, + [1037] = 1037, + [1038] = 1037, + [1039] = 1019, + [1040] = 540, + [1041] = 1041, + [1042] = 539, + [1043] = 1043, + [1044] = 541, + [1045] = 544, + [1046] = 534, + [1047] = 533, + [1048] = 1048, + [1049] = 1049, + [1050] = 1050, + [1051] = 1019, + [1052] = 532, + [1053] = 1023, + [1054] = 531, + [1055] = 1019, + [1056] = 1056, + [1057] = 1057, + [1058] = 1019, + [1059] = 1059, + [1060] = 1060, + [1061] = 1019, + [1062] = 1019, + [1063] = 1048, + [1064] = 1064, + [1065] = 1065, + [1066] = 1066, + [1067] = 1066, + [1068] = 1068, + [1069] = 1069, + [1070] = 1070, + [1071] = 1066, + [1072] = 1070, + [1073] = 1073, + [1074] = 1073, + [1075] = 1075, + [1076] = 1075, + [1077] = 1077, + [1078] = 1077, + [1079] = 1079, + [1080] = 1079, + [1081] = 1081, + [1082] = 1082, + [1083] = 1083, + [1084] = 1084, + [1085] = 1081, + [1086] = 1086, + [1087] = 1087, + [1088] = 1087, + [1089] = 1081, + [1090] = 1090, + [1091] = 1081, + [1092] = 1092, + [1093] = 1093, + [1094] = 1092, + [1095] = 1095, + [1096] = 1096, + [1097] = 1081, + [1098] = 1098, + [1099] = 1081, + [1100] = 1100, + [1101] = 1101, + [1102] = 1102, + [1103] = 1081, + [1104] = 1104, + [1105] = 1105, + [1106] = 1081, + [1107] = 1098, + [1108] = 1100, + [1109] = 1109, + [1110] = 1110, + [1111] = 1081, + [1112] = 1112, + [1113] = 1113, + [1114] = 1100, + [1115] = 1098, + [1116] = 1104, + [1117] = 1081, + [1118] = 1118, + [1119] = 1087, + [1120] = 1081, + [1121] = 1104, + [1122] = 1122, + [1123] = 1081, + [1124] = 1081, + [1125] = 1125, + [1126] = 1081, + [1127] = 1127, + [1128] = 1081, + [1129] = 436, + [1130] = 435, + [1131] = 1131, + [1132] = 437, + [1133] = 1133, + [1134] = 1134, + [1135] = 1135, + [1136] = 1136, + [1137] = 1137, + [1138] = 1138, + [1139] = 1139, + [1140] = 1140, + [1141] = 1141, + [1142] = 1142, + [1143] = 1143, + [1144] = 1144, + [1145] = 1145, + [1146] = 1146, + [1147] = 1147, + [1148] = 1148, + [1149] = 1149, + [1150] = 1150, + [1151] = 1151, + [1152] = 1152, + [1153] = 1153, + [1154] = 1154, + [1155] = 1155, + [1156] = 1156, + [1157] = 1157, + [1158] = 1154, + [1159] = 1159, + [1160] = 1160, + [1161] = 1154, + [1162] = 1154, + [1163] = 1157, + [1164] = 1160, + [1165] = 1165, + [1166] = 1166, + [1167] = 1157, + [1168] = 1155, + [1169] = 1169, + [1170] = 1170, + [1171] = 1171, + [1172] = 1157, + [1173] = 1160, + [1174] = 1160, + [1175] = 1154, + [1176] = 1176, + [1177] = 1159, + [1178] = 1178, + [1179] = 1157, + [1180] = 1157, + [1181] = 1160, + [1182] = 1154, + [1183] = 1183, + [1184] = 1184, + [1185] = 1160, + [1186] = 1159, + [1187] = 1154, + [1188] = 1154, + [1189] = 1157, + [1190] = 1159, + [1191] = 1191, + [1192] = 1192, + [1193] = 1193, + [1194] = 1159, + [1195] = 1157, + [1196] = 1160, + [1197] = 1178, + [1198] = 1159, + [1199] = 1199, + [1200] = 1200, + [1201] = 1157, + [1202] = 1155, + [1203] = 1154, + [1204] = 1204, + [1205] = 1154, + [1206] = 1157, + [1207] = 1207, + [1208] = 1160, + [1209] = 1160, + [1210] = 1210, + [1211] = 1157, + [1212] = 1154, + [1213] = 1160, + [1214] = 1157, + [1215] = 1154, + [1216] = 1216, + [1217] = 1160, + [1218] = 1210, + [1219] = 1157, + [1220] = 1160, + [1221] = 1154, + [1222] = 1154, + [1223] = 1176, + [1224] = 1159, + [1225] = 1165, + [1226] = 1226, + [1227] = 1176, + [1228] = 1154, + [1229] = 1159, + [1230] = 1159, + [1231] = 1159, + [1232] = 1159, + [1233] = 1159, + [1234] = 1234, + [1235] = 1235, + [1236] = 1236, + [1237] = 1237, + [1238] = 1238, + [1239] = 1239, + [1240] = 1240, + [1241] = 1239, + [1242] = 1242, + [1243] = 1239, + [1244] = 1244, + [1245] = 1245, + [1246] = 1239, + [1247] = 1247, + [1248] = 1248, + [1249] = 1249, + [1250] = 1239, + [1251] = 1251, + [1252] = 1239, + [1253] = 1253, + [1254] = 1239, + [1255] = 1255, + [1256] = 1256, + [1257] = 1257, + [1258] = 1239, + [1259] = 1259, + [1260] = 1259, + [1261] = 1239, + [1262] = 1239, + [1263] = 1239, + [1264] = 1239, + [1265] = 1265, + [1266] = 1266, + [1267] = 1267, + [1268] = 1268, + [1269] = 1269, + [1270] = 1239, + [1271] = 1239, + [1272] = 1272, + [1273] = 1273, + [1274] = 1274, + [1275] = 1275, + [1276] = 1276, + [1277] = 1239, + [1278] = 1278, + [1279] = 1279, + [1280] = 1280, + [1281] = 1281, + [1282] = 1282, + [1283] = 462, + [1284] = 445, + [1285] = 1285, + [1286] = 1286, + [1287] = 1287, + [1288] = 1288, + [1289] = 1289, + [1290] = 1290, + [1291] = 1291, + [1292] = 1292, + [1293] = 1293, + [1294] = 1294, + [1295] = 1295, + [1296] = 1296, + [1297] = 1297, + [1298] = 1298, + [1299] = 1299, + [1300] = 1300, + [1301] = 1301, + [1302] = 1302, + [1303] = 1303, + [1304] = 1304, + [1305] = 1305, + [1306] = 1306, + [1307] = 1307, + [1308] = 1282, + [1309] = 1309, + [1310] = 1310, + [1311] = 1311, + [1312] = 1312, + [1313] = 1313, + [1314] = 1314, + [1315] = 1286, + [1316] = 1316, + [1317] = 1317, + [1318] = 1299, + [1319] = 1319, + [1320] = 1320, + [1321] = 477, + [1322] = 1322, + [1323] = 1323, + [1324] = 1324, + [1325] = 1325, + [1326] = 1326, + [1327] = 447, + [1328] = 1328, + [1329] = 1329, + [1330] = 1330, + [1331] = 1331, + [1332] = 1332, + [1333] = 1333, + [1334] = 449, + [1335] = 1335, + [1336] = 1336, + [1337] = 1337, + [1338] = 1338, + [1339] = 1339, + [1340] = 1340, + [1341] = 1341, + [1342] = 1342, + [1343] = 1343, + [1344] = 1344, + [1345] = 1340, + [1346] = 1346, + [1347] = 1347, + [1348] = 1348, + [1349] = 1349, + [1350] = 1350, + [1351] = 1351, + [1352] = 1348, + [1353] = 1353, + [1354] = 1354, + [1355] = 1355, + [1356] = 1356, + [1357] = 1357, + [1358] = 1358, + [1359] = 1359, + [1360] = 1342, + [1361] = 1353, + [1362] = 1362, + [1363] = 1363, + [1364] = 1346, + [1365] = 1365, + [1366] = 1366, + [1367] = 1354, + [1368] = 1368, + [1369] = 1369, + [1370] = 1362, + [1371] = 1371, + [1372] = 1372, + [1373] = 1373, + [1374] = 1374, + [1375] = 1375, + [1376] = 1376, + [1377] = 1377, + [1378] = 1378, + [1379] = 1379, + [1380] = 1375, + [1381] = 1381, + [1382] = 1382, + [1383] = 1383, + [1384] = 1384, + [1385] = 1385, + [1386] = 1386, + [1387] = 1387, + [1388] = 1388, + [1389] = 1389, + [1390] = 1390, + [1391] = 1391, + [1392] = 1392, + [1393] = 1393, + [1394] = 1394, + [1395] = 1394, + [1396] = 1396, + [1397] = 1397, + [1398] = 1385, + [1399] = 1399, + [1400] = 1400, + [1401] = 1383, + [1402] = 1402, + [1403] = 1403, + [1404] = 1404, + [1405] = 1388, + [1406] = 1406, + [1407] = 1390, + [1408] = 1385, + [1409] = 1409, + [1410] = 1394, + [1411] = 1394, + [1412] = 1412, + [1413] = 1413, + [1414] = 1414, + [1415] = 1415, + [1416] = 1402, + [1417] = 1417, + [1418] = 1383, + [1419] = 1394, + [1420] = 1420, + [1421] = 1421, + [1422] = 1422, + [1423] = 1423, + [1424] = 1424, + [1425] = 1425, + [1426] = 1426, + [1427] = 1394, + [1428] = 1388, + [1429] = 1404, + [1430] = 1430, + [1431] = 1431, + [1432] = 1403, + [1433] = 1386, + [1434] = 1434, + [1435] = 1435, + [1436] = 1434, + [1437] = 1437, + [1438] = 1394, + [1439] = 1439, + [1440] = 1382, + [1441] = 1441, + [1442] = 1426, + [1443] = 1388, + [1444] = 1444, + [1445] = 1445, + [1446] = 1394, + [1447] = 1394, + [1448] = 1448, + [1449] = 1449, + [1450] = 1450, + [1451] = 1451, + [1452] = 1394, + [1453] = 1430, + [1454] = 1454, + [1455] = 1455, + [1456] = 1388, + [1457] = 1457, + [1458] = 1394, + [1459] = 1459, + [1460] = 1460, + [1461] = 1388, + [1462] = 1462, + [1463] = 1463, + [1464] = 1389, + [1465] = 1426, + [1466] = 1388, + [1467] = 1396, + [1468] = 1388, + [1469] = 1388, + [1470] = 1388, + [1471] = 1388, + [1472] = 1388, + [1473] = 1388, + [1474] = 1388, + [1475] = 1388, + [1476] = 1375, + [1477] = 1444, + [1478] = 1478, + [1479] = 1479, + [1480] = 1480, + [1481] = 1445, + [1482] = 1482, + [1483] = 1483, + [1484] = 1377, + [1485] = 1378, + [1486] = 1486, + [1487] = 1479, + [1488] = 1423, + [1489] = 1450, + [1490] = 1448, + [1491] = 1422, + [1492] = 1394, + [1493] = 1493, + [1494] = 1494, + [1495] = 1478, + [1496] = 1381, + [1497] = 1417, + [1498] = 1498, + [1499] = 1499, + [1500] = 1394, + [1501] = 1376, + [1502] = 1449, + [1503] = 1394, + [1504] = 1504, + [1505] = 1505, + [1506] = 1394, + [1507] = 1493, + [1508] = 1508, + [1509] = 1509, + [1510] = 1510, +}; + +static bool ts_lex(TSLexer *lexer, TSStateId state) { + START_LEXER(); + eof = lexer->eof(lexer); + switch (state) { + case 0: + if (eof) ADVANCE(16); + if (lookahead == '!') ADVANCE(58); + if (lookahead == '"') ADVANCE(39); + if (lookahead == '#') ADVANCE(26); + if (lookahead == '$') ADVANCE(41); + if (lookahead == '&') ADVANCE(56); + if (lookahead == '\'') ADVANCE(42); + if (lookahead == '(') ADVANCE(45); + if (lookahead == ')') ADVANCE(46); + if (lookahead == '*') ADVANCE(78); + if (lookahead == '+') ADVANCE(73); + if (lookahead == ',') ADVANCE(32); + if (lookahead == '-') ADVANCE(76); + if (lookahead == '.') ADVANCE(59); + if (lookahead == '/') ADVANCE(79); + if (lookahead == ':') ADVANCE(34); + if (lookahead == ';') ADVANCE(52); + if (lookahead == '<') ADVANCE(69); + if (lookahead == '=') ADVANCE(51); + if (lookahead == '>') ADVANCE(70); + if (lookahead == '@') ADVANCE(29); + if (lookahead == '[') ADVANCE(47); + if (lookahead == ']') ADVANCE(48); + if (lookahead == '{') ADVANCE(30); + if (lookahead == '}') ADVANCE(31); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(17); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(36); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(27); + END_STATE(); + case 1: + if (lookahead == '!') ADVANCE(12); + if (lookahead == '"') ADVANCE(39); + if (lookahead == '#') ADVANCE(26); + if (lookahead == '\'') ADVANCE(42); + if (lookahead == '(') ADVANCE(45); + if (lookahead == ')') ADVANCE(46); + if (lookahead == '*') ADVANCE(78); + if (lookahead == '+') ADVANCE(74); + if (lookahead == ',') ADVANCE(32); + if (lookahead == '-') ADVANCE(77); + if (lookahead == '.') ADVANCE(59); + if (lookahead == '/') ADVANCE(79); + if (lookahead == ':') ADVANCE(34); + if (lookahead == ';') ADVANCE(52); + if (lookahead == '<') ADVANCE(69); + if (lookahead == '=') ADVANCE(50); + if (lookahead == '>') ADVANCE(70); + if (lookahead == '[') ADVANCE(47); + if (lookahead == ']') ADVANCE(48); + if (lookahead == '{') ADVANCE(30); + if (lookahead == '}') ADVANCE(31); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(17); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(35); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(27); + END_STATE(); + case 2: + if (lookahead == '!') ADVANCE(12); + if (lookahead == '#') ADVANCE(26); + if (lookahead == '&') ADVANCE(56); + if (lookahead == '(') ADVANCE(45); + if (lookahead == ')') ADVANCE(46); + if (lookahead == '*') ADVANCE(78); + if (lookahead == '+') ADVANCE(73); + if (lookahead == ',') ADVANCE(32); + if (lookahead == '-') ADVANCE(75); + if (lookahead == '.') ADVANCE(59); + if (lookahead == '/') ADVANCE(79); + if (lookahead == ':') ADVANCE(34); + if (lookahead == ';') ADVANCE(52); + if (lookahead == '<') ADVANCE(69); + if (lookahead == '=') ADVANCE(51); + if (lookahead == '>') ADVANCE(70); + if (lookahead == '[') ADVANCE(47); + if (lookahead == ']') ADVANCE(48); + if (lookahead == '{') ADVANCE(30); + if (lookahead == '}') ADVANCE(31); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(17); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(27); + END_STATE(); + case 3: + if (lookahead == '!') ADVANCE(12); + if (lookahead == '#') ADVANCE(26); + if (lookahead == '&') ADVANCE(56); + if (lookahead == '(') ADVANCE(45); + if (lookahead == ')') ADVANCE(46); + if (lookahead == '*') ADVANCE(78); + if (lookahead == '+') ADVANCE(73); + if (lookahead == ',') ADVANCE(32); + if (lookahead == '-') ADVANCE(75); + if (lookahead == '.') ADVANCE(59); + if (lookahead == '/') ADVANCE(79); + if (lookahead == ':') ADVANCE(34); + if (lookahead == ';') ADVANCE(52); + if (lookahead == '<') ADVANCE(69); + if (lookahead == '=') ADVANCE(50); + if (lookahead == '>') ADVANCE(70); + if (lookahead == '[') ADVANCE(47); + if (lookahead == ']') ADVANCE(48); + if (lookahead == '{') ADVANCE(30); + if (lookahead == '}') ADVANCE(31); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(17); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(28); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(27); + END_STATE(); + case 4: + if (lookahead == '"') ADVANCE(39); + if (lookahead == '#') ADVANCE(23); + if (lookahead == '$') ADVANCE(41); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(18); + if (lookahead != 0) ADVANCE(40); + END_STATE(); + case 5: + if (lookahead == '#') ADVANCE(26); + if (lookahead == '&') ADVANCE(56); + if (lookahead == '+') ADVANCE(8); + if (lookahead == ':') ADVANCE(33); + if (lookahead == '=') ADVANCE(13); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(17); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(27); + END_STATE(); + case 6: + if (lookahead == '#') ADVANCE(22); + if (lookahead == '{') ADVANCE(30); + if (lookahead == '}') ADVANCE(31); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(19); + if (lookahead != 0) ADVANCE(60); + END_STATE(); + case 7: + if (lookahead == '#') ADVANCE(24); + if (lookahead == '-') ADVANCE(10); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(21); + if (lookahead != 0) ADVANCE(55); + END_STATE(); + case 8: + if (lookahead == '+') ADVANCE(57); + END_STATE(); + case 9: + if (lookahead == '-') ADVANCE(11); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(35); + END_STATE(); + case 10: + if (lookahead == '-') ADVANCE(11); + if (lookahead != 0) ADVANCE(54); + END_STATE(); + case 11: + if (lookahead == '-') ADVANCE(53); + END_STATE(); + case 12: + if (lookahead == '=') ADVANCE(68); + END_STATE(); + case 13: + if (lookahead == '>') ADVANCE(81); + END_STATE(); + case 14: + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(38); + END_STATE(); + case 15: + if (eof) ADVANCE(16); + if (lookahead == '"') ADVANCE(39); + if (lookahead == '#') ADVANCE(26); + if (lookahead == '&') ADVANCE(56); + if (lookahead == '\'') ADVANCE(42); + if (lookahead == '(') ADVANCE(45); + if (lookahead == ')') ADVANCE(46); + if (lookahead == '+') ADVANCE(8); + if (lookahead == '-') ADVANCE(9); + if (lookahead == ':') ADVANCE(33); + if (lookahead == ';') ADVANCE(52); + if (lookahead == '=') ADVANCE(49); + if (lookahead == '@') ADVANCE(29); + if (lookahead == '[') ADVANCE(47); + if (lookahead == ']') ADVANCE(48); + if (lookahead == '{') ADVANCE(30); + if (lookahead == '}') ADVANCE(31); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(17); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(35); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(27); + END_STATE(); + case 16: + ACCEPT_TOKEN(ts_builtin_sym_end); + END_STATE(); + case 17: + ACCEPT_TOKEN(sym__whitespace); + END_STATE(); + case 18: + ACCEPT_TOKEN(sym__whitespace); + if (lookahead != 0 && + lookahead != '"' && + lookahead != '$') ADVANCE(40); + END_STATE(); + case 19: + ACCEPT_TOKEN(sym__whitespace); + if (lookahead != 0 && + lookahead != '{' && + lookahead != '}') ADVANCE(60); + END_STATE(); + case 20: + ACCEPT_TOKEN(sym__whitespace); + if (lookahead != 0 && + lookahead != '\'') ADVANCE(44); + END_STATE(); + case 21: + ACCEPT_TOKEN(sym__whitespace); + if (lookahead != 0 && + lookahead != '-') ADVANCE(55); + END_STATE(); + case 22: + ACCEPT_TOKEN(sym_line_comment); + if (lookahead == '\n') ADVANCE(60); + if (lookahead == '{' || + lookahead == '}') ADVANCE(26); + if (lookahead != 0) ADVANCE(22); + END_STATE(); + case 23: + ACCEPT_TOKEN(sym_line_comment); + if (lookahead == '\n') ADVANCE(40); + if (lookahead == '"' || + lookahead == '$') ADVANCE(26); + if (lookahead != 0) ADVANCE(23); + END_STATE(); + case 24: + ACCEPT_TOKEN(sym_line_comment); + if (lookahead == '\n') ADVANCE(55); + if (lookahead == '-') ADVANCE(26); + if (lookahead != 0) ADVANCE(24); + END_STATE(); + case 25: + ACCEPT_TOKEN(sym_line_comment); + if (lookahead == '\n') ADVANCE(44); + if (lookahead == '\'') ADVANCE(26); + if (lookahead != 0) ADVANCE(25); + END_STATE(); + case 26: + ACCEPT_TOKEN(sym_line_comment); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(26); + END_STATE(); + case 27: + ACCEPT_TOKEN(sym_name); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(27); + END_STATE(); + case 28: + ACCEPT_TOKEN(sym_index); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(28); + END_STATE(); + case 29: + ACCEPT_TOKEN(anon_sym_AT); + END_STATE(); + case 30: + ACCEPT_TOKEN(anon_sym_LBRACE); + END_STATE(); + case 31: + ACCEPT_TOKEN(anon_sym_RBRACE); + END_STATE(); + case 32: + ACCEPT_TOKEN(anon_sym_COMMA); + END_STATE(); + case 33: + ACCEPT_TOKEN(anon_sym_COLON); + END_STATE(); + case 34: + ACCEPT_TOKEN(anon_sym_COLON); + if (lookahead == ':') ADVANCE(80); + END_STATE(); + case 35: + ACCEPT_TOKEN(sym_constant_int); + if (lookahead == '.') ADVANCE(14); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(35); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(37); + END_STATE(); + case 36: + ACCEPT_TOKEN(sym_constant_int); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(36); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(37); + END_STATE(); + case 37: + ACCEPT_TOKEN(sym_constant_int); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(37); + END_STATE(); + case 38: + ACCEPT_TOKEN(sym_constant_float); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(38); + END_STATE(); + case 39: + ACCEPT_TOKEN(sym_string_quote); + END_STATE(); + case 40: + ACCEPT_TOKEN(sym_string_content); + if (lookahead != 0 && + lookahead != '"' && + lookahead != '$') ADVANCE(40); + END_STATE(); + case 41: + ACCEPT_TOKEN(anon_sym_DOLLAR); + END_STATE(); + case 42: + ACCEPT_TOKEN(anon_sym_SQUOTE); + END_STATE(); + case 43: + ACCEPT_TOKEN(aux_sym_constant_char_token1); + if (lookahead == '#') ADVANCE(25); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(20); + if (lookahead != 0 && + lookahead != '\'') ADVANCE(44); + END_STATE(); + case 44: + ACCEPT_TOKEN(aux_sym_constant_char_token1); + if (lookahead != 0 && + lookahead != '\'') ADVANCE(44); + END_STATE(); + case 45: + ACCEPT_TOKEN(anon_sym_LPAREN); + END_STATE(); + case 46: + ACCEPT_TOKEN(anon_sym_RPAREN); + END_STATE(); + case 47: + ACCEPT_TOKEN(anon_sym_LBRACK); + END_STATE(); + case 48: + ACCEPT_TOKEN(anon_sym_RBRACK); + END_STATE(); + case 49: + ACCEPT_TOKEN(anon_sym_EQ); + END_STATE(); + case 50: + ACCEPT_TOKEN(anon_sym_EQ); + if (lookahead == '=') ADVANCE(67); + END_STATE(); + case 51: + ACCEPT_TOKEN(anon_sym_EQ); + if (lookahead == '=') ADVANCE(67); + if (lookahead == '>') ADVANCE(81); + END_STATE(); + case 52: + ACCEPT_TOKEN(anon_sym_SEMI); + END_STATE(); + case 53: + ACCEPT_TOKEN(anon_sym_DASH_DASH_DASH); + END_STATE(); + case 54: + ACCEPT_TOKEN(aux_sym_code_token1); + END_STATE(); + case 55: + ACCEPT_TOKEN(aux_sym_code_token1); + if (lookahead != 0 && + lookahead != '-') ADVANCE(55); + END_STATE(); + case 56: + ACCEPT_TOKEN(anon_sym_AMP); + END_STATE(); + case 57: + ACCEPT_TOKEN(anon_sym_PLUS_PLUS); + END_STATE(); + case 58: + ACCEPT_TOKEN(sym_type_never); + END_STATE(); + case 59: + ACCEPT_TOKEN(anon_sym_DOT); + if (lookahead == '.') ADVANCE(65); + END_STATE(); + case 60: + ACCEPT_TOKEN(aux_sym__rust_token1); + if (lookahead != 0 && + lookahead != '{' && + lookahead != '}') ADVANCE(60); + END_STATE(); + case 61: + ACCEPT_TOKEN(anon_sym_PLUS_EQ); + END_STATE(); + case 62: + ACCEPT_TOKEN(anon_sym_DASH_EQ); + END_STATE(); + case 63: + ACCEPT_TOKEN(anon_sym_STAR_EQ); + END_STATE(); + case 64: + ACCEPT_TOKEN(anon_sym_SLASH_EQ); + END_STATE(); + case 65: + ACCEPT_TOKEN(anon_sym_DOT_DOT); + if (lookahead == '=') ADVANCE(66); + END_STATE(); + case 66: + ACCEPT_TOKEN(anon_sym_DOT_DOT_EQ); + END_STATE(); + case 67: + ACCEPT_TOKEN(anon_sym_EQ_EQ); + END_STATE(); + case 68: + ACCEPT_TOKEN(anon_sym_BANG_EQ); + END_STATE(); + case 69: + ACCEPT_TOKEN(anon_sym_LT); + if (lookahead == '=') ADVANCE(71); + END_STATE(); + case 70: + ACCEPT_TOKEN(anon_sym_GT); + if (lookahead == '=') ADVANCE(72); + END_STATE(); + case 71: + ACCEPT_TOKEN(anon_sym_LT_EQ); + END_STATE(); + case 72: + ACCEPT_TOKEN(anon_sym_GT_EQ); + END_STATE(); + case 73: + ACCEPT_TOKEN(anon_sym_PLUS); + if (lookahead == '+') ADVANCE(57); + if (lookahead == '=') ADVANCE(61); + END_STATE(); + case 74: + ACCEPT_TOKEN(anon_sym_PLUS); + if (lookahead == '=') ADVANCE(61); + END_STATE(); + case 75: + ACCEPT_TOKEN(anon_sym_DASH); + if (lookahead == '=') ADVANCE(62); + END_STATE(); + case 76: + ACCEPT_TOKEN(anon_sym_DASH); + if (lookahead == '=') ADVANCE(62); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(36); + END_STATE(); + case 77: + ACCEPT_TOKEN(anon_sym_DASH); + if (lookahead == '=') ADVANCE(62); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(35); + END_STATE(); + case 78: + ACCEPT_TOKEN(anon_sym_STAR); + if (lookahead == '=') ADVANCE(63); + END_STATE(); + case 79: + ACCEPT_TOKEN(anon_sym_SLASH); + if (lookahead == '=') ADVANCE(64); + END_STATE(); + case 80: + ACCEPT_TOKEN(anon_sym_COLON_COLON); + END_STATE(); + case 81: + ACCEPT_TOKEN(anon_sym_EQ_GT); + END_STATE(); + default: + return false; + } +} + +static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { + START_LEXER(); + eof = lexer->eof(lexer); + switch (state) { + case 0: + if (lookahead == '_') ADVANCE(1); + if (lookahead == 'a') ADVANCE(2); + if (lookahead == 'b') ADVANCE(3); + if (lookahead == 'c') ADVANCE(4); + if (lookahead == 'd') ADVANCE(5); + if (lookahead == 'e') ADVANCE(6); + if (lookahead == 'f') ADVANCE(7); + if (lookahead == 'g') ADVANCE(8); + if (lookahead == 'i') ADVANCE(9); + if (lookahead == 'j') ADVANCE(10); + if (lookahead == 'l') ADVANCE(11); + if (lookahead == 'm') ADVANCE(12); + if (lookahead == 'n') ADVANCE(13); + if (lookahead == 'o') ADVANCE(14); + if (lookahead == 'p') ADVANCE(15); + if (lookahead == 'r') ADVANCE(16); + if (lookahead == 's') ADVANCE(17); + if (lookahead == 't') ADVANCE(18); + if (lookahead == 'u') ADVANCE(19); + if (lookahead == 'v') ADVANCE(20); + if (lookahead == 'w') ADVANCE(21); + END_STATE(); + case 1: + ACCEPT_TOKEN(anon_sym__); + END_STATE(); + case 2: + if (lookahead == 'n') ADVANCE(22); + if (lookahead == 's') ADVANCE(23); + END_STATE(); + case 3: + if (lookahead == 'r') ADVANCE(24); + END_STATE(); + case 4: + if (lookahead == 'a') ADVANCE(25); + if (lookahead == 'o') ADVANCE(26); + END_STATE(); + case 5: + if (lookahead == 'e') ADVANCE(27); + if (lookahead == 'o') ADVANCE(28); + END_STATE(); + case 6: + if (lookahead == 'l') ADVANCE(29); + if (lookahead == 'n') ADVANCE(30); + END_STATE(); + case 7: + if (lookahead == 'a') ADVANCE(31); + if (lookahead == 'i') ADVANCE(32); + if (lookahead == 'o') ADVANCE(33); + if (lookahead == 'r') ADVANCE(34); + if (lookahead == 'u') ADVANCE(35); + END_STATE(); + case 8: + if (lookahead == 'r') ADVANCE(36); + END_STATE(); + case 9: + if (lookahead == 'f') ADVANCE(37); + if (lookahead == 'n') ADVANCE(38); + END_STATE(); + case 10: + if (lookahead == 'o') ADVANCE(39); + END_STATE(); + case 11: + if (lookahead == 'o') ADVANCE(40); + END_STATE(); + case 12: + if (lookahead == 'a') ADVANCE(41); + END_STATE(); + case 13: + if (lookahead == 'o') ADVANCE(42); + END_STATE(); + case 14: + if (lookahead == 'f') ADVANCE(43); + if (lookahead == 'n') ADVANCE(44); + if (lookahead == 'r') ADVANCE(45); + if (lookahead == 'v') ADVANCE(46); + END_STATE(); + case 15: + if (lookahead == 'y') ADVANCE(47); + END_STATE(); + case 16: + if (lookahead == 'e') ADVANCE(48); + if (lookahead == 'o') ADVANCE(49); + if (lookahead == 'u') ADVANCE(50); + END_STATE(); + case 17: + if (lookahead == 'e') ADVANCE(51); + END_STATE(); + case 18: + if (lookahead == 'h') ADVANCE(52); + if (lookahead == 'r') ADVANCE(53); + if (lookahead == 'y') ADVANCE(54); + END_STATE(); + case 19: + if (lookahead == 'n') ADVANCE(55); + END_STATE(); + case 20: + if (lookahead == 'a') ADVANCE(56); + END_STATE(); + case 21: + if (lookahead == 'h') ADVANCE(57); + if (lookahead == 'i') ADVANCE(58); + END_STATE(); + case 22: + if (lookahead == 'd') ADVANCE(59); + END_STATE(); + case 23: + ACCEPT_TOKEN(anon_sym_as); + END_STATE(); + case 24: + if (lookahead == 'e') ADVANCE(60); + END_STATE(); + case 25: + if (lookahead == 't') ADVANCE(61); + END_STATE(); + case 26: + if (lookahead == 'm') ADVANCE(62); + if (lookahead == 'n') ADVANCE(63); + END_STATE(); + case 27: + if (lookahead == 'f') ADVANCE(64); + if (lookahead == 's') ADVANCE(65); + END_STATE(); + case 28: + ACCEPT_TOKEN(anon_sym_do); + END_STATE(); + case 29: + if (lookahead == 's') ADVANCE(66); + END_STATE(); + case 30: + if (lookahead == 'u') ADVANCE(67); + END_STATE(); + case 31: + if (lookahead == 'l') ADVANCE(68); + END_STATE(); + case 32: + if (lookahead == 'n') ADVANCE(69); + END_STATE(); + case 33: + if (lookahead == 'r') ADVANCE(70); + END_STATE(); + case 34: + if (lookahead == 'o') ADVANCE(71); + END_STATE(); + case 35: + if (lookahead == 'n') ADVANCE(72); + END_STATE(); + case 36: + if (lookahead == 'o') ADVANCE(73); + END_STATE(); + case 37: + ACCEPT_TOKEN(anon_sym_if); + END_STATE(); + case 38: + ACCEPT_TOKEN(anon_sym_in); + if (lookahead == 't') ADVANCE(74); + END_STATE(); + case 39: + if (lookahead == 'i') ADVANCE(75); + END_STATE(); + case 40: + if (lookahead == 'o') ADVANCE(76); + END_STATE(); + case 41: + if (lookahead == 't') ADVANCE(77); + END_STATE(); + case 42: + if (lookahead == 't') ADVANCE(78); + END_STATE(); + case 43: + ACCEPT_TOKEN(anon_sym_of); + END_STATE(); + case 44: + ACCEPT_TOKEN(anon_sym_on); + END_STATE(); + case 45: + ACCEPT_TOKEN(anon_sym_or); + if (lookahead == 'd') ADVANCE(79); + END_STATE(); + case 46: + if (lookahead == 'e') ADVANCE(80); + END_STATE(); + case 47: + if (lookahead == 't') ADVANCE(81); + END_STATE(); + case 48: + if (lookahead == 't') ADVANCE(82); + END_STATE(); + case 49: + if (lookahead == 'l') ADVANCE(83); + END_STATE(); + case 50: + if (lookahead == 's') ADVANCE(84); + END_STATE(); + case 51: + if (lookahead == 'l') ADVANCE(85); + END_STATE(); + case 52: + if (lookahead == 'r') ADVANCE(86); + END_STATE(); + case 53: + if (lookahead == 'u') ADVANCE(87); + if (lookahead == 'y') ADVANCE(88); + END_STATE(); + case 54: + if (lookahead == 'p') ADVANCE(89); + END_STATE(); + case 55: + if (lookahead == 'i') ADVANCE(90); + END_STATE(); + case 56: + if (lookahead == 'l') ADVANCE(91); + if (lookahead == 'r') ADVANCE(92); + END_STATE(); + case 57: + if (lookahead == 'e') ADVANCE(93); + if (lookahead == 'i') ADVANCE(94); + END_STATE(); + case 58: + if (lookahead == 't') ADVANCE(95); + END_STATE(); + case 59: + ACCEPT_TOKEN(anon_sym_and); + END_STATE(); + case 60: + if (lookahead == 'a') ADVANCE(96); + END_STATE(); + case 61: + if (lookahead == 'c') ADVANCE(97); + END_STATE(); + case 62: + if (lookahead == 'p') ADVANCE(98); + END_STATE(); + case 63: + if (lookahead == 't') ADVANCE(99); + END_STATE(); + case 64: + ACCEPT_TOKEN(anon_sym_def); + END_STATE(); + case 65: + if (lookahead == 'c') ADVANCE(100); + END_STATE(); + case 66: + if (lookahead == 'e') ADVANCE(101); + END_STATE(); + case 67: + if (lookahead == 'm') ADVANCE(102); + END_STATE(); + case 68: + if (lookahead == 's') ADVANCE(103); + END_STATE(); + case 69: + if (lookahead == 'a') ADVANCE(104); + END_STATE(); + case 70: + ACCEPT_TOKEN(anon_sym_for); + END_STATE(); + case 71: + if (lookahead == 'm') ADVANCE(105); + END_STATE(); + case 72: + ACCEPT_TOKEN(anon_sym_fun); + END_STATE(); + case 73: + if (lookahead == 'u') ADVANCE(106); + END_STATE(); + case 74: + if (lookahead == 'o') ADVANCE(107); + END_STATE(); + case 75: + if (lookahead == 'n') ADVANCE(108); + END_STATE(); + case 76: + if (lookahead == 'p') ADVANCE(109); + END_STATE(); + case 77: + if (lookahead == 'c') ADVANCE(110); + END_STATE(); + case 78: + ACCEPT_TOKEN(anon_sym_not); + END_STATE(); + case 79: + if (lookahead == 'e') ADVANCE(111); + END_STATE(); + case 80: + if (lookahead == 'r') ADVANCE(112); + END_STATE(); + case 81: + if (lookahead == 'h') ADVANCE(113); + END_STATE(); + case 82: + if (lookahead == 'u') ADVANCE(114); + END_STATE(); + case 83: + if (lookahead == 'l') ADVANCE(115); + END_STATE(); + case 84: + if (lookahead == 't') ADVANCE(116); + END_STATE(); + case 85: + if (lookahead == 'e') ADVANCE(117); + END_STATE(); + case 86: + if (lookahead == 'o') ADVANCE(118); + END_STATE(); + case 87: + if (lookahead == 'e') ADVANCE(119); + END_STATE(); + case 88: + ACCEPT_TOKEN(anon_sym_try); + END_STATE(); + case 89: + if (lookahead == 'e') ADVANCE(120); + END_STATE(); + case 90: + if (lookahead == 'o') ADVANCE(121); + END_STATE(); + case 91: + ACCEPT_TOKEN(anon_sym_val); + END_STATE(); + case 92: + ACCEPT_TOKEN(anon_sym_var); + END_STATE(); + case 93: + if (lookahead == 'r') ADVANCE(122); + END_STATE(); + case 94: + if (lookahead == 'l') ADVANCE(123); + END_STATE(); + case 95: + if (lookahead == 'h') ADVANCE(124); + END_STATE(); + case 96: + if (lookahead == 'k') ADVANCE(125); + END_STATE(); + case 97: + if (lookahead == 'h') ADVANCE(126); + END_STATE(); + case 98: + if (lookahead == 'u') ADVANCE(127); + END_STATE(); + case 99: + if (lookahead == 'i') ADVANCE(128); + END_STATE(); + case 100: + ACCEPT_TOKEN(anon_sym_desc); + END_STATE(); + case 101: + ACCEPT_TOKEN(anon_sym_else); + END_STATE(); + case 102: + ACCEPT_TOKEN(anon_sym_enum); + END_STATE(); + case 103: + if (lookahead == 'e') ADVANCE(129); + END_STATE(); + case 104: + if (lookahead == 'l') ADVANCE(130); + END_STATE(); + case 105: + ACCEPT_TOKEN(anon_sym_from); + END_STATE(); + case 106: + if (lookahead == 'p') ADVANCE(131); + END_STATE(); + case 107: + ACCEPT_TOKEN(anon_sym_into); + END_STATE(); + case 108: + ACCEPT_TOKEN(anon_sym_join); + END_STATE(); + case 109: + ACCEPT_TOKEN(anon_sym_loop); + END_STATE(); + case 110: + if (lookahead == 'h') ADVANCE(132); + END_STATE(); + case 111: + if (lookahead == 'r') ADVANCE(133); + END_STATE(); + case 112: + ACCEPT_TOKEN(anon_sym_over); + END_STATE(); + case 113: + if (lookahead == 'o') ADVANCE(134); + END_STATE(); + case 114: + if (lookahead == 'r') ADVANCE(135); + END_STATE(); + case 115: + ACCEPT_TOKEN(anon_sym_roll); + END_STATE(); + case 116: + ACCEPT_TOKEN(anon_sym_rust); + END_STATE(); + case 117: + if (lookahead == 'c') ADVANCE(136); + END_STATE(); + case 118: + if (lookahead == 'w') ADVANCE(137); + END_STATE(); + case 119: + ACCEPT_TOKEN(anon_sym_true); + END_STATE(); + case 120: + ACCEPT_TOKEN(anon_sym_type); + END_STATE(); + case 121: + if (lookahead == 'n') ADVANCE(138); + END_STATE(); + case 122: + if (lookahead == 'e') ADVANCE(139); + END_STATE(); + case 123: + if (lookahead == 'e') ADVANCE(140); + END_STATE(); + case 124: + ACCEPT_TOKEN(anon_sym_with); + END_STATE(); + case 125: + ACCEPT_TOKEN(anon_sym_break); + END_STATE(); + case 126: + ACCEPT_TOKEN(anon_sym_catch); + END_STATE(); + case 127: + if (lookahead == 't') ADVANCE(141); + END_STATE(); + case 128: + if (lookahead == 'n') ADVANCE(142); + END_STATE(); + case 129: + ACCEPT_TOKEN(anon_sym_false); + END_STATE(); + case 130: + if (lookahead == 'l') ADVANCE(143); + END_STATE(); + case 131: + ACCEPT_TOKEN(anon_sym_group); + END_STATE(); + case 132: + ACCEPT_TOKEN(anon_sym_match); + END_STATE(); + case 133: + ACCEPT_TOKEN(anon_sym_order); + END_STATE(); + case 134: + if (lookahead == 'n') ADVANCE(144); + END_STATE(); + case 135: + if (lookahead == 'n') ADVANCE(145); + END_STATE(); + case 136: + if (lookahead == 't') ADVANCE(146); + END_STATE(); + case 137: + ACCEPT_TOKEN(anon_sym_throw); + END_STATE(); + case 138: + ACCEPT_TOKEN(anon_sym_union); + END_STATE(); + case 139: + ACCEPT_TOKEN(anon_sym_where); + END_STATE(); + case 140: + ACCEPT_TOKEN(anon_sym_while); + END_STATE(); + case 141: + if (lookahead == 'e') ADVANCE(147); + END_STATE(); + case 142: + if (lookahead == 'u') ADVANCE(148); + END_STATE(); + case 143: + if (lookahead == 'y') ADVANCE(149); + END_STATE(); + case 144: + ACCEPT_TOKEN(anon_sym_python); + END_STATE(); + case 145: + ACCEPT_TOKEN(anon_sym_return); + END_STATE(); + case 146: + ACCEPT_TOKEN(anon_sym_select); + END_STATE(); + case 147: + ACCEPT_TOKEN(anon_sym_compute); + END_STATE(); + case 148: + if (lookahead == 'e') ADVANCE(150); + END_STATE(); + case 149: + ACCEPT_TOKEN(anon_sym_finally); + END_STATE(); + case 150: + ACCEPT_TOKEN(anon_sym_continue); + END_STATE(); + default: + return false; + } +} + +static const TSLexMode ts_lex_modes[STATE_COUNT] = { + [0] = {.lex_state = 0}, + [1] = {.lex_state = 15}, + [2] = {.lex_state = 1}, + [3] = {.lex_state = 1}, + [4] = {.lex_state = 1}, + [5] = {.lex_state = 1}, + [6] = {.lex_state = 1}, + [7] = {.lex_state = 1}, + [8] = {.lex_state = 1}, + [9] = {.lex_state = 1}, + [10] = {.lex_state = 1}, + [11] = {.lex_state = 1}, + [12] = {.lex_state = 1}, + [13] = {.lex_state = 1}, + [14] = {.lex_state = 1}, + [15] = {.lex_state = 1}, + [16] = {.lex_state = 1}, + [17] = {.lex_state = 1}, + [18] = {.lex_state = 1}, + [19] = {.lex_state = 1}, + [20] = {.lex_state = 1}, + [21] = {.lex_state = 1}, + [22] = {.lex_state = 1}, + [23] = {.lex_state = 1}, + [24] = {.lex_state = 1}, + [25] = {.lex_state = 1}, + [26] = {.lex_state = 1}, + [27] = {.lex_state = 1}, + [28] = {.lex_state = 1}, + [29] = {.lex_state = 1}, + [30] = {.lex_state = 1}, + [31] = {.lex_state = 1}, + [32] = {.lex_state = 15}, + [33] = {.lex_state = 15}, + [34] = {.lex_state = 15}, + [35] = {.lex_state = 15}, + [36] = {.lex_state = 15}, + [37] = {.lex_state = 15}, + [38] = {.lex_state = 15}, + [39] = {.lex_state = 15}, + [40] = {.lex_state = 15}, + [41] = {.lex_state = 15}, + [42] = {.lex_state = 15}, + [43] = {.lex_state = 15}, + [44] = {.lex_state = 15}, + [45] = {.lex_state = 15}, + [46] = {.lex_state = 15}, + [47] = {.lex_state = 15}, + [48] = {.lex_state = 15}, + [49] = {.lex_state = 15}, + [50] = {.lex_state = 15}, + [51] = {.lex_state = 15}, + [52] = {.lex_state = 15}, + [53] = {.lex_state = 15}, + [54] = {.lex_state = 15}, + [55] = {.lex_state = 15}, + [56] = {.lex_state = 15}, + [57] = {.lex_state = 15}, + [58] = {.lex_state = 15}, + [59] = {.lex_state = 3}, + [60] = {.lex_state = 3}, + [61] = {.lex_state = 3}, + [62] = {.lex_state = 15}, + [63] = {.lex_state = 15}, + [64] = {.lex_state = 15}, + [65] = {.lex_state = 15}, + [66] = {.lex_state = 15}, + [67] = {.lex_state = 15}, + [68] = {.lex_state = 15}, + [69] = {.lex_state = 15}, + [70] = {.lex_state = 15}, + [71] = {.lex_state = 15}, + [72] = {.lex_state = 15}, + [73] = {.lex_state = 15}, + [74] = {.lex_state = 15}, + [75] = {.lex_state = 15}, + [76] = {.lex_state = 15}, + [77] = {.lex_state = 15}, + [78] = {.lex_state = 15}, + [79] = {.lex_state = 15}, + [80] = {.lex_state = 15}, + [81] = {.lex_state = 15}, + [82] = {.lex_state = 15}, + [83] = {.lex_state = 15}, + [84] = {.lex_state = 15}, + [85] = {.lex_state = 15}, + [86] = {.lex_state = 15}, + [87] = {.lex_state = 15}, + [88] = {.lex_state = 15}, + [89] = {.lex_state = 15}, + [90] = {.lex_state = 15}, + [91] = {.lex_state = 15}, + [92] = {.lex_state = 15}, + [93] = {.lex_state = 15}, + [94] = {.lex_state = 15}, + [95] = {.lex_state = 15}, + [96] = {.lex_state = 15}, + [97] = {.lex_state = 15}, + [98] = {.lex_state = 15}, + [99] = {.lex_state = 15}, + [100] = {.lex_state = 15}, + [101] = {.lex_state = 15}, + [102] = {.lex_state = 15}, + [103] = {.lex_state = 15}, + [104] = {.lex_state = 15}, + [105] = {.lex_state = 15}, + [106] = {.lex_state = 15}, + [107] = {.lex_state = 15}, + [108] = {.lex_state = 15}, + [109] = {.lex_state = 15}, + [110] = {.lex_state = 15}, + [111] = {.lex_state = 15}, + [112] = {.lex_state = 15}, + [113] = {.lex_state = 15}, + [114] = {.lex_state = 15}, + [115] = {.lex_state = 15}, + [116] = {.lex_state = 15}, + [117] = {.lex_state = 15}, + [118] = {.lex_state = 15}, + [119] = {.lex_state = 15}, + [120] = {.lex_state = 15}, + [121] = {.lex_state = 15}, + [122] = {.lex_state = 15}, + [123] = {.lex_state = 15}, + [124] = {.lex_state = 15}, + [125] = {.lex_state = 15}, + [126] = {.lex_state = 15}, + [127] = {.lex_state = 15}, + [128] = {.lex_state = 15}, + [129] = {.lex_state = 15}, + [130] = {.lex_state = 15}, + [131] = {.lex_state = 15}, + [132] = {.lex_state = 15}, + [133] = {.lex_state = 15}, + [134] = {.lex_state = 15}, + [135] = {.lex_state = 15}, + [136] = {.lex_state = 15}, + [137] = {.lex_state = 15}, + [138] = {.lex_state = 15}, + [139] = {.lex_state = 15}, + [140] = {.lex_state = 15}, + [141] = {.lex_state = 15}, + [142] = {.lex_state = 15}, + [143] = {.lex_state = 15}, + [144] = {.lex_state = 15}, + [145] = {.lex_state = 15}, + [146] = {.lex_state = 15}, + [147] = {.lex_state = 15}, + [148] = {.lex_state = 15}, + [149] = {.lex_state = 15}, + [150] = {.lex_state = 15}, + [151] = {.lex_state = 15}, + [152] = {.lex_state = 15}, + [153] = {.lex_state = 15}, + [154] = {.lex_state = 15}, + [155] = {.lex_state = 15}, + [156] = {.lex_state = 15}, + [157] = {.lex_state = 15}, + [158] = {.lex_state = 15}, + [159] = {.lex_state = 15}, + [160] = {.lex_state = 15}, + [161] = {.lex_state = 15}, + [162] = {.lex_state = 15}, + [163] = {.lex_state = 15}, + [164] = {.lex_state = 15}, + [165] = {.lex_state = 15}, + [166] = {.lex_state = 15}, + [167] = {.lex_state = 15}, + [168] = {.lex_state = 15}, + [169] = {.lex_state = 15}, + [170] = {.lex_state = 15}, + [171] = {.lex_state = 15}, + [172] = {.lex_state = 15}, + [173] = {.lex_state = 15}, + [174] = {.lex_state = 15}, + [175] = {.lex_state = 15}, + [176] = {.lex_state = 15}, + [177] = {.lex_state = 15}, + [178] = {.lex_state = 15}, + [179] = {.lex_state = 15}, + [180] = {.lex_state = 15}, + [181] = {.lex_state = 15}, + [182] = {.lex_state = 15}, + [183] = {.lex_state = 15}, + [184] = {.lex_state = 15}, + [185] = {.lex_state = 15}, + [186] = {.lex_state = 15}, + [187] = {.lex_state = 15}, + [188] = {.lex_state = 15}, + [189] = {.lex_state = 15}, + [190] = {.lex_state = 15}, + [191] = {.lex_state = 15}, + [192] = {.lex_state = 15}, + [193] = {.lex_state = 15}, + [194] = {.lex_state = 15}, + [195] = {.lex_state = 15}, + [196] = {.lex_state = 15}, + [197] = {.lex_state = 15}, + [198] = {.lex_state = 15}, + [199] = {.lex_state = 15}, + [200] = {.lex_state = 15}, + [201] = {.lex_state = 15}, + [202] = {.lex_state = 15}, + [203] = {.lex_state = 15}, + [204] = {.lex_state = 15}, + [205] = {.lex_state = 15}, + [206] = {.lex_state = 15}, + [207] = {.lex_state = 15}, + [208] = {.lex_state = 15}, + [209] = {.lex_state = 15}, + [210] = {.lex_state = 15}, + [211] = {.lex_state = 15}, + [212] = {.lex_state = 15}, + [213] = {.lex_state = 15}, + [214] = {.lex_state = 15}, + [215] = {.lex_state = 15}, + [216] = {.lex_state = 15}, + [217] = {.lex_state = 15}, + [218] = {.lex_state = 15}, + [219] = {.lex_state = 15}, + [220] = {.lex_state = 15}, + [221] = {.lex_state = 15}, + [222] = {.lex_state = 15}, + [223] = {.lex_state = 15}, + [224] = {.lex_state = 15}, + [225] = {.lex_state = 15}, + [226] = {.lex_state = 15}, + [227] = {.lex_state = 15}, + [228] = {.lex_state = 15}, + [229] = {.lex_state = 15}, + [230] = {.lex_state = 15}, + [231] = {.lex_state = 15}, + [232] = {.lex_state = 15}, + [233] = {.lex_state = 15}, + [234] = {.lex_state = 15}, + [235] = {.lex_state = 15}, + [236] = {.lex_state = 15}, + [237] = {.lex_state = 15}, + [238] = {.lex_state = 15}, + [239] = {.lex_state = 15}, + [240] = {.lex_state = 15}, + [241] = {.lex_state = 15}, + [242] = {.lex_state = 15}, + [243] = {.lex_state = 15}, + [244] = {.lex_state = 15}, + [245] = {.lex_state = 15}, + [246] = {.lex_state = 15}, + [247] = {.lex_state = 15}, + [248] = {.lex_state = 15}, + [249] = {.lex_state = 15}, + [250] = {.lex_state = 15}, + [251] = {.lex_state = 15}, + [252] = {.lex_state = 15}, + [253] = {.lex_state = 15}, + [254] = {.lex_state = 15}, + [255] = {.lex_state = 15}, + [256] = {.lex_state = 15}, + [257] = {.lex_state = 3}, + [258] = {.lex_state = 15}, + [259] = {.lex_state = 15}, + [260] = {.lex_state = 3}, + [261] = {.lex_state = 15}, + [262] = {.lex_state = 15}, + [263] = {.lex_state = 15}, + [264] = {.lex_state = 15}, + [265] = {.lex_state = 15}, + [266] = {.lex_state = 15}, + [267] = {.lex_state = 15}, + [268] = {.lex_state = 15}, + [269] = {.lex_state = 15}, + [270] = {.lex_state = 15}, + [271] = {.lex_state = 15}, + [272] = {.lex_state = 15}, + [273] = {.lex_state = 15}, + [274] = {.lex_state = 15}, + [275] = {.lex_state = 15}, + [276] = {.lex_state = 15}, + [277] = {.lex_state = 15}, + [278] = {.lex_state = 15}, + [279] = {.lex_state = 15}, + [280] = {.lex_state = 15}, + [281] = {.lex_state = 15}, + [282] = {.lex_state = 15}, + [283] = {.lex_state = 15}, + [284] = {.lex_state = 15}, + [285] = {.lex_state = 15}, + [286] = {.lex_state = 15}, + [287] = {.lex_state = 15}, + [288] = {.lex_state = 15}, + [289] = {.lex_state = 15}, + [290] = {.lex_state = 15}, + [291] = {.lex_state = 15}, + [292] = {.lex_state = 15}, + [293] = {.lex_state = 15}, + [294] = {.lex_state = 15}, + [295] = {.lex_state = 15}, + [296] = {.lex_state = 15}, + [297] = {.lex_state = 15}, + [298] = {.lex_state = 15}, + [299] = {.lex_state = 15}, + [300] = {.lex_state = 15}, + [301] = {.lex_state = 15}, + [302] = {.lex_state = 15}, + [303] = {.lex_state = 15}, + [304] = {.lex_state = 15}, + [305] = {.lex_state = 15}, + [306] = {.lex_state = 15}, + [307] = {.lex_state = 15}, + [308] = {.lex_state = 15}, + [309] = {.lex_state = 15}, + [310] = {.lex_state = 15}, + [311] = {.lex_state = 15}, + [312] = {.lex_state = 15}, + [313] = {.lex_state = 15}, + [314] = {.lex_state = 15}, + [315] = {.lex_state = 15}, + [316] = {.lex_state = 15}, + [317] = {.lex_state = 15}, + [318] = {.lex_state = 15}, + [319] = {.lex_state = 15}, + [320] = {.lex_state = 15}, + [321] = {.lex_state = 15}, + [322] = {.lex_state = 15}, + [323] = {.lex_state = 15}, + [324] = {.lex_state = 15}, + [325] = {.lex_state = 15}, + [326] = {.lex_state = 15}, + [327] = {.lex_state = 15}, + [328] = {.lex_state = 15}, + [329] = {.lex_state = 15}, + [330] = {.lex_state = 15}, + [331] = {.lex_state = 15}, + [332] = {.lex_state = 15}, + [333] = {.lex_state = 15}, + [334] = {.lex_state = 15}, + [335] = {.lex_state = 15}, + [336] = {.lex_state = 15}, + [337] = {.lex_state = 15}, + [338] = {.lex_state = 15}, + [339] = {.lex_state = 15}, + [340] = {.lex_state = 15}, + [341] = {.lex_state = 15}, + [342] = {.lex_state = 15}, + [343] = {.lex_state = 15}, + [344] = {.lex_state = 15}, + [345] = {.lex_state = 3}, + [346] = {.lex_state = 15}, + [347] = {.lex_state = 15}, + [348] = {.lex_state = 15}, + [349] = {.lex_state = 15}, + [350] = {.lex_state = 15}, + [351] = {.lex_state = 15}, + [352] = {.lex_state = 3}, + [353] = {.lex_state = 15}, + [354] = {.lex_state = 15}, + [355] = {.lex_state = 15}, + [356] = {.lex_state = 15}, + [357] = {.lex_state = 15}, + [358] = {.lex_state = 15}, + [359] = {.lex_state = 15}, + [360] = {.lex_state = 15}, + [361] = {.lex_state = 15}, + [362] = {.lex_state = 15}, + [363] = {.lex_state = 15}, + [364] = {.lex_state = 15}, + [365] = {.lex_state = 15}, + [366] = {.lex_state = 15}, + [367] = {.lex_state = 3}, + [368] = {.lex_state = 15}, + [369] = {.lex_state = 15}, + [370] = {.lex_state = 15}, + [371] = {.lex_state = 15}, + [372] = {.lex_state = 15}, + [373] = {.lex_state = 15}, + [374] = {.lex_state = 15}, + [375] = {.lex_state = 15}, + [376] = {.lex_state = 15}, + [377] = {.lex_state = 15}, + [378] = {.lex_state = 15}, + [379] = {.lex_state = 15}, + [380] = {.lex_state = 15}, + [381] = {.lex_state = 15}, + [382] = {.lex_state = 15}, + [383] = {.lex_state = 15}, + [384] = {.lex_state = 15}, + [385] = {.lex_state = 15}, + [386] = {.lex_state = 15}, + [387] = {.lex_state = 15}, + [388] = {.lex_state = 15}, + [389] = {.lex_state = 15}, + [390] = {.lex_state = 15}, + [391] = {.lex_state = 3}, + [392] = {.lex_state = 3}, + [393] = {.lex_state = 3}, + [394] = {.lex_state = 3}, + [395] = {.lex_state = 3}, + [396] = {.lex_state = 3}, + [397] = {.lex_state = 3}, + [398] = {.lex_state = 3}, + [399] = {.lex_state = 3}, + [400] = {.lex_state = 3}, + [401] = {.lex_state = 3}, + [402] = {.lex_state = 3}, + [403] = {.lex_state = 3}, + [404] = {.lex_state = 3}, + [405] = {.lex_state = 3}, + [406] = {.lex_state = 3}, + [407] = {.lex_state = 3}, + [408] = {.lex_state = 3}, + [409] = {.lex_state = 3}, + [410] = {.lex_state = 3}, + [411] = {.lex_state = 3}, + [412] = {.lex_state = 3}, + [413] = {.lex_state = 3}, + [414] = {.lex_state = 3}, + [415] = {.lex_state = 3}, + [416] = {.lex_state = 3}, + [417] = {.lex_state = 3}, + [418] = {.lex_state = 3}, + [419] = {.lex_state = 3}, + [420] = {.lex_state = 3}, + [421] = {.lex_state = 3}, + [422] = {.lex_state = 3}, + [423] = {.lex_state = 3}, + [424] = {.lex_state = 3}, + [425] = {.lex_state = 3}, + [426] = {.lex_state = 3}, + [427] = {.lex_state = 3}, + [428] = {.lex_state = 3}, + [429] = {.lex_state = 3}, + [430] = {.lex_state = 3}, + [431] = {.lex_state = 3}, + [432] = {.lex_state = 3}, + [433] = {.lex_state = 3}, + [434] = {.lex_state = 3}, + [435] = {.lex_state = 3}, + [436] = {.lex_state = 3}, + [437] = {.lex_state = 3}, + [438] = {.lex_state = 3}, + [439] = {.lex_state = 3}, + [440] = {.lex_state = 3}, + [441] = {.lex_state = 3}, + [442] = {.lex_state = 3}, + [443] = {.lex_state = 3}, + [444] = {.lex_state = 3}, + [445] = {.lex_state = 3}, + [446] = {.lex_state = 3}, + [447] = {.lex_state = 3}, + [448] = {.lex_state = 3}, + [449] = {.lex_state = 3}, + [450] = {.lex_state = 3}, + [451] = {.lex_state = 3}, + [452] = {.lex_state = 3}, + [453] = {.lex_state = 3}, + [454] = {.lex_state = 3}, + [455] = {.lex_state = 3}, + [456] = {.lex_state = 3}, + [457] = {.lex_state = 3}, + [458] = {.lex_state = 3}, + [459] = {.lex_state = 3}, + [460] = {.lex_state = 3}, + [461] = {.lex_state = 3}, + [462] = {.lex_state = 3}, + [463] = {.lex_state = 3}, + [464] = {.lex_state = 3}, + [465] = {.lex_state = 3}, + [466] = {.lex_state = 3}, + [467] = {.lex_state = 3}, + [468] = {.lex_state = 3}, + [469] = {.lex_state = 3}, + [470] = {.lex_state = 3}, + [471] = {.lex_state = 3}, + [472] = {.lex_state = 3}, + [473] = {.lex_state = 3}, + [474] = {.lex_state = 3}, + [475] = {.lex_state = 3}, + [476] = {.lex_state = 3}, + [477] = {.lex_state = 3}, + [478] = {.lex_state = 3}, + [479] = {.lex_state = 3}, + [480] = {.lex_state = 3}, + [481] = {.lex_state = 3}, + [482] = {.lex_state = 3}, + [483] = {.lex_state = 3}, + [484] = {.lex_state = 3}, + [485] = {.lex_state = 3}, + [486] = {.lex_state = 3}, + [487] = {.lex_state = 3}, + [488] = {.lex_state = 3}, + [489] = {.lex_state = 3}, + [490] = {.lex_state = 3}, + [491] = {.lex_state = 3}, + [492] = {.lex_state = 3}, + [493] = {.lex_state = 3}, + [494] = {.lex_state = 3}, + [495] = {.lex_state = 3}, + [496] = {.lex_state = 3}, + [497] = {.lex_state = 3}, + [498] = {.lex_state = 3}, + [499] = {.lex_state = 3}, + [500] = {.lex_state = 3}, + [501] = {.lex_state = 3}, + [502] = {.lex_state = 3}, + [503] = {.lex_state = 3}, + [504] = {.lex_state = 3}, + [505] = {.lex_state = 3}, + [506] = {.lex_state = 3}, + [507] = {.lex_state = 3}, + [508] = {.lex_state = 3}, + [509] = {.lex_state = 3}, + [510] = {.lex_state = 3}, + [511] = {.lex_state = 3}, + [512] = {.lex_state = 3}, + [513] = {.lex_state = 3}, + [514] = {.lex_state = 3}, + [515] = {.lex_state = 3}, + [516] = {.lex_state = 3}, + [517] = {.lex_state = 3}, + [518] = {.lex_state = 3}, + [519] = {.lex_state = 3}, + [520] = {.lex_state = 3}, + [521] = {.lex_state = 3}, + [522] = {.lex_state = 3}, + [523] = {.lex_state = 3}, + [524] = {.lex_state = 3}, + [525] = {.lex_state = 3}, + [526] = {.lex_state = 3}, + [527] = {.lex_state = 3}, + [528] = {.lex_state = 3}, + [529] = {.lex_state = 3}, + [530] = {.lex_state = 3}, + [531] = {.lex_state = 3}, + [532] = {.lex_state = 3}, + [533] = {.lex_state = 3}, + [534] = {.lex_state = 3}, + [535] = {.lex_state = 3}, + [536] = {.lex_state = 3}, + [537] = {.lex_state = 3}, + [538] = {.lex_state = 3}, + [539] = {.lex_state = 3}, + [540] = {.lex_state = 3}, + [541] = {.lex_state = 3}, + [542] = {.lex_state = 3}, + [543] = {.lex_state = 3}, + [544] = {.lex_state = 3}, + [545] = {.lex_state = 3}, + [546] = {.lex_state = 3}, + [547] = {.lex_state = 3}, + [548] = {.lex_state = 3}, + [549] = {.lex_state = 3}, + [550] = {.lex_state = 3}, + [551] = {.lex_state = 3}, + [552] = {.lex_state = 3}, + [553] = {.lex_state = 3}, + [554] = {.lex_state = 3}, + [555] = {.lex_state = 3}, + [556] = {.lex_state = 3}, + [557] = {.lex_state = 3}, + [558] = {.lex_state = 3}, + [559] = {.lex_state = 3}, + [560] = {.lex_state = 3}, + [561] = {.lex_state = 3}, + [562] = {.lex_state = 3}, + [563] = {.lex_state = 3}, + [564] = {.lex_state = 3}, + [565] = {.lex_state = 3}, + [566] = {.lex_state = 3}, + [567] = {.lex_state = 3}, + [568] = {.lex_state = 3}, + [569] = {.lex_state = 3}, + [570] = {.lex_state = 3}, + [571] = {.lex_state = 3}, + [572] = {.lex_state = 3}, + [573] = {.lex_state = 3}, + [574] = {.lex_state = 3}, + [575] = {.lex_state = 3}, + [576] = {.lex_state = 3}, + [577] = {.lex_state = 3}, + [578] = {.lex_state = 3}, + [579] = {.lex_state = 3}, + [580] = {.lex_state = 3}, + [581] = {.lex_state = 3}, + [582] = {.lex_state = 3}, + [583] = {.lex_state = 3}, + [584] = {.lex_state = 3}, + [585] = {.lex_state = 3}, + [586] = {.lex_state = 3}, + [587] = {.lex_state = 3}, + [588] = {.lex_state = 3}, + [589] = {.lex_state = 3}, + [590] = {.lex_state = 3}, + [591] = {.lex_state = 3}, + [592] = {.lex_state = 3}, + [593] = {.lex_state = 3}, + [594] = {.lex_state = 3}, + [595] = {.lex_state = 3}, + [596] = {.lex_state = 3}, + [597] = {.lex_state = 3}, + [598] = {.lex_state = 3}, + [599] = {.lex_state = 3}, + [600] = {.lex_state = 3}, + [601] = {.lex_state = 3}, + [602] = {.lex_state = 3}, + [603] = {.lex_state = 3}, + [604] = {.lex_state = 3}, + [605] = {.lex_state = 3}, + [606] = {.lex_state = 3}, + [607] = {.lex_state = 3}, + [608] = {.lex_state = 3}, + [609] = {.lex_state = 3}, + [610] = {.lex_state = 3}, + [611] = {.lex_state = 3}, + [612] = {.lex_state = 3}, + [613] = {.lex_state = 3}, + [614] = {.lex_state = 3}, + [615] = {.lex_state = 3}, + [616] = {.lex_state = 3}, + [617] = {.lex_state = 3}, + [618] = {.lex_state = 3}, + [619] = {.lex_state = 3}, + [620] = {.lex_state = 3}, + [621] = {.lex_state = 3}, + [622] = {.lex_state = 3}, + [623] = {.lex_state = 3}, + [624] = {.lex_state = 3}, + [625] = {.lex_state = 3}, + [626] = {.lex_state = 3}, + [627] = {.lex_state = 3}, + [628] = {.lex_state = 3}, + [629] = {.lex_state = 3}, + [630] = {.lex_state = 3}, + [631] = {.lex_state = 3}, + [632] = {.lex_state = 3}, + [633] = {.lex_state = 3}, + [634] = {.lex_state = 3}, + [635] = {.lex_state = 3}, + [636] = {.lex_state = 3}, + [637] = {.lex_state = 3}, + [638] = {.lex_state = 3}, + [639] = {.lex_state = 3}, + [640] = {.lex_state = 3}, + [641] = {.lex_state = 3}, + [642] = {.lex_state = 3}, + [643] = {.lex_state = 3}, + [644] = {.lex_state = 3}, + [645] = {.lex_state = 3}, + [646] = {.lex_state = 3}, + [647] = {.lex_state = 3}, + [648] = {.lex_state = 3}, + [649] = {.lex_state = 3}, + [650] = {.lex_state = 3}, + [651] = {.lex_state = 3}, + [652] = {.lex_state = 3}, + [653] = {.lex_state = 3}, + [654] = {.lex_state = 3}, + [655] = {.lex_state = 3}, + [656] = {.lex_state = 3}, + [657] = {.lex_state = 3}, + [658] = {.lex_state = 3}, + [659] = {.lex_state = 3}, + [660] = {.lex_state = 3}, + [661] = {.lex_state = 3}, + [662] = {.lex_state = 3}, + [663] = {.lex_state = 3}, + [664] = {.lex_state = 3}, + [665] = {.lex_state = 3}, + [666] = {.lex_state = 3}, + [667] = {.lex_state = 3}, + [668] = {.lex_state = 3}, + [669] = {.lex_state = 3}, + [670] = {.lex_state = 3}, + [671] = {.lex_state = 3}, + [672] = {.lex_state = 3}, + [673] = {.lex_state = 3}, + [674] = {.lex_state = 3}, + [675] = {.lex_state = 3}, + [676] = {.lex_state = 3}, + [677] = {.lex_state = 3}, + [678] = {.lex_state = 3}, + [679] = {.lex_state = 3}, + [680] = {.lex_state = 3}, + [681] = {.lex_state = 3}, + [682] = {.lex_state = 3}, + [683] = {.lex_state = 3}, + [684] = {.lex_state = 3}, + [685] = {.lex_state = 3}, + [686] = {.lex_state = 3}, + [687] = {.lex_state = 3}, + [688] = {.lex_state = 3}, + [689] = {.lex_state = 3}, + [690] = {.lex_state = 3}, + [691] = {.lex_state = 3}, + [692] = {.lex_state = 3}, + [693] = {.lex_state = 3}, + [694] = {.lex_state = 3}, + [695] = {.lex_state = 3}, + [696] = {.lex_state = 3}, + [697] = {.lex_state = 3}, + [698] = {.lex_state = 3}, + [699] = {.lex_state = 3}, + [700] = {.lex_state = 3}, + [701] = {.lex_state = 3}, + [702] = {.lex_state = 3}, + [703] = {.lex_state = 3}, + [704] = {.lex_state = 3}, + [705] = {.lex_state = 3}, + [706] = {.lex_state = 3}, + [707] = {.lex_state = 3}, + [708] = {.lex_state = 3}, + [709] = {.lex_state = 3}, + [710] = {.lex_state = 3}, + [711] = {.lex_state = 3}, + [712] = {.lex_state = 3}, + [713] = {.lex_state = 3}, + [714] = {.lex_state = 3}, + [715] = {.lex_state = 3}, + [716] = {.lex_state = 3}, + [717] = {.lex_state = 3}, + [718] = {.lex_state = 3}, + [719] = {.lex_state = 3}, + [720] = {.lex_state = 3}, + [721] = {.lex_state = 3}, + [722] = {.lex_state = 3}, + [723] = {.lex_state = 3}, + [724] = {.lex_state = 3}, + [725] = {.lex_state = 3}, + [726] = {.lex_state = 3}, + [727] = {.lex_state = 3}, + [728] = {.lex_state = 3}, + [729] = {.lex_state = 3}, + [730] = {.lex_state = 3}, + [731] = {.lex_state = 3}, + [732] = {.lex_state = 3}, + [733] = {.lex_state = 3}, + [734] = {.lex_state = 3}, + [735] = {.lex_state = 3}, + [736] = {.lex_state = 3}, + [737] = {.lex_state = 3}, + [738] = {.lex_state = 3}, + [739] = {.lex_state = 3}, + [740] = {.lex_state = 3}, + [741] = {.lex_state = 3}, + [742] = {.lex_state = 3}, + [743] = {.lex_state = 3}, + [744] = {.lex_state = 3}, + [745] = {.lex_state = 3}, + [746] = {.lex_state = 3}, + [747] = {.lex_state = 3}, + [748] = {.lex_state = 3}, + [749] = {.lex_state = 3}, + [750] = {.lex_state = 3}, + [751] = {.lex_state = 3}, + [752] = {.lex_state = 3}, + [753] = {.lex_state = 3}, + [754] = {.lex_state = 3}, + [755] = {.lex_state = 3}, + [756] = {.lex_state = 3}, + [757] = {.lex_state = 3}, + [758] = {.lex_state = 3}, + [759] = {.lex_state = 3}, + [760] = {.lex_state = 3}, + [761] = {.lex_state = 3}, + [762] = {.lex_state = 3}, + [763] = {.lex_state = 3}, + [764] = {.lex_state = 3}, + [765] = {.lex_state = 3}, + [766] = {.lex_state = 3}, + [767] = {.lex_state = 3}, + [768] = {.lex_state = 3}, + [769] = {.lex_state = 3}, + [770] = {.lex_state = 3}, + [771] = {.lex_state = 3}, + [772] = {.lex_state = 3}, + [773] = {.lex_state = 3}, + [774] = {.lex_state = 3}, + [775] = {.lex_state = 3}, + [776] = {.lex_state = 3}, + [777] = {.lex_state = 3}, + [778] = {.lex_state = 2}, + [779] = {.lex_state = 2}, + [780] = {.lex_state = 2}, + [781] = {.lex_state = 2}, + [782] = {.lex_state = 2}, + [783] = {.lex_state = 2}, + [784] = {.lex_state = 2}, + [785] = {.lex_state = 2}, + [786] = {.lex_state = 2}, + [787] = {.lex_state = 2}, + [788] = {.lex_state = 2}, + [789] = {.lex_state = 2}, + [790] = {.lex_state = 2}, + [791] = {.lex_state = 2}, + [792] = {.lex_state = 2}, + [793] = {.lex_state = 2}, + [794] = {.lex_state = 2}, + [795] = {.lex_state = 2}, + [796] = {.lex_state = 15}, + [797] = {.lex_state = 15}, + [798] = {.lex_state = 15}, + [799] = {.lex_state = 15}, + [800] = {.lex_state = 15}, + [801] = {.lex_state = 3}, + [802] = {.lex_state = 3}, + [803] = {.lex_state = 15}, + [804] = {.lex_state = 15}, + [805] = {.lex_state = 15}, + [806] = {.lex_state = 15}, + [807] = {.lex_state = 3}, + [808] = {.lex_state = 15}, + [809] = {.lex_state = 15}, + [810] = {.lex_state = 15}, + [811] = {.lex_state = 15}, + [812] = {.lex_state = 15}, + [813] = {.lex_state = 15}, + [814] = {.lex_state = 3}, + [815] = {.lex_state = 15}, + [816] = {.lex_state = 15}, + [817] = {.lex_state = 15}, + [818] = {.lex_state = 15}, + [819] = {.lex_state = 15}, + [820] = {.lex_state = 3}, + [821] = {.lex_state = 15}, + [822] = {.lex_state = 15}, + [823] = {.lex_state = 15}, + [824] = {.lex_state = 15}, + [825] = {.lex_state = 15}, + [826] = {.lex_state = 15}, + [827] = {.lex_state = 15}, + [828] = {.lex_state = 15}, + [829] = {.lex_state = 3}, + [830] = {.lex_state = 15}, + [831] = {.lex_state = 15}, + [832] = {.lex_state = 15}, + [833] = {.lex_state = 15}, + [834] = {.lex_state = 3}, + [835] = {.lex_state = 15}, + [836] = {.lex_state = 15}, + [837] = {.lex_state = 15}, + [838] = {.lex_state = 15}, + [839] = {.lex_state = 15}, + [840] = {.lex_state = 15}, + [841] = {.lex_state = 15}, + [842] = {.lex_state = 15}, + [843] = {.lex_state = 15}, + [844] = {.lex_state = 15}, + [845] = {.lex_state = 15}, + [846] = {.lex_state = 15}, + [847] = {.lex_state = 3}, + [848] = {.lex_state = 15}, + [849] = {.lex_state = 15}, + [850] = {.lex_state = 15}, + [851] = {.lex_state = 3}, + [852] = {.lex_state = 3}, + [853] = {.lex_state = 15}, + [854] = {.lex_state = 3}, + [855] = {.lex_state = 15}, + [856] = {.lex_state = 15}, + [857] = {.lex_state = 3}, + [858] = {.lex_state = 3}, + [859] = {.lex_state = 3}, + [860] = {.lex_state = 3}, + [861] = {.lex_state = 3}, + [862] = {.lex_state = 3}, + [863] = {.lex_state = 3}, + [864] = {.lex_state = 3}, + [865] = {.lex_state = 3}, + [866] = {.lex_state = 15}, + [867] = {.lex_state = 3}, + [868] = {.lex_state = 3}, + [869] = {.lex_state = 3}, + [870] = {.lex_state = 3}, + [871] = {.lex_state = 15}, + [872] = {.lex_state = 3}, + [873] = {.lex_state = 3}, + [874] = {.lex_state = 3}, + [875] = {.lex_state = 3}, + [876] = {.lex_state = 3}, + [877] = {.lex_state = 3}, + [878] = {.lex_state = 3}, + [879] = {.lex_state = 15}, + [880] = {.lex_state = 15}, + [881] = {.lex_state = 15}, + [882] = {.lex_state = 3}, + [883] = {.lex_state = 3}, + [884] = {.lex_state = 15}, + [885] = {.lex_state = 3}, + [886] = {.lex_state = 3}, + [887] = {.lex_state = 3}, + [888] = {.lex_state = 3}, + [889] = {.lex_state = 15}, + [890] = {.lex_state = 3}, + [891] = {.lex_state = 3}, + [892] = {.lex_state = 3}, + [893] = {.lex_state = 3}, + [894] = {.lex_state = 3}, + [895] = {.lex_state = 3}, + [896] = {.lex_state = 3}, + [897] = {.lex_state = 15}, + [898] = {.lex_state = 15}, + [899] = {.lex_state = 15}, + [900] = {.lex_state = 15}, + [901] = {.lex_state = 15}, + [902] = {.lex_state = 15}, + [903] = {.lex_state = 15}, + [904] = {.lex_state = 15}, + [905] = {.lex_state = 15}, + [906] = {.lex_state = 15}, + [907] = {.lex_state = 15}, + [908] = {.lex_state = 15}, + [909] = {.lex_state = 15}, + [910] = {.lex_state = 15}, + [911] = {.lex_state = 15}, + [912] = {.lex_state = 15}, + [913] = {.lex_state = 15}, + [914] = {.lex_state = 15}, + [915] = {.lex_state = 15}, + [916] = {.lex_state = 15}, + [917] = {.lex_state = 15}, + [918] = {.lex_state = 15}, + [919] = {.lex_state = 15}, + [920] = {.lex_state = 15}, + [921] = {.lex_state = 15}, + [922] = {.lex_state = 15}, + [923] = {.lex_state = 15}, + [924] = {.lex_state = 15}, + [925] = {.lex_state = 15}, + [926] = {.lex_state = 15}, + [927] = {.lex_state = 15}, + [928] = {.lex_state = 15}, + [929] = {.lex_state = 15}, + [930] = {.lex_state = 3}, + [931] = {.lex_state = 15}, + [932] = {.lex_state = 15}, + [933] = {.lex_state = 15}, + [934] = {.lex_state = 3}, + [935] = {.lex_state = 15}, + [936] = {.lex_state = 15}, + [937] = {.lex_state = 15}, + [938] = {.lex_state = 15}, + [939] = {.lex_state = 3}, + [940] = {.lex_state = 15}, + [941] = {.lex_state = 15}, + [942] = {.lex_state = 3}, + [943] = {.lex_state = 15}, + [944] = {.lex_state = 15}, + [945] = {.lex_state = 15}, + [946] = {.lex_state = 15}, + [947] = {.lex_state = 3}, + [948] = {.lex_state = 3}, + [949] = {.lex_state = 3}, + [950] = {.lex_state = 15}, + [951] = {.lex_state = 15}, + [952] = {.lex_state = 15}, + [953] = {.lex_state = 15}, + [954] = {.lex_state = 15}, + [955] = {.lex_state = 15}, + [956] = {.lex_state = 15}, + [957] = {.lex_state = 15}, + [958] = {.lex_state = 3}, + [959] = {.lex_state = 15}, + [960] = {.lex_state = 15}, + [961] = {.lex_state = 15}, + [962] = {.lex_state = 15}, + [963] = {.lex_state = 15}, + [964] = {.lex_state = 3}, + [965] = {.lex_state = 3}, + [966] = {.lex_state = 15}, + [967] = {.lex_state = 3}, + [968] = {.lex_state = 15}, + [969] = {.lex_state = 15}, + [970] = {.lex_state = 15}, + [971] = {.lex_state = 3}, + [972] = {.lex_state = 3}, + [973] = {.lex_state = 0}, + [974] = {.lex_state = 3}, + [975] = {.lex_state = 0}, + [976] = {.lex_state = 0}, + [977] = {.lex_state = 0}, + [978] = {.lex_state = 0}, + [979] = {.lex_state = 0}, + [980] = {.lex_state = 3}, + [981] = {.lex_state = 0}, + [982] = {.lex_state = 0}, + [983] = {.lex_state = 0}, + [984] = {.lex_state = 0}, + [985] = {.lex_state = 0}, + [986] = {.lex_state = 0}, + [987] = {.lex_state = 0}, + [988] = {.lex_state = 3}, + [989] = {.lex_state = 3}, + [990] = {.lex_state = 3}, + [991] = {.lex_state = 3}, + [992] = {.lex_state = 3}, + [993] = {.lex_state = 3}, + [994] = {.lex_state = 3}, + [995] = {.lex_state = 3}, + [996] = {.lex_state = 3}, + [997] = {.lex_state = 3}, + [998] = {.lex_state = 3}, + [999] = {.lex_state = 3}, + [1000] = {.lex_state = 3}, + [1001] = {.lex_state = 3}, + [1002] = {.lex_state = 3}, + [1003] = {.lex_state = 3}, + [1004] = {.lex_state = 3}, + [1005] = {.lex_state = 3}, + [1006] = {.lex_state = 3}, + [1007] = {.lex_state = 3}, + [1008] = {.lex_state = 3}, + [1009] = {.lex_state = 3}, + [1010] = {.lex_state = 3}, + [1011] = {.lex_state = 3}, + [1012] = {.lex_state = 3}, + [1013] = {.lex_state = 3}, + [1014] = {.lex_state = 3}, + [1015] = {.lex_state = 3}, + [1016] = {.lex_state = 3}, + [1017] = {.lex_state = 3}, + [1018] = {.lex_state = 3}, + [1019] = {.lex_state = 3}, + [1020] = {.lex_state = 3}, + [1021] = {.lex_state = 3}, + [1022] = {.lex_state = 3}, + [1023] = {.lex_state = 3}, + [1024] = {.lex_state = 3}, + [1025] = {.lex_state = 3}, + [1026] = {.lex_state = 3}, + [1027] = {.lex_state = 3}, + [1028] = {.lex_state = 3}, + [1029] = {.lex_state = 3}, + [1030] = {.lex_state = 3}, + [1031] = {.lex_state = 3}, + [1032] = {.lex_state = 3}, + [1033] = {.lex_state = 3}, + [1034] = {.lex_state = 3}, + [1035] = {.lex_state = 3}, + [1036] = {.lex_state = 3}, + [1037] = {.lex_state = 3}, + [1038] = {.lex_state = 3}, + [1039] = {.lex_state = 3}, + [1040] = {.lex_state = 3}, + [1041] = {.lex_state = 3}, + [1042] = {.lex_state = 3}, + [1043] = {.lex_state = 3}, + [1044] = {.lex_state = 3}, + [1045] = {.lex_state = 3}, + [1046] = {.lex_state = 3}, + [1047] = {.lex_state = 3}, + [1048] = {.lex_state = 3}, + [1049] = {.lex_state = 3}, + [1050] = {.lex_state = 3}, + [1051] = {.lex_state = 3}, + [1052] = {.lex_state = 3}, + [1053] = {.lex_state = 3}, + [1054] = {.lex_state = 3}, + [1055] = {.lex_state = 3}, + [1056] = {.lex_state = 3}, + [1057] = {.lex_state = 3}, + [1058] = {.lex_state = 3}, + [1059] = {.lex_state = 3}, + [1060] = {.lex_state = 3}, + [1061] = {.lex_state = 3}, + [1062] = {.lex_state = 3}, + [1063] = {.lex_state = 3}, + [1064] = {.lex_state = 3}, + [1065] = {.lex_state = 3}, + [1066] = {.lex_state = 0}, + [1067] = {.lex_state = 0}, + [1068] = {.lex_state = 0}, + [1069] = {.lex_state = 0}, + [1070] = {.lex_state = 0}, + [1071] = {.lex_state = 0}, + [1072] = {.lex_state = 0}, + [1073] = {.lex_state = 0}, + [1074] = {.lex_state = 0}, + [1075] = {.lex_state = 0}, + [1076] = {.lex_state = 0}, + [1077] = {.lex_state = 0}, + [1078] = {.lex_state = 0}, + [1079] = {.lex_state = 0}, + [1080] = {.lex_state = 0}, + [1081] = {.lex_state = 0}, + [1082] = {.lex_state = 0}, + [1083] = {.lex_state = 0}, + [1084] = {.lex_state = 0}, + [1085] = {.lex_state = 0}, + [1086] = {.lex_state = 0}, + [1087] = {.lex_state = 0}, + [1088] = {.lex_state = 0}, + [1089] = {.lex_state = 0}, + [1090] = {.lex_state = 0}, + [1091] = {.lex_state = 0}, + [1092] = {.lex_state = 0}, + [1093] = {.lex_state = 0}, + [1094] = {.lex_state = 0}, + [1095] = {.lex_state = 0}, + [1096] = {.lex_state = 0}, + [1097] = {.lex_state = 0}, + [1098] = {.lex_state = 0}, + [1099] = {.lex_state = 0}, + [1100] = {.lex_state = 0}, + [1101] = {.lex_state = 0}, + [1102] = {.lex_state = 0}, + [1103] = {.lex_state = 0}, + [1104] = {.lex_state = 0}, + [1105] = {.lex_state = 0}, + [1106] = {.lex_state = 0}, + [1107] = {.lex_state = 0}, + [1108] = {.lex_state = 0}, + [1109] = {.lex_state = 0}, + [1110] = {.lex_state = 0}, + [1111] = {.lex_state = 0}, + [1112] = {.lex_state = 0}, + [1113] = {.lex_state = 0}, + [1114] = {.lex_state = 0}, + [1115] = {.lex_state = 0}, + [1116] = {.lex_state = 0}, + [1117] = {.lex_state = 0}, + [1118] = {.lex_state = 0}, + [1119] = {.lex_state = 0}, + [1120] = {.lex_state = 0}, + [1121] = {.lex_state = 0}, + [1122] = {.lex_state = 0}, + [1123] = {.lex_state = 0}, + [1124] = {.lex_state = 0}, + [1125] = {.lex_state = 0}, + [1126] = {.lex_state = 0}, + [1127] = {.lex_state = 0}, + [1128] = {.lex_state = 0}, + [1129] = {.lex_state = 0}, + [1130] = {.lex_state = 0}, + [1131] = {.lex_state = 0}, + [1132] = {.lex_state = 0}, + [1133] = {.lex_state = 15}, + [1134] = {.lex_state = 0}, + [1135] = {.lex_state = 0}, + [1136] = {.lex_state = 0}, + [1137] = {.lex_state = 0}, + [1138] = {.lex_state = 0}, + [1139] = {.lex_state = 0}, + [1140] = {.lex_state = 0}, + [1141] = {.lex_state = 0}, + [1142] = {.lex_state = 0}, + [1143] = {.lex_state = 0}, + [1144] = {.lex_state = 0}, + [1145] = {.lex_state = 0}, + [1146] = {.lex_state = 0}, + [1147] = {.lex_state = 0}, + [1148] = {.lex_state = 0}, + [1149] = {.lex_state = 0}, + [1150] = {.lex_state = 0}, + [1151] = {.lex_state = 0}, + [1152] = {.lex_state = 0}, + [1153] = {.lex_state = 0}, + [1154] = {.lex_state = 15}, + [1155] = {.lex_state = 6}, + [1156] = {.lex_state = 15}, + [1157] = {.lex_state = 15}, + [1158] = {.lex_state = 15}, + [1159] = {.lex_state = 0}, + [1160] = {.lex_state = 0}, + [1161] = {.lex_state = 15}, + [1162] = {.lex_state = 15}, + [1163] = {.lex_state = 15}, + [1164] = {.lex_state = 0}, + [1165] = {.lex_state = 4}, + [1166] = {.lex_state = 15}, + [1167] = {.lex_state = 15}, + [1168] = {.lex_state = 6}, + [1169] = {.lex_state = 15}, + [1170] = {.lex_state = 0}, + [1171] = {.lex_state = 4}, + [1172] = {.lex_state = 15}, + [1173] = {.lex_state = 0}, + [1174] = {.lex_state = 0}, + [1175] = {.lex_state = 15}, + [1176] = {.lex_state = 6}, + [1177] = {.lex_state = 0}, + [1178] = {.lex_state = 4}, + [1179] = {.lex_state = 15}, + [1180] = {.lex_state = 15}, + [1181] = {.lex_state = 0}, + [1182] = {.lex_state = 15}, + [1183] = {.lex_state = 15}, + [1184] = {.lex_state = 15}, + [1185] = {.lex_state = 0}, + [1186] = {.lex_state = 0}, + [1187] = {.lex_state = 15}, + [1188] = {.lex_state = 15}, + [1189] = {.lex_state = 15}, + [1190] = {.lex_state = 0}, + [1191] = {.lex_state = 15}, + [1192] = {.lex_state = 6}, + [1193] = {.lex_state = 15}, + [1194] = {.lex_state = 0}, + [1195] = {.lex_state = 15}, + [1196] = {.lex_state = 0}, + [1197] = {.lex_state = 4}, + [1198] = {.lex_state = 0}, + [1199] = {.lex_state = 15}, + [1200] = {.lex_state = 15}, + [1201] = {.lex_state = 15}, + [1202] = {.lex_state = 6}, + [1203] = {.lex_state = 15}, + [1204] = {.lex_state = 5}, + [1205] = {.lex_state = 15}, + [1206] = {.lex_state = 15}, + [1207] = {.lex_state = 15}, + [1208] = {.lex_state = 0}, + [1209] = {.lex_state = 0}, + [1210] = {.lex_state = 0}, + [1211] = {.lex_state = 15}, + [1212] = {.lex_state = 15}, + [1213] = {.lex_state = 0}, + [1214] = {.lex_state = 15}, + [1215] = {.lex_state = 15}, + [1216] = {.lex_state = 15}, + [1217] = {.lex_state = 0}, + [1218] = {.lex_state = 0}, + [1219] = {.lex_state = 15}, + [1220] = {.lex_state = 0}, + [1221] = {.lex_state = 15}, + [1222] = {.lex_state = 15}, + [1223] = {.lex_state = 6}, + [1224] = {.lex_state = 0}, + [1225] = {.lex_state = 4}, + [1226] = {.lex_state = 15}, + [1227] = {.lex_state = 6}, + [1228] = {.lex_state = 15}, + [1229] = {.lex_state = 0}, + [1230] = {.lex_state = 0}, + [1231] = {.lex_state = 0}, + [1232] = {.lex_state = 0}, + [1233] = {.lex_state = 0}, + [1234] = {.lex_state = 7}, + [1235] = {.lex_state = 15}, + [1236] = {.lex_state = 0}, + [1237] = {.lex_state = 0}, + [1238] = {.lex_state = 0}, + [1239] = {.lex_state = 15}, + [1240] = {.lex_state = 15}, + [1241] = {.lex_state = 15}, + [1242] = {.lex_state = 15}, + [1243] = {.lex_state = 15}, + [1244] = {.lex_state = 0}, + [1245] = {.lex_state = 0}, + [1246] = {.lex_state = 15}, + [1247] = {.lex_state = 15}, + [1248] = {.lex_state = 0}, + [1249] = {.lex_state = 0}, + [1250] = {.lex_state = 15}, + [1251] = {.lex_state = 0}, + [1252] = {.lex_state = 15}, + [1253] = {.lex_state = 15}, + [1254] = {.lex_state = 15}, + [1255] = {.lex_state = 0}, + [1256] = {.lex_state = 15}, + [1257] = {.lex_state = 0}, + [1258] = {.lex_state = 15}, + [1259] = {.lex_state = 0}, + [1260] = {.lex_state = 0}, + [1261] = {.lex_state = 15}, + [1262] = {.lex_state = 15}, + [1263] = {.lex_state = 15}, + [1264] = {.lex_state = 15}, + [1265] = {.lex_state = 15}, + [1266] = {.lex_state = 15}, + [1267] = {.lex_state = 0}, + [1268] = {.lex_state = 0}, + [1269] = {.lex_state = 15}, + [1270] = {.lex_state = 15}, + [1271] = {.lex_state = 15}, + [1272] = {.lex_state = 0}, + [1273] = {.lex_state = 0}, + [1274] = {.lex_state = 0}, + [1275] = {.lex_state = 0}, + [1276] = {.lex_state = 0}, + [1277] = {.lex_state = 15}, + [1278] = {.lex_state = 15}, + [1279] = {.lex_state = 0}, + [1280] = {.lex_state = 0}, + [1281] = {.lex_state = 0}, + [1282] = {.lex_state = 0}, + [1283] = {.lex_state = 6}, + [1284] = {.lex_state = 4}, + [1285] = {.lex_state = 0}, + [1286] = {.lex_state = 0}, + [1287] = {.lex_state = 0}, + [1288] = {.lex_state = 0}, + [1289] = {.lex_state = 0}, + [1290] = {.lex_state = 0}, + [1291] = {.lex_state = 0}, + [1292] = {.lex_state = 0}, + [1293] = {.lex_state = 0}, + [1294] = {.lex_state = 0}, + [1295] = {.lex_state = 0}, + [1296] = {.lex_state = 0}, + [1297] = {.lex_state = 0}, + [1298] = {.lex_state = 0}, + [1299] = {.lex_state = 0}, + [1300] = {.lex_state = 0}, + [1301] = {.lex_state = 0}, + [1302] = {.lex_state = 0}, + [1303] = {.lex_state = 0}, + [1304] = {.lex_state = 0}, + [1305] = {.lex_state = 0}, + [1306] = {.lex_state = 0}, + [1307] = {.lex_state = 0}, + [1308] = {.lex_state = 0}, + [1309] = {.lex_state = 0}, + [1310] = {.lex_state = 0}, + [1311] = {.lex_state = 0}, + [1312] = {.lex_state = 0}, + [1313] = {.lex_state = 0}, + [1314] = {.lex_state = 0}, + [1315] = {.lex_state = 0}, + [1316] = {.lex_state = 4}, + [1317] = {.lex_state = 0}, + [1318] = {.lex_state = 0}, + [1319] = {.lex_state = 0}, + [1320] = {.lex_state = 7}, + [1321] = {.lex_state = 6}, + [1322] = {.lex_state = 7}, + [1323] = {.lex_state = 0}, + [1324] = {.lex_state = 0}, + [1325] = {.lex_state = 0}, + [1326] = {.lex_state = 0}, + [1327] = {.lex_state = 4}, + [1328] = {.lex_state = 0}, + [1329] = {.lex_state = 0}, + [1330] = {.lex_state = 0}, + [1331] = {.lex_state = 0}, + [1332] = {.lex_state = 0}, + [1333] = {.lex_state = 0}, + [1334] = {.lex_state = 4}, + [1335] = {.lex_state = 0}, + [1336] = {.lex_state = 0}, + [1337] = {.lex_state = 0}, + [1338] = {.lex_state = 0}, + [1339] = {.lex_state = 0}, + [1340] = {.lex_state = 3}, + [1341] = {.lex_state = 0}, + [1342] = {.lex_state = 0}, + [1343] = {.lex_state = 0}, + [1344] = {.lex_state = 0}, + [1345] = {.lex_state = 3}, + [1346] = {.lex_state = 0}, + [1347] = {.lex_state = 0}, + [1348] = {.lex_state = 0}, + [1349] = {.lex_state = 3}, + [1350] = {.lex_state = 0}, + [1351] = {.lex_state = 0}, + [1352] = {.lex_state = 0}, + [1353] = {.lex_state = 0}, + [1354] = {.lex_state = 0}, + [1355] = {.lex_state = 0}, + [1356] = {.lex_state = 0}, + [1357] = {.lex_state = 15}, + [1358] = {.lex_state = 0}, + [1359] = {.lex_state = 15}, + [1360] = {.lex_state = 0}, + [1361] = {.lex_state = 0}, + [1362] = {.lex_state = 0}, + [1363] = {.lex_state = 0}, + [1364] = {.lex_state = 0}, + [1365] = {.lex_state = 0}, + [1366] = {.lex_state = 0}, + [1367] = {.lex_state = 0}, + [1368] = {.lex_state = 0}, + [1369] = {.lex_state = 0}, + [1370] = {.lex_state = 0}, + [1371] = {.lex_state = 0}, + [1372] = {.lex_state = 0}, + [1373] = {.lex_state = 0}, + [1374] = {.lex_state = 0}, + [1375] = {.lex_state = 0}, + [1376] = {.lex_state = 0}, + [1377] = {.lex_state = 0}, + [1378] = {.lex_state = 0}, + [1379] = {.lex_state = 0}, + [1380] = {.lex_state = 0}, + [1381] = {.lex_state = 0}, + [1382] = {.lex_state = 0}, + [1383] = {.lex_state = 0}, + [1384] = {.lex_state = 0}, + [1385] = {.lex_state = 0}, + [1386] = {.lex_state = 0}, + [1387] = {.lex_state = 0}, + [1388] = {.lex_state = 0}, + [1389] = {.lex_state = 0}, + [1390] = {.lex_state = 0}, + [1391] = {.lex_state = 0}, + [1392] = {.lex_state = 0}, + [1393] = {.lex_state = 0}, + [1394] = {.lex_state = 0}, + [1395] = {.lex_state = 0}, + [1396] = {.lex_state = 0}, + [1397] = {.lex_state = 0}, + [1398] = {.lex_state = 0}, + [1399] = {.lex_state = 0}, + [1400] = {.lex_state = 0}, + [1401] = {.lex_state = 0}, + [1402] = {.lex_state = 0}, + [1403] = {.lex_state = 0}, + [1404] = {.lex_state = 0}, + [1405] = {.lex_state = 0}, + [1406] = {.lex_state = 0}, + [1407] = {.lex_state = 0}, + [1408] = {.lex_state = 0}, + [1409] = {.lex_state = 0}, + [1410] = {.lex_state = 0}, + [1411] = {.lex_state = 0}, + [1412] = {.lex_state = 0}, + [1413] = {.lex_state = 0}, + [1414] = {.lex_state = 15}, + [1415] = {.lex_state = 0}, + [1416] = {.lex_state = 0}, + [1417] = {.lex_state = 0}, + [1418] = {.lex_state = 0}, + [1419] = {.lex_state = 0}, + [1420] = {.lex_state = 0}, + [1421] = {.lex_state = 0}, + [1422] = {.lex_state = 0}, + [1423] = {.lex_state = 0}, + [1424] = {.lex_state = 15}, + [1425] = {.lex_state = 0}, + [1426] = {.lex_state = 0}, + [1427] = {.lex_state = 0}, + [1428] = {.lex_state = 0}, + [1429] = {.lex_state = 0}, + [1430] = {.lex_state = 0}, + [1431] = {.lex_state = 0}, + [1432] = {.lex_state = 0}, + [1433] = {.lex_state = 0}, + [1434] = {.lex_state = 0}, + [1435] = {.lex_state = 0}, + [1436] = {.lex_state = 0}, + [1437] = {.lex_state = 0}, + [1438] = {.lex_state = 0}, + [1439] = {.lex_state = 0}, + [1440] = {.lex_state = 0}, + [1441] = {.lex_state = 0}, + [1442] = {.lex_state = 0}, + [1443] = {.lex_state = 0}, + [1444] = {.lex_state = 0}, + [1445] = {.lex_state = 0}, + [1446] = {.lex_state = 0}, + [1447] = {.lex_state = 0}, + [1448] = {.lex_state = 43}, + [1449] = {.lex_state = 0}, + [1450] = {.lex_state = 0}, + [1451] = {.lex_state = 0}, + [1452] = {.lex_state = 0}, + [1453] = {.lex_state = 0}, + [1454] = {.lex_state = 0}, + [1455] = {.lex_state = 0}, + [1456] = {.lex_state = 0}, + [1457] = {.lex_state = 15}, + [1458] = {.lex_state = 0}, + [1459] = {.lex_state = 0}, + [1460] = {.lex_state = 0}, + [1461] = {.lex_state = 0}, + [1462] = {.lex_state = 0}, + [1463] = {.lex_state = 0}, + [1464] = {.lex_state = 0}, + [1465] = {.lex_state = 0}, + [1466] = {.lex_state = 0}, + [1467] = {.lex_state = 0}, + [1468] = {.lex_state = 0}, + [1469] = {.lex_state = 0}, + [1470] = {.lex_state = 0}, + [1471] = {.lex_state = 0}, + [1472] = {.lex_state = 0}, + [1473] = {.lex_state = 0}, + [1474] = {.lex_state = 0}, + [1475] = {.lex_state = 0}, + [1476] = {.lex_state = 0}, + [1477] = {.lex_state = 0}, + [1478] = {.lex_state = 0}, + [1479] = {.lex_state = 0}, + [1480] = {.lex_state = 15}, + [1481] = {.lex_state = 0}, + [1482] = {.lex_state = 0}, + [1483] = {.lex_state = 0}, + [1484] = {.lex_state = 0}, + [1485] = {.lex_state = 0}, + [1486] = {.lex_state = 0}, + [1487] = {.lex_state = 0}, + [1488] = {.lex_state = 0}, + [1489] = {.lex_state = 0}, + [1490] = {.lex_state = 43}, + [1491] = {.lex_state = 0}, + [1492] = {.lex_state = 0}, + [1493] = {.lex_state = 0}, + [1494] = {.lex_state = 0}, + [1495] = {.lex_state = 0}, + [1496] = {.lex_state = 0}, + [1497] = {.lex_state = 0}, + [1498] = {.lex_state = 0}, + [1499] = {.lex_state = 0}, + [1500] = {.lex_state = 0}, + [1501] = {.lex_state = 0}, + [1502] = {.lex_state = 0}, + [1503] = {.lex_state = 0}, + [1504] = {.lex_state = 15}, + [1505] = {.lex_state = 0}, + [1506] = {.lex_state = 0}, + [1507] = {.lex_state = 0}, + [1508] = {.lex_state = 0}, + [1509] = {.lex_state = 0}, + [1510] = {.lex_state = 0}, +}; + +static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { + [0] = { + [ts_builtin_sym_end] = ACTIONS(1), + [sym_name] = ACTIONS(1), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [sym_index] = ACTIONS(1), + [anon_sym_AT] = ACTIONS(1), + [anon_sym_LBRACE] = ACTIONS(1), + [anon_sym_RBRACE] = ACTIONS(1), + [anon_sym_COMMA] = ACTIONS(1), + [anon_sym_COLON] = ACTIONS(1), + [sym_constant_int] = ACTIONS(1), + [sym_string_quote] = ACTIONS(1), + [anon_sym_DOLLAR] = ACTIONS(1), + [anon_sym_SQUOTE] = ACTIONS(1), + [anon_sym_true] = ACTIONS(1), + [anon_sym_false] = ACTIONS(1), + [anon_sym_LPAREN] = ACTIONS(1), + [anon_sym_RPAREN] = ACTIONS(1), + [anon_sym_def] = ACTIONS(1), + [anon_sym_LBRACK] = ACTIONS(1), + [anon_sym_RBRACK] = ACTIONS(1), + [anon_sym_EQ] = ACTIONS(1), + [anon_sym_SEMI] = ACTIONS(1), + [anon_sym_type] = ACTIONS(1), + [anon_sym_enum] = ACTIONS(1), + [anon_sym_val] = ACTIONS(1), + [anon_sym_var] = ACTIONS(1), + [anon_sym_rust] = ACTIONS(1), + [anon_sym_python] = ACTIONS(1), + [anon_sym_fun] = ACTIONS(1), + [anon_sym_AMP] = ACTIONS(1), + [anon_sym_PLUS_PLUS] = ACTIONS(1), + [sym_type_never] = ACTIONS(1), + [anon_sym__] = ACTIONS(1), + [anon_sym_or] = ACTIONS(1), + [anon_sym_DOT] = ACTIONS(1), + [anon_sym_return] = ACTIONS(1), + [anon_sym_break] = ACTIONS(1), + [anon_sym_continue] = ACTIONS(1), + [anon_sym_throw] = ACTIONS(1), + [anon_sym_from] = ACTIONS(1), + [anon_sym_in] = ACTIONS(1), + [anon_sym_where] = ACTIONS(1), + [anon_sym_join] = ACTIONS(1), + [anon_sym_on] = ACTIONS(1), + [anon_sym_union] = ACTIONS(1), + [anon_sym_group] = ACTIONS(1), + [anon_sym_over] = ACTIONS(1), + [anon_sym_roll] = ACTIONS(1), + [anon_sym_compute] = ACTIONS(1), + [anon_sym_select] = ACTIONS(1), + [anon_sym_with] = ACTIONS(1), + [anon_sym_into] = ACTIONS(1), + [anon_sym_order] = ACTIONS(1), + [anon_sym_desc] = ACTIONS(1), + [anon_sym_as] = ACTIONS(1), + [anon_sym_of] = ACTIONS(1), + [anon_sym_PLUS_EQ] = ACTIONS(1), + [anon_sym_DASH_EQ] = ACTIONS(1), + [anon_sym_STAR_EQ] = ACTIONS(1), + [anon_sym_SLASH_EQ] = ACTIONS(1), + [anon_sym_DOT_DOT] = ACTIONS(1), + [anon_sym_DOT_DOT_EQ] = ACTIONS(1), + [anon_sym_and] = ACTIONS(1), + [anon_sym_EQ_EQ] = ACTIONS(1), + [anon_sym_LT] = ACTIONS(1), + [anon_sym_GT] = ACTIONS(1), + [anon_sym_LT_EQ] = ACTIONS(1), + [anon_sym_GT_EQ] = ACTIONS(1), + [anon_sym_PLUS] = ACTIONS(1), + [anon_sym_DASH] = ACTIONS(1), + [anon_sym_STAR] = ACTIONS(1), + [anon_sym_SLASH] = ACTIONS(1), + [anon_sym_not] = ACTIONS(1), + [anon_sym_COLON_COLON] = ACTIONS(1), + [anon_sym_do] = ACTIONS(1), + [anon_sym_if] = ACTIONS(1), + [anon_sym_else] = ACTIONS(1), + [anon_sym_match] = ACTIONS(1), + [anon_sym_loop] = ACTIONS(1), + [anon_sym_while] = ACTIONS(1), + [anon_sym_for] = ACTIONS(1), + [anon_sym_try] = ACTIONS(1), + [anon_sym_catch] = ACTIONS(1), + [anon_sym_finally] = ACTIONS(1), + [anon_sym_EQ_GT] = ACTIONS(1), + }, + [1] = { + [sym_program] = STATE(1379), + [sym_meta] = STATE(1336), + [sym__constant] = STATE(896), + [sym_constant_string] = STATE(896), + [sym_constant_char] = STATE(896), + [sym_constant_bool] = STATE(896), + [sym_constant_unit] = STATE(896), + [aux_sym__stmts] = STATE(39), + [sym__stmt] = STATE(39), + [sym_stmt_def] = STATE(39), + [sym_stmt_type] = STATE(39), + [sym_stmt_enum] = STATE(39), + [sym_stmt_val] = STATE(39), + [sym_stmt_var] = STATE(39), + [sym_stmt_expr] = STATE(39), + [sym_stmt_code] = STATE(39), + [sym__stmt_noop] = STATE(39), + [sym__expr] = STATE(1025), + [sym_expr_return] = STATE(1025), + [sym_expr_break] = STATE(1025), + [sym_expr_continue] = STATE(1025), + [sym_expr_throw] = STATE(1025), + [sym_expr_query] = STATE(1025), + [sym_expr_rust] = STATE(1025), + [sym_query_from] = STATE(401), + [sym_expr_fun] = STATE(1025), + [sym_expr_binary] = STATE(1025), + [sym_expr_annot] = STATE(1025), + [sym_expr_call] = STATE(1025), + [sym_expr_tuple_access] = STATE(1025), + [sym_expr_record_access] = STATE(1025), + [sym_expr_array_access] = STATE(1025), + [sym_expr_method_call] = STATE(1025), + [sym_expr_paren] = STATE(1025), + [sym_expr_constant] = STATE(1025), + [sym_expr_name] = STATE(1025), + [sym_expr_array] = STATE(1025), + [sym_expr_tuple] = STATE(1025), + [sym_expr_record] = STATE(1025), + [sym_expr_do] = STATE(1025), + [sym_expr_if] = STATE(1025), + [sym_expr_match] = STATE(1025), + [sym_expr_loop] = STATE(1025), + [sym_expr_while] = STATE(1025), + [sym_expr_for] = STATE(1025), + [sym_expr_try] = STATE(1025), + [ts_builtin_sym_end] = ACTIONS(5), + [sym_name] = ACTIONS(7), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_AT] = ACTIONS(9), + [anon_sym_LBRACE] = ACTIONS(11), + [sym_constant_int] = ACTIONS(13), + [sym_constant_float] = ACTIONS(15), + [sym_string_quote] = ACTIONS(17), + [anon_sym_SQUOTE] = ACTIONS(19), + [anon_sym_true] = ACTIONS(21), + [anon_sym_false] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(23), + [anon_sym_def] = ACTIONS(25), + [anon_sym_LBRACK] = ACTIONS(27), + [anon_sym_SEMI] = ACTIONS(29), + [anon_sym_type] = ACTIONS(31), + [anon_sym_enum] = ACTIONS(33), + [anon_sym_val] = ACTIONS(35), + [anon_sym_var] = ACTIONS(37), + [anon_sym_DASH_DASH_DASH] = ACTIONS(39), + [anon_sym_rust] = ACTIONS(41), + [anon_sym_fun] = ACTIONS(43), + [anon_sym_return] = ACTIONS(45), + [anon_sym_break] = ACTIONS(47), + [anon_sym_continue] = ACTIONS(49), + [anon_sym_throw] = ACTIONS(51), + [anon_sym_from] = ACTIONS(53), + [anon_sym_do] = ACTIONS(55), + [anon_sym_if] = ACTIONS(57), + [anon_sym_match] = ACTIONS(59), + [anon_sym_loop] = ACTIONS(61), + [anon_sym_while] = ACTIONS(63), + [anon_sym_for] = ACTIONS(65), + [anon_sym_try] = ACTIONS(67), + }, + [2] = { + [sym__constant] = STATE(525), + [sym_constant_string] = STATE(525), + [sym_constant_char] = STATE(525), + [sym_constant_bool] = STATE(525), + [sym_constant_unit] = STATE(525), + [sym__expr] = STATE(539), + [sym_expr_return] = STATE(539), + [sym_expr_break] = STATE(539), + [sym_expr_continue] = STATE(539), + [sym_expr_throw] = STATE(539), + [sym_expr_query] = STATE(539), + [sym_expr_rust] = STATE(539), + [sym_query_from] = STATE(59), + [sym_expr_fun] = STATE(539), + [sym_expr_binary] = STATE(539), + [sym_expr_annot] = STATE(539), + [sym_expr_call] = STATE(539), + [sym_expr_tuple_access] = STATE(539), + [sym_expr_record_access] = STATE(539), + [sym_expr_array_access] = STATE(539), + [sym_expr_method_call] = STATE(539), + [sym_expr_paren] = STATE(539), + [sym_expr_constant] = STATE(539), + [sym_expr_name] = STATE(539), + [sym_expr_array] = STATE(539), + [sym_expr_tuple] = STATE(539), + [sym_expr_record] = STATE(539), + [sym_expr_do] = STATE(539), + [sym_expr_if] = STATE(539), + [sym_expr_match] = STATE(539), + [sym_expr_loop] = STATE(539), + [sym_expr_while] = STATE(539), + [sym_expr_for] = STATE(539), + [sym_expr_try] = STATE(539), + [sym_name] = ACTIONS(69), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(71), + [anon_sym_RBRACE] = ACTIONS(73), + [anon_sym_COMMA] = ACTIONS(73), + [anon_sym_COLON] = ACTIONS(75), + [sym_constant_int] = ACTIONS(77), + [sym_constant_float] = ACTIONS(79), + [sym_string_quote] = ACTIONS(81), + [anon_sym_SQUOTE] = ACTIONS(83), + [anon_sym_true] = ACTIONS(85), + [anon_sym_false] = ACTIONS(85), + [anon_sym_LPAREN] = ACTIONS(73), + [anon_sym_RPAREN] = ACTIONS(73), + [anon_sym_LBRACK] = ACTIONS(73), + [anon_sym_RBRACK] = ACTIONS(73), + [anon_sym_EQ] = ACTIONS(75), + [anon_sym_SEMI] = ACTIONS(73), + [anon_sym_rust] = ACTIONS(87), + [anon_sym_fun] = ACTIONS(89), + [anon_sym_or] = ACTIONS(75), + [anon_sym_DOT] = ACTIONS(75), + [anon_sym_return] = ACTIONS(91), + [anon_sym_break] = ACTIONS(93), + [anon_sym_continue] = ACTIONS(95), + [anon_sym_throw] = ACTIONS(97), + [anon_sym_from] = ACTIONS(75), + [anon_sym_where] = ACTIONS(75), + [anon_sym_join] = ACTIONS(75), + [anon_sym_on] = ACTIONS(75), + [anon_sym_union] = ACTIONS(75), + [anon_sym_group] = ACTIONS(75), + [anon_sym_over] = ACTIONS(75), + [anon_sym_roll] = ACTIONS(75), + [anon_sym_compute] = ACTIONS(75), + [anon_sym_select] = ACTIONS(75), + [anon_sym_with] = ACTIONS(75), + [anon_sym_into] = ACTIONS(75), + [anon_sym_order] = ACTIONS(75), + [anon_sym_desc] = ACTIONS(75), + [anon_sym_as] = ACTIONS(75), + [anon_sym_of] = ACTIONS(75), + [anon_sym_PLUS_EQ] = ACTIONS(73), + [anon_sym_DASH_EQ] = ACTIONS(73), + [anon_sym_STAR_EQ] = ACTIONS(73), + [anon_sym_SLASH_EQ] = ACTIONS(73), + [anon_sym_DOT_DOT] = ACTIONS(75), + [anon_sym_DOT_DOT_EQ] = ACTIONS(73), + [anon_sym_and] = ACTIONS(75), + [anon_sym_EQ_EQ] = ACTIONS(73), + [anon_sym_BANG_EQ] = ACTIONS(73), + [anon_sym_LT] = ACTIONS(75), + [anon_sym_GT] = ACTIONS(75), + [anon_sym_LT_EQ] = ACTIONS(73), + [anon_sym_GT_EQ] = ACTIONS(73), + [anon_sym_PLUS] = ACTIONS(75), + [anon_sym_DASH] = ACTIONS(75), + [anon_sym_STAR] = ACTIONS(75), + [anon_sym_SLASH] = ACTIONS(75), + [anon_sym_COLON_COLON] = ACTIONS(73), + [anon_sym_do] = ACTIONS(99), + [anon_sym_if] = ACTIONS(101), + [anon_sym_match] = ACTIONS(103), + [anon_sym_loop] = ACTIONS(105), + [anon_sym_while] = ACTIONS(107), + [anon_sym_for] = ACTIONS(109), + [anon_sym_try] = ACTIONS(111), + }, + [3] = { + [sym__constant] = STATE(525), + [sym_constant_string] = STATE(525), + [sym_constant_char] = STATE(525), + [sym_constant_bool] = STATE(525), + [sym_constant_unit] = STATE(525), + [sym__expr] = STATE(540), + [sym_expr_return] = STATE(540), + [sym_expr_break] = STATE(540), + [sym_expr_continue] = STATE(540), + [sym_expr_throw] = STATE(540), + [sym_expr_query] = STATE(540), + [sym_expr_rust] = STATE(540), + [sym_query_from] = STATE(59), + [sym_expr_fun] = STATE(540), + [sym_expr_binary] = STATE(540), + [sym_expr_annot] = STATE(540), + [sym_expr_call] = STATE(540), + [sym_expr_tuple_access] = STATE(540), + [sym_expr_record_access] = STATE(540), + [sym_expr_array_access] = STATE(540), + [sym_expr_method_call] = STATE(540), + [sym_expr_paren] = STATE(540), + [sym_expr_constant] = STATE(540), + [sym_expr_name] = STATE(540), + [sym_expr_array] = STATE(540), + [sym_expr_tuple] = STATE(540), + [sym_expr_record] = STATE(540), + [sym_expr_do] = STATE(540), + [sym_expr_if] = STATE(540), + [sym_expr_match] = STATE(540), + [sym_expr_loop] = STATE(540), + [sym_expr_while] = STATE(540), + [sym_expr_for] = STATE(540), + [sym_expr_try] = STATE(540), + [sym_name] = ACTIONS(69), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(71), + [anon_sym_RBRACE] = ACTIONS(113), + [anon_sym_COMMA] = ACTIONS(113), + [anon_sym_COLON] = ACTIONS(115), + [sym_constant_int] = ACTIONS(77), + [sym_constant_float] = ACTIONS(79), + [sym_string_quote] = ACTIONS(81), + [anon_sym_SQUOTE] = ACTIONS(83), + [anon_sym_true] = ACTIONS(85), + [anon_sym_false] = ACTIONS(85), + [anon_sym_LPAREN] = ACTIONS(113), + [anon_sym_RPAREN] = ACTIONS(113), + [anon_sym_LBRACK] = ACTIONS(113), + [anon_sym_RBRACK] = ACTIONS(113), + [anon_sym_EQ] = ACTIONS(115), + [anon_sym_SEMI] = ACTIONS(113), + [anon_sym_rust] = ACTIONS(87), + [anon_sym_fun] = ACTIONS(89), + [anon_sym_or] = ACTIONS(115), + [anon_sym_DOT] = ACTIONS(115), + [anon_sym_return] = ACTIONS(91), + [anon_sym_break] = ACTIONS(93), + [anon_sym_continue] = ACTIONS(95), + [anon_sym_throw] = ACTIONS(97), + [anon_sym_from] = ACTIONS(115), + [anon_sym_where] = ACTIONS(115), + [anon_sym_join] = ACTIONS(115), + [anon_sym_on] = ACTIONS(115), + [anon_sym_union] = ACTIONS(115), + [anon_sym_group] = ACTIONS(115), + [anon_sym_over] = ACTIONS(115), + [anon_sym_roll] = ACTIONS(115), + [anon_sym_compute] = ACTIONS(115), + [anon_sym_select] = ACTIONS(115), + [anon_sym_with] = ACTIONS(115), + [anon_sym_into] = ACTIONS(115), + [anon_sym_order] = ACTIONS(115), + [anon_sym_desc] = ACTIONS(115), + [anon_sym_as] = ACTIONS(115), + [anon_sym_of] = ACTIONS(115), + [anon_sym_PLUS_EQ] = ACTIONS(113), + [anon_sym_DASH_EQ] = ACTIONS(113), + [anon_sym_STAR_EQ] = ACTIONS(113), + [anon_sym_SLASH_EQ] = ACTIONS(113), + [anon_sym_DOT_DOT] = ACTIONS(115), + [anon_sym_DOT_DOT_EQ] = ACTIONS(113), + [anon_sym_and] = ACTIONS(115), + [anon_sym_EQ_EQ] = ACTIONS(113), + [anon_sym_BANG_EQ] = ACTIONS(113), + [anon_sym_LT] = ACTIONS(115), + [anon_sym_GT] = ACTIONS(115), + [anon_sym_LT_EQ] = ACTIONS(113), + [anon_sym_GT_EQ] = ACTIONS(113), + [anon_sym_PLUS] = ACTIONS(115), + [anon_sym_DASH] = ACTIONS(115), + [anon_sym_STAR] = ACTIONS(115), + [anon_sym_SLASH] = ACTIONS(115), + [anon_sym_COLON_COLON] = ACTIONS(113), + [anon_sym_do] = ACTIONS(99), + [anon_sym_if] = ACTIONS(101), + [anon_sym_match] = ACTIONS(103), + [anon_sym_loop] = ACTIONS(105), + [anon_sym_while] = ACTIONS(107), + [anon_sym_for] = ACTIONS(109), + [anon_sym_try] = ACTIONS(111), + }, + [4] = { + [sym__constant] = STATE(525), + [sym_constant_string] = STATE(525), + [sym_constant_char] = STATE(525), + [sym_constant_bool] = STATE(525), + [sym_constant_unit] = STATE(525), + [sym__expr] = STATE(550), + [sym_expr_return] = STATE(550), + [sym_expr_break] = STATE(550), + [sym_expr_continue] = STATE(550), + [sym_expr_throw] = STATE(550), + [sym_expr_query] = STATE(550), + [sym_expr_rust] = STATE(550), + [sym_query_from] = STATE(257), + [sym_expr_fun] = STATE(550), + [sym_expr_binary] = STATE(550), + [sym_expr_annot] = STATE(550), + [sym_expr_call] = STATE(550), + [sym_expr_tuple_access] = STATE(550), + [sym_expr_record_access] = STATE(550), + [sym_expr_array_access] = STATE(550), + [sym_expr_method_call] = STATE(550), + [sym_expr_paren] = STATE(550), + [sym_expr_constant] = STATE(550), + [sym_expr_name] = STATE(550), + [sym_expr_array] = STATE(550), + [sym_expr_tuple] = STATE(550), + [sym_expr_record] = STATE(550), + [sym_expr_do] = STATE(550), + [sym_expr_if] = STATE(550), + [sym_expr_match] = STATE(550), + [sym_expr_loop] = STATE(550), + [sym_expr_while] = STATE(550), + [sym_expr_for] = STATE(550), + [sym_expr_try] = STATE(550), + [sym_name] = ACTIONS(69), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(71), + [anon_sym_RBRACE] = ACTIONS(73), + [anon_sym_COMMA] = ACTIONS(73), + [anon_sym_COLON] = ACTIONS(75), + [sym_constant_int] = ACTIONS(77), + [sym_constant_float] = ACTIONS(79), + [sym_string_quote] = ACTIONS(81), + [anon_sym_SQUOTE] = ACTIONS(83), + [anon_sym_true] = ACTIONS(85), + [anon_sym_false] = ACTIONS(85), + [anon_sym_LPAREN] = ACTIONS(73), + [anon_sym_RPAREN] = ACTIONS(73), + [anon_sym_LBRACK] = ACTIONS(73), + [anon_sym_RBRACK] = ACTIONS(73), + [anon_sym_EQ] = ACTIONS(75), + [anon_sym_SEMI] = ACTIONS(73), + [anon_sym_rust] = ACTIONS(87), + [anon_sym_fun] = ACTIONS(117), + [anon_sym_or] = ACTIONS(75), + [anon_sym_DOT] = ACTIONS(75), + [anon_sym_return] = ACTIONS(119), + [anon_sym_break] = ACTIONS(121), + [anon_sym_continue] = ACTIONS(95), + [anon_sym_throw] = ACTIONS(123), + [anon_sym_from] = ACTIONS(75), + [anon_sym_where] = ACTIONS(75), + [anon_sym_join] = ACTIONS(75), + [anon_sym_on] = ACTIONS(75), + [anon_sym_union] = ACTIONS(75), + [anon_sym_group] = ACTIONS(75), + [anon_sym_over] = ACTIONS(75), + [anon_sym_roll] = ACTIONS(75), + [anon_sym_compute] = ACTIONS(75), + [anon_sym_select] = ACTIONS(75), + [anon_sym_with] = ACTIONS(75), + [anon_sym_into] = ACTIONS(75), + [anon_sym_order] = ACTIONS(75), + [anon_sym_desc] = ACTIONS(75), + [anon_sym_as] = ACTIONS(75), + [anon_sym_PLUS_EQ] = ACTIONS(73), + [anon_sym_DASH_EQ] = ACTIONS(73), + [anon_sym_STAR_EQ] = ACTIONS(73), + [anon_sym_SLASH_EQ] = ACTIONS(73), + [anon_sym_DOT_DOT] = ACTIONS(75), + [anon_sym_DOT_DOT_EQ] = ACTIONS(73), + [anon_sym_and] = ACTIONS(75), + [anon_sym_EQ_EQ] = ACTIONS(73), + [anon_sym_BANG_EQ] = ACTIONS(73), + [anon_sym_LT] = ACTIONS(75), + [anon_sym_GT] = ACTIONS(75), + [anon_sym_LT_EQ] = ACTIONS(73), + [anon_sym_GT_EQ] = ACTIONS(73), + [anon_sym_PLUS] = ACTIONS(75), + [anon_sym_DASH] = ACTIONS(75), + [anon_sym_STAR] = ACTIONS(75), + [anon_sym_SLASH] = ACTIONS(75), + [anon_sym_COLON_COLON] = ACTIONS(73), + [anon_sym_do] = ACTIONS(99), + [anon_sym_if] = ACTIONS(101), + [anon_sym_match] = ACTIONS(103), + [anon_sym_loop] = ACTIONS(105), + [anon_sym_while] = ACTIONS(107), + [anon_sym_for] = ACTIONS(109), + [anon_sym_try] = ACTIONS(111), + }, + [5] = { + [sym__constant] = STATE(525), + [sym_constant_string] = STATE(525), + [sym_constant_char] = STATE(525), + [sym_constant_bool] = STATE(525), + [sym_constant_unit] = STATE(525), + [sym__expr] = STATE(569), + [sym_expr_return] = STATE(569), + [sym_expr_break] = STATE(569), + [sym_expr_continue] = STATE(569), + [sym_expr_throw] = STATE(569), + [sym_expr_query] = STATE(569), + [sym_expr_rust] = STATE(569), + [sym_query_from] = STATE(345), + [sym_expr_fun] = STATE(569), + [sym_expr_binary] = STATE(569), + [sym_expr_annot] = STATE(569), + [sym_expr_call] = STATE(569), + [sym_expr_tuple_access] = STATE(569), + [sym_expr_record_access] = STATE(569), + [sym_expr_array_access] = STATE(569), + [sym_expr_method_call] = STATE(569), + [sym_expr_paren] = STATE(569), + [sym_expr_constant] = STATE(569), + [sym_expr_name] = STATE(569), + [sym_expr_array] = STATE(569), + [sym_expr_tuple] = STATE(569), + [sym_expr_record] = STATE(569), + [sym_expr_do] = STATE(569), + [sym_expr_if] = STATE(569), + [sym_expr_match] = STATE(569), + [sym_expr_loop] = STATE(569), + [sym_expr_while] = STATE(569), + [sym_expr_for] = STATE(569), + [sym_expr_try] = STATE(569), + [sym_name] = ACTIONS(69), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(71), + [anon_sym_RBRACE] = ACTIONS(113), + [anon_sym_COMMA] = ACTIONS(113), + [anon_sym_COLON] = ACTIONS(115), + [sym_constant_int] = ACTIONS(77), + [sym_constant_float] = ACTIONS(79), + [sym_string_quote] = ACTIONS(81), + [anon_sym_SQUOTE] = ACTIONS(83), + [anon_sym_true] = ACTIONS(85), + [anon_sym_false] = ACTIONS(85), + [anon_sym_LPAREN] = ACTIONS(113), + [anon_sym_RPAREN] = ACTIONS(113), + [anon_sym_LBRACK] = ACTIONS(113), + [anon_sym_RBRACK] = ACTIONS(113), + [anon_sym_EQ] = ACTIONS(115), + [anon_sym_SEMI] = ACTIONS(113), + [anon_sym_rust] = ACTIONS(87), + [anon_sym_fun] = ACTIONS(125), + [anon_sym_or] = ACTIONS(115), + [anon_sym_DOT] = ACTIONS(115), + [anon_sym_return] = ACTIONS(127), + [anon_sym_break] = ACTIONS(129), + [anon_sym_continue] = ACTIONS(95), + [anon_sym_throw] = ACTIONS(131), + [anon_sym_from] = ACTIONS(115), + [anon_sym_where] = ACTIONS(115), + [anon_sym_join] = ACTIONS(115), + [anon_sym_on] = ACTIONS(115), + [anon_sym_union] = ACTIONS(115), + [anon_sym_group] = ACTIONS(115), + [anon_sym_over] = ACTIONS(115), + [anon_sym_roll] = ACTIONS(115), + [anon_sym_compute] = ACTIONS(115), + [anon_sym_select] = ACTIONS(115), + [anon_sym_with] = ACTIONS(115), + [anon_sym_into] = ACTIONS(115), + [anon_sym_order] = ACTIONS(115), + [anon_sym_as] = ACTIONS(115), + [anon_sym_of] = ACTIONS(115), + [anon_sym_PLUS_EQ] = ACTIONS(113), + [anon_sym_DASH_EQ] = ACTIONS(113), + [anon_sym_STAR_EQ] = ACTIONS(113), + [anon_sym_SLASH_EQ] = ACTIONS(113), + [anon_sym_DOT_DOT] = ACTIONS(115), + [anon_sym_DOT_DOT_EQ] = ACTIONS(113), + [anon_sym_and] = ACTIONS(115), + [anon_sym_EQ_EQ] = ACTIONS(113), + [anon_sym_BANG_EQ] = ACTIONS(113), + [anon_sym_LT] = ACTIONS(115), + [anon_sym_GT] = ACTIONS(115), + [anon_sym_LT_EQ] = ACTIONS(113), + [anon_sym_GT_EQ] = ACTIONS(113), + [anon_sym_PLUS] = ACTIONS(115), + [anon_sym_DASH] = ACTIONS(115), + [anon_sym_STAR] = ACTIONS(115), + [anon_sym_SLASH] = ACTIONS(115), + [anon_sym_COLON_COLON] = ACTIONS(113), + [anon_sym_do] = ACTIONS(99), + [anon_sym_if] = ACTIONS(101), + [anon_sym_match] = ACTIONS(103), + [anon_sym_loop] = ACTIONS(105), + [anon_sym_while] = ACTIONS(107), + [anon_sym_for] = ACTIONS(109), + [anon_sym_try] = ACTIONS(111), + }, + [6] = { + [sym__constant] = STATE(525), + [sym_constant_string] = STATE(525), + [sym_constant_char] = STATE(525), + [sym_constant_bool] = STATE(525), + [sym_constant_unit] = STATE(525), + [sym__expr] = STATE(571), + [sym_expr_return] = STATE(571), + [sym_expr_break] = STATE(571), + [sym_expr_continue] = STATE(571), + [sym_expr_throw] = STATE(571), + [sym_expr_query] = STATE(571), + [sym_expr_rust] = STATE(571), + [sym_query_from] = STATE(345), + [sym_expr_fun] = STATE(571), + [sym_expr_binary] = STATE(571), + [sym_expr_annot] = STATE(571), + [sym_expr_call] = STATE(571), + [sym_expr_tuple_access] = STATE(571), + [sym_expr_record_access] = STATE(571), + [sym_expr_array_access] = STATE(571), + [sym_expr_method_call] = STATE(571), + [sym_expr_paren] = STATE(571), + [sym_expr_constant] = STATE(571), + [sym_expr_name] = STATE(571), + [sym_expr_array] = STATE(571), + [sym_expr_tuple] = STATE(571), + [sym_expr_record] = STATE(571), + [sym_expr_do] = STATE(571), + [sym_expr_if] = STATE(571), + [sym_expr_match] = STATE(571), + [sym_expr_loop] = STATE(571), + [sym_expr_while] = STATE(571), + [sym_expr_for] = STATE(571), + [sym_expr_try] = STATE(571), + [sym_name] = ACTIONS(69), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(71), + [anon_sym_RBRACE] = ACTIONS(73), + [anon_sym_COMMA] = ACTIONS(73), + [anon_sym_COLON] = ACTIONS(75), + [sym_constant_int] = ACTIONS(77), + [sym_constant_float] = ACTIONS(79), + [sym_string_quote] = ACTIONS(81), + [anon_sym_SQUOTE] = ACTIONS(83), + [anon_sym_true] = ACTIONS(85), + [anon_sym_false] = ACTIONS(85), + [anon_sym_LPAREN] = ACTIONS(73), + [anon_sym_RPAREN] = ACTIONS(73), + [anon_sym_LBRACK] = ACTIONS(73), + [anon_sym_RBRACK] = ACTIONS(73), + [anon_sym_EQ] = ACTIONS(75), + [anon_sym_SEMI] = ACTIONS(73), + [anon_sym_rust] = ACTIONS(87), + [anon_sym_fun] = ACTIONS(125), + [anon_sym_or] = ACTIONS(75), + [anon_sym_DOT] = ACTIONS(75), + [anon_sym_return] = ACTIONS(127), + [anon_sym_break] = ACTIONS(129), + [anon_sym_continue] = ACTIONS(95), + [anon_sym_throw] = ACTIONS(131), + [anon_sym_from] = ACTIONS(75), + [anon_sym_where] = ACTIONS(75), + [anon_sym_join] = ACTIONS(75), + [anon_sym_on] = ACTIONS(75), + [anon_sym_union] = ACTIONS(75), + [anon_sym_group] = ACTIONS(75), + [anon_sym_over] = ACTIONS(75), + [anon_sym_roll] = ACTIONS(75), + [anon_sym_compute] = ACTIONS(75), + [anon_sym_select] = ACTIONS(75), + [anon_sym_with] = ACTIONS(75), + [anon_sym_into] = ACTIONS(75), + [anon_sym_order] = ACTIONS(75), + [anon_sym_as] = ACTIONS(75), + [anon_sym_of] = ACTIONS(75), + [anon_sym_PLUS_EQ] = ACTIONS(73), + [anon_sym_DASH_EQ] = ACTIONS(73), + [anon_sym_STAR_EQ] = ACTIONS(73), + [anon_sym_SLASH_EQ] = ACTIONS(73), + [anon_sym_DOT_DOT] = ACTIONS(75), + [anon_sym_DOT_DOT_EQ] = ACTIONS(73), + [anon_sym_and] = ACTIONS(75), + [anon_sym_EQ_EQ] = ACTIONS(73), + [anon_sym_BANG_EQ] = ACTIONS(73), + [anon_sym_LT] = ACTIONS(75), + [anon_sym_GT] = ACTIONS(75), + [anon_sym_LT_EQ] = ACTIONS(73), + [anon_sym_GT_EQ] = ACTIONS(73), + [anon_sym_PLUS] = ACTIONS(75), + [anon_sym_DASH] = ACTIONS(75), + [anon_sym_STAR] = ACTIONS(75), + [anon_sym_SLASH] = ACTIONS(75), + [anon_sym_COLON_COLON] = ACTIONS(73), + [anon_sym_do] = ACTIONS(99), + [anon_sym_if] = ACTIONS(101), + [anon_sym_match] = ACTIONS(103), + [anon_sym_loop] = ACTIONS(105), + [anon_sym_while] = ACTIONS(107), + [anon_sym_for] = ACTIONS(109), + [anon_sym_try] = ACTIONS(111), + }, + [7] = { + [sym__constant] = STATE(525), + [sym_constant_string] = STATE(525), + [sym_constant_char] = STATE(525), + [sym_constant_bool] = STATE(525), + [sym_constant_unit] = STATE(525), + [sym__expr] = STATE(588), + [sym_expr_return] = STATE(588), + [sym_expr_break] = STATE(588), + [sym_expr_continue] = STATE(588), + [sym_expr_throw] = STATE(588), + [sym_expr_query] = STATE(588), + [sym_expr_rust] = STATE(588), + [sym_query_from] = STATE(257), + [sym_expr_fun] = STATE(588), + [sym_expr_binary] = STATE(588), + [sym_expr_annot] = STATE(588), + [sym_expr_call] = STATE(588), + [sym_expr_tuple_access] = STATE(588), + [sym_expr_record_access] = STATE(588), + [sym_expr_array_access] = STATE(588), + [sym_expr_method_call] = STATE(588), + [sym_expr_paren] = STATE(588), + [sym_expr_constant] = STATE(588), + [sym_expr_name] = STATE(588), + [sym_expr_array] = STATE(588), + [sym_expr_tuple] = STATE(588), + [sym_expr_record] = STATE(588), + [sym_expr_do] = STATE(588), + [sym_expr_if] = STATE(588), + [sym_expr_match] = STATE(588), + [sym_expr_loop] = STATE(588), + [sym_expr_while] = STATE(588), + [sym_expr_for] = STATE(588), + [sym_expr_try] = STATE(588), + [sym_name] = ACTIONS(69), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(71), + [anon_sym_RBRACE] = ACTIONS(113), + [anon_sym_COMMA] = ACTIONS(113), + [anon_sym_COLON] = ACTIONS(115), + [sym_constant_int] = ACTIONS(77), + [sym_constant_float] = ACTIONS(79), + [sym_string_quote] = ACTIONS(81), + [anon_sym_SQUOTE] = ACTIONS(83), + [anon_sym_true] = ACTIONS(85), + [anon_sym_false] = ACTIONS(85), + [anon_sym_LPAREN] = ACTIONS(113), + [anon_sym_RPAREN] = ACTIONS(113), + [anon_sym_LBRACK] = ACTIONS(113), + [anon_sym_RBRACK] = ACTIONS(113), + [anon_sym_EQ] = ACTIONS(115), + [anon_sym_SEMI] = ACTIONS(113), + [anon_sym_rust] = ACTIONS(87), + [anon_sym_fun] = ACTIONS(117), + [anon_sym_or] = ACTIONS(115), + [anon_sym_DOT] = ACTIONS(115), + [anon_sym_return] = ACTIONS(119), + [anon_sym_break] = ACTIONS(121), + [anon_sym_continue] = ACTIONS(95), + [anon_sym_throw] = ACTIONS(123), + [anon_sym_from] = ACTIONS(115), + [anon_sym_where] = ACTIONS(115), + [anon_sym_join] = ACTIONS(115), + [anon_sym_on] = ACTIONS(115), + [anon_sym_union] = ACTIONS(115), + [anon_sym_group] = ACTIONS(115), + [anon_sym_over] = ACTIONS(115), + [anon_sym_roll] = ACTIONS(115), + [anon_sym_compute] = ACTIONS(115), + [anon_sym_select] = ACTIONS(115), + [anon_sym_with] = ACTIONS(115), + [anon_sym_into] = ACTIONS(115), + [anon_sym_order] = ACTIONS(115), + [anon_sym_desc] = ACTIONS(115), + [anon_sym_as] = ACTIONS(115), + [anon_sym_PLUS_EQ] = ACTIONS(113), + [anon_sym_DASH_EQ] = ACTIONS(113), + [anon_sym_STAR_EQ] = ACTIONS(113), + [anon_sym_SLASH_EQ] = ACTIONS(113), + [anon_sym_DOT_DOT] = ACTIONS(115), + [anon_sym_DOT_DOT_EQ] = ACTIONS(113), + [anon_sym_and] = ACTIONS(115), + [anon_sym_EQ_EQ] = ACTIONS(113), + [anon_sym_BANG_EQ] = ACTIONS(113), + [anon_sym_LT] = ACTIONS(115), + [anon_sym_GT] = ACTIONS(115), + [anon_sym_LT_EQ] = ACTIONS(113), + [anon_sym_GT_EQ] = ACTIONS(113), + [anon_sym_PLUS] = ACTIONS(115), + [anon_sym_DASH] = ACTIONS(115), + [anon_sym_STAR] = ACTIONS(115), + [anon_sym_SLASH] = ACTIONS(115), + [anon_sym_COLON_COLON] = ACTIONS(113), + [anon_sym_do] = ACTIONS(99), + [anon_sym_if] = ACTIONS(101), + [anon_sym_match] = ACTIONS(103), + [anon_sym_loop] = ACTIONS(105), + [anon_sym_while] = ACTIONS(107), + [anon_sym_for] = ACTIONS(109), + [anon_sym_try] = ACTIONS(111), + }, + [8] = { + [sym__constant] = STATE(525), + [sym_constant_string] = STATE(525), + [sym_constant_char] = STATE(525), + [sym_constant_bool] = STATE(525), + [sym_constant_unit] = STATE(525), + [sym__expr] = STATE(599), + [sym_expr_return] = STATE(599), + [sym_expr_break] = STATE(599), + [sym_expr_continue] = STATE(599), + [sym_expr_throw] = STATE(599), + [sym_expr_query] = STATE(599), + [sym_expr_rust] = STATE(599), + [sym_query_from] = STATE(395), + [sym_expr_fun] = STATE(599), + [sym_expr_binary] = STATE(599), + [sym_expr_annot] = STATE(599), + [sym_expr_call] = STATE(599), + [sym_expr_tuple_access] = STATE(599), + [sym_expr_record_access] = STATE(599), + [sym_expr_array_access] = STATE(599), + [sym_expr_method_call] = STATE(599), + [sym_expr_paren] = STATE(599), + [sym_expr_constant] = STATE(599), + [sym_expr_name] = STATE(599), + [sym_expr_array] = STATE(599), + [sym_expr_tuple] = STATE(599), + [sym_expr_record] = STATE(599), + [sym_expr_do] = STATE(599), + [sym_expr_if] = STATE(599), + [sym_expr_match] = STATE(599), + [sym_expr_loop] = STATE(599), + [sym_expr_while] = STATE(599), + [sym_expr_for] = STATE(599), + [sym_expr_try] = STATE(599), + [sym_name] = ACTIONS(69), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(71), + [anon_sym_RBRACE] = ACTIONS(73), + [anon_sym_COMMA] = ACTIONS(73), + [anon_sym_COLON] = ACTIONS(75), + [sym_constant_int] = ACTIONS(77), + [sym_constant_float] = ACTIONS(79), + [sym_string_quote] = ACTIONS(81), + [anon_sym_SQUOTE] = ACTIONS(83), + [anon_sym_true] = ACTIONS(85), + [anon_sym_false] = ACTIONS(85), + [anon_sym_LPAREN] = ACTIONS(73), + [anon_sym_RPAREN] = ACTIONS(73), + [anon_sym_LBRACK] = ACTIONS(73), + [anon_sym_RBRACK] = ACTIONS(73), + [anon_sym_EQ] = ACTIONS(75), + [anon_sym_SEMI] = ACTIONS(73), + [anon_sym_rust] = ACTIONS(87), + [anon_sym_fun] = ACTIONS(133), + [anon_sym_or] = ACTIONS(75), + [anon_sym_DOT] = ACTIONS(75), + [anon_sym_return] = ACTIONS(135), + [anon_sym_break] = ACTIONS(137), + [anon_sym_continue] = ACTIONS(95), + [anon_sym_throw] = ACTIONS(139), + [anon_sym_from] = ACTIONS(75), + [anon_sym_where] = ACTIONS(75), + [anon_sym_join] = ACTIONS(75), + [anon_sym_on] = ACTIONS(75), + [anon_sym_union] = ACTIONS(75), + [anon_sym_group] = ACTIONS(75), + [anon_sym_over] = ACTIONS(75), + [anon_sym_roll] = ACTIONS(75), + [anon_sym_compute] = ACTIONS(75), + [anon_sym_select] = ACTIONS(75), + [anon_sym_with] = ACTIONS(75), + [anon_sym_into] = ACTIONS(75), + [anon_sym_order] = ACTIONS(75), + [anon_sym_as] = ACTIONS(75), + [anon_sym_PLUS_EQ] = ACTIONS(73), + [anon_sym_DASH_EQ] = ACTIONS(73), + [anon_sym_STAR_EQ] = ACTIONS(73), + [anon_sym_SLASH_EQ] = ACTIONS(73), + [anon_sym_DOT_DOT] = ACTIONS(75), + [anon_sym_DOT_DOT_EQ] = ACTIONS(73), + [anon_sym_and] = ACTIONS(75), + [anon_sym_EQ_EQ] = ACTIONS(73), + [anon_sym_BANG_EQ] = ACTIONS(73), + [anon_sym_LT] = ACTIONS(75), + [anon_sym_GT] = ACTIONS(75), + [anon_sym_LT_EQ] = ACTIONS(73), + [anon_sym_GT_EQ] = ACTIONS(73), + [anon_sym_PLUS] = ACTIONS(75), + [anon_sym_DASH] = ACTIONS(75), + [anon_sym_STAR] = ACTIONS(75), + [anon_sym_SLASH] = ACTIONS(75), + [anon_sym_COLON_COLON] = ACTIONS(73), + [anon_sym_do] = ACTIONS(99), + [anon_sym_if] = ACTIONS(101), + [anon_sym_match] = ACTIONS(103), + [anon_sym_loop] = ACTIONS(105), + [anon_sym_while] = ACTIONS(107), + [anon_sym_for] = ACTIONS(109), + [anon_sym_try] = ACTIONS(111), + }, + [9] = { + [sym__constant] = STATE(525), + [sym_constant_string] = STATE(525), + [sym_constant_char] = STATE(525), + [sym_constant_bool] = STATE(525), + [sym_constant_unit] = STATE(525), + [sym__expr] = STATE(600), + [sym_expr_return] = STATE(600), + [sym_expr_break] = STATE(600), + [sym_expr_continue] = STATE(600), + [sym_expr_throw] = STATE(600), + [sym_expr_query] = STATE(600), + [sym_expr_rust] = STATE(600), + [sym_query_from] = STATE(395), + [sym_expr_fun] = STATE(600), + [sym_expr_binary] = STATE(600), + [sym_expr_annot] = STATE(600), + [sym_expr_call] = STATE(600), + [sym_expr_tuple_access] = STATE(600), + [sym_expr_record_access] = STATE(600), + [sym_expr_array_access] = STATE(600), + [sym_expr_method_call] = STATE(600), + [sym_expr_paren] = STATE(600), + [sym_expr_constant] = STATE(600), + [sym_expr_name] = STATE(600), + [sym_expr_array] = STATE(600), + [sym_expr_tuple] = STATE(600), + [sym_expr_record] = STATE(600), + [sym_expr_do] = STATE(600), + [sym_expr_if] = STATE(600), + [sym_expr_match] = STATE(600), + [sym_expr_loop] = STATE(600), + [sym_expr_while] = STATE(600), + [sym_expr_for] = STATE(600), + [sym_expr_try] = STATE(600), + [sym_name] = ACTIONS(69), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(71), + [anon_sym_RBRACE] = ACTIONS(113), + [anon_sym_COMMA] = ACTIONS(113), + [anon_sym_COLON] = ACTIONS(115), + [sym_constant_int] = ACTIONS(77), + [sym_constant_float] = ACTIONS(79), + [sym_string_quote] = ACTIONS(81), + [anon_sym_SQUOTE] = ACTIONS(83), + [anon_sym_true] = ACTIONS(85), + [anon_sym_false] = ACTIONS(85), + [anon_sym_LPAREN] = ACTIONS(113), + [anon_sym_RPAREN] = ACTIONS(113), + [anon_sym_LBRACK] = ACTIONS(113), + [anon_sym_RBRACK] = ACTIONS(113), + [anon_sym_EQ] = ACTIONS(115), + [anon_sym_SEMI] = ACTIONS(113), + [anon_sym_rust] = ACTIONS(87), + [anon_sym_fun] = ACTIONS(133), + [anon_sym_or] = ACTIONS(115), + [anon_sym_DOT] = ACTIONS(115), + [anon_sym_return] = ACTIONS(135), + [anon_sym_break] = ACTIONS(137), + [anon_sym_continue] = ACTIONS(95), + [anon_sym_throw] = ACTIONS(139), + [anon_sym_from] = ACTIONS(115), + [anon_sym_where] = ACTIONS(115), + [anon_sym_join] = ACTIONS(115), + [anon_sym_on] = ACTIONS(115), + [anon_sym_union] = ACTIONS(115), + [anon_sym_group] = ACTIONS(115), + [anon_sym_over] = ACTIONS(115), + [anon_sym_roll] = ACTIONS(115), + [anon_sym_compute] = ACTIONS(115), + [anon_sym_select] = ACTIONS(115), + [anon_sym_with] = ACTIONS(115), + [anon_sym_into] = ACTIONS(115), + [anon_sym_order] = ACTIONS(115), + [anon_sym_as] = ACTIONS(115), + [anon_sym_PLUS_EQ] = ACTIONS(113), + [anon_sym_DASH_EQ] = ACTIONS(113), + [anon_sym_STAR_EQ] = ACTIONS(113), + [anon_sym_SLASH_EQ] = ACTIONS(113), + [anon_sym_DOT_DOT] = ACTIONS(115), + [anon_sym_DOT_DOT_EQ] = ACTIONS(113), + [anon_sym_and] = ACTIONS(115), + [anon_sym_EQ_EQ] = ACTIONS(113), + [anon_sym_BANG_EQ] = ACTIONS(113), + [anon_sym_LT] = ACTIONS(115), + [anon_sym_GT] = ACTIONS(115), + [anon_sym_LT_EQ] = ACTIONS(113), + [anon_sym_GT_EQ] = ACTIONS(113), + [anon_sym_PLUS] = ACTIONS(115), + [anon_sym_DASH] = ACTIONS(115), + [anon_sym_STAR] = ACTIONS(115), + [anon_sym_SLASH] = ACTIONS(115), + [anon_sym_COLON_COLON] = ACTIONS(113), + [anon_sym_do] = ACTIONS(99), + [anon_sym_if] = ACTIONS(101), + [anon_sym_match] = ACTIONS(103), + [anon_sym_loop] = ACTIONS(105), + [anon_sym_while] = ACTIONS(107), + [anon_sym_for] = ACTIONS(109), + [anon_sym_try] = ACTIONS(111), + }, + [10] = { + [sym__constant] = STATE(525), + [sym_constant_string] = STATE(525), + [sym_constant_char] = STATE(525), + [sym_constant_bool] = STATE(525), + [sym_constant_unit] = STATE(525), + [sym__expr] = STATE(602), + [sym_expr_return] = STATE(602), + [sym_expr_break] = STATE(602), + [sym_expr_continue] = STATE(602), + [sym_expr_throw] = STATE(602), + [sym_expr_query] = STATE(602), + [sym_expr_rust] = STATE(602), + [sym_query_from] = STATE(394), + [sym_expr_fun] = STATE(602), + [sym_expr_binary] = STATE(602), + [sym_expr_annot] = STATE(602), + [sym_expr_call] = STATE(602), + [sym_expr_tuple_access] = STATE(602), + [sym_expr_record_access] = STATE(602), + [sym_expr_array_access] = STATE(602), + [sym_expr_method_call] = STATE(602), + [sym_expr_paren] = STATE(602), + [sym_expr_constant] = STATE(602), + [sym_expr_name] = STATE(602), + [sym_expr_array] = STATE(602), + [sym_expr_tuple] = STATE(602), + [sym_expr_record] = STATE(602), + [sym_expr_do] = STATE(602), + [sym_expr_if] = STATE(602), + [sym_expr_match] = STATE(602), + [sym_expr_loop] = STATE(602), + [sym_expr_while] = STATE(602), + [sym_expr_for] = STATE(602), + [sym_expr_try] = STATE(602), + [sym_name] = ACTIONS(69), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(71), + [anon_sym_RBRACE] = ACTIONS(73), + [anon_sym_COMMA] = ACTIONS(73), + [anon_sym_COLON] = ACTIONS(75), + [sym_constant_int] = ACTIONS(77), + [sym_constant_float] = ACTIONS(79), + [sym_string_quote] = ACTIONS(81), + [anon_sym_SQUOTE] = ACTIONS(83), + [anon_sym_true] = ACTIONS(85), + [anon_sym_false] = ACTIONS(85), + [anon_sym_LPAREN] = ACTIONS(73), + [anon_sym_RPAREN] = ACTIONS(73), + [anon_sym_LBRACK] = ACTIONS(73), + [anon_sym_RBRACK] = ACTIONS(73), + [anon_sym_EQ] = ACTIONS(75), + [anon_sym_SEMI] = ACTIONS(73), + [anon_sym_rust] = ACTIONS(87), + [anon_sym_fun] = ACTIONS(141), + [anon_sym_or] = ACTIONS(75), + [anon_sym_DOT] = ACTIONS(75), + [anon_sym_return] = ACTIONS(143), + [anon_sym_break] = ACTIONS(145), + [anon_sym_continue] = ACTIONS(95), + [anon_sym_throw] = ACTIONS(147), + [anon_sym_from] = ACTIONS(75), + [anon_sym_where] = ACTIONS(75), + [anon_sym_join] = ACTIONS(75), + [anon_sym_on] = ACTIONS(75), + [anon_sym_union] = ACTIONS(75), + [anon_sym_group] = ACTIONS(75), + [anon_sym_over] = ACTIONS(75), + [anon_sym_roll] = ACTIONS(75), + [anon_sym_compute] = ACTIONS(75), + [anon_sym_select] = ACTIONS(75), + [anon_sym_with] = ACTIONS(75), + [anon_sym_into] = ACTIONS(75), + [anon_sym_order] = ACTIONS(75), + [anon_sym_desc] = ACTIONS(75), + [anon_sym_PLUS_EQ] = ACTIONS(73), + [anon_sym_DASH_EQ] = ACTIONS(73), + [anon_sym_STAR_EQ] = ACTIONS(73), + [anon_sym_SLASH_EQ] = ACTIONS(73), + [anon_sym_DOT_DOT] = ACTIONS(75), + [anon_sym_DOT_DOT_EQ] = ACTIONS(73), + [anon_sym_and] = ACTIONS(75), + [anon_sym_EQ_EQ] = ACTIONS(73), + [anon_sym_BANG_EQ] = ACTIONS(73), + [anon_sym_LT] = ACTIONS(75), + [anon_sym_GT] = ACTIONS(75), + [anon_sym_LT_EQ] = ACTIONS(73), + [anon_sym_GT_EQ] = ACTIONS(73), + [anon_sym_PLUS] = ACTIONS(75), + [anon_sym_DASH] = ACTIONS(75), + [anon_sym_STAR] = ACTIONS(75), + [anon_sym_SLASH] = ACTIONS(75), + [anon_sym_COLON_COLON] = ACTIONS(73), + [anon_sym_do] = ACTIONS(99), + [anon_sym_if] = ACTIONS(101), + [anon_sym_match] = ACTIONS(103), + [anon_sym_loop] = ACTIONS(105), + [anon_sym_while] = ACTIONS(107), + [anon_sym_for] = ACTIONS(109), + [anon_sym_try] = ACTIONS(111), + }, + [11] = { + [sym__constant] = STATE(525), + [sym_constant_string] = STATE(525), + [sym_constant_char] = STATE(525), + [sym_constant_bool] = STATE(525), + [sym_constant_unit] = STATE(525), + [sym__expr] = STATE(590), + [sym_expr_return] = STATE(590), + [sym_expr_break] = STATE(590), + [sym_expr_continue] = STATE(590), + [sym_expr_throw] = STATE(590), + [sym_expr_query] = STATE(590), + [sym_expr_rust] = STATE(590), + [sym_query_from] = STATE(394), + [sym_expr_fun] = STATE(590), + [sym_expr_binary] = STATE(590), + [sym_expr_annot] = STATE(590), + [sym_expr_call] = STATE(590), + [sym_expr_tuple_access] = STATE(590), + [sym_expr_record_access] = STATE(590), + [sym_expr_array_access] = STATE(590), + [sym_expr_method_call] = STATE(590), + [sym_expr_paren] = STATE(590), + [sym_expr_constant] = STATE(590), + [sym_expr_name] = STATE(590), + [sym_expr_array] = STATE(590), + [sym_expr_tuple] = STATE(590), + [sym_expr_record] = STATE(590), + [sym_expr_do] = STATE(590), + [sym_expr_if] = STATE(590), + [sym_expr_match] = STATE(590), + [sym_expr_loop] = STATE(590), + [sym_expr_while] = STATE(590), + [sym_expr_for] = STATE(590), + [sym_expr_try] = STATE(590), + [sym_name] = ACTIONS(69), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(71), + [anon_sym_RBRACE] = ACTIONS(113), + [anon_sym_COMMA] = ACTIONS(113), + [anon_sym_COLON] = ACTIONS(115), + [sym_constant_int] = ACTIONS(77), + [sym_constant_float] = ACTIONS(79), + [sym_string_quote] = ACTIONS(81), + [anon_sym_SQUOTE] = ACTIONS(83), + [anon_sym_true] = ACTIONS(85), + [anon_sym_false] = ACTIONS(85), + [anon_sym_LPAREN] = ACTIONS(113), + [anon_sym_RPAREN] = ACTIONS(113), + [anon_sym_LBRACK] = ACTIONS(113), + [anon_sym_RBRACK] = ACTIONS(113), + [anon_sym_EQ] = ACTIONS(115), + [anon_sym_SEMI] = ACTIONS(113), + [anon_sym_rust] = ACTIONS(87), + [anon_sym_fun] = ACTIONS(141), + [anon_sym_or] = ACTIONS(115), + [anon_sym_DOT] = ACTIONS(115), + [anon_sym_return] = ACTIONS(143), + [anon_sym_break] = ACTIONS(145), + [anon_sym_continue] = ACTIONS(95), + [anon_sym_throw] = ACTIONS(147), + [anon_sym_from] = ACTIONS(115), + [anon_sym_where] = ACTIONS(115), + [anon_sym_join] = ACTIONS(115), + [anon_sym_on] = ACTIONS(115), + [anon_sym_union] = ACTIONS(115), + [anon_sym_group] = ACTIONS(115), + [anon_sym_over] = ACTIONS(115), + [anon_sym_roll] = ACTIONS(115), + [anon_sym_compute] = ACTIONS(115), + [anon_sym_select] = ACTIONS(115), + [anon_sym_with] = ACTIONS(115), + [anon_sym_into] = ACTIONS(115), + [anon_sym_order] = ACTIONS(115), + [anon_sym_desc] = ACTIONS(115), + [anon_sym_PLUS_EQ] = ACTIONS(113), + [anon_sym_DASH_EQ] = ACTIONS(113), + [anon_sym_STAR_EQ] = ACTIONS(113), + [anon_sym_SLASH_EQ] = ACTIONS(113), + [anon_sym_DOT_DOT] = ACTIONS(115), + [anon_sym_DOT_DOT_EQ] = ACTIONS(113), + [anon_sym_and] = ACTIONS(115), + [anon_sym_EQ_EQ] = ACTIONS(113), + [anon_sym_BANG_EQ] = ACTIONS(113), + [anon_sym_LT] = ACTIONS(115), + [anon_sym_GT] = ACTIONS(115), + [anon_sym_LT_EQ] = ACTIONS(113), + [anon_sym_GT_EQ] = ACTIONS(113), + [anon_sym_PLUS] = ACTIONS(115), + [anon_sym_DASH] = ACTIONS(115), + [anon_sym_STAR] = ACTIONS(115), + [anon_sym_SLASH] = ACTIONS(115), + [anon_sym_COLON_COLON] = ACTIONS(113), + [anon_sym_do] = ACTIONS(99), + [anon_sym_if] = ACTIONS(101), + [anon_sym_match] = ACTIONS(103), + [anon_sym_loop] = ACTIONS(105), + [anon_sym_while] = ACTIONS(107), + [anon_sym_for] = ACTIONS(109), + [anon_sym_try] = ACTIONS(111), + }, + [12] = { + [sym__constant] = STATE(525), + [sym_constant_string] = STATE(525), + [sym_constant_char] = STATE(525), + [sym_constant_bool] = STATE(525), + [sym_constant_unit] = STATE(525), + [sym__expr] = STATE(641), + [sym_expr_return] = STATE(641), + [sym_expr_break] = STATE(641), + [sym_expr_continue] = STATE(641), + [sym_expr_throw] = STATE(641), + [sym_expr_query] = STATE(641), + [sym_expr_rust] = STATE(641), + [sym_query_from] = STATE(399), + [sym_expr_fun] = STATE(641), + [sym_expr_binary] = STATE(641), + [sym_expr_annot] = STATE(641), + [sym_expr_call] = STATE(641), + [sym_expr_tuple_access] = STATE(641), + [sym_expr_record_access] = STATE(641), + [sym_expr_array_access] = STATE(641), + [sym_expr_method_call] = STATE(641), + [sym_expr_paren] = STATE(641), + [sym_expr_constant] = STATE(641), + [sym_expr_name] = STATE(641), + [sym_expr_array] = STATE(641), + [sym_expr_tuple] = STATE(641), + [sym_expr_record] = STATE(641), + [sym_expr_do] = STATE(641), + [sym_expr_if] = STATE(641), + [sym_expr_match] = STATE(641), + [sym_expr_loop] = STATE(641), + [sym_expr_while] = STATE(641), + [sym_expr_for] = STATE(641), + [sym_expr_try] = STATE(641), + [sym_name] = ACTIONS(69), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(71), + [anon_sym_RBRACE] = ACTIONS(113), + [anon_sym_COMMA] = ACTIONS(113), + [anon_sym_COLON] = ACTIONS(115), + [sym_constant_int] = ACTIONS(77), + [sym_constant_float] = ACTIONS(79), + [sym_string_quote] = ACTIONS(81), + [anon_sym_SQUOTE] = ACTIONS(83), + [anon_sym_true] = ACTIONS(85), + [anon_sym_false] = ACTIONS(85), + [anon_sym_LPAREN] = ACTIONS(113), + [anon_sym_RPAREN] = ACTIONS(113), + [anon_sym_LBRACK] = ACTIONS(113), + [anon_sym_RBRACK] = ACTIONS(113), + [anon_sym_EQ] = ACTIONS(115), + [anon_sym_SEMI] = ACTIONS(113), + [anon_sym_rust] = ACTIONS(87), + [anon_sym_fun] = ACTIONS(149), + [anon_sym_or] = ACTIONS(115), + [anon_sym_DOT] = ACTIONS(115), + [anon_sym_return] = ACTIONS(151), + [anon_sym_break] = ACTIONS(153), + [anon_sym_continue] = ACTIONS(95), + [anon_sym_throw] = ACTIONS(155), + [anon_sym_from] = ACTIONS(115), + [anon_sym_where] = ACTIONS(115), + [anon_sym_join] = ACTIONS(115), + [anon_sym_on] = ACTIONS(115), + [anon_sym_union] = ACTIONS(115), + [anon_sym_group] = ACTIONS(115), + [anon_sym_over] = ACTIONS(115), + [anon_sym_roll] = ACTIONS(115), + [anon_sym_compute] = ACTIONS(115), + [anon_sym_select] = ACTIONS(115), + [anon_sym_with] = ACTIONS(115), + [anon_sym_into] = ACTIONS(115), + [anon_sym_order] = ACTIONS(115), + [anon_sym_PLUS_EQ] = ACTIONS(113), + [anon_sym_DASH_EQ] = ACTIONS(113), + [anon_sym_STAR_EQ] = ACTIONS(113), + [anon_sym_SLASH_EQ] = ACTIONS(113), + [anon_sym_DOT_DOT] = ACTIONS(115), + [anon_sym_DOT_DOT_EQ] = ACTIONS(113), + [anon_sym_and] = ACTIONS(115), + [anon_sym_EQ_EQ] = ACTIONS(113), + [anon_sym_BANG_EQ] = ACTIONS(113), + [anon_sym_LT] = ACTIONS(115), + [anon_sym_GT] = ACTIONS(115), + [anon_sym_LT_EQ] = ACTIONS(113), + [anon_sym_GT_EQ] = ACTIONS(113), + [anon_sym_PLUS] = ACTIONS(115), + [anon_sym_DASH] = ACTIONS(115), + [anon_sym_STAR] = ACTIONS(115), + [anon_sym_SLASH] = ACTIONS(115), + [anon_sym_COLON_COLON] = ACTIONS(113), + [anon_sym_do] = ACTIONS(99), + [anon_sym_if] = ACTIONS(101), + [anon_sym_match] = ACTIONS(103), + [anon_sym_loop] = ACTIONS(105), + [anon_sym_while] = ACTIONS(107), + [anon_sym_for] = ACTIONS(109), + [anon_sym_try] = ACTIONS(111), + }, + [13] = { + [sym__constant] = STATE(525), + [sym_constant_string] = STATE(525), + [sym_constant_char] = STATE(525), + [sym_constant_bool] = STATE(525), + [sym_constant_unit] = STATE(525), + [sym__expr] = STATE(638), + [sym_expr_return] = STATE(638), + [sym_expr_break] = STATE(638), + [sym_expr_continue] = STATE(638), + [sym_expr_throw] = STATE(638), + [sym_expr_query] = STATE(638), + [sym_expr_rust] = STATE(638), + [sym_query_from] = STATE(399), + [sym_expr_fun] = STATE(638), + [sym_expr_binary] = STATE(638), + [sym_expr_annot] = STATE(638), + [sym_expr_call] = STATE(638), + [sym_expr_tuple_access] = STATE(638), + [sym_expr_record_access] = STATE(638), + [sym_expr_array_access] = STATE(638), + [sym_expr_method_call] = STATE(638), + [sym_expr_paren] = STATE(638), + [sym_expr_constant] = STATE(638), + [sym_expr_name] = STATE(638), + [sym_expr_array] = STATE(638), + [sym_expr_tuple] = STATE(638), + [sym_expr_record] = STATE(638), + [sym_expr_do] = STATE(638), + [sym_expr_if] = STATE(638), + [sym_expr_match] = STATE(638), + [sym_expr_loop] = STATE(638), + [sym_expr_while] = STATE(638), + [sym_expr_for] = STATE(638), + [sym_expr_try] = STATE(638), + [sym_name] = ACTIONS(69), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(71), + [anon_sym_RBRACE] = ACTIONS(73), + [anon_sym_COMMA] = ACTIONS(73), + [anon_sym_COLON] = ACTIONS(75), + [sym_constant_int] = ACTIONS(77), + [sym_constant_float] = ACTIONS(79), + [sym_string_quote] = ACTIONS(81), + [anon_sym_SQUOTE] = ACTIONS(83), + [anon_sym_true] = ACTIONS(85), + [anon_sym_false] = ACTIONS(85), + [anon_sym_LPAREN] = ACTIONS(73), + [anon_sym_RPAREN] = ACTIONS(73), + [anon_sym_LBRACK] = ACTIONS(73), + [anon_sym_RBRACK] = ACTIONS(73), + [anon_sym_EQ] = ACTIONS(75), + [anon_sym_SEMI] = ACTIONS(73), + [anon_sym_rust] = ACTIONS(87), + [anon_sym_fun] = ACTIONS(149), + [anon_sym_or] = ACTIONS(75), + [anon_sym_DOT] = ACTIONS(75), + [anon_sym_return] = ACTIONS(151), + [anon_sym_break] = ACTIONS(153), + [anon_sym_continue] = ACTIONS(95), + [anon_sym_throw] = ACTIONS(155), + [anon_sym_from] = ACTIONS(75), + [anon_sym_where] = ACTIONS(75), + [anon_sym_join] = ACTIONS(75), + [anon_sym_on] = ACTIONS(75), + [anon_sym_union] = ACTIONS(75), + [anon_sym_group] = ACTIONS(75), + [anon_sym_over] = ACTIONS(75), + [anon_sym_roll] = ACTIONS(75), + [anon_sym_compute] = ACTIONS(75), + [anon_sym_select] = ACTIONS(75), + [anon_sym_with] = ACTIONS(75), + [anon_sym_into] = ACTIONS(75), + [anon_sym_order] = ACTIONS(75), + [anon_sym_PLUS_EQ] = ACTIONS(73), + [anon_sym_DASH_EQ] = ACTIONS(73), + [anon_sym_STAR_EQ] = ACTIONS(73), + [anon_sym_SLASH_EQ] = ACTIONS(73), + [anon_sym_DOT_DOT] = ACTIONS(75), + [anon_sym_DOT_DOT_EQ] = ACTIONS(73), + [anon_sym_and] = ACTIONS(75), + [anon_sym_EQ_EQ] = ACTIONS(73), + [anon_sym_BANG_EQ] = ACTIONS(73), + [anon_sym_LT] = ACTIONS(75), + [anon_sym_GT] = ACTIONS(75), + [anon_sym_LT_EQ] = ACTIONS(73), + [anon_sym_GT_EQ] = ACTIONS(73), + [anon_sym_PLUS] = ACTIONS(75), + [anon_sym_DASH] = ACTIONS(75), + [anon_sym_STAR] = ACTIONS(75), + [anon_sym_SLASH] = ACTIONS(75), + [anon_sym_COLON_COLON] = ACTIONS(73), + [anon_sym_do] = ACTIONS(99), + [anon_sym_if] = ACTIONS(101), + [anon_sym_match] = ACTIONS(103), + [anon_sym_loop] = ACTIONS(105), + [anon_sym_while] = ACTIONS(107), + [anon_sym_for] = ACTIONS(109), + [anon_sym_try] = ACTIONS(111), + }, + [14] = { + [sym__constant] = STATE(525), + [sym_constant_string] = STATE(525), + [sym_constant_char] = STATE(525), + [sym_constant_bool] = STATE(525), + [sym_constant_unit] = STATE(525), + [sym__expr] = STATE(676), + [sym_expr_return] = STATE(676), + [sym_expr_break] = STATE(676), + [sym_expr_continue] = STATE(676), + [sym_expr_throw] = STATE(676), + [sym_expr_query] = STATE(676), + [sym_expr_rust] = STATE(676), + [sym_query_from] = STATE(405), + [sym_expr_fun] = STATE(676), + [sym_expr_binary] = STATE(676), + [sym_expr_annot] = STATE(676), + [sym_expr_call] = STATE(676), + [sym_expr_tuple_access] = STATE(676), + [sym_expr_record_access] = STATE(676), + [sym_expr_array_access] = STATE(676), + [sym_expr_method_call] = STATE(676), + [sym_expr_paren] = STATE(676), + [sym_expr_constant] = STATE(676), + [sym_expr_name] = STATE(676), + [sym_expr_array] = STATE(676), + [sym_expr_tuple] = STATE(676), + [sym_expr_record] = STATE(676), + [sym_expr_do] = STATE(676), + [sym_expr_if] = STATE(676), + [sym_expr_match] = STATE(676), + [sym_expr_loop] = STATE(676), + [sym_expr_while] = STATE(676), + [sym_expr_for] = STATE(676), + [sym_expr_try] = STATE(676), + [sym_name] = ACTIONS(69), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(73), + [anon_sym_COLON] = ACTIONS(75), + [sym_constant_int] = ACTIONS(77), + [sym_constant_float] = ACTIONS(79), + [sym_string_quote] = ACTIONS(81), + [anon_sym_SQUOTE] = ACTIONS(83), + [anon_sym_true] = ACTIONS(85), + [anon_sym_false] = ACTIONS(85), + [anon_sym_LPAREN] = ACTIONS(73), + [anon_sym_LBRACK] = ACTIONS(73), + [anon_sym_EQ] = ACTIONS(75), + [anon_sym_rust] = ACTIONS(87), + [anon_sym_fun] = ACTIONS(157), + [anon_sym_or] = ACTIONS(75), + [anon_sym_DOT] = ACTIONS(75), + [anon_sym_return] = ACTIONS(159), + [anon_sym_break] = ACTIONS(161), + [anon_sym_continue] = ACTIONS(95), + [anon_sym_throw] = ACTIONS(163), + [anon_sym_from] = ACTIONS(75), + [anon_sym_where] = ACTIONS(75), + [anon_sym_join] = ACTIONS(75), + [anon_sym_union] = ACTIONS(75), + [anon_sym_group] = ACTIONS(75), + [anon_sym_over] = ACTIONS(75), + [anon_sym_roll] = ACTIONS(75), + [anon_sym_compute] = ACTIONS(75), + [anon_sym_select] = ACTIONS(75), + [anon_sym_with] = ACTIONS(75), + [anon_sym_into] = ACTIONS(75), + [anon_sym_order] = ACTIONS(75), + [anon_sym_desc] = ACTIONS(75), + [anon_sym_as] = ACTIONS(75), + [anon_sym_of] = ACTIONS(75), + [anon_sym_PLUS_EQ] = ACTIONS(73), + [anon_sym_DASH_EQ] = ACTIONS(73), + [anon_sym_STAR_EQ] = ACTIONS(73), + [anon_sym_SLASH_EQ] = ACTIONS(73), + [anon_sym_DOT_DOT] = ACTIONS(75), + [anon_sym_DOT_DOT_EQ] = ACTIONS(73), + [anon_sym_and] = ACTIONS(75), + [anon_sym_EQ_EQ] = ACTIONS(73), + [anon_sym_BANG_EQ] = ACTIONS(73), + [anon_sym_LT] = ACTIONS(75), + [anon_sym_GT] = ACTIONS(75), + [anon_sym_LT_EQ] = ACTIONS(73), + [anon_sym_GT_EQ] = ACTIONS(73), + [anon_sym_PLUS] = ACTIONS(75), + [anon_sym_DASH] = ACTIONS(75), + [anon_sym_STAR] = ACTIONS(75), + [anon_sym_SLASH] = ACTIONS(75), + [anon_sym_COLON_COLON] = ACTIONS(73), + [anon_sym_do] = ACTIONS(99), + [anon_sym_if] = ACTIONS(101), + [anon_sym_match] = ACTIONS(103), + [anon_sym_loop] = ACTIONS(105), + [anon_sym_while] = ACTIONS(107), + [anon_sym_for] = ACTIONS(109), + [anon_sym_try] = ACTIONS(111), + }, + [15] = { + [sym__constant] = STATE(525), + [sym_constant_string] = STATE(525), + [sym_constant_char] = STATE(525), + [sym_constant_bool] = STATE(525), + [sym_constant_unit] = STATE(525), + [sym__expr] = STATE(677), + [sym_expr_return] = STATE(677), + [sym_expr_break] = STATE(677), + [sym_expr_continue] = STATE(677), + [sym_expr_throw] = STATE(677), + [sym_expr_query] = STATE(677), + [sym_expr_rust] = STATE(677), + [sym_query_from] = STATE(405), + [sym_expr_fun] = STATE(677), + [sym_expr_binary] = STATE(677), + [sym_expr_annot] = STATE(677), + [sym_expr_call] = STATE(677), + [sym_expr_tuple_access] = STATE(677), + [sym_expr_record_access] = STATE(677), + [sym_expr_array_access] = STATE(677), + [sym_expr_method_call] = STATE(677), + [sym_expr_paren] = STATE(677), + [sym_expr_constant] = STATE(677), + [sym_expr_name] = STATE(677), + [sym_expr_array] = STATE(677), + [sym_expr_tuple] = STATE(677), + [sym_expr_record] = STATE(677), + [sym_expr_do] = STATE(677), + [sym_expr_if] = STATE(677), + [sym_expr_match] = STATE(677), + [sym_expr_loop] = STATE(677), + [sym_expr_while] = STATE(677), + [sym_expr_for] = STATE(677), + [sym_expr_try] = STATE(677), + [sym_name] = ACTIONS(69), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(113), + [anon_sym_COLON] = ACTIONS(115), + [sym_constant_int] = ACTIONS(77), + [sym_constant_float] = ACTIONS(79), + [sym_string_quote] = ACTIONS(81), + [anon_sym_SQUOTE] = ACTIONS(83), + [anon_sym_true] = ACTIONS(85), + [anon_sym_false] = ACTIONS(85), + [anon_sym_LPAREN] = ACTIONS(113), + [anon_sym_LBRACK] = ACTIONS(113), + [anon_sym_EQ] = ACTIONS(115), + [anon_sym_rust] = ACTIONS(87), + [anon_sym_fun] = ACTIONS(157), + [anon_sym_or] = ACTIONS(115), + [anon_sym_DOT] = ACTIONS(115), + [anon_sym_return] = ACTIONS(159), + [anon_sym_break] = ACTIONS(161), + [anon_sym_continue] = ACTIONS(95), + [anon_sym_throw] = ACTIONS(163), + [anon_sym_from] = ACTIONS(115), + [anon_sym_where] = ACTIONS(115), + [anon_sym_join] = ACTIONS(115), + [anon_sym_union] = ACTIONS(115), + [anon_sym_group] = ACTIONS(115), + [anon_sym_over] = ACTIONS(115), + [anon_sym_roll] = ACTIONS(115), + [anon_sym_compute] = ACTIONS(115), + [anon_sym_select] = ACTIONS(115), + [anon_sym_with] = ACTIONS(115), + [anon_sym_into] = ACTIONS(115), + [anon_sym_order] = ACTIONS(115), + [anon_sym_desc] = ACTIONS(115), + [anon_sym_as] = ACTIONS(115), + [anon_sym_of] = ACTIONS(115), + [anon_sym_PLUS_EQ] = ACTIONS(113), + [anon_sym_DASH_EQ] = ACTIONS(113), + [anon_sym_STAR_EQ] = ACTIONS(113), + [anon_sym_SLASH_EQ] = ACTIONS(113), + [anon_sym_DOT_DOT] = ACTIONS(115), + [anon_sym_DOT_DOT_EQ] = ACTIONS(113), + [anon_sym_and] = ACTIONS(115), + [anon_sym_EQ_EQ] = ACTIONS(113), + [anon_sym_BANG_EQ] = ACTIONS(113), + [anon_sym_LT] = ACTIONS(115), + [anon_sym_GT] = ACTIONS(115), + [anon_sym_LT_EQ] = ACTIONS(113), + [anon_sym_GT_EQ] = ACTIONS(113), + [anon_sym_PLUS] = ACTIONS(115), + [anon_sym_DASH] = ACTIONS(115), + [anon_sym_STAR] = ACTIONS(115), + [anon_sym_SLASH] = ACTIONS(115), + [anon_sym_COLON_COLON] = ACTIONS(113), + [anon_sym_do] = ACTIONS(99), + [anon_sym_if] = ACTIONS(101), + [anon_sym_match] = ACTIONS(103), + [anon_sym_loop] = ACTIONS(105), + [anon_sym_while] = ACTIONS(107), + [anon_sym_for] = ACTIONS(109), + [anon_sym_try] = ACTIONS(111), + }, + [16] = { + [sym__constant] = STATE(525), + [sym_constant_string] = STATE(525), + [sym_constant_char] = STATE(525), + [sym_constant_bool] = STATE(525), + [sym_constant_unit] = STATE(525), + [sym__expr] = STATE(721), + [sym_expr_return] = STATE(721), + [sym_expr_break] = STATE(721), + [sym_expr_continue] = STATE(721), + [sym_expr_throw] = STATE(721), + [sym_expr_query] = STATE(721), + [sym_expr_rust] = STATE(721), + [sym_query_from] = STATE(408), + [sym_expr_fun] = STATE(721), + [sym_expr_binary] = STATE(721), + [sym_expr_annot] = STATE(721), + [sym_expr_call] = STATE(721), + [sym_expr_tuple_access] = STATE(721), + [sym_expr_record_access] = STATE(721), + [sym_expr_array_access] = STATE(721), + [sym_expr_method_call] = STATE(721), + [sym_expr_paren] = STATE(721), + [sym_expr_constant] = STATE(721), + [sym_expr_name] = STATE(721), + [sym_expr_array] = STATE(721), + [sym_expr_tuple] = STATE(721), + [sym_expr_record] = STATE(721), + [sym_expr_do] = STATE(721), + [sym_expr_if] = STATE(721), + [sym_expr_match] = STATE(721), + [sym_expr_loop] = STATE(721), + [sym_expr_while] = STATE(721), + [sym_expr_for] = STATE(721), + [sym_expr_try] = STATE(721), + [sym_name] = ACTIONS(69), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(113), + [anon_sym_COLON] = ACTIONS(115), + [sym_constant_int] = ACTIONS(77), + [sym_constant_float] = ACTIONS(79), + [sym_string_quote] = ACTIONS(81), + [anon_sym_SQUOTE] = ACTIONS(83), + [anon_sym_true] = ACTIONS(85), + [anon_sym_false] = ACTIONS(85), + [anon_sym_LPAREN] = ACTIONS(113), + [anon_sym_LBRACK] = ACTIONS(113), + [anon_sym_EQ] = ACTIONS(115), + [anon_sym_rust] = ACTIONS(87), + [anon_sym_fun] = ACTIONS(165), + [anon_sym_or] = ACTIONS(115), + [anon_sym_DOT] = ACTIONS(115), + [anon_sym_return] = ACTIONS(167), + [anon_sym_break] = ACTIONS(169), + [anon_sym_continue] = ACTIONS(95), + [anon_sym_throw] = ACTIONS(171), + [anon_sym_from] = ACTIONS(115), + [anon_sym_where] = ACTIONS(115), + [anon_sym_join] = ACTIONS(115), + [anon_sym_union] = ACTIONS(115), + [anon_sym_group] = ACTIONS(115), + [anon_sym_over] = ACTIONS(115), + [anon_sym_roll] = ACTIONS(115), + [anon_sym_compute] = ACTIONS(115), + [anon_sym_select] = ACTIONS(115), + [anon_sym_with] = ACTIONS(115), + [anon_sym_into] = ACTIONS(115), + [anon_sym_order] = ACTIONS(115), + [anon_sym_as] = ACTIONS(115), + [anon_sym_of] = ACTIONS(115), + [anon_sym_PLUS_EQ] = ACTIONS(113), + [anon_sym_DASH_EQ] = ACTIONS(113), + [anon_sym_STAR_EQ] = ACTIONS(113), + [anon_sym_SLASH_EQ] = ACTIONS(113), + [anon_sym_DOT_DOT] = ACTIONS(115), + [anon_sym_DOT_DOT_EQ] = ACTIONS(113), + [anon_sym_and] = ACTIONS(115), + [anon_sym_EQ_EQ] = ACTIONS(113), + [anon_sym_BANG_EQ] = ACTIONS(113), + [anon_sym_LT] = ACTIONS(115), + [anon_sym_GT] = ACTIONS(115), + [anon_sym_LT_EQ] = ACTIONS(113), + [anon_sym_GT_EQ] = ACTIONS(113), + [anon_sym_PLUS] = ACTIONS(115), + [anon_sym_DASH] = ACTIONS(115), + [anon_sym_STAR] = ACTIONS(115), + [anon_sym_SLASH] = ACTIONS(115), + [anon_sym_COLON_COLON] = ACTIONS(113), + [anon_sym_do] = ACTIONS(99), + [anon_sym_if] = ACTIONS(101), + [anon_sym_match] = ACTIONS(103), + [anon_sym_loop] = ACTIONS(105), + [anon_sym_while] = ACTIONS(107), + [anon_sym_for] = ACTIONS(109), + [anon_sym_try] = ACTIONS(111), + }, + [17] = { + [sym__constant] = STATE(525), + [sym_constant_string] = STATE(525), + [sym_constant_char] = STATE(525), + [sym_constant_bool] = STATE(525), + [sym_constant_unit] = STATE(525), + [sym__expr] = STATE(719), + [sym_expr_return] = STATE(719), + [sym_expr_break] = STATE(719), + [sym_expr_continue] = STATE(719), + [sym_expr_throw] = STATE(719), + [sym_expr_query] = STATE(719), + [sym_expr_rust] = STATE(719), + [sym_query_from] = STATE(408), + [sym_expr_fun] = STATE(719), + [sym_expr_binary] = STATE(719), + [sym_expr_annot] = STATE(719), + [sym_expr_call] = STATE(719), + [sym_expr_tuple_access] = STATE(719), + [sym_expr_record_access] = STATE(719), + [sym_expr_array_access] = STATE(719), + [sym_expr_method_call] = STATE(719), + [sym_expr_paren] = STATE(719), + [sym_expr_constant] = STATE(719), + [sym_expr_name] = STATE(719), + [sym_expr_array] = STATE(719), + [sym_expr_tuple] = STATE(719), + [sym_expr_record] = STATE(719), + [sym_expr_do] = STATE(719), + [sym_expr_if] = STATE(719), + [sym_expr_match] = STATE(719), + [sym_expr_loop] = STATE(719), + [sym_expr_while] = STATE(719), + [sym_expr_for] = STATE(719), + [sym_expr_try] = STATE(719), + [sym_name] = ACTIONS(69), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(73), + [anon_sym_COLON] = ACTIONS(75), + [sym_constant_int] = ACTIONS(77), + [sym_constant_float] = ACTIONS(79), + [sym_string_quote] = ACTIONS(81), + [anon_sym_SQUOTE] = ACTIONS(83), + [anon_sym_true] = ACTIONS(85), + [anon_sym_false] = ACTIONS(85), + [anon_sym_LPAREN] = ACTIONS(73), + [anon_sym_LBRACK] = ACTIONS(73), + [anon_sym_EQ] = ACTIONS(75), + [anon_sym_rust] = ACTIONS(87), + [anon_sym_fun] = ACTIONS(165), + [anon_sym_or] = ACTIONS(75), + [anon_sym_DOT] = ACTIONS(75), + [anon_sym_return] = ACTIONS(167), + [anon_sym_break] = ACTIONS(169), + [anon_sym_continue] = ACTIONS(95), + [anon_sym_throw] = ACTIONS(171), + [anon_sym_from] = ACTIONS(75), + [anon_sym_where] = ACTIONS(75), + [anon_sym_join] = ACTIONS(75), + [anon_sym_union] = ACTIONS(75), + [anon_sym_group] = ACTIONS(75), + [anon_sym_over] = ACTIONS(75), + [anon_sym_roll] = ACTIONS(75), + [anon_sym_compute] = ACTIONS(75), + [anon_sym_select] = ACTIONS(75), + [anon_sym_with] = ACTIONS(75), + [anon_sym_into] = ACTIONS(75), + [anon_sym_order] = ACTIONS(75), + [anon_sym_as] = ACTIONS(75), + [anon_sym_of] = ACTIONS(75), + [anon_sym_PLUS_EQ] = ACTIONS(73), + [anon_sym_DASH_EQ] = ACTIONS(73), + [anon_sym_STAR_EQ] = ACTIONS(73), + [anon_sym_SLASH_EQ] = ACTIONS(73), + [anon_sym_DOT_DOT] = ACTIONS(75), + [anon_sym_DOT_DOT_EQ] = ACTIONS(73), + [anon_sym_and] = ACTIONS(75), + [anon_sym_EQ_EQ] = ACTIONS(73), + [anon_sym_BANG_EQ] = ACTIONS(73), + [anon_sym_LT] = ACTIONS(75), + [anon_sym_GT] = ACTIONS(75), + [anon_sym_LT_EQ] = ACTIONS(73), + [anon_sym_GT_EQ] = ACTIONS(73), + [anon_sym_PLUS] = ACTIONS(75), + [anon_sym_DASH] = ACTIONS(75), + [anon_sym_STAR] = ACTIONS(75), + [anon_sym_SLASH] = ACTIONS(75), + [anon_sym_COLON_COLON] = ACTIONS(73), + [anon_sym_do] = ACTIONS(99), + [anon_sym_if] = ACTIONS(101), + [anon_sym_match] = ACTIONS(103), + [anon_sym_loop] = ACTIONS(105), + [anon_sym_while] = ACTIONS(107), + [anon_sym_for] = ACTIONS(109), + [anon_sym_try] = ACTIONS(111), + }, + [18] = { + [sym__constant] = STATE(525), + [sym_constant_string] = STATE(525), + [sym_constant_char] = STATE(525), + [sym_constant_bool] = STATE(525), + [sym_constant_unit] = STATE(525), + [sym__expr] = STATE(695), + [sym_expr_return] = STATE(695), + [sym_expr_break] = STATE(695), + [sym_expr_continue] = STATE(695), + [sym_expr_throw] = STATE(695), + [sym_expr_query] = STATE(695), + [sym_expr_rust] = STATE(695), + [sym_query_from] = STATE(406), + [sym_expr_fun] = STATE(695), + [sym_expr_binary] = STATE(695), + [sym_expr_annot] = STATE(695), + [sym_expr_call] = STATE(695), + [sym_expr_tuple_access] = STATE(695), + [sym_expr_record_access] = STATE(695), + [sym_expr_array_access] = STATE(695), + [sym_expr_method_call] = STATE(695), + [sym_expr_paren] = STATE(695), + [sym_expr_constant] = STATE(695), + [sym_expr_name] = STATE(695), + [sym_expr_array] = STATE(695), + [sym_expr_tuple] = STATE(695), + [sym_expr_record] = STATE(695), + [sym_expr_do] = STATE(695), + [sym_expr_if] = STATE(695), + [sym_expr_match] = STATE(695), + [sym_expr_loop] = STATE(695), + [sym_expr_while] = STATE(695), + [sym_expr_for] = STATE(695), + [sym_expr_try] = STATE(695), + [sym_name] = ACTIONS(69), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(73), + [anon_sym_COLON] = ACTIONS(75), + [sym_constant_int] = ACTIONS(77), + [sym_constant_float] = ACTIONS(79), + [sym_string_quote] = ACTIONS(81), + [anon_sym_SQUOTE] = ACTIONS(83), + [anon_sym_true] = ACTIONS(85), + [anon_sym_false] = ACTIONS(85), + [anon_sym_LPAREN] = ACTIONS(73), + [anon_sym_LBRACK] = ACTIONS(73), + [anon_sym_EQ] = ACTIONS(75), + [anon_sym_rust] = ACTIONS(87), + [anon_sym_fun] = ACTIONS(173), + [anon_sym_or] = ACTIONS(75), + [anon_sym_DOT] = ACTIONS(75), + [anon_sym_return] = ACTIONS(175), + [anon_sym_break] = ACTIONS(177), + [anon_sym_continue] = ACTIONS(95), + [anon_sym_throw] = ACTIONS(179), + [anon_sym_from] = ACTIONS(75), + [anon_sym_where] = ACTIONS(75), + [anon_sym_join] = ACTIONS(75), + [anon_sym_union] = ACTIONS(75), + [anon_sym_group] = ACTIONS(75), + [anon_sym_over] = ACTIONS(75), + [anon_sym_roll] = ACTIONS(75), + [anon_sym_compute] = ACTIONS(75), + [anon_sym_select] = ACTIONS(75), + [anon_sym_with] = ACTIONS(75), + [anon_sym_into] = ACTIONS(75), + [anon_sym_order] = ACTIONS(75), + [anon_sym_desc] = ACTIONS(75), + [anon_sym_as] = ACTIONS(75), + [anon_sym_PLUS_EQ] = ACTIONS(73), + [anon_sym_DASH_EQ] = ACTIONS(73), + [anon_sym_STAR_EQ] = ACTIONS(73), + [anon_sym_SLASH_EQ] = ACTIONS(73), + [anon_sym_DOT_DOT] = ACTIONS(75), + [anon_sym_DOT_DOT_EQ] = ACTIONS(73), + [anon_sym_and] = ACTIONS(75), + [anon_sym_EQ_EQ] = ACTIONS(73), + [anon_sym_BANG_EQ] = ACTIONS(73), + [anon_sym_LT] = ACTIONS(75), + [anon_sym_GT] = ACTIONS(75), + [anon_sym_LT_EQ] = ACTIONS(73), + [anon_sym_GT_EQ] = ACTIONS(73), + [anon_sym_PLUS] = ACTIONS(75), + [anon_sym_DASH] = ACTIONS(75), + [anon_sym_STAR] = ACTIONS(75), + [anon_sym_SLASH] = ACTIONS(75), + [anon_sym_COLON_COLON] = ACTIONS(73), + [anon_sym_do] = ACTIONS(99), + [anon_sym_if] = ACTIONS(101), + [anon_sym_match] = ACTIONS(103), + [anon_sym_loop] = ACTIONS(105), + [anon_sym_while] = ACTIONS(107), + [anon_sym_for] = ACTIONS(109), + [anon_sym_try] = ACTIONS(111), + }, + [19] = { + [sym__constant] = STATE(525), + [sym_constant_string] = STATE(525), + [sym_constant_char] = STATE(525), + [sym_constant_bool] = STATE(525), + [sym_constant_unit] = STATE(525), + [sym__expr] = STATE(694), + [sym_expr_return] = STATE(694), + [sym_expr_break] = STATE(694), + [sym_expr_continue] = STATE(694), + [sym_expr_throw] = STATE(694), + [sym_expr_query] = STATE(694), + [sym_expr_rust] = STATE(694), + [sym_query_from] = STATE(406), + [sym_expr_fun] = STATE(694), + [sym_expr_binary] = STATE(694), + [sym_expr_annot] = STATE(694), + [sym_expr_call] = STATE(694), + [sym_expr_tuple_access] = STATE(694), + [sym_expr_record_access] = STATE(694), + [sym_expr_array_access] = STATE(694), + [sym_expr_method_call] = STATE(694), + [sym_expr_paren] = STATE(694), + [sym_expr_constant] = STATE(694), + [sym_expr_name] = STATE(694), + [sym_expr_array] = STATE(694), + [sym_expr_tuple] = STATE(694), + [sym_expr_record] = STATE(694), + [sym_expr_do] = STATE(694), + [sym_expr_if] = STATE(694), + [sym_expr_match] = STATE(694), + [sym_expr_loop] = STATE(694), + [sym_expr_while] = STATE(694), + [sym_expr_for] = STATE(694), + [sym_expr_try] = STATE(694), + [sym_name] = ACTIONS(69), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(113), + [anon_sym_COLON] = ACTIONS(115), + [sym_constant_int] = ACTIONS(77), + [sym_constant_float] = ACTIONS(79), + [sym_string_quote] = ACTIONS(81), + [anon_sym_SQUOTE] = ACTIONS(83), + [anon_sym_true] = ACTIONS(85), + [anon_sym_false] = ACTIONS(85), + [anon_sym_LPAREN] = ACTIONS(113), + [anon_sym_LBRACK] = ACTIONS(113), + [anon_sym_EQ] = ACTIONS(115), + [anon_sym_rust] = ACTIONS(87), + [anon_sym_fun] = ACTIONS(173), + [anon_sym_or] = ACTIONS(115), + [anon_sym_DOT] = ACTIONS(115), + [anon_sym_return] = ACTIONS(175), + [anon_sym_break] = ACTIONS(177), + [anon_sym_continue] = ACTIONS(95), + [anon_sym_throw] = ACTIONS(179), + [anon_sym_from] = ACTIONS(115), + [anon_sym_where] = ACTIONS(115), + [anon_sym_join] = ACTIONS(115), + [anon_sym_union] = ACTIONS(115), + [anon_sym_group] = ACTIONS(115), + [anon_sym_over] = ACTIONS(115), + [anon_sym_roll] = ACTIONS(115), + [anon_sym_compute] = ACTIONS(115), + [anon_sym_select] = ACTIONS(115), + [anon_sym_with] = ACTIONS(115), + [anon_sym_into] = ACTIONS(115), + [anon_sym_order] = ACTIONS(115), + [anon_sym_desc] = ACTIONS(115), + [anon_sym_as] = ACTIONS(115), + [anon_sym_PLUS_EQ] = ACTIONS(113), + [anon_sym_DASH_EQ] = ACTIONS(113), + [anon_sym_STAR_EQ] = ACTIONS(113), + [anon_sym_SLASH_EQ] = ACTIONS(113), + [anon_sym_DOT_DOT] = ACTIONS(115), + [anon_sym_DOT_DOT_EQ] = ACTIONS(113), + [anon_sym_and] = ACTIONS(115), + [anon_sym_EQ_EQ] = ACTIONS(113), + [anon_sym_BANG_EQ] = ACTIONS(113), + [anon_sym_LT] = ACTIONS(115), + [anon_sym_GT] = ACTIONS(115), + [anon_sym_LT_EQ] = ACTIONS(113), + [anon_sym_GT_EQ] = ACTIONS(113), + [anon_sym_PLUS] = ACTIONS(115), + [anon_sym_DASH] = ACTIONS(115), + [anon_sym_STAR] = ACTIONS(115), + [anon_sym_SLASH] = ACTIONS(115), + [anon_sym_COLON_COLON] = ACTIONS(113), + [anon_sym_do] = ACTIONS(99), + [anon_sym_if] = ACTIONS(101), + [anon_sym_match] = ACTIONS(103), + [anon_sym_loop] = ACTIONS(105), + [anon_sym_while] = ACTIONS(107), + [anon_sym_for] = ACTIONS(109), + [anon_sym_try] = ACTIONS(111), + }, + [20] = { + [sym__constant] = STATE(525), + [sym_constant_string] = STATE(525), + [sym_constant_char] = STATE(525), + [sym_constant_bool] = STATE(525), + [sym_constant_unit] = STATE(525), + [sym__expr] = STATE(757), + [sym_expr_return] = STATE(757), + [sym_expr_break] = STATE(757), + [sym_expr_continue] = STATE(757), + [sym_expr_throw] = STATE(757), + [sym_expr_query] = STATE(757), + [sym_expr_rust] = STATE(757), + [sym_query_from] = STATE(416), + [sym_expr_fun] = STATE(757), + [sym_expr_binary] = STATE(757), + [sym_expr_annot] = STATE(757), + [sym_expr_call] = STATE(757), + [sym_expr_tuple_access] = STATE(757), + [sym_expr_record_access] = STATE(757), + [sym_expr_array_access] = STATE(757), + [sym_expr_method_call] = STATE(757), + [sym_expr_paren] = STATE(757), + [sym_expr_constant] = STATE(757), + [sym_expr_name] = STATE(757), + [sym_expr_array] = STATE(757), + [sym_expr_tuple] = STATE(757), + [sym_expr_record] = STATE(757), + [sym_expr_do] = STATE(757), + [sym_expr_if] = STATE(757), + [sym_expr_match] = STATE(757), + [sym_expr_loop] = STATE(757), + [sym_expr_while] = STATE(757), + [sym_expr_for] = STATE(757), + [sym_expr_try] = STATE(757), + [sym_name] = ACTIONS(69), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(73), + [anon_sym_COLON] = ACTIONS(75), + [sym_constant_int] = ACTIONS(77), + [sym_constant_float] = ACTIONS(79), + [sym_string_quote] = ACTIONS(81), + [anon_sym_SQUOTE] = ACTIONS(83), + [anon_sym_true] = ACTIONS(85), + [anon_sym_false] = ACTIONS(85), + [anon_sym_LPAREN] = ACTIONS(73), + [anon_sym_LBRACK] = ACTIONS(73), + [anon_sym_EQ] = ACTIONS(75), + [anon_sym_rust] = ACTIONS(87), + [anon_sym_fun] = ACTIONS(181), + [anon_sym_or] = ACTIONS(75), + [anon_sym_DOT] = ACTIONS(75), + [anon_sym_return] = ACTIONS(183), + [anon_sym_break] = ACTIONS(185), + [anon_sym_continue] = ACTIONS(95), + [anon_sym_throw] = ACTIONS(187), + [anon_sym_from] = ACTIONS(75), + [anon_sym_where] = ACTIONS(75), + [anon_sym_join] = ACTIONS(75), + [anon_sym_union] = ACTIONS(75), + [anon_sym_group] = ACTIONS(75), + [anon_sym_over] = ACTIONS(75), + [anon_sym_roll] = ACTIONS(75), + [anon_sym_compute] = ACTIONS(75), + [anon_sym_select] = ACTIONS(75), + [anon_sym_with] = ACTIONS(75), + [anon_sym_into] = ACTIONS(75), + [anon_sym_order] = ACTIONS(75), + [anon_sym_as] = ACTIONS(75), + [anon_sym_PLUS_EQ] = ACTIONS(73), + [anon_sym_DASH_EQ] = ACTIONS(73), + [anon_sym_STAR_EQ] = ACTIONS(73), + [anon_sym_SLASH_EQ] = ACTIONS(73), + [anon_sym_DOT_DOT] = ACTIONS(75), + [anon_sym_DOT_DOT_EQ] = ACTIONS(73), + [anon_sym_and] = ACTIONS(75), + [anon_sym_EQ_EQ] = ACTIONS(73), + [anon_sym_BANG_EQ] = ACTIONS(73), + [anon_sym_LT] = ACTIONS(75), + [anon_sym_GT] = ACTIONS(75), + [anon_sym_LT_EQ] = ACTIONS(73), + [anon_sym_GT_EQ] = ACTIONS(73), + [anon_sym_PLUS] = ACTIONS(75), + [anon_sym_DASH] = ACTIONS(75), + [anon_sym_STAR] = ACTIONS(75), + [anon_sym_SLASH] = ACTIONS(75), + [anon_sym_COLON_COLON] = ACTIONS(73), + [anon_sym_do] = ACTIONS(99), + [anon_sym_if] = ACTIONS(101), + [anon_sym_match] = ACTIONS(103), + [anon_sym_loop] = ACTIONS(105), + [anon_sym_while] = ACTIONS(107), + [anon_sym_for] = ACTIONS(109), + [anon_sym_try] = ACTIONS(111), + }, + [21] = { + [sym__constant] = STATE(525), + [sym_constant_string] = STATE(525), + [sym_constant_char] = STATE(525), + [sym_constant_bool] = STATE(525), + [sym_constant_unit] = STATE(525), + [sym__expr] = STATE(736), + [sym_expr_return] = STATE(736), + [sym_expr_break] = STATE(736), + [sym_expr_continue] = STATE(736), + [sym_expr_throw] = STATE(736), + [sym_expr_query] = STATE(736), + [sym_expr_rust] = STATE(736), + [sym_query_from] = STATE(416), + [sym_expr_fun] = STATE(736), + [sym_expr_binary] = STATE(736), + [sym_expr_annot] = STATE(736), + [sym_expr_call] = STATE(736), + [sym_expr_tuple_access] = STATE(736), + [sym_expr_record_access] = STATE(736), + [sym_expr_array_access] = STATE(736), + [sym_expr_method_call] = STATE(736), + [sym_expr_paren] = STATE(736), + [sym_expr_constant] = STATE(736), + [sym_expr_name] = STATE(736), + [sym_expr_array] = STATE(736), + [sym_expr_tuple] = STATE(736), + [sym_expr_record] = STATE(736), + [sym_expr_do] = STATE(736), + [sym_expr_if] = STATE(736), + [sym_expr_match] = STATE(736), + [sym_expr_loop] = STATE(736), + [sym_expr_while] = STATE(736), + [sym_expr_for] = STATE(736), + [sym_expr_try] = STATE(736), + [sym_name] = ACTIONS(69), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(113), + [anon_sym_COLON] = ACTIONS(115), + [sym_constant_int] = ACTIONS(77), + [sym_constant_float] = ACTIONS(79), + [sym_string_quote] = ACTIONS(81), + [anon_sym_SQUOTE] = ACTIONS(83), + [anon_sym_true] = ACTIONS(85), + [anon_sym_false] = ACTIONS(85), + [anon_sym_LPAREN] = ACTIONS(113), + [anon_sym_LBRACK] = ACTIONS(113), + [anon_sym_EQ] = ACTIONS(115), + [anon_sym_rust] = ACTIONS(87), + [anon_sym_fun] = ACTIONS(181), + [anon_sym_or] = ACTIONS(115), + [anon_sym_DOT] = ACTIONS(115), + [anon_sym_return] = ACTIONS(183), + [anon_sym_break] = ACTIONS(185), + [anon_sym_continue] = ACTIONS(95), + [anon_sym_throw] = ACTIONS(187), + [anon_sym_from] = ACTIONS(115), + [anon_sym_where] = ACTIONS(115), + [anon_sym_join] = ACTIONS(115), + [anon_sym_union] = ACTIONS(115), + [anon_sym_group] = ACTIONS(115), + [anon_sym_over] = ACTIONS(115), + [anon_sym_roll] = ACTIONS(115), + [anon_sym_compute] = ACTIONS(115), + [anon_sym_select] = ACTIONS(115), + [anon_sym_with] = ACTIONS(115), + [anon_sym_into] = ACTIONS(115), + [anon_sym_order] = ACTIONS(115), + [anon_sym_as] = ACTIONS(115), + [anon_sym_PLUS_EQ] = ACTIONS(113), + [anon_sym_DASH_EQ] = ACTIONS(113), + [anon_sym_STAR_EQ] = ACTIONS(113), + [anon_sym_SLASH_EQ] = ACTIONS(113), + [anon_sym_DOT_DOT] = ACTIONS(115), + [anon_sym_DOT_DOT_EQ] = ACTIONS(113), + [anon_sym_and] = ACTIONS(115), + [anon_sym_EQ_EQ] = ACTIONS(113), + [anon_sym_BANG_EQ] = ACTIONS(113), + [anon_sym_LT] = ACTIONS(115), + [anon_sym_GT] = ACTIONS(115), + [anon_sym_LT_EQ] = ACTIONS(113), + [anon_sym_GT_EQ] = ACTIONS(113), + [anon_sym_PLUS] = ACTIONS(115), + [anon_sym_DASH] = ACTIONS(115), + [anon_sym_STAR] = ACTIONS(115), + [anon_sym_SLASH] = ACTIONS(115), + [anon_sym_COLON_COLON] = ACTIONS(113), + [anon_sym_do] = ACTIONS(99), + [anon_sym_if] = ACTIONS(101), + [anon_sym_match] = ACTIONS(103), + [anon_sym_loop] = ACTIONS(105), + [anon_sym_while] = ACTIONS(107), + [anon_sym_for] = ACTIONS(109), + [anon_sym_try] = ACTIONS(111), + }, + [22] = { + [sym__constant] = STATE(525), + [sym_constant_string] = STATE(525), + [sym_constant_char] = STATE(525), + [sym_constant_bool] = STATE(525), + [sym_constant_unit] = STATE(525), + [sym__expr] = STATE(745), + [sym_expr_return] = STATE(745), + [sym_expr_break] = STATE(745), + [sym_expr_continue] = STATE(745), + [sym_expr_throw] = STATE(745), + [sym_expr_query] = STATE(745), + [sym_expr_rust] = STATE(745), + [sym_query_from] = STATE(417), + [sym_expr_fun] = STATE(745), + [sym_expr_binary] = STATE(745), + [sym_expr_annot] = STATE(745), + [sym_expr_call] = STATE(745), + [sym_expr_tuple_access] = STATE(745), + [sym_expr_record_access] = STATE(745), + [sym_expr_array_access] = STATE(745), + [sym_expr_method_call] = STATE(745), + [sym_expr_paren] = STATE(745), + [sym_expr_constant] = STATE(745), + [sym_expr_name] = STATE(745), + [sym_expr_array] = STATE(745), + [sym_expr_tuple] = STATE(745), + [sym_expr_record] = STATE(745), + [sym_expr_do] = STATE(745), + [sym_expr_if] = STATE(745), + [sym_expr_match] = STATE(745), + [sym_expr_loop] = STATE(745), + [sym_expr_while] = STATE(745), + [sym_expr_for] = STATE(745), + [sym_expr_try] = STATE(745), + [sym_name] = ACTIONS(69), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(113), + [anon_sym_COLON] = ACTIONS(115), + [sym_constant_int] = ACTIONS(77), + [sym_constant_float] = ACTIONS(79), + [sym_string_quote] = ACTIONS(81), + [anon_sym_SQUOTE] = ACTIONS(83), + [anon_sym_true] = ACTIONS(85), + [anon_sym_false] = ACTIONS(85), + [anon_sym_LPAREN] = ACTIONS(113), + [anon_sym_LBRACK] = ACTIONS(113), + [anon_sym_EQ] = ACTIONS(115), + [anon_sym_rust] = ACTIONS(87), + [anon_sym_fun] = ACTIONS(189), + [anon_sym_or] = ACTIONS(115), + [anon_sym_DOT] = ACTIONS(115), + [anon_sym_return] = ACTIONS(191), + [anon_sym_break] = ACTIONS(193), + [anon_sym_continue] = ACTIONS(95), + [anon_sym_throw] = ACTIONS(195), + [anon_sym_from] = ACTIONS(115), + [anon_sym_where] = ACTIONS(115), + [anon_sym_join] = ACTIONS(115), + [anon_sym_union] = ACTIONS(115), + [anon_sym_group] = ACTIONS(115), + [anon_sym_over] = ACTIONS(115), + [anon_sym_roll] = ACTIONS(115), + [anon_sym_compute] = ACTIONS(115), + [anon_sym_select] = ACTIONS(115), + [anon_sym_with] = ACTIONS(115), + [anon_sym_into] = ACTIONS(115), + [anon_sym_order] = ACTIONS(115), + [anon_sym_desc] = ACTIONS(115), + [anon_sym_PLUS_EQ] = ACTIONS(113), + [anon_sym_DASH_EQ] = ACTIONS(113), + [anon_sym_STAR_EQ] = ACTIONS(113), + [anon_sym_SLASH_EQ] = ACTIONS(113), + [anon_sym_DOT_DOT] = ACTIONS(115), + [anon_sym_DOT_DOT_EQ] = ACTIONS(113), + [anon_sym_and] = ACTIONS(115), + [anon_sym_EQ_EQ] = ACTIONS(113), + [anon_sym_BANG_EQ] = ACTIONS(113), + [anon_sym_LT] = ACTIONS(115), + [anon_sym_GT] = ACTIONS(115), + [anon_sym_LT_EQ] = ACTIONS(113), + [anon_sym_GT_EQ] = ACTIONS(113), + [anon_sym_PLUS] = ACTIONS(115), + [anon_sym_DASH] = ACTIONS(115), + [anon_sym_STAR] = ACTIONS(115), + [anon_sym_SLASH] = ACTIONS(115), + [anon_sym_COLON_COLON] = ACTIONS(113), + [anon_sym_do] = ACTIONS(99), + [anon_sym_if] = ACTIONS(101), + [anon_sym_match] = ACTIONS(103), + [anon_sym_loop] = ACTIONS(105), + [anon_sym_while] = ACTIONS(107), + [anon_sym_for] = ACTIONS(109), + [anon_sym_try] = ACTIONS(111), + }, + [23] = { + [sym__constant] = STATE(525), + [sym_constant_string] = STATE(525), + [sym_constant_char] = STATE(525), + [sym_constant_bool] = STATE(525), + [sym_constant_unit] = STATE(525), + [sym__expr] = STATE(742), + [sym_expr_return] = STATE(742), + [sym_expr_break] = STATE(742), + [sym_expr_continue] = STATE(742), + [sym_expr_throw] = STATE(742), + [sym_expr_query] = STATE(742), + [sym_expr_rust] = STATE(742), + [sym_query_from] = STATE(417), + [sym_expr_fun] = STATE(742), + [sym_expr_binary] = STATE(742), + [sym_expr_annot] = STATE(742), + [sym_expr_call] = STATE(742), + [sym_expr_tuple_access] = STATE(742), + [sym_expr_record_access] = STATE(742), + [sym_expr_array_access] = STATE(742), + [sym_expr_method_call] = STATE(742), + [sym_expr_paren] = STATE(742), + [sym_expr_constant] = STATE(742), + [sym_expr_name] = STATE(742), + [sym_expr_array] = STATE(742), + [sym_expr_tuple] = STATE(742), + [sym_expr_record] = STATE(742), + [sym_expr_do] = STATE(742), + [sym_expr_if] = STATE(742), + [sym_expr_match] = STATE(742), + [sym_expr_loop] = STATE(742), + [sym_expr_while] = STATE(742), + [sym_expr_for] = STATE(742), + [sym_expr_try] = STATE(742), + [sym_name] = ACTIONS(69), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(73), + [anon_sym_COLON] = ACTIONS(75), + [sym_constant_int] = ACTIONS(77), + [sym_constant_float] = ACTIONS(79), + [sym_string_quote] = ACTIONS(81), + [anon_sym_SQUOTE] = ACTIONS(83), + [anon_sym_true] = ACTIONS(85), + [anon_sym_false] = ACTIONS(85), + [anon_sym_LPAREN] = ACTIONS(73), + [anon_sym_LBRACK] = ACTIONS(73), + [anon_sym_EQ] = ACTIONS(75), + [anon_sym_rust] = ACTIONS(87), + [anon_sym_fun] = ACTIONS(189), + [anon_sym_or] = ACTIONS(75), + [anon_sym_DOT] = ACTIONS(75), + [anon_sym_return] = ACTIONS(191), + [anon_sym_break] = ACTIONS(193), + [anon_sym_continue] = ACTIONS(95), + [anon_sym_throw] = ACTIONS(195), + [anon_sym_from] = ACTIONS(75), + [anon_sym_where] = ACTIONS(75), + [anon_sym_join] = ACTIONS(75), + [anon_sym_union] = ACTIONS(75), + [anon_sym_group] = ACTIONS(75), + [anon_sym_over] = ACTIONS(75), + [anon_sym_roll] = ACTIONS(75), + [anon_sym_compute] = ACTIONS(75), + [anon_sym_select] = ACTIONS(75), + [anon_sym_with] = ACTIONS(75), + [anon_sym_into] = ACTIONS(75), + [anon_sym_order] = ACTIONS(75), + [anon_sym_desc] = ACTIONS(75), + [anon_sym_PLUS_EQ] = ACTIONS(73), + [anon_sym_DASH_EQ] = ACTIONS(73), + [anon_sym_STAR_EQ] = ACTIONS(73), + [anon_sym_SLASH_EQ] = ACTIONS(73), + [anon_sym_DOT_DOT] = ACTIONS(75), + [anon_sym_DOT_DOT_EQ] = ACTIONS(73), + [anon_sym_and] = ACTIONS(75), + [anon_sym_EQ_EQ] = ACTIONS(73), + [anon_sym_BANG_EQ] = ACTIONS(73), + [anon_sym_LT] = ACTIONS(75), + [anon_sym_GT] = ACTIONS(75), + [anon_sym_LT_EQ] = ACTIONS(73), + [anon_sym_GT_EQ] = ACTIONS(73), + [anon_sym_PLUS] = ACTIONS(75), + [anon_sym_DASH] = ACTIONS(75), + [anon_sym_STAR] = ACTIONS(75), + [anon_sym_SLASH] = ACTIONS(75), + [anon_sym_COLON_COLON] = ACTIONS(73), + [anon_sym_do] = ACTIONS(99), + [anon_sym_if] = ACTIONS(101), + [anon_sym_match] = ACTIONS(103), + [anon_sym_loop] = ACTIONS(105), + [anon_sym_while] = ACTIONS(107), + [anon_sym_for] = ACTIONS(109), + [anon_sym_try] = ACTIONS(111), + }, + [24] = { + [sym__constant] = STATE(525), + [sym_constant_string] = STATE(525), + [sym_constant_char] = STATE(525), + [sym_constant_bool] = STATE(525), + [sym_constant_unit] = STATE(525), + [sym__expr] = STATE(777), + [sym_expr_return] = STATE(777), + [sym_expr_break] = STATE(777), + [sym_expr_continue] = STATE(777), + [sym_expr_throw] = STATE(777), + [sym_expr_query] = STATE(777), + [sym_expr_rust] = STATE(777), + [sym_query_from] = STATE(422), + [sym_expr_fun] = STATE(777), + [sym_expr_binary] = STATE(777), + [sym_expr_annot] = STATE(777), + [sym_expr_call] = STATE(777), + [sym_expr_tuple_access] = STATE(777), + [sym_expr_record_access] = STATE(777), + [sym_expr_array_access] = STATE(777), + [sym_expr_method_call] = STATE(777), + [sym_expr_paren] = STATE(777), + [sym_expr_constant] = STATE(777), + [sym_expr_name] = STATE(777), + [sym_expr_array] = STATE(777), + [sym_expr_tuple] = STATE(777), + [sym_expr_record] = STATE(777), + [sym_expr_do] = STATE(777), + [sym_expr_if] = STATE(777), + [sym_expr_match] = STATE(777), + [sym_expr_loop] = STATE(777), + [sym_expr_while] = STATE(777), + [sym_expr_for] = STATE(777), + [sym_expr_try] = STATE(777), + [sym_name] = ACTIONS(69), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(113), + [anon_sym_COLON] = ACTIONS(115), + [sym_constant_int] = ACTIONS(77), + [sym_constant_float] = ACTIONS(79), + [sym_string_quote] = ACTIONS(81), + [anon_sym_SQUOTE] = ACTIONS(83), + [anon_sym_true] = ACTIONS(85), + [anon_sym_false] = ACTIONS(85), + [anon_sym_LPAREN] = ACTIONS(113), + [anon_sym_LBRACK] = ACTIONS(113), + [anon_sym_EQ] = ACTIONS(115), + [anon_sym_rust] = ACTIONS(87), + [anon_sym_fun] = ACTIONS(197), + [anon_sym_or] = ACTIONS(115), + [anon_sym_DOT] = ACTIONS(115), + [anon_sym_return] = ACTIONS(199), + [anon_sym_break] = ACTIONS(201), + [anon_sym_continue] = ACTIONS(95), + [anon_sym_throw] = ACTIONS(203), + [anon_sym_from] = ACTIONS(115), + [anon_sym_where] = ACTIONS(115), + [anon_sym_join] = ACTIONS(115), + [anon_sym_union] = ACTIONS(115), + [anon_sym_group] = ACTIONS(115), + [anon_sym_over] = ACTIONS(115), + [anon_sym_roll] = ACTIONS(115), + [anon_sym_compute] = ACTIONS(115), + [anon_sym_select] = ACTIONS(115), + [anon_sym_with] = ACTIONS(115), + [anon_sym_into] = ACTIONS(115), + [anon_sym_order] = ACTIONS(115), + [anon_sym_PLUS_EQ] = ACTIONS(113), + [anon_sym_DASH_EQ] = ACTIONS(113), + [anon_sym_STAR_EQ] = ACTIONS(113), + [anon_sym_SLASH_EQ] = ACTIONS(113), + [anon_sym_DOT_DOT] = ACTIONS(115), + [anon_sym_DOT_DOT_EQ] = ACTIONS(113), + [anon_sym_and] = ACTIONS(115), + [anon_sym_EQ_EQ] = ACTIONS(113), + [anon_sym_BANG_EQ] = ACTIONS(113), + [anon_sym_LT] = ACTIONS(115), + [anon_sym_GT] = ACTIONS(115), + [anon_sym_LT_EQ] = ACTIONS(113), + [anon_sym_GT_EQ] = ACTIONS(113), + [anon_sym_PLUS] = ACTIONS(115), + [anon_sym_DASH] = ACTIONS(115), + [anon_sym_STAR] = ACTIONS(115), + [anon_sym_SLASH] = ACTIONS(115), + [anon_sym_COLON_COLON] = ACTIONS(113), + [anon_sym_do] = ACTIONS(99), + [anon_sym_if] = ACTIONS(101), + [anon_sym_match] = ACTIONS(103), + [anon_sym_loop] = ACTIONS(105), + [anon_sym_while] = ACTIONS(107), + [anon_sym_for] = ACTIONS(109), + [anon_sym_try] = ACTIONS(111), + }, + [25] = { + [sym__constant] = STATE(525), + [sym_constant_string] = STATE(525), + [sym_constant_char] = STATE(525), + [sym_constant_bool] = STATE(525), + [sym_constant_unit] = STATE(525), + [sym__expr] = STATE(762), + [sym_expr_return] = STATE(762), + [sym_expr_break] = STATE(762), + [sym_expr_continue] = STATE(762), + [sym_expr_throw] = STATE(762), + [sym_expr_query] = STATE(762), + [sym_expr_rust] = STATE(762), + [sym_query_from] = STATE(422), + [sym_expr_fun] = STATE(762), + [sym_expr_binary] = STATE(762), + [sym_expr_annot] = STATE(762), + [sym_expr_call] = STATE(762), + [sym_expr_tuple_access] = STATE(762), + [sym_expr_record_access] = STATE(762), + [sym_expr_array_access] = STATE(762), + [sym_expr_method_call] = STATE(762), + [sym_expr_paren] = STATE(762), + [sym_expr_constant] = STATE(762), + [sym_expr_name] = STATE(762), + [sym_expr_array] = STATE(762), + [sym_expr_tuple] = STATE(762), + [sym_expr_record] = STATE(762), + [sym_expr_do] = STATE(762), + [sym_expr_if] = STATE(762), + [sym_expr_match] = STATE(762), + [sym_expr_loop] = STATE(762), + [sym_expr_while] = STATE(762), + [sym_expr_for] = STATE(762), + [sym_expr_try] = STATE(762), + [sym_name] = ACTIONS(69), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(73), + [anon_sym_COLON] = ACTIONS(75), + [sym_constant_int] = ACTIONS(77), + [sym_constant_float] = ACTIONS(79), + [sym_string_quote] = ACTIONS(81), + [anon_sym_SQUOTE] = ACTIONS(83), + [anon_sym_true] = ACTIONS(85), + [anon_sym_false] = ACTIONS(85), + [anon_sym_LPAREN] = ACTIONS(73), + [anon_sym_LBRACK] = ACTIONS(73), + [anon_sym_EQ] = ACTIONS(75), + [anon_sym_rust] = ACTIONS(87), + [anon_sym_fun] = ACTIONS(197), + [anon_sym_or] = ACTIONS(75), + [anon_sym_DOT] = ACTIONS(75), + [anon_sym_return] = ACTIONS(199), + [anon_sym_break] = ACTIONS(201), + [anon_sym_continue] = ACTIONS(95), + [anon_sym_throw] = ACTIONS(203), + [anon_sym_from] = ACTIONS(75), + [anon_sym_where] = ACTIONS(75), + [anon_sym_join] = ACTIONS(75), + [anon_sym_union] = ACTIONS(75), + [anon_sym_group] = ACTIONS(75), + [anon_sym_over] = ACTIONS(75), + [anon_sym_roll] = ACTIONS(75), + [anon_sym_compute] = ACTIONS(75), + [anon_sym_select] = ACTIONS(75), + [anon_sym_with] = ACTIONS(75), + [anon_sym_into] = ACTIONS(75), + [anon_sym_order] = ACTIONS(75), + [anon_sym_PLUS_EQ] = ACTIONS(73), + [anon_sym_DASH_EQ] = ACTIONS(73), + [anon_sym_STAR_EQ] = ACTIONS(73), + [anon_sym_SLASH_EQ] = ACTIONS(73), + [anon_sym_DOT_DOT] = ACTIONS(75), + [anon_sym_DOT_DOT_EQ] = ACTIONS(73), + [anon_sym_and] = ACTIONS(75), + [anon_sym_EQ_EQ] = ACTIONS(73), + [anon_sym_BANG_EQ] = ACTIONS(73), + [anon_sym_LT] = ACTIONS(75), + [anon_sym_GT] = ACTIONS(75), + [anon_sym_LT_EQ] = ACTIONS(73), + [anon_sym_GT_EQ] = ACTIONS(73), + [anon_sym_PLUS] = ACTIONS(75), + [anon_sym_DASH] = ACTIONS(75), + [anon_sym_STAR] = ACTIONS(75), + [anon_sym_SLASH] = ACTIONS(75), + [anon_sym_COLON_COLON] = ACTIONS(73), + [anon_sym_do] = ACTIONS(99), + [anon_sym_if] = ACTIONS(101), + [anon_sym_match] = ACTIONS(103), + [anon_sym_loop] = ACTIONS(105), + [anon_sym_while] = ACTIONS(107), + [anon_sym_for] = ACTIONS(109), + [anon_sym_try] = ACTIONS(111), + }, + [26] = { + [sym__constant] = STATE(896), + [sym_constant_string] = STATE(896), + [sym_constant_char] = STATE(896), + [sym_constant_bool] = STATE(896), + [sym_constant_unit] = STATE(896), + [sym__expr] = STATE(947), + [sym_expr_return] = STATE(947), + [sym_expr_break] = STATE(947), + [sym_expr_continue] = STATE(947), + [sym_expr_throw] = STATE(947), + [sym_expr_query] = STATE(947), + [sym_expr_rust] = STATE(947), + [sym_query_from] = STATE(401), + [sym_expr_fun] = STATE(947), + [sym_expr_binary] = STATE(947), + [sym_expr_annot] = STATE(947), + [sym_expr_call] = STATE(947), + [sym_expr_tuple_access] = STATE(947), + [sym_expr_record_access] = STATE(947), + [sym_expr_array_access] = STATE(947), + [sym_expr_method_call] = STATE(947), + [sym_expr_paren] = STATE(947), + [sym_expr_constant] = STATE(947), + [sym_expr_name] = STATE(947), + [sym_expr_array] = STATE(947), + [sym_expr_tuple] = STATE(947), + [sym_expr_record] = STATE(947), + [sym_expr_do] = STATE(947), + [sym_expr_if] = STATE(947), + [sym_expr_match] = STATE(947), + [sym_expr_loop] = STATE(947), + [sym_expr_while] = STATE(947), + [sym_expr_for] = STATE(947), + [sym_expr_try] = STATE(947), + [sym_name] = ACTIONS(7), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(11), + [anon_sym_RBRACE] = ACTIONS(73), + [anon_sym_COMMA] = ACTIONS(73), + [anon_sym_COLON] = ACTIONS(75), + [sym_constant_int] = ACTIONS(13), + [sym_constant_float] = ACTIONS(15), + [sym_string_quote] = ACTIONS(17), + [anon_sym_SQUOTE] = ACTIONS(19), + [anon_sym_true] = ACTIONS(21), + [anon_sym_false] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(73), + [anon_sym_RPAREN] = ACTIONS(73), + [anon_sym_LBRACK] = ACTIONS(73), + [anon_sym_RBRACK] = ACTIONS(73), + [anon_sym_EQ] = ACTIONS(75), + [anon_sym_SEMI] = ACTIONS(73), + [anon_sym_rust] = ACTIONS(41), + [anon_sym_fun] = ACTIONS(43), + [anon_sym_or] = ACTIONS(75), + [anon_sym_DOT] = ACTIONS(75), + [anon_sym_return] = ACTIONS(45), + [anon_sym_break] = ACTIONS(47), + [anon_sym_continue] = ACTIONS(49), + [anon_sym_throw] = ACTIONS(51), + [anon_sym_from] = ACTIONS(53), + [anon_sym_on] = ACTIONS(75), + [anon_sym_PLUS_EQ] = ACTIONS(73), + [anon_sym_DASH_EQ] = ACTIONS(73), + [anon_sym_STAR_EQ] = ACTIONS(73), + [anon_sym_SLASH_EQ] = ACTIONS(73), + [anon_sym_DOT_DOT] = ACTIONS(75), + [anon_sym_DOT_DOT_EQ] = ACTIONS(73), + [anon_sym_and] = ACTIONS(75), + [anon_sym_EQ_EQ] = ACTIONS(73), + [anon_sym_BANG_EQ] = ACTIONS(73), + [anon_sym_LT] = ACTIONS(75), + [anon_sym_GT] = ACTIONS(75), + [anon_sym_LT_EQ] = ACTIONS(73), + [anon_sym_GT_EQ] = ACTIONS(73), + [anon_sym_PLUS] = ACTIONS(75), + [anon_sym_DASH] = ACTIONS(75), + [anon_sym_STAR] = ACTIONS(75), + [anon_sym_SLASH] = ACTIONS(75), + [anon_sym_COLON_COLON] = ACTIONS(73), + [anon_sym_do] = ACTIONS(55), + [anon_sym_if] = ACTIONS(57), + [anon_sym_match] = ACTIONS(59), + [anon_sym_loop] = ACTIONS(61), + [anon_sym_while] = ACTIONS(63), + [anon_sym_for] = ACTIONS(65), + [anon_sym_try] = ACTIONS(67), + }, + [27] = { + [sym__constant] = STATE(896), + [sym_constant_string] = STATE(896), + [sym_constant_char] = STATE(896), + [sym_constant_bool] = STATE(896), + [sym_constant_unit] = STATE(896), + [sym__expr] = STATE(948), + [sym_expr_return] = STATE(948), + [sym_expr_break] = STATE(948), + [sym_expr_continue] = STATE(948), + [sym_expr_throw] = STATE(948), + [sym_expr_query] = STATE(948), + [sym_expr_rust] = STATE(948), + [sym_query_from] = STATE(401), + [sym_expr_fun] = STATE(948), + [sym_expr_binary] = STATE(948), + [sym_expr_annot] = STATE(948), + [sym_expr_call] = STATE(948), + [sym_expr_tuple_access] = STATE(948), + [sym_expr_record_access] = STATE(948), + [sym_expr_array_access] = STATE(948), + [sym_expr_method_call] = STATE(948), + [sym_expr_paren] = STATE(948), + [sym_expr_constant] = STATE(948), + [sym_expr_name] = STATE(948), + [sym_expr_array] = STATE(948), + [sym_expr_tuple] = STATE(948), + [sym_expr_record] = STATE(948), + [sym_expr_do] = STATE(948), + [sym_expr_if] = STATE(948), + [sym_expr_match] = STATE(948), + [sym_expr_loop] = STATE(948), + [sym_expr_while] = STATE(948), + [sym_expr_for] = STATE(948), + [sym_expr_try] = STATE(948), + [sym_name] = ACTIONS(7), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(11), + [anon_sym_RBRACE] = ACTIONS(113), + [anon_sym_COMMA] = ACTIONS(113), + [anon_sym_COLON] = ACTIONS(115), + [sym_constant_int] = ACTIONS(13), + [sym_constant_float] = ACTIONS(15), + [sym_string_quote] = ACTIONS(17), + [anon_sym_SQUOTE] = ACTIONS(19), + [anon_sym_true] = ACTIONS(21), + [anon_sym_false] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(113), + [anon_sym_RPAREN] = ACTIONS(113), + [anon_sym_LBRACK] = ACTIONS(113), + [anon_sym_RBRACK] = ACTIONS(113), + [anon_sym_EQ] = ACTIONS(115), + [anon_sym_SEMI] = ACTIONS(113), + [anon_sym_rust] = ACTIONS(41), + [anon_sym_fun] = ACTIONS(43), + [anon_sym_or] = ACTIONS(115), + [anon_sym_DOT] = ACTIONS(115), + [anon_sym_return] = ACTIONS(45), + [anon_sym_break] = ACTIONS(47), + [anon_sym_continue] = ACTIONS(49), + [anon_sym_throw] = ACTIONS(51), + [anon_sym_from] = ACTIONS(53), + [anon_sym_on] = ACTIONS(115), + [anon_sym_PLUS_EQ] = ACTIONS(113), + [anon_sym_DASH_EQ] = ACTIONS(113), + [anon_sym_STAR_EQ] = ACTIONS(113), + [anon_sym_SLASH_EQ] = ACTIONS(113), + [anon_sym_DOT_DOT] = ACTIONS(115), + [anon_sym_DOT_DOT_EQ] = ACTIONS(113), + [anon_sym_and] = ACTIONS(115), + [anon_sym_EQ_EQ] = ACTIONS(113), + [anon_sym_BANG_EQ] = ACTIONS(113), + [anon_sym_LT] = ACTIONS(115), + [anon_sym_GT] = ACTIONS(115), + [anon_sym_LT_EQ] = ACTIONS(113), + [anon_sym_GT_EQ] = ACTIONS(113), + [anon_sym_PLUS] = ACTIONS(115), + [anon_sym_DASH] = ACTIONS(115), + [anon_sym_STAR] = ACTIONS(115), + [anon_sym_SLASH] = ACTIONS(115), + [anon_sym_COLON_COLON] = ACTIONS(113), + [anon_sym_do] = ACTIONS(55), + [anon_sym_if] = ACTIONS(57), + [anon_sym_match] = ACTIONS(59), + [anon_sym_loop] = ACTIONS(61), + [anon_sym_while] = ACTIONS(63), + [anon_sym_for] = ACTIONS(65), + [anon_sym_try] = ACTIONS(67), + }, + [28] = { + [sym__constant] = STATE(896), + [sym_constant_string] = STATE(896), + [sym_constant_char] = STATE(896), + [sym_constant_bool] = STATE(896), + [sym_constant_unit] = STATE(896), + [sym__expr] = STATE(998), + [sym_expr_return] = STATE(998), + [sym_expr_break] = STATE(998), + [sym_expr_continue] = STATE(998), + [sym_expr_throw] = STATE(998), + [sym_expr_query] = STATE(998), + [sym_expr_rust] = STATE(998), + [sym_query_from] = STATE(414), + [sym_expr_fun] = STATE(998), + [sym_expr_binary] = STATE(998), + [sym_expr_annot] = STATE(998), + [sym_expr_call] = STATE(998), + [sym_expr_tuple_access] = STATE(998), + [sym_expr_record_access] = STATE(998), + [sym_expr_array_access] = STATE(998), + [sym_expr_method_call] = STATE(998), + [sym_expr_paren] = STATE(998), + [sym_expr_constant] = STATE(998), + [sym_expr_name] = STATE(998), + [sym_expr_array] = STATE(998), + [sym_expr_tuple] = STATE(998), + [sym_expr_record] = STATE(998), + [sym_expr_do] = STATE(998), + [sym_expr_if] = STATE(998), + [sym_expr_match] = STATE(998), + [sym_expr_loop] = STATE(998), + [sym_expr_while] = STATE(998), + [sym_expr_for] = STATE(998), + [sym_expr_try] = STATE(998), + [sym_name] = ACTIONS(7), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(73), + [anon_sym_COLON] = ACTIONS(75), + [sym_constant_int] = ACTIONS(13), + [sym_constant_float] = ACTIONS(15), + [sym_string_quote] = ACTIONS(17), + [anon_sym_SQUOTE] = ACTIONS(19), + [anon_sym_true] = ACTIONS(21), + [anon_sym_false] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(73), + [anon_sym_LBRACK] = ACTIONS(73), + [anon_sym_EQ] = ACTIONS(75), + [anon_sym_rust] = ACTIONS(41), + [anon_sym_fun] = ACTIONS(205), + [anon_sym_or] = ACTIONS(75), + [anon_sym_DOT] = ACTIONS(75), + [anon_sym_return] = ACTIONS(207), + [anon_sym_break] = ACTIONS(209), + [anon_sym_continue] = ACTIONS(49), + [anon_sym_throw] = ACTIONS(211), + [anon_sym_from] = ACTIONS(213), + [anon_sym_as] = ACTIONS(75), + [anon_sym_PLUS_EQ] = ACTIONS(73), + [anon_sym_DASH_EQ] = ACTIONS(73), + [anon_sym_STAR_EQ] = ACTIONS(73), + [anon_sym_SLASH_EQ] = ACTIONS(73), + [anon_sym_DOT_DOT] = ACTIONS(75), + [anon_sym_DOT_DOT_EQ] = ACTIONS(73), + [anon_sym_and] = ACTIONS(75), + [anon_sym_EQ_EQ] = ACTIONS(73), + [anon_sym_BANG_EQ] = ACTIONS(73), + [anon_sym_LT] = ACTIONS(75), + [anon_sym_GT] = ACTIONS(75), + [anon_sym_LT_EQ] = ACTIONS(73), + [anon_sym_GT_EQ] = ACTIONS(73), + [anon_sym_PLUS] = ACTIONS(75), + [anon_sym_DASH] = ACTIONS(75), + [anon_sym_STAR] = ACTIONS(75), + [anon_sym_SLASH] = ACTIONS(75), + [anon_sym_COLON_COLON] = ACTIONS(73), + [anon_sym_do] = ACTIONS(55), + [anon_sym_if] = ACTIONS(57), + [anon_sym_match] = ACTIONS(59), + [anon_sym_loop] = ACTIONS(61), + [anon_sym_while] = ACTIONS(63), + [anon_sym_for] = ACTIONS(65), + [anon_sym_try] = ACTIONS(67), + }, + [29] = { + [sym__constant] = STATE(896), + [sym_constant_string] = STATE(896), + [sym_constant_char] = STATE(896), + [sym_constant_bool] = STATE(896), + [sym_constant_unit] = STATE(896), + [sym__expr] = STATE(997), + [sym_expr_return] = STATE(997), + [sym_expr_break] = STATE(997), + [sym_expr_continue] = STATE(997), + [sym_expr_throw] = STATE(997), + [sym_expr_query] = STATE(997), + [sym_expr_rust] = STATE(997), + [sym_query_from] = STATE(414), + [sym_expr_fun] = STATE(997), + [sym_expr_binary] = STATE(997), + [sym_expr_annot] = STATE(997), + [sym_expr_call] = STATE(997), + [sym_expr_tuple_access] = STATE(997), + [sym_expr_record_access] = STATE(997), + [sym_expr_array_access] = STATE(997), + [sym_expr_method_call] = STATE(997), + [sym_expr_paren] = STATE(997), + [sym_expr_constant] = STATE(997), + [sym_expr_name] = STATE(997), + [sym_expr_array] = STATE(997), + [sym_expr_tuple] = STATE(997), + [sym_expr_record] = STATE(997), + [sym_expr_do] = STATE(997), + [sym_expr_if] = STATE(997), + [sym_expr_match] = STATE(997), + [sym_expr_loop] = STATE(997), + [sym_expr_while] = STATE(997), + [sym_expr_for] = STATE(997), + [sym_expr_try] = STATE(997), + [sym_name] = ACTIONS(7), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(113), + [anon_sym_COLON] = ACTIONS(115), + [sym_constant_int] = ACTIONS(13), + [sym_constant_float] = ACTIONS(15), + [sym_string_quote] = ACTIONS(17), + [anon_sym_SQUOTE] = ACTIONS(19), + [anon_sym_true] = ACTIONS(21), + [anon_sym_false] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(113), + [anon_sym_LBRACK] = ACTIONS(113), + [anon_sym_EQ] = ACTIONS(115), + [anon_sym_rust] = ACTIONS(41), + [anon_sym_fun] = ACTIONS(205), + [anon_sym_or] = ACTIONS(115), + [anon_sym_DOT] = ACTIONS(115), + [anon_sym_return] = ACTIONS(207), + [anon_sym_break] = ACTIONS(209), + [anon_sym_continue] = ACTIONS(49), + [anon_sym_throw] = ACTIONS(211), + [anon_sym_from] = ACTIONS(213), + [anon_sym_as] = ACTIONS(115), + [anon_sym_PLUS_EQ] = ACTIONS(113), + [anon_sym_DASH_EQ] = ACTIONS(113), + [anon_sym_STAR_EQ] = ACTIONS(113), + [anon_sym_SLASH_EQ] = ACTIONS(113), + [anon_sym_DOT_DOT] = ACTIONS(115), + [anon_sym_DOT_DOT_EQ] = ACTIONS(113), + [anon_sym_and] = ACTIONS(115), + [anon_sym_EQ_EQ] = ACTIONS(113), + [anon_sym_BANG_EQ] = ACTIONS(113), + [anon_sym_LT] = ACTIONS(115), + [anon_sym_GT] = ACTIONS(115), + [anon_sym_LT_EQ] = ACTIONS(113), + [anon_sym_GT_EQ] = ACTIONS(113), + [anon_sym_PLUS] = ACTIONS(115), + [anon_sym_DASH] = ACTIONS(115), + [anon_sym_STAR] = ACTIONS(115), + [anon_sym_SLASH] = ACTIONS(115), + [anon_sym_COLON_COLON] = ACTIONS(113), + [anon_sym_do] = ACTIONS(55), + [anon_sym_if] = ACTIONS(57), + [anon_sym_match] = ACTIONS(59), + [anon_sym_loop] = ACTIONS(61), + [anon_sym_while] = ACTIONS(63), + [anon_sym_for] = ACTIONS(65), + [anon_sym_try] = ACTIONS(67), + }, + [30] = { + [sym__constant] = STATE(896), + [sym_constant_string] = STATE(896), + [sym_constant_char] = STATE(896), + [sym_constant_bool] = STATE(896), + [sym_constant_unit] = STATE(896), + [sym__expr] = STATE(1042), + [sym_expr_return] = STATE(1042), + [sym_expr_break] = STATE(1042), + [sym_expr_continue] = STATE(1042), + [sym_expr_throw] = STATE(1042), + [sym_expr_query] = STATE(1042), + [sym_expr_rust] = STATE(1042), + [sym_query_from] = STATE(421), + [sym_expr_fun] = STATE(1042), + [sym_expr_binary] = STATE(1042), + [sym_expr_annot] = STATE(1042), + [sym_expr_call] = STATE(1042), + [sym_expr_tuple_access] = STATE(1042), + [sym_expr_record_access] = STATE(1042), + [sym_expr_array_access] = STATE(1042), + [sym_expr_method_call] = STATE(1042), + [sym_expr_paren] = STATE(1042), + [sym_expr_constant] = STATE(1042), + [sym_expr_name] = STATE(1042), + [sym_expr_array] = STATE(1042), + [sym_expr_tuple] = STATE(1042), + [sym_expr_record] = STATE(1042), + [sym_expr_do] = STATE(1042), + [sym_expr_if] = STATE(1042), + [sym_expr_match] = STATE(1042), + [sym_expr_loop] = STATE(1042), + [sym_expr_while] = STATE(1042), + [sym_expr_for] = STATE(1042), + [sym_expr_try] = STATE(1042), + [sym_name] = ACTIONS(7), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(73), + [anon_sym_COLON] = ACTIONS(75), + [sym_constant_int] = ACTIONS(13), + [sym_constant_float] = ACTIONS(15), + [sym_string_quote] = ACTIONS(17), + [anon_sym_SQUOTE] = ACTIONS(19), + [anon_sym_true] = ACTIONS(21), + [anon_sym_false] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(73), + [anon_sym_LBRACK] = ACTIONS(73), + [anon_sym_EQ] = ACTIONS(75), + [anon_sym_rust] = ACTIONS(41), + [anon_sym_fun] = ACTIONS(215), + [anon_sym_or] = ACTIONS(75), + [anon_sym_DOT] = ACTIONS(75), + [anon_sym_return] = ACTIONS(217), + [anon_sym_break] = ACTIONS(219), + [anon_sym_continue] = ACTIONS(49), + [anon_sym_throw] = ACTIONS(221), + [anon_sym_from] = ACTIONS(223), + [anon_sym_PLUS_EQ] = ACTIONS(73), + [anon_sym_DASH_EQ] = ACTIONS(73), + [anon_sym_STAR_EQ] = ACTIONS(73), + [anon_sym_SLASH_EQ] = ACTIONS(73), + [anon_sym_DOT_DOT] = ACTIONS(75), + [anon_sym_DOT_DOT_EQ] = ACTIONS(73), + [anon_sym_and] = ACTIONS(75), + [anon_sym_EQ_EQ] = ACTIONS(73), + [anon_sym_BANG_EQ] = ACTIONS(73), + [anon_sym_LT] = ACTIONS(75), + [anon_sym_GT] = ACTIONS(75), + [anon_sym_LT_EQ] = ACTIONS(73), + [anon_sym_GT_EQ] = ACTIONS(73), + [anon_sym_PLUS] = ACTIONS(75), + [anon_sym_DASH] = ACTIONS(75), + [anon_sym_STAR] = ACTIONS(75), + [anon_sym_SLASH] = ACTIONS(75), + [anon_sym_COLON_COLON] = ACTIONS(73), + [anon_sym_do] = ACTIONS(55), + [anon_sym_if] = ACTIONS(57), + [anon_sym_match] = ACTIONS(59), + [anon_sym_loop] = ACTIONS(61), + [anon_sym_while] = ACTIONS(63), + [anon_sym_for] = ACTIONS(65), + [anon_sym_try] = ACTIONS(67), + }, + [31] = { + [sym__constant] = STATE(896), + [sym_constant_string] = STATE(896), + [sym_constant_char] = STATE(896), + [sym_constant_bool] = STATE(896), + [sym_constant_unit] = STATE(896), + [sym__expr] = STATE(1040), + [sym_expr_return] = STATE(1040), + [sym_expr_break] = STATE(1040), + [sym_expr_continue] = STATE(1040), + [sym_expr_throw] = STATE(1040), + [sym_expr_query] = STATE(1040), + [sym_expr_rust] = STATE(1040), + [sym_query_from] = STATE(421), + [sym_expr_fun] = STATE(1040), + [sym_expr_binary] = STATE(1040), + [sym_expr_annot] = STATE(1040), + [sym_expr_call] = STATE(1040), + [sym_expr_tuple_access] = STATE(1040), + [sym_expr_record_access] = STATE(1040), + [sym_expr_array_access] = STATE(1040), + [sym_expr_method_call] = STATE(1040), + [sym_expr_paren] = STATE(1040), + [sym_expr_constant] = STATE(1040), + [sym_expr_name] = STATE(1040), + [sym_expr_array] = STATE(1040), + [sym_expr_tuple] = STATE(1040), + [sym_expr_record] = STATE(1040), + [sym_expr_do] = STATE(1040), + [sym_expr_if] = STATE(1040), + [sym_expr_match] = STATE(1040), + [sym_expr_loop] = STATE(1040), + [sym_expr_while] = STATE(1040), + [sym_expr_for] = STATE(1040), + [sym_expr_try] = STATE(1040), + [sym_name] = ACTIONS(7), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(113), + [anon_sym_COLON] = ACTIONS(115), + [sym_constant_int] = ACTIONS(13), + [sym_constant_float] = ACTIONS(15), + [sym_string_quote] = ACTIONS(17), + [anon_sym_SQUOTE] = ACTIONS(19), + [anon_sym_true] = ACTIONS(21), + [anon_sym_false] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(113), + [anon_sym_LBRACK] = ACTIONS(113), + [anon_sym_EQ] = ACTIONS(115), + [anon_sym_rust] = ACTIONS(41), + [anon_sym_fun] = ACTIONS(215), + [anon_sym_or] = ACTIONS(115), + [anon_sym_DOT] = ACTIONS(115), + [anon_sym_return] = ACTIONS(217), + [anon_sym_break] = ACTIONS(219), + [anon_sym_continue] = ACTIONS(49), + [anon_sym_throw] = ACTIONS(221), + [anon_sym_from] = ACTIONS(223), + [anon_sym_PLUS_EQ] = ACTIONS(113), + [anon_sym_DASH_EQ] = ACTIONS(113), + [anon_sym_STAR_EQ] = ACTIONS(113), + [anon_sym_SLASH_EQ] = ACTIONS(113), + [anon_sym_DOT_DOT] = ACTIONS(115), + [anon_sym_DOT_DOT_EQ] = ACTIONS(113), + [anon_sym_and] = ACTIONS(115), + [anon_sym_EQ_EQ] = ACTIONS(113), + [anon_sym_BANG_EQ] = ACTIONS(113), + [anon_sym_LT] = ACTIONS(115), + [anon_sym_GT] = ACTIONS(115), + [anon_sym_LT_EQ] = ACTIONS(113), + [anon_sym_GT_EQ] = ACTIONS(113), + [anon_sym_PLUS] = ACTIONS(115), + [anon_sym_DASH] = ACTIONS(115), + [anon_sym_STAR] = ACTIONS(115), + [anon_sym_SLASH] = ACTIONS(115), + [anon_sym_COLON_COLON] = ACTIONS(113), + [anon_sym_do] = ACTIONS(55), + [anon_sym_if] = ACTIONS(57), + [anon_sym_match] = ACTIONS(59), + [anon_sym_loop] = ACTIONS(61), + [anon_sym_while] = ACTIONS(63), + [anon_sym_for] = ACTIONS(65), + [anon_sym_try] = ACTIONS(67), + }, + [32] = { + [sym_meta] = STATE(1336), + [sym__constant] = STATE(896), + [sym_constant_string] = STATE(896), + [sym_constant_char] = STATE(896), + [sym_constant_bool] = STATE(896), + [sym_constant_unit] = STATE(896), + [aux_sym__stmts] = STATE(32), + [sym__stmt] = STATE(32), + [sym_stmt_def] = STATE(32), + [sym_stmt_type] = STATE(32), + [sym_stmt_enum] = STATE(32), + [sym_stmt_val] = STATE(32), + [sym_stmt_var] = STATE(32), + [sym_stmt_expr] = STATE(32), + [sym_stmt_code] = STATE(32), + [sym__stmt_noop] = STATE(32), + [sym__expr] = STATE(1025), + [sym_expr_return] = STATE(1025), + [sym_expr_break] = STATE(1025), + [sym_expr_continue] = STATE(1025), + [sym_expr_throw] = STATE(1025), + [sym_expr_query] = STATE(1025), + [sym_expr_rust] = STATE(1025), + [sym_query_from] = STATE(401), + [sym_expr_fun] = STATE(1025), + [sym_expr_binary] = STATE(1025), + [sym_expr_annot] = STATE(1025), + [sym_expr_call] = STATE(1025), + [sym_expr_tuple_access] = STATE(1025), + [sym_expr_record_access] = STATE(1025), + [sym_expr_array_access] = STATE(1025), + [sym_expr_method_call] = STATE(1025), + [sym_expr_paren] = STATE(1025), + [sym_expr_constant] = STATE(1025), + [sym_expr_name] = STATE(1025), + [sym_expr_array] = STATE(1025), + [sym_expr_tuple] = STATE(1025), + [sym_expr_record] = STATE(1025), + [sym_expr_do] = STATE(1025), + [sym_expr_if] = STATE(1025), + [sym_expr_match] = STATE(1025), + [sym_expr_loop] = STATE(1025), + [sym_expr_while] = STATE(1025), + [sym_expr_for] = STATE(1025), + [sym_expr_try] = STATE(1025), + [ts_builtin_sym_end] = ACTIONS(225), + [sym_name] = ACTIONS(227), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_AT] = ACTIONS(230), + [anon_sym_LBRACE] = ACTIONS(233), + [anon_sym_RBRACE] = ACTIONS(225), + [sym_constant_int] = ACTIONS(236), + [sym_constant_float] = ACTIONS(239), + [sym_string_quote] = ACTIONS(242), + [anon_sym_SQUOTE] = ACTIONS(245), + [anon_sym_true] = ACTIONS(248), + [anon_sym_false] = ACTIONS(248), + [anon_sym_LPAREN] = ACTIONS(251), + [anon_sym_def] = ACTIONS(254), + [anon_sym_LBRACK] = ACTIONS(257), + [anon_sym_SEMI] = ACTIONS(260), + [anon_sym_type] = ACTIONS(263), + [anon_sym_enum] = ACTIONS(266), + [anon_sym_val] = ACTIONS(269), + [anon_sym_var] = ACTIONS(272), + [anon_sym_DASH_DASH_DASH] = ACTIONS(275), + [anon_sym_rust] = ACTIONS(278), + [anon_sym_fun] = ACTIONS(281), + [anon_sym_return] = ACTIONS(284), + [anon_sym_break] = ACTIONS(287), + [anon_sym_continue] = ACTIONS(290), + [anon_sym_throw] = ACTIONS(293), + [anon_sym_from] = ACTIONS(296), + [anon_sym_do] = ACTIONS(299), + [anon_sym_if] = ACTIONS(302), + [anon_sym_match] = ACTIONS(305), + [anon_sym_loop] = ACTIONS(308), + [anon_sym_while] = ACTIONS(311), + [anon_sym_for] = ACTIONS(314), + [anon_sym_try] = ACTIONS(317), + }, + [33] = { + [sym_meta] = STATE(1336), + [sym__constant] = STATE(896), + [sym_constant_string] = STATE(896), + [sym_constant_char] = STATE(896), + [sym_constant_bool] = STATE(896), + [sym_constant_unit] = STATE(896), + [aux_sym__stmts] = STATE(32), + [sym__stmt] = STATE(32), + [sym_stmt_def] = STATE(32), + [sym_stmt_type] = STATE(32), + [sym_stmt_enum] = STATE(32), + [sym_stmt_val] = STATE(32), + [sym_stmt_var] = STATE(32), + [sym_stmt_expr] = STATE(32), + [sym_stmt_code] = STATE(32), + [sym__stmt_noop] = STATE(32), + [sym__expr] = STATE(999), + [sym_expr_return] = STATE(999), + [sym_expr_break] = STATE(999), + [sym_expr_continue] = STATE(999), + [sym_expr_throw] = STATE(999), + [sym_expr_query] = STATE(999), + [sym_expr_rust] = STATE(999), + [sym_query_from] = STATE(401), + [sym_expr_fun] = STATE(999), + [sym_expr_binary] = STATE(999), + [sym_expr_annot] = STATE(999), + [sym_expr_call] = STATE(999), + [sym_expr_tuple_access] = STATE(999), + [sym_expr_record_access] = STATE(999), + [sym_expr_array_access] = STATE(999), + [sym_expr_method_call] = STATE(999), + [sym_expr_paren] = STATE(999), + [sym_expr_constant] = STATE(999), + [sym_expr_name] = STATE(999), + [sym_expr_array] = STATE(999), + [sym_expr_tuple] = STATE(999), + [sym_expr_record] = STATE(999), + [sym_expr_do] = STATE(999), + [sym_expr_if] = STATE(999), + [sym_expr_match] = STATE(999), + [sym_expr_loop] = STATE(999), + [sym_expr_while] = STATE(999), + [sym_expr_for] = STATE(999), + [sym_expr_try] = STATE(999), + [sym_name] = ACTIONS(7), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_AT] = ACTIONS(9), + [anon_sym_LBRACE] = ACTIONS(11), + [anon_sym_RBRACE] = ACTIONS(320), + [sym_constant_int] = ACTIONS(13), + [sym_constant_float] = ACTIONS(15), + [sym_string_quote] = ACTIONS(17), + [anon_sym_SQUOTE] = ACTIONS(19), + [anon_sym_true] = ACTIONS(21), + [anon_sym_false] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(23), + [anon_sym_def] = ACTIONS(25), + [anon_sym_LBRACK] = ACTIONS(27), + [anon_sym_SEMI] = ACTIONS(322), + [anon_sym_type] = ACTIONS(31), + [anon_sym_enum] = ACTIONS(33), + [anon_sym_val] = ACTIONS(35), + [anon_sym_var] = ACTIONS(37), + [anon_sym_DASH_DASH_DASH] = ACTIONS(39), + [anon_sym_rust] = ACTIONS(41), + [anon_sym_fun] = ACTIONS(43), + [anon_sym_return] = ACTIONS(45), + [anon_sym_break] = ACTIONS(47), + [anon_sym_continue] = ACTIONS(49), + [anon_sym_throw] = ACTIONS(51), + [anon_sym_from] = ACTIONS(53), + [anon_sym_do] = ACTIONS(55), + [anon_sym_if] = ACTIONS(57), + [anon_sym_match] = ACTIONS(59), + [anon_sym_loop] = ACTIONS(61), + [anon_sym_while] = ACTIONS(63), + [anon_sym_for] = ACTIONS(65), + [anon_sym_try] = ACTIONS(67), + }, + [34] = { + [sym_meta] = STATE(1336), + [sym__constant] = STATE(896), + [sym_constant_string] = STATE(896), + [sym_constant_char] = STATE(896), + [sym_constant_bool] = STATE(896), + [sym_constant_unit] = STATE(896), + [aux_sym__stmts] = STATE(38), + [sym__stmt] = STATE(38), + [sym_stmt_def] = STATE(38), + [sym_stmt_type] = STATE(38), + [sym_stmt_enum] = STATE(38), + [sym_stmt_val] = STATE(38), + [sym_stmt_var] = STATE(38), + [sym_stmt_expr] = STATE(38), + [sym_stmt_code] = STATE(38), + [sym__stmt_noop] = STATE(38), + [sym__expr] = STATE(1016), + [sym_expr_return] = STATE(1016), + [sym_expr_break] = STATE(1016), + [sym_expr_continue] = STATE(1016), + [sym_expr_throw] = STATE(1016), + [sym_expr_query] = STATE(1016), + [sym_expr_rust] = STATE(1016), + [sym_query_from] = STATE(401), + [sym_expr_fun] = STATE(1016), + [sym_expr_binary] = STATE(1016), + [sym_expr_annot] = STATE(1016), + [sym_expr_call] = STATE(1016), + [sym_expr_tuple_access] = STATE(1016), + [sym_expr_record_access] = STATE(1016), + [sym_expr_array_access] = STATE(1016), + [sym_expr_method_call] = STATE(1016), + [sym_expr_paren] = STATE(1016), + [sym_expr_constant] = STATE(1016), + [sym_expr_name] = STATE(1016), + [sym_expr_array] = STATE(1016), + [sym_expr_tuple] = STATE(1016), + [sym_expr_record] = STATE(1016), + [sym_expr_do] = STATE(1016), + [sym_expr_if] = STATE(1016), + [sym_expr_match] = STATE(1016), + [sym_expr_loop] = STATE(1016), + [sym_expr_while] = STATE(1016), + [sym_expr_for] = STATE(1016), + [sym_expr_try] = STATE(1016), + [sym_name] = ACTIONS(7), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_AT] = ACTIONS(9), + [anon_sym_LBRACE] = ACTIONS(11), + [anon_sym_RBRACE] = ACTIONS(324), + [sym_constant_int] = ACTIONS(13), + [sym_constant_float] = ACTIONS(15), + [sym_string_quote] = ACTIONS(17), + [anon_sym_SQUOTE] = ACTIONS(19), + [anon_sym_true] = ACTIONS(21), + [anon_sym_false] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(23), + [anon_sym_def] = ACTIONS(25), + [anon_sym_LBRACK] = ACTIONS(27), + [anon_sym_SEMI] = ACTIONS(326), + [anon_sym_type] = ACTIONS(31), + [anon_sym_enum] = ACTIONS(33), + [anon_sym_val] = ACTIONS(35), + [anon_sym_var] = ACTIONS(37), + [anon_sym_DASH_DASH_DASH] = ACTIONS(39), + [anon_sym_rust] = ACTIONS(41), + [anon_sym_fun] = ACTIONS(43), + [anon_sym_return] = ACTIONS(45), + [anon_sym_break] = ACTIONS(47), + [anon_sym_continue] = ACTIONS(49), + [anon_sym_throw] = ACTIONS(51), + [anon_sym_from] = ACTIONS(53), + [anon_sym_do] = ACTIONS(55), + [anon_sym_if] = ACTIONS(57), + [anon_sym_match] = ACTIONS(59), + [anon_sym_loop] = ACTIONS(61), + [anon_sym_while] = ACTIONS(63), + [anon_sym_for] = ACTIONS(65), + [anon_sym_try] = ACTIONS(67), + }, + [35] = { + [sym_meta] = STATE(1336), + [sym__constant] = STATE(896), + [sym_constant_string] = STATE(896), + [sym_constant_char] = STATE(896), + [sym_constant_bool] = STATE(896), + [sym_constant_unit] = STATE(896), + [aux_sym__stmts] = STATE(32), + [sym__stmt] = STATE(32), + [sym_stmt_def] = STATE(32), + [sym_stmt_type] = STATE(32), + [sym_stmt_enum] = STATE(32), + [sym_stmt_val] = STATE(32), + [sym_stmt_var] = STATE(32), + [sym_stmt_expr] = STATE(32), + [sym_stmt_code] = STATE(32), + [sym__stmt_noop] = STATE(32), + [sym__expr] = STATE(1013), + [sym_expr_return] = STATE(1013), + [sym_expr_break] = STATE(1013), + [sym_expr_continue] = STATE(1013), + [sym_expr_throw] = STATE(1013), + [sym_expr_query] = STATE(1013), + [sym_expr_rust] = STATE(1013), + [sym_query_from] = STATE(401), + [sym_expr_fun] = STATE(1013), + [sym_expr_binary] = STATE(1013), + [sym_expr_annot] = STATE(1013), + [sym_expr_call] = STATE(1013), + [sym_expr_tuple_access] = STATE(1013), + [sym_expr_record_access] = STATE(1013), + [sym_expr_array_access] = STATE(1013), + [sym_expr_method_call] = STATE(1013), + [sym_expr_paren] = STATE(1013), + [sym_expr_constant] = STATE(1013), + [sym_expr_name] = STATE(1013), + [sym_expr_array] = STATE(1013), + [sym_expr_tuple] = STATE(1013), + [sym_expr_record] = STATE(1013), + [sym_expr_do] = STATE(1013), + [sym_expr_if] = STATE(1013), + [sym_expr_match] = STATE(1013), + [sym_expr_loop] = STATE(1013), + [sym_expr_while] = STATE(1013), + [sym_expr_for] = STATE(1013), + [sym_expr_try] = STATE(1013), + [sym_name] = ACTIONS(7), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_AT] = ACTIONS(9), + [anon_sym_LBRACE] = ACTIONS(11), + [anon_sym_RBRACE] = ACTIONS(328), + [sym_constant_int] = ACTIONS(13), + [sym_constant_float] = ACTIONS(15), + [sym_string_quote] = ACTIONS(17), + [anon_sym_SQUOTE] = ACTIONS(19), + [anon_sym_true] = ACTIONS(21), + [anon_sym_false] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(23), + [anon_sym_def] = ACTIONS(25), + [anon_sym_LBRACK] = ACTIONS(27), + [anon_sym_SEMI] = ACTIONS(322), + [anon_sym_type] = ACTIONS(31), + [anon_sym_enum] = ACTIONS(33), + [anon_sym_val] = ACTIONS(35), + [anon_sym_var] = ACTIONS(37), + [anon_sym_DASH_DASH_DASH] = ACTIONS(39), + [anon_sym_rust] = ACTIONS(41), + [anon_sym_fun] = ACTIONS(43), + [anon_sym_return] = ACTIONS(45), + [anon_sym_break] = ACTIONS(47), + [anon_sym_continue] = ACTIONS(49), + [anon_sym_throw] = ACTIONS(51), + [anon_sym_from] = ACTIONS(53), + [anon_sym_do] = ACTIONS(55), + [anon_sym_if] = ACTIONS(57), + [anon_sym_match] = ACTIONS(59), + [anon_sym_loop] = ACTIONS(61), + [anon_sym_while] = ACTIONS(63), + [anon_sym_for] = ACTIONS(65), + [anon_sym_try] = ACTIONS(67), + }, + [36] = { + [sym_meta] = STATE(1336), + [sym__constant] = STATE(896), + [sym_constant_string] = STATE(896), + [sym_constant_char] = STATE(896), + [sym_constant_bool] = STATE(896), + [sym_constant_unit] = STATE(896), + [aux_sym__stmts] = STATE(35), + [sym__stmt] = STATE(35), + [sym_stmt_def] = STATE(35), + [sym_stmt_type] = STATE(35), + [sym_stmt_enum] = STATE(35), + [sym_stmt_val] = STATE(35), + [sym_stmt_var] = STATE(35), + [sym_stmt_expr] = STATE(35), + [sym_stmt_code] = STATE(35), + [sym__stmt_noop] = STATE(35), + [sym__expr] = STATE(1017), + [sym_expr_return] = STATE(1017), + [sym_expr_break] = STATE(1017), + [sym_expr_continue] = STATE(1017), + [sym_expr_throw] = STATE(1017), + [sym_expr_query] = STATE(1017), + [sym_expr_rust] = STATE(1017), + [sym_query_from] = STATE(401), + [sym_expr_fun] = STATE(1017), + [sym_expr_binary] = STATE(1017), + [sym_expr_annot] = STATE(1017), + [sym_expr_call] = STATE(1017), + [sym_expr_tuple_access] = STATE(1017), + [sym_expr_record_access] = STATE(1017), + [sym_expr_array_access] = STATE(1017), + [sym_expr_method_call] = STATE(1017), + [sym_expr_paren] = STATE(1017), + [sym_expr_constant] = STATE(1017), + [sym_expr_name] = STATE(1017), + [sym_expr_array] = STATE(1017), + [sym_expr_tuple] = STATE(1017), + [sym_expr_record] = STATE(1017), + [sym_expr_do] = STATE(1017), + [sym_expr_if] = STATE(1017), + [sym_expr_match] = STATE(1017), + [sym_expr_loop] = STATE(1017), + [sym_expr_while] = STATE(1017), + [sym_expr_for] = STATE(1017), + [sym_expr_try] = STATE(1017), + [sym_name] = ACTIONS(7), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_AT] = ACTIONS(9), + [anon_sym_LBRACE] = ACTIONS(11), + [anon_sym_RBRACE] = ACTIONS(330), + [sym_constant_int] = ACTIONS(13), + [sym_constant_float] = ACTIONS(15), + [sym_string_quote] = ACTIONS(17), + [anon_sym_SQUOTE] = ACTIONS(19), + [anon_sym_true] = ACTIONS(21), + [anon_sym_false] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(23), + [anon_sym_def] = ACTIONS(25), + [anon_sym_LBRACK] = ACTIONS(27), + [anon_sym_SEMI] = ACTIONS(332), + [anon_sym_type] = ACTIONS(31), + [anon_sym_enum] = ACTIONS(33), + [anon_sym_val] = ACTIONS(35), + [anon_sym_var] = ACTIONS(37), + [anon_sym_DASH_DASH_DASH] = ACTIONS(39), + [anon_sym_rust] = ACTIONS(41), + [anon_sym_fun] = ACTIONS(43), + [anon_sym_return] = ACTIONS(45), + [anon_sym_break] = ACTIONS(47), + [anon_sym_continue] = ACTIONS(49), + [anon_sym_throw] = ACTIONS(51), + [anon_sym_from] = ACTIONS(53), + [anon_sym_do] = ACTIONS(55), + [anon_sym_if] = ACTIONS(57), + [anon_sym_match] = ACTIONS(59), + [anon_sym_loop] = ACTIONS(61), + [anon_sym_while] = ACTIONS(63), + [anon_sym_for] = ACTIONS(65), + [anon_sym_try] = ACTIONS(67), + }, + [37] = { + [sym_meta] = STATE(1336), + [sym__constant] = STATE(896), + [sym_constant_string] = STATE(896), + [sym_constant_char] = STATE(896), + [sym_constant_bool] = STATE(896), + [sym_constant_unit] = STATE(896), + [aux_sym__stmts] = STATE(33), + [sym__stmt] = STATE(33), + [sym_stmt_def] = STATE(33), + [sym_stmt_type] = STATE(33), + [sym_stmt_enum] = STATE(33), + [sym_stmt_val] = STATE(33), + [sym_stmt_var] = STATE(33), + [sym_stmt_expr] = STATE(33), + [sym_stmt_code] = STATE(33), + [sym__stmt_noop] = STATE(33), + [sym__expr] = STATE(989), + [sym_expr_return] = STATE(989), + [sym_expr_break] = STATE(989), + [sym_expr_continue] = STATE(989), + [sym_expr_throw] = STATE(989), + [sym_expr_query] = STATE(989), + [sym_expr_rust] = STATE(989), + [sym_query_from] = STATE(401), + [sym_expr_fun] = STATE(989), + [sym_expr_binary] = STATE(989), + [sym_expr_annot] = STATE(989), + [sym_expr_call] = STATE(989), + [sym_expr_tuple_access] = STATE(989), + [sym_expr_record_access] = STATE(989), + [sym_expr_array_access] = STATE(989), + [sym_expr_method_call] = STATE(989), + [sym_expr_paren] = STATE(989), + [sym_expr_constant] = STATE(989), + [sym_expr_name] = STATE(989), + [sym_expr_array] = STATE(989), + [sym_expr_tuple] = STATE(989), + [sym_expr_record] = STATE(989), + [sym_expr_do] = STATE(989), + [sym_expr_if] = STATE(989), + [sym_expr_match] = STATE(989), + [sym_expr_loop] = STATE(989), + [sym_expr_while] = STATE(989), + [sym_expr_for] = STATE(989), + [sym_expr_try] = STATE(989), + [sym_name] = ACTIONS(7), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_AT] = ACTIONS(9), + [anon_sym_LBRACE] = ACTIONS(11), + [anon_sym_RBRACE] = ACTIONS(334), + [sym_constant_int] = ACTIONS(13), + [sym_constant_float] = ACTIONS(15), + [sym_string_quote] = ACTIONS(17), + [anon_sym_SQUOTE] = ACTIONS(19), + [anon_sym_true] = ACTIONS(21), + [anon_sym_false] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(23), + [anon_sym_def] = ACTIONS(25), + [anon_sym_LBRACK] = ACTIONS(27), + [anon_sym_SEMI] = ACTIONS(336), + [anon_sym_type] = ACTIONS(31), + [anon_sym_enum] = ACTIONS(33), + [anon_sym_val] = ACTIONS(35), + [anon_sym_var] = ACTIONS(37), + [anon_sym_DASH_DASH_DASH] = ACTIONS(39), + [anon_sym_rust] = ACTIONS(41), + [anon_sym_fun] = ACTIONS(43), + [anon_sym_return] = ACTIONS(45), + [anon_sym_break] = ACTIONS(47), + [anon_sym_continue] = ACTIONS(49), + [anon_sym_throw] = ACTIONS(51), + [anon_sym_from] = ACTIONS(53), + [anon_sym_do] = ACTIONS(55), + [anon_sym_if] = ACTIONS(57), + [anon_sym_match] = ACTIONS(59), + [anon_sym_loop] = ACTIONS(61), + [anon_sym_while] = ACTIONS(63), + [anon_sym_for] = ACTIONS(65), + [anon_sym_try] = ACTIONS(67), + }, + [38] = { + [sym_meta] = STATE(1336), + [sym__constant] = STATE(896), + [sym_constant_string] = STATE(896), + [sym_constant_char] = STATE(896), + [sym_constant_bool] = STATE(896), + [sym_constant_unit] = STATE(896), + [aux_sym__stmts] = STATE(32), + [sym__stmt] = STATE(32), + [sym_stmt_def] = STATE(32), + [sym_stmt_type] = STATE(32), + [sym_stmt_enum] = STATE(32), + [sym_stmt_val] = STATE(32), + [sym_stmt_var] = STATE(32), + [sym_stmt_expr] = STATE(32), + [sym_stmt_code] = STATE(32), + [sym__stmt_noop] = STATE(32), + [sym__expr] = STATE(1008), + [sym_expr_return] = STATE(1008), + [sym_expr_break] = STATE(1008), + [sym_expr_continue] = STATE(1008), + [sym_expr_throw] = STATE(1008), + [sym_expr_query] = STATE(1008), + [sym_expr_rust] = STATE(1008), + [sym_query_from] = STATE(401), + [sym_expr_fun] = STATE(1008), + [sym_expr_binary] = STATE(1008), + [sym_expr_annot] = STATE(1008), + [sym_expr_call] = STATE(1008), + [sym_expr_tuple_access] = STATE(1008), + [sym_expr_record_access] = STATE(1008), + [sym_expr_array_access] = STATE(1008), + [sym_expr_method_call] = STATE(1008), + [sym_expr_paren] = STATE(1008), + [sym_expr_constant] = STATE(1008), + [sym_expr_name] = STATE(1008), + [sym_expr_array] = STATE(1008), + [sym_expr_tuple] = STATE(1008), + [sym_expr_record] = STATE(1008), + [sym_expr_do] = STATE(1008), + [sym_expr_if] = STATE(1008), + [sym_expr_match] = STATE(1008), + [sym_expr_loop] = STATE(1008), + [sym_expr_while] = STATE(1008), + [sym_expr_for] = STATE(1008), + [sym_expr_try] = STATE(1008), + [sym_name] = ACTIONS(7), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_AT] = ACTIONS(9), + [anon_sym_LBRACE] = ACTIONS(11), + [anon_sym_RBRACE] = ACTIONS(338), + [sym_constant_int] = ACTIONS(13), + [sym_constant_float] = ACTIONS(15), + [sym_string_quote] = ACTIONS(17), + [anon_sym_SQUOTE] = ACTIONS(19), + [anon_sym_true] = ACTIONS(21), + [anon_sym_false] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(23), + [anon_sym_def] = ACTIONS(25), + [anon_sym_LBRACK] = ACTIONS(27), + [anon_sym_SEMI] = ACTIONS(322), + [anon_sym_type] = ACTIONS(31), + [anon_sym_enum] = ACTIONS(33), + [anon_sym_val] = ACTIONS(35), + [anon_sym_var] = ACTIONS(37), + [anon_sym_DASH_DASH_DASH] = ACTIONS(39), + [anon_sym_rust] = ACTIONS(41), + [anon_sym_fun] = ACTIONS(43), + [anon_sym_return] = ACTIONS(45), + [anon_sym_break] = ACTIONS(47), + [anon_sym_continue] = ACTIONS(49), + [anon_sym_throw] = ACTIONS(51), + [anon_sym_from] = ACTIONS(53), + [anon_sym_do] = ACTIONS(55), + [anon_sym_if] = ACTIONS(57), + [anon_sym_match] = ACTIONS(59), + [anon_sym_loop] = ACTIONS(61), + [anon_sym_while] = ACTIONS(63), + [anon_sym_for] = ACTIONS(65), + [anon_sym_try] = ACTIONS(67), + }, + [39] = { + [sym_meta] = STATE(1336), + [sym__constant] = STATE(896), + [sym_constant_string] = STATE(896), + [sym_constant_char] = STATE(896), + [sym_constant_bool] = STATE(896), + [sym_constant_unit] = STATE(896), + [aux_sym__stmts] = STATE(32), + [sym__stmt] = STATE(32), + [sym_stmt_def] = STATE(32), + [sym_stmt_type] = STATE(32), + [sym_stmt_enum] = STATE(32), + [sym_stmt_val] = STATE(32), + [sym_stmt_var] = STATE(32), + [sym_stmt_expr] = STATE(32), + [sym_stmt_code] = STATE(32), + [sym__stmt_noop] = STATE(32), + [sym__expr] = STATE(1025), + [sym_expr_return] = STATE(1025), + [sym_expr_break] = STATE(1025), + [sym_expr_continue] = STATE(1025), + [sym_expr_throw] = STATE(1025), + [sym_expr_query] = STATE(1025), + [sym_expr_rust] = STATE(1025), + [sym_query_from] = STATE(401), + [sym_expr_fun] = STATE(1025), + [sym_expr_binary] = STATE(1025), + [sym_expr_annot] = STATE(1025), + [sym_expr_call] = STATE(1025), + [sym_expr_tuple_access] = STATE(1025), + [sym_expr_record_access] = STATE(1025), + [sym_expr_array_access] = STATE(1025), + [sym_expr_method_call] = STATE(1025), + [sym_expr_paren] = STATE(1025), + [sym_expr_constant] = STATE(1025), + [sym_expr_name] = STATE(1025), + [sym_expr_array] = STATE(1025), + [sym_expr_tuple] = STATE(1025), + [sym_expr_record] = STATE(1025), + [sym_expr_do] = STATE(1025), + [sym_expr_if] = STATE(1025), + [sym_expr_match] = STATE(1025), + [sym_expr_loop] = STATE(1025), + [sym_expr_while] = STATE(1025), + [sym_expr_for] = STATE(1025), + [sym_expr_try] = STATE(1025), + [ts_builtin_sym_end] = ACTIONS(340), + [sym_name] = ACTIONS(7), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_AT] = ACTIONS(9), + [anon_sym_LBRACE] = ACTIONS(11), + [sym_constant_int] = ACTIONS(13), + [sym_constant_float] = ACTIONS(15), + [sym_string_quote] = ACTIONS(17), + [anon_sym_SQUOTE] = ACTIONS(19), + [anon_sym_true] = ACTIONS(21), + [anon_sym_false] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(23), + [anon_sym_def] = ACTIONS(25), + [anon_sym_LBRACK] = ACTIONS(27), + [anon_sym_SEMI] = ACTIONS(322), + [anon_sym_type] = ACTIONS(31), + [anon_sym_enum] = ACTIONS(33), + [anon_sym_val] = ACTIONS(35), + [anon_sym_var] = ACTIONS(37), + [anon_sym_DASH_DASH_DASH] = ACTIONS(39), + [anon_sym_rust] = ACTIONS(41), + [anon_sym_fun] = ACTIONS(43), + [anon_sym_return] = ACTIONS(45), + [anon_sym_break] = ACTIONS(47), + [anon_sym_continue] = ACTIONS(49), + [anon_sym_throw] = ACTIONS(51), + [anon_sym_from] = ACTIONS(53), + [anon_sym_do] = ACTIONS(55), + [anon_sym_if] = ACTIONS(57), + [anon_sym_match] = ACTIONS(59), + [anon_sym_loop] = ACTIONS(61), + [anon_sym_while] = ACTIONS(63), + [anon_sym_for] = ACTIONS(65), + [anon_sym_try] = ACTIONS(67), + }, + [40] = { + [sym_meta] = STATE(1336), + [sym__constant] = STATE(896), + [sym_constant_string] = STATE(896), + [sym_constant_char] = STATE(896), + [sym_constant_bool] = STATE(896), + [sym_constant_unit] = STATE(896), + [aux_sym__stmts] = STATE(32), + [sym__stmt] = STATE(32), + [sym_stmt_def] = STATE(32), + [sym_stmt_type] = STATE(32), + [sym_stmt_enum] = STATE(32), + [sym_stmt_val] = STATE(32), + [sym_stmt_var] = STATE(32), + [sym_stmt_expr] = STATE(32), + [sym_stmt_code] = STATE(32), + [sym__stmt_noop] = STATE(32), + [sym__expr] = STATE(1014), + [sym_expr_return] = STATE(1014), + [sym_expr_break] = STATE(1014), + [sym_expr_continue] = STATE(1014), + [sym_expr_throw] = STATE(1014), + [sym_expr_query] = STATE(1014), + [sym_expr_rust] = STATE(1014), + [sym_query_from] = STATE(401), + [sym_expr_fun] = STATE(1014), + [sym_expr_binary] = STATE(1014), + [sym_expr_annot] = STATE(1014), + [sym_expr_call] = STATE(1014), + [sym_expr_tuple_access] = STATE(1014), + [sym_expr_record_access] = STATE(1014), + [sym_expr_array_access] = STATE(1014), + [sym_expr_method_call] = STATE(1014), + [sym_expr_paren] = STATE(1014), + [sym_expr_constant] = STATE(1014), + [sym_expr_name] = STATE(1014), + [sym_expr_array] = STATE(1014), + [sym_expr_tuple] = STATE(1014), + [sym_expr_record] = STATE(1014), + [sym_expr_do] = STATE(1014), + [sym_expr_if] = STATE(1014), + [sym_expr_match] = STATE(1014), + [sym_expr_loop] = STATE(1014), + [sym_expr_while] = STATE(1014), + [sym_expr_for] = STATE(1014), + [sym_expr_try] = STATE(1014), + [sym_name] = ACTIONS(7), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_AT] = ACTIONS(9), + [anon_sym_LBRACE] = ACTIONS(11), + [anon_sym_RBRACE] = ACTIONS(342), + [sym_constant_int] = ACTIONS(13), + [sym_constant_float] = ACTIONS(15), + [sym_string_quote] = ACTIONS(17), + [anon_sym_SQUOTE] = ACTIONS(19), + [anon_sym_true] = ACTIONS(21), + [anon_sym_false] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(23), + [anon_sym_def] = ACTIONS(25), + [anon_sym_LBRACK] = ACTIONS(27), + [anon_sym_SEMI] = ACTIONS(322), + [anon_sym_type] = ACTIONS(31), + [anon_sym_enum] = ACTIONS(33), + [anon_sym_val] = ACTIONS(35), + [anon_sym_var] = ACTIONS(37), + [anon_sym_DASH_DASH_DASH] = ACTIONS(39), + [anon_sym_rust] = ACTIONS(41), + [anon_sym_fun] = ACTIONS(43), + [anon_sym_return] = ACTIONS(45), + [anon_sym_break] = ACTIONS(47), + [anon_sym_continue] = ACTIONS(49), + [anon_sym_throw] = ACTIONS(51), + [anon_sym_from] = ACTIONS(53), + [anon_sym_do] = ACTIONS(55), + [anon_sym_if] = ACTIONS(57), + [anon_sym_match] = ACTIONS(59), + [anon_sym_loop] = ACTIONS(61), + [anon_sym_while] = ACTIONS(63), + [anon_sym_for] = ACTIONS(65), + [anon_sym_try] = ACTIONS(67), + }, + [41] = { + [sym_meta] = STATE(1336), + [sym__constant] = STATE(896), + [sym_constant_string] = STATE(896), + [sym_constant_char] = STATE(896), + [sym_constant_bool] = STATE(896), + [sym_constant_unit] = STATE(896), + [aux_sym__stmts] = STATE(40), + [sym__stmt] = STATE(40), + [sym_stmt_def] = STATE(40), + [sym_stmt_type] = STATE(40), + [sym_stmt_enum] = STATE(40), + [sym_stmt_val] = STATE(40), + [sym_stmt_var] = STATE(40), + [sym_stmt_expr] = STATE(40), + [sym_stmt_code] = STATE(40), + [sym__stmt_noop] = STATE(40), + [sym__expr] = STATE(995), + [sym_expr_return] = STATE(995), + [sym_expr_break] = STATE(995), + [sym_expr_continue] = STATE(995), + [sym_expr_throw] = STATE(995), + [sym_expr_query] = STATE(995), + [sym_expr_rust] = STATE(995), + [sym_query_from] = STATE(401), + [sym_expr_fun] = STATE(995), + [sym_expr_binary] = STATE(995), + [sym_expr_annot] = STATE(995), + [sym_expr_call] = STATE(995), + [sym_expr_tuple_access] = STATE(995), + [sym_expr_record_access] = STATE(995), + [sym_expr_array_access] = STATE(995), + [sym_expr_method_call] = STATE(995), + [sym_expr_paren] = STATE(995), + [sym_expr_constant] = STATE(995), + [sym_expr_name] = STATE(995), + [sym_expr_array] = STATE(995), + [sym_expr_tuple] = STATE(995), + [sym_expr_record] = STATE(995), + [sym_expr_do] = STATE(995), + [sym_expr_if] = STATE(995), + [sym_expr_match] = STATE(995), + [sym_expr_loop] = STATE(995), + [sym_expr_while] = STATE(995), + [sym_expr_for] = STATE(995), + [sym_expr_try] = STATE(995), + [sym_name] = ACTIONS(7), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_AT] = ACTIONS(9), + [anon_sym_LBRACE] = ACTIONS(11), + [anon_sym_RBRACE] = ACTIONS(344), + [sym_constant_int] = ACTIONS(13), + [sym_constant_float] = ACTIONS(15), + [sym_string_quote] = ACTIONS(17), + [anon_sym_SQUOTE] = ACTIONS(19), + [anon_sym_true] = ACTIONS(21), + [anon_sym_false] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(23), + [anon_sym_def] = ACTIONS(25), + [anon_sym_LBRACK] = ACTIONS(27), + [anon_sym_SEMI] = ACTIONS(346), + [anon_sym_type] = ACTIONS(31), + [anon_sym_enum] = ACTIONS(33), + [anon_sym_val] = ACTIONS(35), + [anon_sym_var] = ACTIONS(37), + [anon_sym_DASH_DASH_DASH] = ACTIONS(39), + [anon_sym_rust] = ACTIONS(41), + [anon_sym_fun] = ACTIONS(43), + [anon_sym_return] = ACTIONS(45), + [anon_sym_break] = ACTIONS(47), + [anon_sym_continue] = ACTIONS(49), + [anon_sym_throw] = ACTIONS(51), + [anon_sym_from] = ACTIONS(53), + [anon_sym_do] = ACTIONS(55), + [anon_sym_if] = ACTIONS(57), + [anon_sym_match] = ACTIONS(59), + [anon_sym_loop] = ACTIONS(61), + [anon_sym_while] = ACTIONS(63), + [anon_sym_for] = ACTIONS(65), + [anon_sym_try] = ACTIONS(67), + }, + [42] = { + [sym__constant] = STATE(896), + [sym_constant_string] = STATE(896), + [sym_constant_char] = STATE(896), + [sym_constant_bool] = STATE(896), + [sym_constant_unit] = STATE(896), + [sym__expr_fields] = STATE(1453), + [sym_expr_field] = STATE(1331), + [sym_expr_field_expr] = STATE(1350), + [sym_expr_field_name] = STATE(1350), + [sym__expr] = STATE(1065), + [sym_expr_return] = STATE(1065), + [sym_expr_break] = STATE(1065), + [sym_expr_continue] = STATE(1065), + [sym_expr_throw] = STATE(1065), + [sym_expr_query] = STATE(1065), + [sym_expr_rust] = STATE(1065), + [sym_query_from] = STATE(401), + [sym_expr_fun] = STATE(1065), + [sym_expr_binary] = STATE(1065), + [sym_expr_annot] = STATE(1065), + [sym_expr_call] = STATE(1065), + [sym_expr_tuple_access] = STATE(1065), + [sym_expr_record_access] = STATE(1065), + [sym_expr_array_access] = STATE(1065), + [sym_expr_method_call] = STATE(1065), + [sym_expr_paren] = STATE(1065), + [sym_expr_constant] = STATE(1065), + [sym_expr_name] = STATE(1065), + [sym_expr_array] = STATE(1065), + [sym_expr_tuple] = STATE(1065), + [sym_expr_record] = STATE(1065), + [sym_expr_do] = STATE(1065), + [sym_expr_if] = STATE(1065), + [sym_expr_match] = STATE(1065), + [sym_expr_loop] = STATE(1065), + [sym_expr_while] = STATE(1065), + [sym_expr_for] = STATE(1065), + [sym_expr_try] = STATE(1065), + [sym_name] = ACTIONS(348), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(11), + [anon_sym_RBRACE] = ACTIONS(350), + [sym_constant_int] = ACTIONS(13), + [sym_constant_float] = ACTIONS(15), + [sym_string_quote] = ACTIONS(17), + [anon_sym_SQUOTE] = ACTIONS(19), + [anon_sym_true] = ACTIONS(21), + [anon_sym_false] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(23), + [anon_sym_LBRACK] = ACTIONS(27), + [anon_sym_rust] = ACTIONS(41), + [anon_sym_fun] = ACTIONS(43), + [anon_sym_return] = ACTIONS(45), + [anon_sym_break] = ACTIONS(47), + [anon_sym_continue] = ACTIONS(49), + [anon_sym_throw] = ACTIONS(51), + [anon_sym_from] = ACTIONS(53), + [anon_sym_do] = ACTIONS(55), + [anon_sym_if] = ACTIONS(57), + [anon_sym_match] = ACTIONS(59), + [anon_sym_loop] = ACTIONS(61), + [anon_sym_while] = ACTIONS(63), + [anon_sym_for] = ACTIONS(65), + [anon_sym_try] = ACTIONS(67), + }, + [43] = { + [sym__constant] = STATE(896), + [sym_constant_string] = STATE(896), + [sym_constant_char] = STATE(896), + [sym_constant_bool] = STATE(896), + [sym_constant_unit] = STATE(896), + [sym__expr_fields] = STATE(1430), + [sym_expr_field] = STATE(1331), + [sym_expr_field_expr] = STATE(1350), + [sym_expr_field_name] = STATE(1350), + [sym__expr] = STATE(1065), + [sym_expr_return] = STATE(1065), + [sym_expr_break] = STATE(1065), + [sym_expr_continue] = STATE(1065), + [sym_expr_throw] = STATE(1065), + [sym_expr_query] = STATE(1065), + [sym_expr_rust] = STATE(1065), + [sym_query_from] = STATE(401), + [sym_expr_fun] = STATE(1065), + [sym_expr_binary] = STATE(1065), + [sym_expr_annot] = STATE(1065), + [sym_expr_call] = STATE(1065), + [sym_expr_tuple_access] = STATE(1065), + [sym_expr_record_access] = STATE(1065), + [sym_expr_array_access] = STATE(1065), + [sym_expr_method_call] = STATE(1065), + [sym_expr_paren] = STATE(1065), + [sym_expr_constant] = STATE(1065), + [sym_expr_name] = STATE(1065), + [sym_expr_array] = STATE(1065), + [sym_expr_tuple] = STATE(1065), + [sym_expr_record] = STATE(1065), + [sym_expr_do] = STATE(1065), + [sym_expr_if] = STATE(1065), + [sym_expr_match] = STATE(1065), + [sym_expr_loop] = STATE(1065), + [sym_expr_while] = STATE(1065), + [sym_expr_for] = STATE(1065), + [sym_expr_try] = STATE(1065), + [sym_name] = ACTIONS(348), + [sym__whitespace] = ACTIONS(3), + [sym_line_comment] = ACTIONS(3), + [anon_sym_LBRACE] = ACTIONS(11), + [anon_sym_RBRACE] = ACTIONS(352), + [sym_constant_int] = ACTIONS(13), + [sym_constant_float] = ACTIONS(15), + [sym_string_quote] = ACTIONS(17), + [anon_sym_SQUOTE] = ACTIONS(19), + [anon_sym_true] = ACTIONS(21), + [anon_sym_false] = ACTIONS(21), + [anon_sym_LPAREN] = ACTIONS(23), + [anon_sym_LBRACK] = ACTIONS(27), + [anon_sym_rust] = ACTIONS(41), + [anon_sym_fun] = ACTIONS(43), + [anon_sym_return] = ACTIONS(45), + [anon_sym_break] = ACTIONS(47), + [anon_sym_continue] = ACTIONS(49), + [anon_sym_throw] = ACTIONS(51), + [anon_sym_from] = ACTIONS(53), + [anon_sym_do] = ACTIONS(55), + [anon_sym_if] = ACTIONS(57), + [anon_sym_match] = ACTIONS(59), + [anon_sym_loop] = ACTIONS(61), + [anon_sym_while] = ACTIONS(63), + [anon_sym_for] = ACTIONS(65), + [anon_sym_try] = ACTIONS(67), + }, +}; + +static const uint16_t ts_small_parse_table[] = { + [0] = 29, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(348), 1, + sym_name, + STATE(401), 1, + sym_query_from, + STATE(1338), 1, + sym_expr_field, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1350), 2, + sym_expr_field_expr, + sym_expr_field_name, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1065), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [122] = 29, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(354), 1, + anon_sym_RPAREN, + STATE(401), 1, + sym_query_from, + STATE(1502), 1, + sym__exprs, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(971), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [243] = 29, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(356), 1, + anon_sym_RPAREN, + STATE(401), 1, + sym_query_from, + STATE(1382), 1, + sym__exprs, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(971), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [364] = 29, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(358), 1, + anon_sym_RBRACK, + STATE(401), 1, + sym_query_from, + STATE(1464), 1, + sym__exprs, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(971), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [485] = 29, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(360), 1, + anon_sym_RPAREN, + STATE(401), 1, + sym_query_from, + STATE(1489), 1, + sym__exprs, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(971), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [606] = 29, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(362), 1, + anon_sym_RBRACK, + STATE(401), 1, + sym_query_from, + STATE(1389), 1, + sym__exprs, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(971), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [727] = 29, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(364), 1, + anon_sym_RPAREN, + STATE(401), 1, + sym_query_from, + STATE(1487), 1, + sym__exprs, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(971), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [848] = 29, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(366), 1, + anon_sym_RPAREN, + STATE(401), 1, + sym_query_from, + STATE(1449), 1, + sym__exprs, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(971), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [969] = 29, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(368), 1, + anon_sym_RPAREN, + STATE(401), 1, + sym_query_from, + STATE(1450), 1, + sym__exprs, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(971), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [1090] = 29, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(370), 1, + anon_sym_RPAREN, + STATE(401), 1, + sym_query_from, + STATE(1485), 1, + sym__exprs, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(971), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [1211] = 29, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(372), 1, + anon_sym_RPAREN, + STATE(401), 1, + sym_query_from, + STATE(1440), 1, + sym__exprs, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(971), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [1332] = 29, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(374), 1, + anon_sym_RPAREN, + STATE(401), 1, + sym_query_from, + STATE(1378), 1, + sym__exprs, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(971), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [1453] = 29, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(376), 1, + anon_sym_RPAREN, + STATE(401), 1, + sym_query_from, + STATE(1479), 1, + sym__exprs, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(971), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [1574] = 28, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(378), 1, + anon_sym_RPAREN, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1000), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [1692] = 28, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(380), 1, + anon_sym_RPAREN, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1009), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [1810] = 4, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(384), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(60), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(382), 34, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [1880] = 4, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(388), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(61), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(386), 34, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [1950] = 16, + ACTIONS(394), 1, + anon_sym_from, + ACTIONS(397), 1, + anon_sym_where, + ACTIONS(400), 1, + anon_sym_join, + ACTIONS(403), 1, + anon_sym_union, + ACTIONS(406), 1, + anon_sym_group, + ACTIONS(409), 1, + anon_sym_over, + ACTIONS(412), 1, + anon_sym_roll, + ACTIONS(415), 1, + anon_sym_compute, + ACTIONS(418), 1, + anon_sym_select, + ACTIONS(421), 1, + anon_sym_with, + ACTIONS(424), 1, + anon_sym_into, + ACTIONS(427), 1, + anon_sym_order, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(392), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(61), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(390), 22, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_on, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [2044] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(197), 1, + anon_sym_fun, + ACTIONS(199), 1, + anon_sym_return, + ACTIONS(201), 1, + anon_sym_break, + ACTIONS(203), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(422), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(775), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [2159] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(117), 1, + anon_sym_fun, + ACTIONS(119), 1, + anon_sym_return, + ACTIONS(121), 1, + anon_sym_break, + ACTIONS(123), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(434), 1, + anon_sym_from, + STATE(257), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(555), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [2274] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(173), 1, + anon_sym_fun, + ACTIONS(175), 1, + anon_sym_return, + ACTIONS(177), 1, + anon_sym_break, + ACTIONS(179), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(436), 1, + anon_sym_from, + STATE(406), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(699), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [2389] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(173), 1, + anon_sym_fun, + ACTIONS(175), 1, + anon_sym_return, + ACTIONS(177), 1, + anon_sym_break, + ACTIONS(179), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(436), 1, + anon_sym_from, + STATE(406), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(701), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [2504] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(173), 1, + anon_sym_fun, + ACTIONS(175), 1, + anon_sym_return, + ACTIONS(177), 1, + anon_sym_break, + ACTIONS(179), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(436), 1, + anon_sym_from, + STATE(406), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(702), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [2619] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(173), 1, + anon_sym_fun, + ACTIONS(175), 1, + anon_sym_return, + ACTIONS(177), 1, + anon_sym_break, + ACTIONS(179), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(436), 1, + anon_sym_from, + STATE(406), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(705), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [2734] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(173), 1, + anon_sym_fun, + ACTIONS(175), 1, + anon_sym_return, + ACTIONS(177), 1, + anon_sym_break, + ACTIONS(179), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(436), 1, + anon_sym_from, + STATE(406), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(707), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [2849] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(173), 1, + anon_sym_fun, + ACTIONS(175), 1, + anon_sym_return, + ACTIONS(177), 1, + anon_sym_break, + ACTIONS(179), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(436), 1, + anon_sym_from, + STATE(406), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(693), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [2964] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(215), 1, + anon_sym_fun, + ACTIONS(217), 1, + anon_sym_return, + ACTIONS(219), 1, + anon_sym_break, + ACTIONS(221), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + STATE(421), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(864), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [3079] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(215), 1, + anon_sym_fun, + ACTIONS(217), 1, + anon_sym_return, + ACTIONS(219), 1, + anon_sym_break, + ACTIONS(221), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + STATE(421), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1027), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [3194] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(215), 1, + anon_sym_fun, + ACTIONS(217), 1, + anon_sym_return, + ACTIONS(219), 1, + anon_sym_break, + ACTIONS(221), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + STATE(421), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1028), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [3309] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(215), 1, + anon_sym_fun, + ACTIONS(217), 1, + anon_sym_return, + ACTIONS(219), 1, + anon_sym_break, + ACTIONS(221), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + STATE(421), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1046), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [3424] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(89), 1, + anon_sym_fun, + ACTIONS(91), 1, + anon_sym_return, + ACTIONS(93), 1, + anon_sym_break, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(97), 1, + anon_sym_throw, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(438), 1, + anon_sym_from, + STATE(59), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(537), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [3539] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(215), 1, + anon_sym_fun, + ACTIONS(217), 1, + anon_sym_return, + ACTIONS(219), 1, + anon_sym_break, + ACTIONS(221), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + STATE(421), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1047), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [3654] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(89), 1, + anon_sym_fun, + ACTIONS(91), 1, + anon_sym_return, + ACTIONS(93), 1, + anon_sym_break, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(97), 1, + anon_sym_throw, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(438), 1, + anon_sym_from, + STATE(59), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(543), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [3769] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1051), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [3884] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(215), 1, + anon_sym_fun, + ACTIONS(217), 1, + anon_sym_return, + ACTIONS(219), 1, + anon_sym_break, + ACTIONS(221), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + STATE(421), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1052), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [3999] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(215), 1, + anon_sym_fun, + ACTIONS(217), 1, + anon_sym_return, + ACTIONS(219), 1, + anon_sym_break, + ACTIONS(221), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + STATE(421), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1054), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [4114] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(215), 1, + anon_sym_fun, + ACTIONS(217), 1, + anon_sym_return, + ACTIONS(219), 1, + anon_sym_break, + ACTIONS(221), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + STATE(421), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1044), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [4229] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1021), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [4344] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(89), 1, + anon_sym_fun, + ACTIONS(91), 1, + anon_sym_return, + ACTIONS(93), 1, + anon_sym_break, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(97), 1, + anon_sym_throw, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(438), 1, + anon_sym_from, + STATE(59), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(526), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [4459] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(89), 1, + anon_sym_fun, + ACTIONS(91), 1, + anon_sym_return, + ACTIONS(93), 1, + anon_sym_break, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(97), 1, + anon_sym_throw, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(438), 1, + anon_sym_from, + STATE(59), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(535), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [4574] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(89), 1, + anon_sym_fun, + ACTIONS(91), 1, + anon_sym_return, + ACTIONS(93), 1, + anon_sym_break, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(97), 1, + anon_sym_throw, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(438), 1, + anon_sym_from, + STATE(59), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(548), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [4689] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(89), 1, + anon_sym_fun, + ACTIONS(91), 1, + anon_sym_return, + ACTIONS(93), 1, + anon_sym_break, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(97), 1, + anon_sym_throw, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(438), 1, + anon_sym_from, + STATE(59), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(538), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [4804] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(117), 1, + anon_sym_fun, + ACTIONS(119), 1, + anon_sym_return, + ACTIONS(121), 1, + anon_sym_break, + ACTIONS(123), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(434), 1, + anon_sym_from, + STATE(257), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(528), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [4919] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(157), 1, + anon_sym_fun, + ACTIONS(159), 1, + anon_sym_return, + ACTIONS(161), 1, + anon_sym_break, + ACTIONS(163), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(440), 1, + anon_sym_from, + STATE(405), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(653), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [5034] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1030), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [5149] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(189), 1, + anon_sym_fun, + ACTIONS(191), 1, + anon_sym_return, + ACTIONS(193), 1, + anon_sym_break, + ACTIONS(195), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(442), 1, + anon_sym_from, + STATE(417), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(743), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [5264] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(189), 1, + anon_sym_fun, + ACTIONS(191), 1, + anon_sym_return, + ACTIONS(193), 1, + anon_sym_break, + ACTIONS(195), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(442), 1, + anon_sym_from, + STATE(417), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(722), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [5379] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1053), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [5494] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(942), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [5609] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(189), 1, + anon_sym_fun, + ACTIONS(191), 1, + anon_sym_return, + ACTIONS(193), 1, + anon_sym_break, + ACTIONS(195), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(442), 1, + anon_sym_from, + STATE(417), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(723), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [5724] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(958), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [5839] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(189), 1, + anon_sym_fun, + ACTIONS(191), 1, + anon_sym_return, + ACTIONS(193), 1, + anon_sym_break, + ACTIONS(195), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(442), 1, + anon_sym_from, + STATE(417), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(750), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [5954] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(964), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [6069] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(965), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [6184] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(930), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [6299] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(967), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [6414] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(864), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [6529] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(189), 1, + anon_sym_fun, + ACTIONS(191), 1, + anon_sym_return, + ACTIONS(193), 1, + anon_sym_break, + ACTIONS(195), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(442), 1, + anon_sym_from, + STATE(417), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(751), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [6644] = 27, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(149), 1, + anon_sym_fun, + ACTIONS(151), 1, + anon_sym_return, + ACTIONS(153), 1, + anon_sym_break, + ACTIONS(155), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(399), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(642), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [6759] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(189), 1, + anon_sym_fun, + ACTIONS(191), 1, + anon_sym_return, + ACTIONS(193), 1, + anon_sym_break, + ACTIONS(195), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(442), 1, + anon_sym_from, + STATE(417), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(752), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [6874] = 27, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(149), 1, + anon_sym_fun, + ACTIONS(151), 1, + anon_sym_return, + ACTIONS(153), 1, + anon_sym_break, + ACTIONS(155), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(399), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(639), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [6989] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(205), 1, + anon_sym_fun, + ACTIONS(207), 1, + anon_sym_return, + ACTIONS(209), 1, + anon_sym_break, + ACTIONS(211), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + STATE(414), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(972), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [7104] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(215), 1, + anon_sym_fun, + ACTIONS(217), 1, + anon_sym_return, + ACTIONS(219), 1, + anon_sym_break, + ACTIONS(221), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + STATE(421), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1037), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [7219] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(125), 1, + anon_sym_fun, + ACTIONS(127), 1, + anon_sym_return, + ACTIONS(129), 1, + anon_sym_break, + ACTIONS(131), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(444), 1, + anon_sym_from, + STATE(345), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(515), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [7334] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(125), 1, + anon_sym_fun, + ACTIONS(127), 1, + anon_sym_return, + ACTIONS(129), 1, + anon_sym_break, + ACTIONS(131), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(444), 1, + anon_sym_from, + STATE(345), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(514), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [7449] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(133), 1, + anon_sym_fun, + ACTIONS(135), 1, + anon_sym_return, + ACTIONS(137), 1, + anon_sym_break, + ACTIONS(139), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(446), 1, + anon_sym_from, + STATE(395), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(561), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [7564] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(189), 1, + anon_sym_fun, + ACTIONS(191), 1, + anon_sym_return, + ACTIONS(193), 1, + anon_sym_break, + ACTIONS(195), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(442), 1, + anon_sym_from, + STATE(417), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(741), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [7679] = 27, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(149), 1, + anon_sym_fun, + ACTIONS(151), 1, + anon_sym_return, + ACTIONS(153), 1, + anon_sym_break, + ACTIONS(155), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(399), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(627), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [7794] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(141), 1, + anon_sym_fun, + ACTIONS(143), 1, + anon_sym_return, + ACTIONS(145), 1, + anon_sym_break, + ACTIONS(147), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(448), 1, + anon_sym_from, + STATE(394), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(604), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [7909] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1036), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [8024] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(189), 1, + anon_sym_fun, + ACTIONS(191), 1, + anon_sym_return, + ACTIONS(193), 1, + anon_sym_break, + ACTIONS(195), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(442), 1, + anon_sym_from, + STATE(417), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(740), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [8139] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(189), 1, + anon_sym_fun, + ACTIONS(191), 1, + anon_sym_return, + ACTIONS(193), 1, + anon_sym_break, + ACTIONS(195), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(442), 1, + anon_sym_from, + STATE(417), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(506), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [8254] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(189), 1, + anon_sym_fun, + ACTIONS(191), 1, + anon_sym_return, + ACTIONS(193), 1, + anon_sym_break, + ACTIONS(195), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(442), 1, + anon_sym_from, + STATE(417), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(739), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [8369] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(189), 1, + anon_sym_fun, + ACTIONS(191), 1, + anon_sym_return, + ACTIONS(193), 1, + anon_sym_break, + ACTIONS(195), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(442), 1, + anon_sym_from, + STATE(417), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(738), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [8484] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(993), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [8599] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(189), 1, + anon_sym_fun, + ACTIONS(191), 1, + anon_sym_return, + ACTIONS(193), 1, + anon_sym_break, + ACTIONS(195), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(442), 1, + anon_sym_from, + STATE(417), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(737), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [8714] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(189), 1, + anon_sym_fun, + ACTIONS(191), 1, + anon_sym_return, + ACTIONS(193), 1, + anon_sym_break, + ACTIONS(195), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(442), 1, + anon_sym_from, + STATE(417), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(729), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [8829] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(189), 1, + anon_sym_fun, + ACTIONS(191), 1, + anon_sym_return, + ACTIONS(193), 1, + anon_sym_break, + ACTIONS(195), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(442), 1, + anon_sym_from, + STATE(417), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(730), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [8944] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(189), 1, + anon_sym_fun, + ACTIONS(191), 1, + anon_sym_return, + ACTIONS(193), 1, + anon_sym_break, + ACTIONS(195), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(442), 1, + anon_sym_from, + STATE(417), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(731), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [9059] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(189), 1, + anon_sym_fun, + ACTIONS(191), 1, + anon_sym_return, + ACTIONS(193), 1, + anon_sym_break, + ACTIONS(195), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(442), 1, + anon_sym_from, + STATE(417), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(746), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [9174] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(141), 1, + anon_sym_fun, + ACTIONS(143), 1, + anon_sym_return, + ACTIONS(145), 1, + anon_sym_break, + ACTIONS(147), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(448), 1, + anon_sym_from, + STATE(394), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(589), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [9289] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1035), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [9404] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(141), 1, + anon_sym_fun, + ACTIONS(143), 1, + anon_sym_return, + ACTIONS(145), 1, + anon_sym_break, + ACTIONS(147), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(448), 1, + anon_sym_from, + STATE(394), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(598), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [9519] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1061), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [9634] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(980), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [9749] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(141), 1, + anon_sym_fun, + ACTIONS(143), 1, + anon_sym_return, + ACTIONS(145), 1, + anon_sym_break, + ACTIONS(147), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(448), 1, + anon_sym_from, + STATE(394), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(597), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [9864] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(141), 1, + anon_sym_fun, + ACTIONS(143), 1, + anon_sym_return, + ACTIONS(145), 1, + anon_sym_break, + ACTIONS(147), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(448), 1, + anon_sym_from, + STATE(394), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(595), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [9979] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(141), 1, + anon_sym_fun, + ACTIONS(143), 1, + anon_sym_return, + ACTIONS(145), 1, + anon_sym_break, + ACTIONS(147), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(448), 1, + anon_sym_from, + STATE(394), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(594), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [10094] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(141), 1, + anon_sym_fun, + ACTIONS(143), 1, + anon_sym_return, + ACTIONS(145), 1, + anon_sym_break, + ACTIONS(147), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(448), 1, + anon_sym_from, + STATE(394), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(593), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [10209] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(157), 1, + anon_sym_fun, + ACTIONS(159), 1, + anon_sym_return, + ACTIONS(161), 1, + anon_sym_break, + ACTIONS(163), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(440), 1, + anon_sym_from, + STATE(405), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(663), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [10324] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(89), 1, + anon_sym_fun, + ACTIONS(91), 1, + anon_sym_return, + ACTIONS(93), 1, + anon_sym_break, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(97), 1, + anon_sym_throw, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(438), 1, + anon_sym_from, + STATE(59), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(516), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [10439] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(117), 1, + anon_sym_fun, + ACTIONS(119), 1, + anon_sym_return, + ACTIONS(121), 1, + anon_sym_break, + ACTIONS(123), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(434), 1, + anon_sym_from, + STATE(257), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(552), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [10554] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(173), 1, + anon_sym_fun, + ACTIONS(175), 1, + anon_sym_return, + ACTIONS(177), 1, + anon_sym_break, + ACTIONS(179), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(436), 1, + anon_sym_from, + STATE(406), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(665), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [10669] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1033), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [10784] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(165), 1, + anon_sym_fun, + ACTIONS(167), 1, + anon_sym_return, + ACTIONS(169), 1, + anon_sym_break, + ACTIONS(171), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(450), 1, + anon_sym_from, + STATE(408), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(710), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [10899] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(165), 1, + anon_sym_fun, + ACTIONS(167), 1, + anon_sym_return, + ACTIONS(169), 1, + anon_sym_break, + ACTIONS(171), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(450), 1, + anon_sym_from, + STATE(408), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(709), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [11014] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(173), 1, + anon_sym_fun, + ACTIONS(175), 1, + anon_sym_return, + ACTIONS(177), 1, + anon_sym_break, + ACTIONS(179), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(436), 1, + anon_sym_from, + STATE(406), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(689), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [11129] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(165), 1, + anon_sym_fun, + ACTIONS(167), 1, + anon_sym_return, + ACTIONS(169), 1, + anon_sym_break, + ACTIONS(171), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(450), 1, + anon_sym_from, + STATE(408), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(708), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [11244] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(157), 1, + anon_sym_fun, + ACTIONS(159), 1, + anon_sym_return, + ACTIONS(161), 1, + anon_sym_break, + ACTIONS(163), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(440), 1, + anon_sym_from, + STATE(405), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(658), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [11359] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1029), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [11474] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(165), 1, + anon_sym_fun, + ACTIONS(167), 1, + anon_sym_return, + ACTIONS(169), 1, + anon_sym_break, + ACTIONS(171), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(450), 1, + anon_sym_from, + STATE(408), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(706), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [11589] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(165), 1, + anon_sym_fun, + ACTIONS(167), 1, + anon_sym_return, + ACTIONS(169), 1, + anon_sym_break, + ACTIONS(171), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(450), 1, + anon_sym_from, + STATE(408), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(704), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [11704] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(165), 1, + anon_sym_fun, + ACTIONS(167), 1, + anon_sym_return, + ACTIONS(169), 1, + anon_sym_break, + ACTIONS(171), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(450), 1, + anon_sym_from, + STATE(408), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(703), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [11819] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(181), 1, + anon_sym_fun, + ACTIONS(183), 1, + anon_sym_return, + ACTIONS(185), 1, + anon_sym_break, + ACTIONS(187), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(416), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(754), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [11934] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(181), 1, + anon_sym_fun, + ACTIONS(183), 1, + anon_sym_return, + ACTIONS(185), 1, + anon_sym_break, + ACTIONS(187), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(416), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(747), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [12049] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1018), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [12164] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(181), 1, + anon_sym_fun, + ACTIONS(183), 1, + anon_sym_return, + ACTIONS(185), 1, + anon_sym_break, + ACTIONS(187), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(416), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(506), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [12279] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(181), 1, + anon_sym_fun, + ACTIONS(183), 1, + anon_sym_return, + ACTIONS(185), 1, + anon_sym_break, + ACTIONS(187), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(416), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(756), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [12394] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(181), 1, + anon_sym_fun, + ACTIONS(183), 1, + anon_sym_return, + ACTIONS(185), 1, + anon_sym_break, + ACTIONS(187), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(416), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(734), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [12509] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(181), 1, + anon_sym_fun, + ACTIONS(183), 1, + anon_sym_return, + ACTIONS(185), 1, + anon_sym_break, + ACTIONS(187), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(416), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(753), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [12624] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(181), 1, + anon_sym_fun, + ACTIONS(183), 1, + anon_sym_return, + ACTIONS(185), 1, + anon_sym_break, + ACTIONS(187), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(416), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(755), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [12739] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(181), 1, + anon_sym_fun, + ACTIONS(183), 1, + anon_sym_return, + ACTIONS(185), 1, + anon_sym_break, + ACTIONS(187), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(416), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(758), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [12854] = 27, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(149), 1, + anon_sym_fun, + ACTIONS(151), 1, + anon_sym_return, + ACTIONS(153), 1, + anon_sym_break, + ACTIONS(155), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(399), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(629), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [12969] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(181), 1, + anon_sym_fun, + ACTIONS(183), 1, + anon_sym_return, + ACTIONS(185), 1, + anon_sym_break, + ACTIONS(187), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(416), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(732), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [13084] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(117), 1, + anon_sym_fun, + ACTIONS(119), 1, + anon_sym_return, + ACTIONS(121), 1, + anon_sym_break, + ACTIONS(123), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(434), 1, + anon_sym_from, + STATE(257), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(584), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [13199] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(181), 1, + anon_sym_fun, + ACTIONS(183), 1, + anon_sym_return, + ACTIONS(185), 1, + anon_sym_break, + ACTIONS(187), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(416), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(735), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [13314] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(173), 1, + anon_sym_fun, + ACTIONS(175), 1, + anon_sym_return, + ACTIONS(177), 1, + anon_sym_break, + ACTIONS(179), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(436), 1, + anon_sym_from, + STATE(406), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(506), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [13429] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(173), 1, + anon_sym_fun, + ACTIONS(175), 1, + anon_sym_return, + ACTIONS(177), 1, + anon_sym_break, + ACTIONS(179), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(436), 1, + anon_sym_from, + STATE(406), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(697), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [13544] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(133), 1, + anon_sym_fun, + ACTIONS(135), 1, + anon_sym_return, + ACTIONS(137), 1, + anon_sym_break, + ACTIONS(139), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(446), 1, + anon_sym_from, + STATE(395), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(596), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [13659] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(215), 1, + anon_sym_fun, + ACTIONS(217), 1, + anon_sym_return, + ACTIONS(219), 1, + anon_sym_break, + ACTIONS(221), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + STATE(421), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(990), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [13774] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(141), 1, + anon_sym_fun, + ACTIONS(143), 1, + anon_sym_return, + ACTIONS(145), 1, + anon_sym_break, + ACTIONS(147), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(448), 1, + anon_sym_from, + STATE(394), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(506), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [13889] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(117), 1, + anon_sym_fun, + ACTIONS(119), 1, + anon_sym_return, + ACTIONS(121), 1, + anon_sym_break, + ACTIONS(123), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(434), 1, + anon_sym_from, + STATE(257), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(551), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [14004] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1031), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [14119] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(133), 1, + anon_sym_fun, + ACTIONS(135), 1, + anon_sym_return, + ACTIONS(137), 1, + anon_sym_break, + ACTIONS(139), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(446), 1, + anon_sym_from, + STATE(395), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(609), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [14234] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(117), 1, + anon_sym_fun, + ACTIONS(119), 1, + anon_sym_return, + ACTIONS(121), 1, + anon_sym_break, + ACTIONS(123), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(434), 1, + anon_sym_from, + STATE(257), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(553), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [14349] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(133), 1, + anon_sym_fun, + ACTIONS(135), 1, + anon_sym_return, + ACTIONS(137), 1, + anon_sym_break, + ACTIONS(139), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(446), 1, + anon_sym_from, + STATE(395), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(610), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [14464] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(133), 1, + anon_sym_fun, + ACTIONS(135), 1, + anon_sym_return, + ACTIONS(137), 1, + anon_sym_break, + ACTIONS(139), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(446), 1, + anon_sym_from, + STATE(395), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(611), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [14579] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(133), 1, + anon_sym_fun, + ACTIONS(135), 1, + anon_sym_return, + ACTIONS(137), 1, + anon_sym_break, + ACTIONS(139), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(446), 1, + anon_sym_from, + STATE(395), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(592), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [14694] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(117), 1, + anon_sym_fun, + ACTIONS(119), 1, + anon_sym_return, + ACTIONS(121), 1, + anon_sym_break, + ACTIONS(123), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(434), 1, + anon_sym_from, + STATE(257), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(554), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [14809] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(141), 1, + anon_sym_fun, + ACTIONS(143), 1, + anon_sym_return, + ACTIONS(145), 1, + anon_sym_break, + ACTIONS(147), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(448), 1, + anon_sym_from, + STATE(394), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(619), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [14924] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(173), 1, + anon_sym_fun, + ACTIONS(175), 1, + anon_sym_return, + ACTIONS(177), 1, + anon_sym_break, + ACTIONS(179), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(436), 1, + anon_sym_from, + STATE(406), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(696), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [15039] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(117), 1, + anon_sym_fun, + ACTIONS(119), 1, + anon_sym_return, + ACTIONS(121), 1, + anon_sym_break, + ACTIONS(123), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(434), 1, + anon_sym_from, + STATE(257), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(506), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [15154] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(117), 1, + anon_sym_fun, + ACTIONS(119), 1, + anon_sym_return, + ACTIONS(121), 1, + anon_sym_break, + ACTIONS(123), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(434), 1, + anon_sym_from, + STATE(257), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(556), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [15269] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(117), 1, + anon_sym_fun, + ACTIONS(119), 1, + anon_sym_return, + ACTIONS(121), 1, + anon_sym_break, + ACTIONS(123), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(434), 1, + anon_sym_from, + STATE(257), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(557), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [15384] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(117), 1, + anon_sym_fun, + ACTIONS(119), 1, + anon_sym_return, + ACTIONS(121), 1, + anon_sym_break, + ACTIONS(123), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(434), 1, + anon_sym_from, + STATE(257), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(558), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [15499] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(117), 1, + anon_sym_fun, + ACTIONS(119), 1, + anon_sym_return, + ACTIONS(121), 1, + anon_sym_break, + ACTIONS(123), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(434), 1, + anon_sym_from, + STATE(257), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(549), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [15614] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(117), 1, + anon_sym_fun, + ACTIONS(119), 1, + anon_sym_return, + ACTIONS(121), 1, + anon_sym_break, + ACTIONS(123), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(434), 1, + anon_sym_from, + STATE(257), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(559), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [15729] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(117), 1, + anon_sym_fun, + ACTIONS(119), 1, + anon_sym_return, + ACTIONS(121), 1, + anon_sym_break, + ACTIONS(123), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(434), 1, + anon_sym_from, + STATE(257), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(560), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [15844] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(117), 1, + anon_sym_fun, + ACTIONS(119), 1, + anon_sym_return, + ACTIONS(121), 1, + anon_sym_break, + ACTIONS(123), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(434), 1, + anon_sym_from, + STATE(257), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(587), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [15959] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(173), 1, + anon_sym_fun, + ACTIONS(175), 1, + anon_sym_return, + ACTIONS(177), 1, + anon_sym_break, + ACTIONS(179), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(436), 1, + anon_sym_from, + STATE(406), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(688), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [16074] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(173), 1, + anon_sym_fun, + ACTIONS(175), 1, + anon_sym_return, + ACTIONS(177), 1, + anon_sym_break, + ACTIONS(179), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(436), 1, + anon_sym_from, + STATE(406), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(687), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [16189] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(157), 1, + anon_sym_fun, + ACTIONS(159), 1, + anon_sym_return, + ACTIONS(161), 1, + anon_sym_break, + ACTIONS(163), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(440), 1, + anon_sym_from, + STATE(405), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(647), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [16304] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(157), 1, + anon_sym_fun, + ACTIONS(159), 1, + anon_sym_return, + ACTIONS(161), 1, + anon_sym_break, + ACTIONS(163), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(440), 1, + anon_sym_from, + STATE(405), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(646), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [16419] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(89), 1, + anon_sym_fun, + ACTIONS(91), 1, + anon_sym_return, + ACTIONS(93), 1, + anon_sym_break, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(97), 1, + anon_sym_throw, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(438), 1, + anon_sym_from, + STATE(59), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(458), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [16534] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(89), 1, + anon_sym_fun, + ACTIONS(91), 1, + anon_sym_return, + ACTIONS(93), 1, + anon_sym_break, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(97), 1, + anon_sym_throw, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(438), 1, + anon_sym_from, + STATE(59), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(442), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [16649] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(173), 1, + anon_sym_fun, + ACTIONS(175), 1, + anon_sym_return, + ACTIONS(177), 1, + anon_sym_break, + ACTIONS(179), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(436), 1, + anon_sym_from, + STATE(406), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(690), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [16764] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(133), 1, + anon_sym_fun, + ACTIONS(135), 1, + anon_sym_return, + ACTIONS(137), 1, + anon_sym_break, + ACTIONS(139), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(446), 1, + anon_sym_from, + STATE(395), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(562), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [16879] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(89), 1, + anon_sym_fun, + ACTIONS(91), 1, + anon_sym_return, + ACTIONS(93), 1, + anon_sym_break, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(97), 1, + anon_sym_throw, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(438), 1, + anon_sym_from, + STATE(59), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(446), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [16994] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(89), 1, + anon_sym_fun, + ACTIONS(91), 1, + anon_sym_return, + ACTIONS(93), 1, + anon_sym_break, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(97), 1, + anon_sym_throw, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(438), 1, + anon_sym_from, + STATE(59), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(448), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [17109] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(89), 1, + anon_sym_fun, + ACTIONS(91), 1, + anon_sym_return, + ACTIONS(93), 1, + anon_sym_break, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(97), 1, + anon_sym_throw, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(438), 1, + anon_sym_from, + STATE(59), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(546), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [17224] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1024), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [17339] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1022), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [17454] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(165), 1, + anon_sym_fun, + ACTIONS(167), 1, + anon_sym_return, + ACTIONS(169), 1, + anon_sym_break, + ACTIONS(171), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(450), 1, + anon_sym_from, + STATE(408), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(679), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [17569] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(157), 1, + anon_sym_fun, + ACTIONS(159), 1, + anon_sym_return, + ACTIONS(161), 1, + anon_sym_break, + ACTIONS(163), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(440), 1, + anon_sym_from, + STATE(405), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(645), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [17684] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(157), 1, + anon_sym_fun, + ACTIONS(159), 1, + anon_sym_return, + ACTIONS(161), 1, + anon_sym_break, + ACTIONS(163), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(440), 1, + anon_sym_from, + STATE(405), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(644), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [17799] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1059), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [17914] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1050), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [18029] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1062), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [18144] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(181), 1, + anon_sym_fun, + ACTIONS(183), 1, + anon_sym_return, + ACTIONS(185), 1, + anon_sym_break, + ACTIONS(187), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(416), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(759), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [18259] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(181), 1, + anon_sym_fun, + ACTIONS(183), 1, + anon_sym_return, + ACTIONS(185), 1, + anon_sym_break, + ACTIONS(187), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(416), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(724), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [18374] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(181), 1, + anon_sym_fun, + ACTIONS(183), 1, + anon_sym_return, + ACTIONS(185), 1, + anon_sym_break, + ACTIONS(187), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(416), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(725), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [18489] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(173), 1, + anon_sym_fun, + ACTIONS(175), 1, + anon_sym_return, + ACTIONS(177), 1, + anon_sym_break, + ACTIONS(179), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(436), 1, + anon_sym_from, + STATE(406), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(692), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [18604] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(181), 1, + anon_sym_fun, + ACTIONS(183), 1, + anon_sym_return, + ACTIONS(185), 1, + anon_sym_break, + ACTIONS(187), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(416), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(726), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [18719] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(173), 1, + anon_sym_fun, + ACTIONS(175), 1, + anon_sym_return, + ACTIONS(177), 1, + anon_sym_break, + ACTIONS(179), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(436), 1, + anon_sym_from, + STATE(406), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(664), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [18834] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(157), 1, + anon_sym_fun, + ACTIONS(159), 1, + anon_sym_return, + ACTIONS(161), 1, + anon_sym_break, + ACTIONS(163), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(440), 1, + anon_sym_from, + STATE(405), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(636), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [18949] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(157), 1, + anon_sym_fun, + ACTIONS(159), 1, + anon_sym_return, + ACTIONS(161), 1, + anon_sym_break, + ACTIONS(163), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(440), 1, + anon_sym_from, + STATE(405), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(648), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [19064] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(181), 1, + anon_sym_fun, + ACTIONS(183), 1, + anon_sym_return, + ACTIONS(185), 1, + anon_sym_break, + ACTIONS(187), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(416), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(727), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [19179] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(181), 1, + anon_sym_fun, + ACTIONS(183), 1, + anon_sym_return, + ACTIONS(185), 1, + anon_sym_break, + ACTIONS(187), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(416), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(728), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [19294] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(165), 1, + anon_sym_fun, + ACTIONS(167), 1, + anon_sym_return, + ACTIONS(169), 1, + anon_sym_break, + ACTIONS(171), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(450), 1, + anon_sym_from, + STATE(408), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(718), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [19409] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(165), 1, + anon_sym_fun, + ACTIONS(167), 1, + anon_sym_return, + ACTIONS(169), 1, + anon_sym_break, + ACTIONS(171), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(450), 1, + anon_sym_from, + STATE(408), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(717), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [19524] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(165), 1, + anon_sym_fun, + ACTIONS(167), 1, + anon_sym_return, + ACTIONS(169), 1, + anon_sym_break, + ACTIONS(171), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(450), 1, + anon_sym_from, + STATE(408), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(506), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [19639] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(165), 1, + anon_sym_fun, + ACTIONS(167), 1, + anon_sym_return, + ACTIONS(169), 1, + anon_sym_break, + ACTIONS(171), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(450), 1, + anon_sym_from, + STATE(408), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(716), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [19754] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(165), 1, + anon_sym_fun, + ACTIONS(167), 1, + anon_sym_return, + ACTIONS(169), 1, + anon_sym_break, + ACTIONS(171), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(450), 1, + anon_sym_from, + STATE(408), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(715), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [19869] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(165), 1, + anon_sym_fun, + ACTIONS(167), 1, + anon_sym_return, + ACTIONS(169), 1, + anon_sym_break, + ACTIONS(171), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(450), 1, + anon_sym_from, + STATE(408), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(681), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [19984] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(165), 1, + anon_sym_fun, + ACTIONS(167), 1, + anon_sym_return, + ACTIONS(169), 1, + anon_sym_break, + ACTIONS(171), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(450), 1, + anon_sym_from, + STATE(408), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(714), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [20099] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(165), 1, + anon_sym_fun, + ACTIONS(167), 1, + anon_sym_return, + ACTIONS(169), 1, + anon_sym_break, + ACTIONS(171), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(450), 1, + anon_sym_from, + STATE(408), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(713), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [20214] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(165), 1, + anon_sym_fun, + ACTIONS(167), 1, + anon_sym_return, + ACTIONS(169), 1, + anon_sym_break, + ACTIONS(171), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(450), 1, + anon_sym_from, + STATE(408), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(712), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [20329] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(165), 1, + anon_sym_fun, + ACTIONS(167), 1, + anon_sym_return, + ACTIONS(169), 1, + anon_sym_break, + ACTIONS(171), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(450), 1, + anon_sym_from, + STATE(408), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(720), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [20444] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(173), 1, + anon_sym_fun, + ACTIONS(175), 1, + anon_sym_return, + ACTIONS(177), 1, + anon_sym_break, + ACTIONS(179), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(436), 1, + anon_sym_from, + STATE(406), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(686), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [20559] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(173), 1, + anon_sym_fun, + ACTIONS(175), 1, + anon_sym_return, + ACTIONS(177), 1, + anon_sym_break, + ACTIONS(179), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(436), 1, + anon_sym_from, + STATE(406), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(685), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [20674] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(215), 1, + anon_sym_fun, + ACTIONS(217), 1, + anon_sym_return, + ACTIONS(219), 1, + anon_sym_break, + ACTIONS(221), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + STATE(421), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1045), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [20789] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1049), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [20904] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(205), 1, + anon_sym_fun, + ACTIONS(207), 1, + anon_sym_return, + ACTIONS(209), 1, + anon_sym_break, + ACTIONS(211), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + STATE(414), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1001), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [21019] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(205), 1, + anon_sym_fun, + ACTIONS(207), 1, + anon_sym_return, + ACTIONS(209), 1, + anon_sym_break, + ACTIONS(211), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + STATE(414), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1002), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [21134] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1026), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [21249] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(205), 1, + anon_sym_fun, + ACTIONS(207), 1, + anon_sym_return, + ACTIONS(209), 1, + anon_sym_break, + ACTIONS(211), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + STATE(414), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(864), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [21364] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(205), 1, + anon_sym_fun, + ACTIONS(207), 1, + anon_sym_return, + ACTIONS(209), 1, + anon_sym_break, + ACTIONS(211), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + STATE(414), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1004), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [21479] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(205), 1, + anon_sym_fun, + ACTIONS(207), 1, + anon_sym_return, + ACTIONS(209), 1, + anon_sym_break, + ACTIONS(211), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + STATE(414), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1006), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [21594] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(205), 1, + anon_sym_fun, + ACTIONS(207), 1, + anon_sym_return, + ACTIONS(209), 1, + anon_sym_break, + ACTIONS(211), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + STATE(414), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1007), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [21709] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(205), 1, + anon_sym_fun, + ACTIONS(207), 1, + anon_sym_return, + ACTIONS(209), 1, + anon_sym_break, + ACTIONS(211), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + STATE(414), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1010), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [21824] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(205), 1, + anon_sym_fun, + ACTIONS(207), 1, + anon_sym_return, + ACTIONS(209), 1, + anon_sym_break, + ACTIONS(211), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + STATE(414), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1011), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [21939] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(205), 1, + anon_sym_fun, + ACTIONS(207), 1, + anon_sym_return, + ACTIONS(209), 1, + anon_sym_break, + ACTIONS(211), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + STATE(414), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1012), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [22054] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(205), 1, + anon_sym_fun, + ACTIONS(207), 1, + anon_sym_return, + ACTIONS(209), 1, + anon_sym_break, + ACTIONS(211), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + STATE(414), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(996), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [22169] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(173), 1, + anon_sym_fun, + ACTIONS(175), 1, + anon_sym_return, + ACTIONS(177), 1, + anon_sym_break, + ACTIONS(179), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(436), 1, + anon_sym_from, + STATE(406), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(684), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [22284] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(173), 1, + anon_sym_fun, + ACTIONS(175), 1, + anon_sym_return, + ACTIONS(177), 1, + anon_sym_break, + ACTIONS(179), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(436), 1, + anon_sym_from, + STATE(406), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(683), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [22399] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(125), 1, + anon_sym_fun, + ACTIONS(127), 1, + anon_sym_return, + ACTIONS(129), 1, + anon_sym_break, + ACTIONS(131), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(444), 1, + anon_sym_from, + STATE(345), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(572), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [22514] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(125), 1, + anon_sym_fun, + ACTIONS(127), 1, + anon_sym_return, + ACTIONS(129), 1, + anon_sym_break, + ACTIONS(131), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(444), 1, + anon_sym_from, + STATE(345), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(575), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [22629] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1055), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [22744] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(215), 1, + anon_sym_fun, + ACTIONS(217), 1, + anon_sym_return, + ACTIONS(219), 1, + anon_sym_break, + ACTIONS(221), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + STATE(421), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1032), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [22859] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1039), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [22974] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1056), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [23089] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(215), 1, + anon_sym_fun, + ACTIONS(217), 1, + anon_sym_return, + ACTIONS(219), 1, + anon_sym_break, + ACTIONS(221), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + STATE(421), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1063), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [23204] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(125), 1, + anon_sym_fun, + ACTIONS(127), 1, + anon_sym_return, + ACTIONS(129), 1, + anon_sym_break, + ACTIONS(131), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(444), 1, + anon_sym_from, + STATE(345), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(577), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [23319] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(89), 1, + anon_sym_fun, + ACTIONS(91), 1, + anon_sym_return, + ACTIONS(93), 1, + anon_sym_break, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(97), 1, + anon_sym_throw, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(438), 1, + anon_sym_from, + STATE(59), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(530), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [23434] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(125), 1, + anon_sym_fun, + ACTIONS(127), 1, + anon_sym_return, + ACTIONS(129), 1, + anon_sym_break, + ACTIONS(131), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(444), 1, + anon_sym_from, + STATE(345), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(578), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [23549] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(117), 1, + anon_sym_fun, + ACTIONS(119), 1, + anon_sym_return, + ACTIONS(121), 1, + anon_sym_break, + ACTIONS(123), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(434), 1, + anon_sym_from, + STATE(257), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(547), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [23664] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(89), 1, + anon_sym_fun, + ACTIONS(91), 1, + anon_sym_return, + ACTIONS(93), 1, + anon_sym_break, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(97), 1, + anon_sym_throw, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(438), 1, + anon_sym_from, + STATE(59), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(457), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [23779] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(89), 1, + anon_sym_fun, + ACTIONS(91), 1, + anon_sym_return, + ACTIONS(93), 1, + anon_sym_break, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(97), 1, + anon_sym_throw, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(438), 1, + anon_sym_from, + STATE(59), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(456), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [23894] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(215), 1, + anon_sym_fun, + ACTIONS(217), 1, + anon_sym_return, + ACTIONS(219), 1, + anon_sym_break, + ACTIONS(221), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + STATE(421), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1038), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [24009] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(205), 1, + anon_sym_fun, + ACTIONS(207), 1, + anon_sym_return, + ACTIONS(209), 1, + anon_sym_break, + ACTIONS(211), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + STATE(414), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(974), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [24124] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(125), 1, + anon_sym_fun, + ACTIONS(127), 1, + anon_sym_return, + ACTIONS(129), 1, + anon_sym_break, + ACTIONS(131), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(444), 1, + anon_sym_from, + STATE(345), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(579), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [24239] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(125), 1, + anon_sym_fun, + ACTIONS(127), 1, + anon_sym_return, + ACTIONS(129), 1, + anon_sym_break, + ACTIONS(131), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(444), 1, + anon_sym_from, + STATE(345), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(580), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [24354] = 27, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(149), 1, + anon_sym_fun, + ACTIONS(151), 1, + anon_sym_return, + ACTIONS(153), 1, + anon_sym_break, + ACTIONS(155), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(399), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(626), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [24469] = 4, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(384), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(260), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(382), 33, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [24538] = 27, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(149), 1, + anon_sym_fun, + ACTIONS(151), 1, + anon_sym_return, + ACTIONS(153), 1, + anon_sym_break, + ACTIONS(155), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(399), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(640), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [24653] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(117), 1, + anon_sym_fun, + ACTIONS(119), 1, + anon_sym_return, + ACTIONS(121), 1, + anon_sym_break, + ACTIONS(123), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(434), 1, + anon_sym_from, + STATE(257), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(586), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [24768] = 4, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(388), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(352), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(386), 33, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [24837] = 27, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(149), 1, + anon_sym_fun, + ACTIONS(151), 1, + anon_sym_return, + ACTIONS(153), 1, + anon_sym_break, + ACTIONS(155), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(399), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(632), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [24952] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(117), 1, + anon_sym_fun, + ACTIONS(119), 1, + anon_sym_return, + ACTIONS(121), 1, + anon_sym_break, + ACTIONS(123), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(434), 1, + anon_sym_from, + STATE(257), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(585), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [25067] = 27, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(149), 1, + anon_sym_fun, + ACTIONS(151), 1, + anon_sym_return, + ACTIONS(153), 1, + anon_sym_break, + ACTIONS(155), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(399), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(628), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [25182] = 27, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(149), 1, + anon_sym_fun, + ACTIONS(151), 1, + anon_sym_return, + ACTIONS(153), 1, + anon_sym_break, + ACTIONS(155), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(399), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(634), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [25297] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(934), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [25412] = 27, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(149), 1, + anon_sym_fun, + ACTIONS(151), 1, + anon_sym_return, + ACTIONS(153), 1, + anon_sym_break, + ACTIONS(155), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(399), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(633), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [25527] = 27, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(149), 1, + anon_sym_fun, + ACTIONS(151), 1, + anon_sym_return, + ACTIONS(153), 1, + anon_sym_break, + ACTIONS(155), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(399), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(630), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [25642] = 27, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(149), 1, + anon_sym_fun, + ACTIONS(151), 1, + anon_sym_return, + ACTIONS(153), 1, + anon_sym_break, + ACTIONS(155), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(399), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(506), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [25757] = 27, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(149), 1, + anon_sym_fun, + ACTIONS(151), 1, + anon_sym_return, + ACTIONS(153), 1, + anon_sym_break, + ACTIONS(155), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(399), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(635), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [25872] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(89), 1, + anon_sym_fun, + ACTIONS(91), 1, + anon_sym_return, + ACTIONS(93), 1, + anon_sym_break, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(97), 1, + anon_sym_throw, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(438), 1, + anon_sym_from, + STATE(59), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(545), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [25987] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1057), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [26102] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(89), 1, + anon_sym_fun, + ACTIONS(91), 1, + anon_sym_return, + ACTIONS(93), 1, + anon_sym_break, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(97), 1, + anon_sym_throw, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(438), 1, + anon_sym_from, + STATE(59), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(544), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [26217] = 27, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(149), 1, + anon_sym_fun, + ACTIONS(151), 1, + anon_sym_return, + ACTIONS(153), 1, + anon_sym_break, + ACTIONS(155), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(399), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(643), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [26332] = 27, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(149), 1, + anon_sym_fun, + ACTIONS(151), 1, + anon_sym_return, + ACTIONS(153), 1, + anon_sym_break, + ACTIONS(155), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(399), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(631), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [26447] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1034), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [26562] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(157), 1, + anon_sym_fun, + ACTIONS(159), 1, + anon_sym_return, + ACTIONS(161), 1, + anon_sym_break, + ACTIONS(163), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(440), 1, + anon_sym_from, + STATE(405), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(680), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [26677] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(157), 1, + anon_sym_fun, + ACTIONS(159), 1, + anon_sym_return, + ACTIONS(161), 1, + anon_sym_break, + ACTIONS(163), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(440), 1, + anon_sym_from, + STATE(405), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(674), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [26792] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(197), 1, + anon_sym_fun, + ACTIONS(199), 1, + anon_sym_return, + ACTIONS(201), 1, + anon_sym_break, + ACTIONS(203), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(422), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(761), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [26907] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(215), 1, + anon_sym_fun, + ACTIONS(217), 1, + anon_sym_return, + ACTIONS(219), 1, + anon_sym_break, + ACTIONS(221), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + STATE(421), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1005), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [27022] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(89), 1, + anon_sym_fun, + ACTIONS(91), 1, + anon_sym_return, + ACTIONS(93), 1, + anon_sym_break, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(97), 1, + anon_sym_throw, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(438), 1, + anon_sym_from, + STATE(59), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(506), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [27137] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(89), 1, + anon_sym_fun, + ACTIONS(91), 1, + anon_sym_return, + ACTIONS(93), 1, + anon_sym_break, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(97), 1, + anon_sym_throw, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(438), 1, + anon_sym_from, + STATE(59), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(527), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [27252] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1019), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [27367] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(89), 1, + anon_sym_fun, + ACTIONS(91), 1, + anon_sym_return, + ACTIONS(93), 1, + anon_sym_break, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(97), 1, + anon_sym_throw, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(438), 1, + anon_sym_from, + STATE(59), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(542), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [27482] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(89), 1, + anon_sym_fun, + ACTIONS(91), 1, + anon_sym_return, + ACTIONS(93), 1, + anon_sym_break, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(97), 1, + anon_sym_throw, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(438), 1, + anon_sym_from, + STATE(59), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(534), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [27597] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(89), 1, + anon_sym_fun, + ACTIONS(91), 1, + anon_sym_return, + ACTIONS(93), 1, + anon_sym_break, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(97), 1, + anon_sym_throw, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(438), 1, + anon_sym_from, + STATE(59), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(533), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [27712] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(89), 1, + anon_sym_fun, + ACTIONS(91), 1, + anon_sym_return, + ACTIONS(93), 1, + anon_sym_break, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(97), 1, + anon_sym_throw, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(438), 1, + anon_sym_from, + STATE(59), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(532), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [27827] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(133), 1, + anon_sym_fun, + ACTIONS(135), 1, + anon_sym_return, + ACTIONS(137), 1, + anon_sym_break, + ACTIONS(139), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(446), 1, + anon_sym_from, + STATE(395), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(607), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [27942] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(197), 1, + anon_sym_fun, + ACTIONS(199), 1, + anon_sym_return, + ACTIONS(201), 1, + anon_sym_break, + ACTIONS(203), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(422), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(760), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [28057] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(197), 1, + anon_sym_fun, + ACTIONS(199), 1, + anon_sym_return, + ACTIONS(201), 1, + anon_sym_break, + ACTIONS(203), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(422), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(773), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [28172] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(197), 1, + anon_sym_fun, + ACTIONS(199), 1, + anon_sym_return, + ACTIONS(201), 1, + anon_sym_break, + ACTIONS(203), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(422), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(770), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [28287] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(197), 1, + anon_sym_fun, + ACTIONS(199), 1, + anon_sym_return, + ACTIONS(201), 1, + anon_sym_break, + ACTIONS(203), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(422), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(769), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [28402] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(197), 1, + anon_sym_fun, + ACTIONS(199), 1, + anon_sym_return, + ACTIONS(201), 1, + anon_sym_break, + ACTIONS(203), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(422), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(768), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [28517] = 27, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(149), 1, + anon_sym_fun, + ACTIONS(151), 1, + anon_sym_return, + ACTIONS(153), 1, + anon_sym_break, + ACTIONS(155), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(399), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(637), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [28632] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(197), 1, + anon_sym_fun, + ACTIONS(199), 1, + anon_sym_return, + ACTIONS(201), 1, + anon_sym_break, + ACTIONS(203), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(422), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(765), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [28747] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(89), 1, + anon_sym_fun, + ACTIONS(91), 1, + anon_sym_return, + ACTIONS(93), 1, + anon_sym_break, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(97), 1, + anon_sym_throw, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(438), 1, + anon_sym_from, + STATE(59), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(531), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [28862] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(89), 1, + anon_sym_fun, + ACTIONS(91), 1, + anon_sym_return, + ACTIONS(93), 1, + anon_sym_break, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(97), 1, + anon_sym_throw, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(438), 1, + anon_sym_from, + STATE(59), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(541), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [28977] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(117), 1, + anon_sym_fun, + ACTIONS(119), 1, + anon_sym_return, + ACTIONS(121), 1, + anon_sym_break, + ACTIONS(123), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(434), 1, + anon_sym_from, + STATE(257), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(583), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [29092] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1020), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [29207] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(197), 1, + anon_sym_fun, + ACTIONS(199), 1, + anon_sym_return, + ACTIONS(201), 1, + anon_sym_break, + ACTIONS(203), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(422), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(506), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [29322] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(197), 1, + anon_sym_fun, + ACTIONS(199), 1, + anon_sym_return, + ACTIONS(201), 1, + anon_sym_break, + ACTIONS(203), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(422), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(763), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [29437] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1043), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [29552] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(141), 1, + anon_sym_fun, + ACTIONS(143), 1, + anon_sym_return, + ACTIONS(145), 1, + anon_sym_break, + ACTIONS(147), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(448), 1, + anon_sym_from, + STATE(394), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(621), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [29667] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(141), 1, + anon_sym_fun, + ACTIONS(143), 1, + anon_sym_return, + ACTIONS(145), 1, + anon_sym_break, + ACTIONS(147), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(448), 1, + anon_sym_from, + STATE(394), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(620), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [29782] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(133), 1, + anon_sym_fun, + ACTIONS(135), 1, + anon_sym_return, + ACTIONS(137), 1, + anon_sym_break, + ACTIONS(139), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(446), 1, + anon_sym_from, + STATE(395), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(591), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [29897] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(173), 1, + anon_sym_fun, + ACTIONS(175), 1, + anon_sym_return, + ACTIONS(177), 1, + anon_sym_break, + ACTIONS(179), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(436), 1, + anon_sym_from, + STATE(406), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(698), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [30012] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(133), 1, + anon_sym_fun, + ACTIONS(135), 1, + anon_sym_return, + ACTIONS(137), 1, + anon_sym_break, + ACTIONS(139), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(446), 1, + anon_sym_from, + STATE(395), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(625), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [30127] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(141), 1, + anon_sym_fun, + ACTIONS(143), 1, + anon_sym_return, + ACTIONS(145), 1, + anon_sym_break, + ACTIONS(147), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(448), 1, + anon_sym_from, + STATE(394), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(617), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [30242] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(141), 1, + anon_sym_fun, + ACTIONS(143), 1, + anon_sym_return, + ACTIONS(145), 1, + anon_sym_break, + ACTIONS(147), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(448), 1, + anon_sym_from, + STATE(394), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(616), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [30357] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(141), 1, + anon_sym_fun, + ACTIONS(143), 1, + anon_sym_return, + ACTIONS(145), 1, + anon_sym_break, + ACTIONS(147), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(448), 1, + anon_sym_from, + STATE(394), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(615), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [30472] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(141), 1, + anon_sym_fun, + ACTIONS(143), 1, + anon_sym_return, + ACTIONS(145), 1, + anon_sym_break, + ACTIONS(147), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(448), 1, + anon_sym_from, + STATE(394), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(614), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [30587] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(141), 1, + anon_sym_fun, + ACTIONS(143), 1, + anon_sym_return, + ACTIONS(145), 1, + anon_sym_break, + ACTIONS(147), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(448), 1, + anon_sym_from, + STATE(394), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(603), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [30702] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(117), 1, + anon_sym_fun, + ACTIONS(119), 1, + anon_sym_return, + ACTIONS(121), 1, + anon_sym_break, + ACTIONS(123), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(434), 1, + anon_sym_from, + STATE(257), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(582), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [30817] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(117), 1, + anon_sym_fun, + ACTIONS(119), 1, + anon_sym_return, + ACTIONS(121), 1, + anon_sym_break, + ACTIONS(123), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(434), 1, + anon_sym_from, + STATE(257), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(581), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [30932] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(197), 1, + anon_sym_fun, + ACTIONS(199), 1, + anon_sym_return, + ACTIONS(201), 1, + anon_sym_break, + ACTIONS(203), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(422), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(764), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [31047] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(157), 1, + anon_sym_fun, + ACTIONS(159), 1, + anon_sym_return, + ACTIONS(161), 1, + anon_sym_break, + ACTIONS(163), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(440), 1, + anon_sym_from, + STATE(405), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(669), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [31162] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(133), 1, + anon_sym_fun, + ACTIONS(135), 1, + anon_sym_return, + ACTIONS(137), 1, + anon_sym_break, + ACTIONS(139), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(446), 1, + anon_sym_from, + STATE(395), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(605), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [31277] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(133), 1, + anon_sym_fun, + ACTIONS(135), 1, + anon_sym_return, + ACTIONS(137), 1, + anon_sym_break, + ACTIONS(139), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(446), 1, + anon_sym_from, + STATE(395), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(608), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [31392] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(133), 1, + anon_sym_fun, + ACTIONS(135), 1, + anon_sym_return, + ACTIONS(137), 1, + anon_sym_break, + ACTIONS(139), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(446), 1, + anon_sym_from, + STATE(395), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(506), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [31507] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(133), 1, + anon_sym_fun, + ACTIONS(135), 1, + anon_sym_return, + ACTIONS(137), 1, + anon_sym_break, + ACTIONS(139), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(446), 1, + anon_sym_from, + STATE(395), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(624), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [31622] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(141), 1, + anon_sym_fun, + ACTIONS(143), 1, + anon_sym_return, + ACTIONS(145), 1, + anon_sym_break, + ACTIONS(147), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(448), 1, + anon_sym_from, + STATE(394), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(618), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [31737] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(133), 1, + anon_sym_fun, + ACTIONS(135), 1, + anon_sym_return, + ACTIONS(137), 1, + anon_sym_break, + ACTIONS(139), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(446), 1, + anon_sym_from, + STATE(395), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(623), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [31852] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(133), 1, + anon_sym_fun, + ACTIONS(135), 1, + anon_sym_return, + ACTIONS(137), 1, + anon_sym_break, + ACTIONS(139), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(446), 1, + anon_sym_from, + STATE(395), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(622), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [31967] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(133), 1, + anon_sym_fun, + ACTIONS(135), 1, + anon_sym_return, + ACTIONS(137), 1, + anon_sym_break, + ACTIONS(139), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(446), 1, + anon_sym_from, + STATE(395), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(613), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [32082] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(133), 1, + anon_sym_fun, + ACTIONS(135), 1, + anon_sym_return, + ACTIONS(137), 1, + anon_sym_break, + ACTIONS(139), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(446), 1, + anon_sym_from, + STATE(395), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(612), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [32197] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(133), 1, + anon_sym_fun, + ACTIONS(135), 1, + anon_sym_return, + ACTIONS(137), 1, + anon_sym_break, + ACTIONS(139), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(446), 1, + anon_sym_from, + STATE(395), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(601), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [32312] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(157), 1, + anon_sym_fun, + ACTIONS(159), 1, + anon_sym_return, + ACTIONS(161), 1, + anon_sym_break, + ACTIONS(163), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(440), 1, + anon_sym_from, + STATE(405), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(662), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [32427] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(157), 1, + anon_sym_fun, + ACTIONS(159), 1, + anon_sym_return, + ACTIONS(161), 1, + anon_sym_break, + ACTIONS(163), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(440), 1, + anon_sym_from, + STATE(405), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(678), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [32542] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(939), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [32657] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(157), 1, + anon_sym_fun, + ACTIONS(159), 1, + anon_sym_return, + ACTIONS(161), 1, + anon_sym_break, + ACTIONS(163), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(440), 1, + anon_sym_from, + STATE(405), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(661), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [32772] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(157), 1, + anon_sym_fun, + ACTIONS(159), 1, + anon_sym_return, + ACTIONS(161), 1, + anon_sym_break, + ACTIONS(163), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(440), 1, + anon_sym_from, + STATE(405), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(660), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [32887] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(157), 1, + anon_sym_fun, + ACTIONS(159), 1, + anon_sym_return, + ACTIONS(161), 1, + anon_sym_break, + ACTIONS(163), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(440), 1, + anon_sym_from, + STATE(405), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(675), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [33002] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(988), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [33117] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(125), 1, + anon_sym_fun, + ACTIONS(127), 1, + anon_sym_return, + ACTIONS(129), 1, + anon_sym_break, + ACTIONS(131), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(444), 1, + anon_sym_from, + STATE(345), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(574), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [33232] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(125), 1, + anon_sym_fun, + ACTIONS(127), 1, + anon_sym_return, + ACTIONS(129), 1, + anon_sym_break, + ACTIONS(131), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(444), 1, + anon_sym_from, + STATE(345), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(573), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [33347] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(125), 1, + anon_sym_fun, + ACTIONS(127), 1, + anon_sym_return, + ACTIONS(129), 1, + anon_sym_break, + ACTIONS(131), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(444), 1, + anon_sym_from, + STATE(345), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(506), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [33462] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(125), 1, + anon_sym_fun, + ACTIONS(127), 1, + anon_sym_return, + ACTIONS(129), 1, + anon_sym_break, + ACTIONS(131), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(444), 1, + anon_sym_from, + STATE(345), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(570), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [33577] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(125), 1, + anon_sym_fun, + ACTIONS(127), 1, + anon_sym_return, + ACTIONS(129), 1, + anon_sym_break, + ACTIONS(131), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(444), 1, + anon_sym_from, + STATE(345), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(568), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [33692] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(125), 1, + anon_sym_fun, + ACTIONS(127), 1, + anon_sym_return, + ACTIONS(129), 1, + anon_sym_break, + ACTIONS(131), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(444), 1, + anon_sym_from, + STATE(345), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(567), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [33807] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(125), 1, + anon_sym_fun, + ACTIONS(127), 1, + anon_sym_return, + ACTIONS(129), 1, + anon_sym_break, + ACTIONS(131), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(444), 1, + anon_sym_from, + STATE(345), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(566), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [33922] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(125), 1, + anon_sym_fun, + ACTIONS(127), 1, + anon_sym_return, + ACTIONS(129), 1, + anon_sym_break, + ACTIONS(131), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(444), 1, + anon_sym_from, + STATE(345), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(565), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [34037] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(125), 1, + anon_sym_fun, + ACTIONS(127), 1, + anon_sym_return, + ACTIONS(129), 1, + anon_sym_break, + ACTIONS(131), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(444), 1, + anon_sym_from, + STATE(345), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(564), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [34152] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(125), 1, + anon_sym_fun, + ACTIONS(127), 1, + anon_sym_return, + ACTIONS(129), 1, + anon_sym_break, + ACTIONS(131), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(444), 1, + anon_sym_from, + STATE(345), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(563), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [34267] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(157), 1, + anon_sym_fun, + ACTIONS(159), 1, + anon_sym_return, + ACTIONS(161), 1, + anon_sym_break, + ACTIONS(163), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(440), 1, + anon_sym_from, + STATE(405), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(666), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [34382] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(157), 1, + anon_sym_fun, + ACTIONS(159), 1, + anon_sym_return, + ACTIONS(161), 1, + anon_sym_break, + ACTIONS(163), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(440), 1, + anon_sym_from, + STATE(405), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(667), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [34497] = 4, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(384), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(391), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(382), 33, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [34566] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(215), 1, + anon_sym_fun, + ACTIONS(217), 1, + anon_sym_return, + ACTIONS(219), 1, + anon_sym_break, + ACTIONS(221), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + STATE(421), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1015), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [34681] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1023), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [34796] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(197), 1, + anon_sym_fun, + ACTIONS(199), 1, + anon_sym_return, + ACTIONS(201), 1, + anon_sym_break, + ACTIONS(203), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(422), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(772), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [34911] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(215), 1, + anon_sym_fun, + ACTIONS(217), 1, + anon_sym_return, + ACTIONS(219), 1, + anon_sym_break, + ACTIONS(221), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + STATE(421), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(992), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [35026] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(215), 1, + anon_sym_fun, + ACTIONS(217), 1, + anon_sym_return, + ACTIONS(219), 1, + anon_sym_break, + ACTIONS(221), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + STATE(421), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(991), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [35141] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(165), 1, + anon_sym_fun, + ACTIONS(167), 1, + anon_sym_return, + ACTIONS(169), 1, + anon_sym_break, + ACTIONS(171), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(450), 1, + anon_sym_from, + STATE(408), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(651), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [35256] = 16, + ACTIONS(406), 1, + anon_sym_group, + ACTIONS(409), 1, + anon_sym_over, + ACTIONS(452), 1, + anon_sym_from, + ACTIONS(455), 1, + anon_sym_where, + ACTIONS(458), 1, + anon_sym_join, + ACTIONS(461), 1, + anon_sym_union, + ACTIONS(464), 1, + anon_sym_roll, + ACTIONS(467), 1, + anon_sym_compute, + ACTIONS(470), 1, + anon_sym_select, + ACTIONS(473), 1, + anon_sym_with, + ACTIONS(476), 1, + anon_sym_into, + ACTIONS(479), 1, + anon_sym_order, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(392), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(352), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(390), 21, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_on, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [35349] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(157), 1, + anon_sym_fun, + ACTIONS(159), 1, + anon_sym_return, + ACTIONS(161), 1, + anon_sym_break, + ACTIONS(163), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(440), 1, + anon_sym_from, + STATE(405), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(668), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [35464] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(165), 1, + anon_sym_fun, + ACTIONS(167), 1, + anon_sym_return, + ACTIONS(169), 1, + anon_sym_break, + ACTIONS(171), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(450), 1, + anon_sym_from, + STATE(408), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(656), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [35579] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(181), 1, + anon_sym_fun, + ACTIONS(183), 1, + anon_sym_return, + ACTIONS(185), 1, + anon_sym_break, + ACTIONS(187), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(416), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(711), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [35694] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1060), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [35809] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(125), 1, + anon_sym_fun, + ACTIONS(127), 1, + anon_sym_return, + ACTIONS(129), 1, + anon_sym_break, + ACTIONS(131), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(444), 1, + anon_sym_from, + STATE(345), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(654), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [35924] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(125), 1, + anon_sym_fun, + ACTIONS(127), 1, + anon_sym_return, + ACTIONS(129), 1, + anon_sym_break, + ACTIONS(131), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(444), 1, + anon_sym_from, + STATE(345), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(652), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [36039] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(197), 1, + anon_sym_fun, + ACTIONS(199), 1, + anon_sym_return, + ACTIONS(201), 1, + anon_sym_break, + ACTIONS(203), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(422), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(774), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [36154] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(165), 1, + anon_sym_fun, + ACTIONS(167), 1, + anon_sym_return, + ACTIONS(169), 1, + anon_sym_break, + ACTIONS(171), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(450), 1, + anon_sym_from, + STATE(408), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(649), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [36269] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(165), 1, + anon_sym_fun, + ACTIONS(167), 1, + anon_sym_return, + ACTIONS(169), 1, + anon_sym_break, + ACTIONS(171), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(450), 1, + anon_sym_from, + STATE(408), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(650), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [36384] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(189), 1, + anon_sym_fun, + ACTIONS(191), 1, + anon_sym_return, + ACTIONS(193), 1, + anon_sym_break, + ACTIONS(195), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(442), 1, + anon_sym_from, + STATE(417), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(749), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [36499] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(141), 1, + anon_sym_fun, + ACTIONS(143), 1, + anon_sym_return, + ACTIONS(145), 1, + anon_sym_break, + ACTIONS(147), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(448), 1, + anon_sym_from, + STATE(394), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(748), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [36614] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(133), 1, + anon_sym_fun, + ACTIONS(135), 1, + anon_sym_return, + ACTIONS(137), 1, + anon_sym_break, + ACTIONS(139), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(446), 1, + anon_sym_from, + STATE(395), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(700), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [36729] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(125), 1, + anon_sym_fun, + ACTIONS(127), 1, + anon_sym_return, + ACTIONS(129), 1, + anon_sym_break, + ACTIONS(131), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(444), 1, + anon_sym_from, + STATE(345), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(472), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [36844] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(125), 1, + anon_sym_fun, + ACTIONS(127), 1, + anon_sym_return, + ACTIONS(129), 1, + anon_sym_break, + ACTIONS(131), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(444), 1, + anon_sym_from, + STATE(345), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(508), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [36959] = 16, + ACTIONS(406), 1, + anon_sym_group, + ACTIONS(409), 1, + anon_sym_over, + ACTIONS(482), 1, + anon_sym_from, + ACTIONS(485), 1, + anon_sym_where, + ACTIONS(488), 1, + anon_sym_join, + ACTIONS(491), 1, + anon_sym_union, + ACTIONS(494), 1, + anon_sym_roll, + ACTIONS(497), 1, + anon_sym_compute, + ACTIONS(500), 1, + anon_sym_select, + ACTIONS(503), 1, + anon_sym_with, + ACTIONS(506), 1, + anon_sym_into, + ACTIONS(509), 1, + anon_sym_order, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(392), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(367), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(390), 21, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_on, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [37052] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(157), 1, + anon_sym_fun, + ACTIONS(159), 1, + anon_sym_return, + ACTIONS(161), 1, + anon_sym_break, + ACTIONS(163), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(440), 1, + anon_sym_from, + STATE(405), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(670), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [37167] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(189), 1, + anon_sym_fun, + ACTIONS(191), 1, + anon_sym_return, + ACTIONS(193), 1, + anon_sym_break, + ACTIONS(195), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(442), 1, + anon_sym_from, + STATE(417), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(733), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [37282] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(949), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [37397] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(125), 1, + anon_sym_fun, + ACTIONS(127), 1, + anon_sym_return, + ACTIONS(129), 1, + anon_sym_break, + ACTIONS(131), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(444), 1, + anon_sym_from, + STATE(345), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(536), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [37512] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(197), 1, + anon_sym_fun, + ACTIONS(199), 1, + anon_sym_return, + ACTIONS(201), 1, + anon_sym_break, + ACTIONS(203), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(422), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(767), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [37627] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(125), 1, + anon_sym_fun, + ACTIONS(127), 1, + anon_sym_return, + ACTIONS(129), 1, + anon_sym_break, + ACTIONS(131), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(444), 1, + anon_sym_from, + STATE(345), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(504), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [37742] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(157), 1, + anon_sym_fun, + ACTIONS(159), 1, + anon_sym_return, + ACTIONS(161), 1, + anon_sym_break, + ACTIONS(163), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(440), 1, + anon_sym_from, + STATE(405), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(673), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [37857] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(125), 1, + anon_sym_fun, + ACTIONS(127), 1, + anon_sym_return, + ACTIONS(129), 1, + anon_sym_break, + ACTIONS(131), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(444), 1, + anon_sym_from, + STATE(345), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(461), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [37972] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(157), 1, + anon_sym_fun, + ACTIONS(159), 1, + anon_sym_return, + ACTIONS(161), 1, + anon_sym_break, + ACTIONS(163), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(440), 1, + anon_sym_from, + STATE(405), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(671), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [38087] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(157), 1, + anon_sym_fun, + ACTIONS(159), 1, + anon_sym_return, + ACTIONS(161), 1, + anon_sym_break, + ACTIONS(163), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(440), 1, + anon_sym_from, + STATE(405), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(506), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [38202] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(181), 1, + anon_sym_fun, + ACTIONS(183), 1, + anon_sym_return, + ACTIONS(185), 1, + anon_sym_break, + ACTIONS(187), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(416), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(744), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [38317] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(197), 1, + anon_sym_fun, + ACTIONS(199), 1, + anon_sym_return, + ACTIONS(201), 1, + anon_sym_break, + ACTIONS(203), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(422), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(776), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [38432] = 27, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(149), 1, + anon_sym_fun, + ACTIONS(151), 1, + anon_sym_return, + ACTIONS(153), 1, + anon_sym_break, + ACTIONS(155), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(399), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(771), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [38547] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1058), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [38662] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(215), 1, + anon_sym_fun, + ACTIONS(217), 1, + anon_sym_return, + ACTIONS(219), 1, + anon_sym_break, + ACTIONS(221), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + STATE(421), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1003), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [38777] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(43), 1, + anon_sym_fun, + ACTIONS(45), 1, + anon_sym_return, + ACTIONS(47), 1, + anon_sym_break, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(51), 1, + anon_sym_throw, + ACTIONS(53), 1, + anon_sym_from, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + STATE(401), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1041), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [38892] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(197), 1, + anon_sym_fun, + ACTIONS(199), 1, + anon_sym_return, + ACTIONS(201), 1, + anon_sym_break, + ACTIONS(203), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(422), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(766), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [39007] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(141), 1, + anon_sym_fun, + ACTIONS(143), 1, + anon_sym_return, + ACTIONS(145), 1, + anon_sym_break, + ACTIONS(147), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(448), 1, + anon_sym_from, + STATE(394), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(606), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [39122] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(181), 1, + anon_sym_fun, + ACTIONS(183), 1, + anon_sym_return, + ACTIONS(185), 1, + anon_sym_break, + ACTIONS(187), 1, + anon_sym_throw, + ACTIONS(213), 1, + anon_sym_from, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + STATE(416), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(682), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [39237] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(165), 1, + anon_sym_fun, + ACTIONS(167), 1, + anon_sym_return, + ACTIONS(169), 1, + anon_sym_break, + ACTIONS(171), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(450), 1, + anon_sym_from, + STATE(408), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(655), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [39352] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(165), 1, + anon_sym_fun, + ACTIONS(167), 1, + anon_sym_return, + ACTIONS(169), 1, + anon_sym_break, + ACTIONS(171), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(450), 1, + anon_sym_from, + STATE(408), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(657), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [39467] = 27, + ACTIONS(69), 1, + sym_name, + ACTIONS(71), 1, + anon_sym_LBRACE, + ACTIONS(77), 1, + sym_constant_int, + ACTIONS(79), 1, + sym_constant_float, + ACTIONS(81), 1, + sym_string_quote, + ACTIONS(83), 1, + anon_sym_SQUOTE, + ACTIONS(87), 1, + anon_sym_rust, + ACTIONS(95), 1, + anon_sym_continue, + ACTIONS(99), 1, + anon_sym_do, + ACTIONS(101), 1, + anon_sym_if, + ACTIONS(103), 1, + anon_sym_match, + ACTIONS(105), 1, + anon_sym_loop, + ACTIONS(107), 1, + anon_sym_while, + ACTIONS(109), 1, + anon_sym_for, + ACTIONS(111), 1, + anon_sym_try, + ACTIONS(157), 1, + anon_sym_fun, + ACTIONS(159), 1, + anon_sym_return, + ACTIONS(161), 1, + anon_sym_break, + ACTIONS(163), 1, + anon_sym_throw, + ACTIONS(430), 1, + anon_sym_LPAREN, + ACTIONS(432), 1, + anon_sym_LBRACK, + ACTIONS(440), 1, + anon_sym_from, + STATE(405), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(85), 2, + anon_sym_true, + anon_sym_false, + STATE(525), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(672), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [39582] = 27, + ACTIONS(7), 1, + sym_name, + ACTIONS(11), 1, + anon_sym_LBRACE, + ACTIONS(13), 1, + sym_constant_int, + ACTIONS(15), 1, + sym_constant_float, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(23), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACK, + ACTIONS(41), 1, + anon_sym_rust, + ACTIONS(49), 1, + anon_sym_continue, + ACTIONS(55), 1, + anon_sym_do, + ACTIONS(57), 1, + anon_sym_if, + ACTIONS(59), 1, + anon_sym_match, + ACTIONS(61), 1, + anon_sym_loop, + ACTIONS(63), 1, + anon_sym_while, + ACTIONS(65), 1, + anon_sym_for, + ACTIONS(67), 1, + anon_sym_try, + ACTIONS(215), 1, + anon_sym_fun, + ACTIONS(217), 1, + anon_sym_return, + ACTIONS(219), 1, + anon_sym_break, + ACTIONS(221), 1, + anon_sym_throw, + ACTIONS(223), 1, + anon_sym_from, + STATE(421), 1, + sym_query_from, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(896), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1048), 28, + sym__expr, + sym_expr_return, + sym_expr_break, + sym_expr_continue, + sym_expr_throw, + sym_expr_query, + sym_expr_rust, + sym_expr_fun, + sym_expr_binary, + sym_expr_annot, + sym_expr_call, + sym_expr_tuple_access, + sym_expr_record_access, + sym_expr_array_access, + sym_expr_method_call, + sym_expr_paren, + sym_expr_constant, + sym_expr_name, + sym_expr_array, + sym_expr_tuple, + sym_expr_record, + sym_expr_do, + sym_expr_if, + sym_expr_match, + sym_expr_loop, + sym_expr_while, + sym_expr_for, + sym_expr_try, + [39697] = 4, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(388), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(367), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(386), 33, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [39766] = 4, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(388), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(396), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(386), 32, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [39834] = 4, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(388), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(397), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(386), 32, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [39902] = 4, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(384), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(393), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(382), 32, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [39970] = 4, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(384), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(392), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(382), 32, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [40038] = 16, + ACTIONS(406), 1, + anon_sym_group, + ACTIONS(409), 1, + anon_sym_over, + ACTIONS(512), 1, + anon_sym_from, + ACTIONS(515), 1, + anon_sym_where, + ACTIONS(518), 1, + anon_sym_join, + ACTIONS(521), 1, + anon_sym_union, + ACTIONS(524), 1, + anon_sym_roll, + ACTIONS(527), 1, + anon_sym_compute, + ACTIONS(530), 1, + anon_sym_select, + ACTIONS(533), 1, + anon_sym_with, + ACTIONS(536), 1, + anon_sym_into, + ACTIONS(539), 1, + anon_sym_order, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(392), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(396), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(390), 20, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [40130] = 16, + ACTIONS(542), 1, + anon_sym_from, + ACTIONS(545), 1, + anon_sym_where, + ACTIONS(548), 1, + anon_sym_join, + ACTIONS(551), 1, + anon_sym_union, + ACTIONS(554), 1, + anon_sym_group, + ACTIONS(557), 1, + anon_sym_over, + ACTIONS(560), 1, + anon_sym_roll, + ACTIONS(563), 1, + anon_sym_compute, + ACTIONS(566), 1, + anon_sym_select, + ACTIONS(569), 1, + anon_sym_with, + ACTIONS(572), 1, + anon_sym_into, + ACTIONS(575), 1, + anon_sym_order, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(392), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(397), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(390), 20, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_on, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [40222] = 16, + ACTIONS(554), 1, + anon_sym_group, + ACTIONS(557), 1, + anon_sym_over, + ACTIONS(578), 1, + anon_sym_from, + ACTIONS(581), 1, + anon_sym_where, + ACTIONS(584), 1, + anon_sym_join, + ACTIONS(587), 1, + anon_sym_union, + ACTIONS(590), 1, + anon_sym_roll, + ACTIONS(593), 1, + anon_sym_compute, + ACTIONS(596), 1, + anon_sym_select, + ACTIONS(599), 1, + anon_sym_with, + ACTIONS(602), 1, + anon_sym_into, + ACTIONS(605), 1, + anon_sym_order, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(392), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(398), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(390), 19, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_on, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [40313] = 4, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(384), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(402), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(382), 31, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [40380] = 16, + ACTIONS(608), 1, + anon_sym_from, + ACTIONS(610), 1, + anon_sym_where, + ACTIONS(612), 1, + anon_sym_join, + ACTIONS(614), 1, + anon_sym_union, + ACTIONS(616), 1, + anon_sym_group, + ACTIONS(618), 1, + anon_sym_over, + ACTIONS(620), 1, + anon_sym_roll, + ACTIONS(622), 1, + anon_sym_compute, + ACTIONS(624), 1, + anon_sym_select, + ACTIONS(626), 1, + anon_sym_with, + ACTIONS(628), 1, + anon_sym_into, + ACTIONS(630), 1, + anon_sym_order, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(388), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(398), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(386), 19, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_on, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [40471] = 16, + ACTIONS(608), 1, + anon_sym_from, + ACTIONS(610), 1, + anon_sym_where, + ACTIONS(612), 1, + anon_sym_join, + ACTIONS(614), 1, + anon_sym_union, + ACTIONS(616), 1, + anon_sym_group, + ACTIONS(618), 1, + anon_sym_over, + ACTIONS(620), 1, + anon_sym_roll, + ACTIONS(622), 1, + anon_sym_compute, + ACTIONS(624), 1, + anon_sym_select, + ACTIONS(626), 1, + anon_sym_with, + ACTIONS(628), 1, + anon_sym_into, + ACTIONS(630), 1, + anon_sym_order, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(384), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(400), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(382), 19, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_on, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [40562] = 4, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(388), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(398), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(386), 31, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [40629] = 4, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(388), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(404), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(386), 29, + anon_sym_LBRACE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [40694] = 16, + ACTIONS(406), 1, + anon_sym_group, + ACTIONS(409), 1, + anon_sym_over, + ACTIONS(632), 1, + anon_sym_from, + ACTIONS(635), 1, + anon_sym_where, + ACTIONS(638), 1, + anon_sym_join, + ACTIONS(641), 1, + anon_sym_union, + ACTIONS(644), 1, + anon_sym_roll, + ACTIONS(647), 1, + anon_sym_compute, + ACTIONS(650), 1, + anon_sym_select, + ACTIONS(653), 1, + anon_sym_with, + ACTIONS(656), 1, + anon_sym_into, + ACTIONS(659), 1, + anon_sym_order, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(392), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(404), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(390), 17, + anon_sym_LBRACE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [40783] = 4, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(384), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(403), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(382), 29, + anon_sym_LBRACE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [40848] = 4, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(384), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(409), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(382), 28, + anon_sym_LBRACE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [40912] = 4, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(388), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(410), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(386), 28, + anon_sym_LBRACE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [40976] = 4, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(384), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(407), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(382), 28, + anon_sym_LBRACE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [41040] = 4, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(388), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(411), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(386), 28, + anon_sym_LBRACE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [41104] = 16, + ACTIONS(406), 1, + anon_sym_group, + ACTIONS(409), 1, + anon_sym_over, + ACTIONS(662), 1, + anon_sym_from, + ACTIONS(665), 1, + anon_sym_where, + ACTIONS(668), 1, + anon_sym_join, + ACTIONS(671), 1, + anon_sym_union, + ACTIONS(674), 1, + anon_sym_roll, + ACTIONS(677), 1, + anon_sym_compute, + ACTIONS(680), 1, + anon_sym_select, + ACTIONS(683), 1, + anon_sym_with, + ACTIONS(686), 1, + anon_sym_into, + ACTIONS(689), 1, + anon_sym_order, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(392), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(410), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(390), 16, + anon_sym_LBRACE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [41192] = 16, + ACTIONS(406), 1, + anon_sym_group, + ACTIONS(409), 1, + anon_sym_over, + ACTIONS(692), 1, + anon_sym_from, + ACTIONS(695), 1, + anon_sym_where, + ACTIONS(698), 1, + anon_sym_join, + ACTIONS(701), 1, + anon_sym_union, + ACTIONS(704), 1, + anon_sym_roll, + ACTIONS(707), 1, + anon_sym_compute, + ACTIONS(710), 1, + anon_sym_select, + ACTIONS(713), 1, + anon_sym_with, + ACTIONS(716), 1, + anon_sym_into, + ACTIONS(719), 1, + anon_sym_order, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(392), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(411), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(390), 16, + anon_sym_LBRACE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [41280] = 4, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(388), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(419), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(386), 27, + anon_sym_LBRACE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [41343] = 4, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(388), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(415), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(386), 27, + anon_sym_LBRACE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [41406] = 16, + ACTIONS(722), 1, + anon_sym_from, + ACTIONS(724), 1, + anon_sym_where, + ACTIONS(726), 1, + anon_sym_join, + ACTIONS(728), 1, + anon_sym_union, + ACTIONS(730), 1, + anon_sym_group, + ACTIONS(732), 1, + anon_sym_over, + ACTIONS(734), 1, + anon_sym_roll, + ACTIONS(736), 1, + anon_sym_compute, + ACTIONS(738), 1, + anon_sym_select, + ACTIONS(740), 1, + anon_sym_with, + ACTIONS(742), 1, + anon_sym_into, + ACTIONS(744), 1, + anon_sym_order, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(384), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(418), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(382), 15, + anon_sym_LBRACE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [41493] = 16, + ACTIONS(554), 1, + anon_sym_group, + ACTIONS(557), 1, + anon_sym_over, + ACTIONS(746), 1, + anon_sym_from, + ACTIONS(749), 1, + anon_sym_where, + ACTIONS(752), 1, + anon_sym_join, + ACTIONS(755), 1, + anon_sym_union, + ACTIONS(758), 1, + anon_sym_roll, + ACTIONS(761), 1, + anon_sym_compute, + ACTIONS(764), 1, + anon_sym_select, + ACTIONS(767), 1, + anon_sym_with, + ACTIONS(770), 1, + anon_sym_into, + ACTIONS(773), 1, + anon_sym_order, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(392), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(415), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(390), 15, + anon_sym_LBRACE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [41580] = 4, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(384), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(412), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(382), 27, + anon_sym_LBRACE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [41643] = 4, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(384), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(413), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(382), 27, + anon_sym_LBRACE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [41706] = 16, + ACTIONS(722), 1, + anon_sym_from, + ACTIONS(724), 1, + anon_sym_where, + ACTIONS(726), 1, + anon_sym_join, + ACTIONS(728), 1, + anon_sym_union, + ACTIONS(730), 1, + anon_sym_group, + ACTIONS(732), 1, + anon_sym_over, + ACTIONS(734), 1, + anon_sym_roll, + ACTIONS(736), 1, + anon_sym_compute, + ACTIONS(738), 1, + anon_sym_select, + ACTIONS(740), 1, + anon_sym_with, + ACTIONS(742), 1, + anon_sym_into, + ACTIONS(744), 1, + anon_sym_order, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(388), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(419), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(386), 15, + anon_sym_LBRACE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [41793] = 16, + ACTIONS(406), 1, + anon_sym_group, + ACTIONS(409), 1, + anon_sym_over, + ACTIONS(776), 1, + anon_sym_from, + ACTIONS(779), 1, + anon_sym_where, + ACTIONS(782), 1, + anon_sym_join, + ACTIONS(785), 1, + anon_sym_union, + ACTIONS(788), 1, + anon_sym_roll, + ACTIONS(791), 1, + anon_sym_compute, + ACTIONS(794), 1, + anon_sym_select, + ACTIONS(797), 1, + anon_sym_with, + ACTIONS(800), 1, + anon_sym_into, + ACTIONS(803), 1, + anon_sym_order, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(392), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(419), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(390), 15, + anon_sym_LBRACE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [41880] = 16, + ACTIONS(616), 1, + anon_sym_group, + ACTIONS(618), 1, + anon_sym_over, + ACTIONS(806), 1, + anon_sym_from, + ACTIONS(808), 1, + anon_sym_where, + ACTIONS(810), 1, + anon_sym_join, + ACTIONS(812), 1, + anon_sym_union, + ACTIONS(814), 1, + anon_sym_roll, + ACTIONS(816), 1, + anon_sym_compute, + ACTIONS(818), 1, + anon_sym_select, + ACTIONS(820), 1, + anon_sym_with, + ACTIONS(822), 1, + anon_sym_into, + ACTIONS(824), 1, + anon_sym_order, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(388), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(386), 14, + anon_sym_LBRACE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + STATE(424), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + [41966] = 16, + ACTIONS(616), 1, + anon_sym_group, + ACTIONS(618), 1, + anon_sym_over, + ACTIONS(806), 1, + anon_sym_from, + ACTIONS(808), 1, + anon_sym_where, + ACTIONS(810), 1, + anon_sym_join, + ACTIONS(812), 1, + anon_sym_union, + ACTIONS(814), 1, + anon_sym_roll, + ACTIONS(816), 1, + anon_sym_compute, + ACTIONS(818), 1, + anon_sym_select, + ACTIONS(820), 1, + anon_sym_with, + ACTIONS(822), 1, + anon_sym_into, + ACTIONS(824), 1, + anon_sym_order, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(384), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(382), 14, + anon_sym_LBRACE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + STATE(420), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + [42052] = 4, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(384), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(423), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(382), 26, + anon_sym_LBRACE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [42114] = 4, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(388), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + STATE(424), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + ACTIONS(386), 26, + anon_sym_LBRACE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [42176] = 16, + ACTIONS(554), 1, + anon_sym_group, + ACTIONS(557), 1, + anon_sym_over, + ACTIONS(826), 1, + anon_sym_from, + ACTIONS(829), 1, + anon_sym_where, + ACTIONS(832), 1, + anon_sym_join, + ACTIONS(835), 1, + anon_sym_union, + ACTIONS(838), 1, + anon_sym_roll, + ACTIONS(841), 1, + anon_sym_compute, + ACTIONS(844), 1, + anon_sym_select, + ACTIONS(847), 1, + anon_sym_with, + ACTIONS(850), 1, + anon_sym_into, + ACTIONS(853), 1, + anon_sym_order, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(392), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(390), 14, + anon_sym_LBRACE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + STATE(424), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + [42262] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(858), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(856), 37, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [42319] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(862), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(860), 37, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [42376] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(866), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(864), 37, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [42433] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(870), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(868), 37, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [42490] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(874), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(872), 37, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [42547] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(878), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(876), 37, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [42604] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(882), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(880), 37, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [42661] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(886), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(884), 37, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [42718] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(890), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(888), 37, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [42775] = 5, + ACTIONS(896), 1, + anon_sym_AMP, + ACTIONS(898), 1, + anon_sym_PLUS_PLUS, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(894), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(892), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [42836] = 5, + ACTIONS(896), 1, + anon_sym_AMP, + ACTIONS(898), 1, + anon_sym_PLUS_PLUS, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(902), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(900), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [42897] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(906), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(904), 37, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [42954] = 5, + ACTIONS(896), 1, + anon_sym_AMP, + ACTIONS(898), 1, + anon_sym_PLUS_PLUS, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(910), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(908), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [43015] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(914), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(912), 37, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [43072] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(918), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(916), 37, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [43129] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(922), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(920), 37, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [43186] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(926), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(924), 37, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [43243] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(938), 1, + anon_sym_or, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(942), 1, + anon_sym_of, + ACTIONS(944), 1, + anon_sym_and, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + STATE(453), 1, + sym__of, + STATE(497), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(936), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(946), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(948), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(950), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(952), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(928), 25, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [43329] = 4, + STATE(486), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(960), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(958), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [43387] = 4, + STATE(483), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(964), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(962), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [43445] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(968), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(966), 36, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + anon_sym_else, + [43501] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(938), 1, + anon_sym_or, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(944), 1, + anon_sym_and, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + STATE(451), 1, + sym__of, + STATE(501), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(946), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(948), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(950), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(952), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(972), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(970), 26, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [43585] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(976), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(974), 36, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + anon_sym_else, + [43641] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(938), 1, + anon_sym_or, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(944), 1, + anon_sym_and, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + STATE(453), 1, + sym__of, + STATE(497), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(936), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(946), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(948), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(950), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(952), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(928), 26, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [43725] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(980), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(978), 36, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + anon_sym_else, + [43781] = 4, + STATE(474), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(984), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(982), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [43839] = 4, + STATE(487), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(988), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(986), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [43897] = 4, + ACTIONS(994), 1, + anon_sym_else, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(992), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(990), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [43955] = 4, + STATE(524), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(998), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(996), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [44013] = 4, + STATE(502), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1002), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1000), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [44071] = 4, + STATE(476), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1006), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1004), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [44129] = 19, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(938), 1, + anon_sym_or, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(942), 1, + anon_sym_of, + ACTIONS(944), 1, + anon_sym_and, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1008), 1, + anon_sym_as, + STATE(497), 1, + sym__as, + STATE(500), 1, + sym__of, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(936), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(946), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(948), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(950), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(952), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(928), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [44217] = 19, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(938), 1, + anon_sym_or, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(942), 1, + anon_sym_of, + ACTIONS(944), 1, + anon_sym_and, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1008), 1, + anon_sym_as, + STATE(501), 1, + sym__as, + STATE(503), 1, + sym__of, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(946), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(948), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(950), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(952), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(972), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(970), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [44305] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(938), 1, + anon_sym_or, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(942), 1, + anon_sym_of, + ACTIONS(944), 1, + anon_sym_and, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + STATE(451), 1, + sym__of, + STATE(501), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(946), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(948), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(950), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(952), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(972), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(970), 25, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [44391] = 5, + ACTIONS(1014), 1, + anon_sym_LPAREN, + ACTIONS(1016), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1012), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1010), 33, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [44450] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1020), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1018), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [44505] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1022), 1, + anon_sym_or, + ACTIONS(1024), 1, + anon_sym_and, + STATE(453), 1, + sym__of, + STATE(497), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(936), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1026), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1028), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1032), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(928), 25, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [44588] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1038), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1036), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [44643] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1042), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1040), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [44698] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1046), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1044), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [44753] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1050), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1048), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [44808] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1054), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1052), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [44863] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1058), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1056), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [44918] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1062), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1060), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [44973] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1066), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1064), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [45028] = 5, + ACTIONS(1008), 1, + anon_sym_as, + STATE(474), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(984), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(982), 33, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [45087] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1070), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1068), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [45142] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1022), 1, + anon_sym_or, + ACTIONS(1024), 1, + anon_sym_and, + ACTIONS(1072), 1, + anon_sym_of, + STATE(451), 1, + sym__of, + STATE(501), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(972), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1026), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1028), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1032), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(970), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [45227] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1076), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1074), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [45282] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1002), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1000), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [45337] = 5, + ACTIONS(1008), 1, + anon_sym_as, + STATE(502), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1002), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1000), 33, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [45396] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1080), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1078), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [45451] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1084), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1082), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [45506] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1088), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1086), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [45561] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1092), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1090), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [45616] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1096), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1094), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [45671] = 5, + ACTIONS(1008), 1, + anon_sym_as, + STATE(476), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1006), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1004), 33, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [45730] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1100), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1098), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [45785] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1006), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1004), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [45840] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1104), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1102), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [45895] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1108), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1106), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [45950] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(984), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(982), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [46005] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1112), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1110), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [46060] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1116), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1114), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [46115] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1120), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1118), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [46170] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1124), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1122), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [46225] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1128), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1126), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [46280] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1132), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1130), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [46335] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1136), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1134), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [46390] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1140), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1138), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [46445] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1144), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1142), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [46500] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1148), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1146), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [46555] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(998), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(996), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [46610] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1152), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1150), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [46665] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1156), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1154), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [46720] = 5, + ACTIONS(1008), 1, + anon_sym_as, + STATE(524), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(998), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(996), 33, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [46779] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(988), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(986), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [46834] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1160), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1158), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [46889] = 5, + ACTIONS(1008), 1, + anon_sym_as, + STATE(487), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(988), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(986), 33, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [46948] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1022), 1, + anon_sym_or, + ACTIONS(1024), 1, + anon_sym_and, + STATE(451), 1, + sym__of, + STATE(501), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(972), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1026), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1028), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1032), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(970), 25, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [47031] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1164), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1162), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [47086] = 8, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1168), 9, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 32, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [47151] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1172), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1170), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [47206] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1022), 1, + anon_sym_or, + ACTIONS(1024), 1, + anon_sym_and, + ACTIONS(1072), 1, + anon_sym_of, + STATE(453), 1, + sym__of, + STATE(497), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(936), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1026), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1028), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1032), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(928), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [47291] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1176), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1174), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [47346] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1180), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1178), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [47401] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1184), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1182), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [47456] = 5, + ACTIONS(1008), 1, + anon_sym_as, + STATE(486), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(960), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(958), 33, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [47515] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1188), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1186), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [47570] = 19, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1008), 1, + anon_sym_as, + ACTIONS(1022), 1, + anon_sym_or, + ACTIONS(1024), 1, + anon_sym_and, + ACTIONS(1072), 1, + anon_sym_of, + STATE(501), 1, + sym__as, + STATE(503), 1, + sym__of, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(972), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1026), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1028), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1032), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(970), 23, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [47657] = 19, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1008), 1, + anon_sym_as, + ACTIONS(1022), 1, + anon_sym_or, + ACTIONS(1024), 1, + anon_sym_and, + ACTIONS(1072), 1, + anon_sym_of, + STATE(497), 1, + sym__as, + STATE(500), 1, + sym__of, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(936), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1026), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1028), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1032), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(928), 23, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [47744] = 16, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(938), 1, + anon_sym_or, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(944), 1, + anon_sym_and, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + STATE(471), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(946), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(948), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(950), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(952), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1192), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1190), 26, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [47825] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1196), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1194), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [47880] = 5, + ACTIONS(1008), 1, + anon_sym_as, + STATE(483), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(964), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(962), 33, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [47939] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1200), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1198), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [47994] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1204), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1202), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [48049] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1208), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1206), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [48104] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1212), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1210), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [48159] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1216), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1214), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [48214] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1220), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1218), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [48269] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1224), 11, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1222), 35, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [48324] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(938), 1, + anon_sym_or, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(944), 1, + anon_sym_and, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1228), 1, + anon_sym_EQ, + ACTIONS(1232), 1, + anon_sym_DOT_DOT, + ACTIONS(1234), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(946), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(948), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(950), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(952), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1230), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1226), 21, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + [48408] = 9, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 7, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1166), 31, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [48474] = 16, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1236), 1, + anon_sym_or, + ACTIONS(1238), 1, + anon_sym_and, + STATE(471), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1192), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1240), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1242), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1244), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1246), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1248), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1190), 25, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [48554] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(938), 1, + anon_sym_or, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(944), 1, + anon_sym_and, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1228), 1, + anon_sym_EQ, + ACTIONS(1232), 1, + anon_sym_DOT_DOT, + ACTIONS(1234), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(946), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(948), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(950), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(952), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1230), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1250), 21, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + [48638] = 16, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(938), 1, + anon_sym_or, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(944), 1, + anon_sym_and, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1256), 1, + anon_sym_desc, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(946), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(948), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(950), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(952), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1254), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1252), 25, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [48718] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(938), 1, + anon_sym_or, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(944), 1, + anon_sym_and, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1168), 1, + anon_sym_EQ, + ACTIONS(1232), 1, + anon_sym_DOT_DOT, + ACTIONS(1234), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(946), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(948), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(950), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(952), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 25, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [48800] = 13, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(946), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(948), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(950), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(952), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 3, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + ACTIONS(1166), 27, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + [48874] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(938), 1, + anon_sym_or, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(944), 1, + anon_sym_and, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(946), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(948), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(950), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(952), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1166), 26, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [48952] = 12, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(948), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(950), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(952), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 3, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + ACTIONS(1166), 29, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [49024] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(938), 1, + anon_sym_or, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(944), 1, + anon_sym_and, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1228), 1, + anon_sym_EQ, + ACTIONS(1232), 1, + anon_sym_DOT_DOT, + ACTIONS(1234), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(946), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(948), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(950), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(952), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1230), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1258), 21, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + [49108] = 16, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1022), 1, + anon_sym_or, + ACTIONS(1024), 1, + anon_sym_and, + STATE(471), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1026), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1028), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1032), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1192), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1190), 25, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [49188] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(938), 1, + anon_sym_or, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(944), 1, + anon_sym_and, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1228), 1, + anon_sym_EQ, + ACTIONS(1232), 1, + anon_sym_DOT_DOT, + ACTIONS(1234), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(946), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(948), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(950), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(952), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1230), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1260), 21, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + [49272] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(938), 1, + anon_sym_or, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(944), 1, + anon_sym_and, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1228), 1, + anon_sym_EQ, + ACTIONS(1232), 1, + anon_sym_DOT_DOT, + ACTIONS(1234), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(946), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(948), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(950), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(952), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1230), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1262), 21, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + [49356] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(938), 1, + anon_sym_or, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(944), 1, + anon_sym_and, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1232), 1, + anon_sym_DOT_DOT, + ACTIONS(1234), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1266), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(946), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(948), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(950), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(952), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1264), 25, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [49438] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(938), 1, + anon_sym_or, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(944), 1, + anon_sym_and, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1232), 1, + anon_sym_DOT_DOT, + ACTIONS(1234), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1270), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(946), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(948), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(950), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(952), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1268), 25, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [49520] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(938), 1, + anon_sym_or, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(944), 1, + anon_sym_and, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1232), 1, + anon_sym_DOT_DOT, + ACTIONS(1234), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1274), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(946), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(948), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(950), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(952), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1272), 25, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [49602] = 10, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(952), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 5, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1166), 31, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [49670] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(938), 1, + anon_sym_or, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(944), 1, + anon_sym_and, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(946), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(948), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(950), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(952), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1278), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1276), 26, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [49748] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(938), 1, + anon_sym_or, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(944), 1, + anon_sym_and, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(946), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(948), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(950), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(952), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1282), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1280), 26, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [49826] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(938), 1, + anon_sym_or, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(944), 1, + anon_sym_and, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(946), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(948), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(950), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(952), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1286), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1284), 26, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [49904] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(938), 1, + anon_sym_or, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(944), 1, + anon_sym_and, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(946), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(948), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(950), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(952), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1254), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1252), 26, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [49982] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1008), 1, + anon_sym_as, + ACTIONS(1236), 1, + anon_sym_or, + ACTIONS(1238), 1, + anon_sym_and, + STATE(471), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1192), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1240), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1242), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1244), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1246), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1248), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1190), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [50064] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(938), 1, + anon_sym_or, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(944), 1, + anon_sym_and, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1228), 1, + anon_sym_EQ, + ACTIONS(1232), 1, + anon_sym_DOT_DOT, + ACTIONS(1234), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(946), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(948), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(950), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(952), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(954), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1230), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1288), 21, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + [50148] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1236), 1, + anon_sym_or, + ACTIONS(1238), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1168), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1240), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1242), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1244), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1246), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1248), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 25, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [50225] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1236), 1, + anon_sym_or, + ACTIONS(1238), 1, + anon_sym_and, + ACTIONS(1266), 1, + anon_sym_EQ, + ACTIONS(1290), 1, + anon_sym_DOT_DOT, + ACTIONS(1292), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1240), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1242), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1244), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1246), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1248), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1264), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [50306] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1236), 1, + anon_sym_or, + ACTIONS(1238), 1, + anon_sym_and, + ACTIONS(1290), 1, + anon_sym_DOT_DOT, + ACTIONS(1292), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1294), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1240), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1242), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1244), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1246), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1248), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1296), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1250), 20, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + [50389] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1236), 1, + anon_sym_or, + ACTIONS(1238), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1240), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1242), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1244), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1246), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1248), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1254), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1252), 25, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [50466] = 16, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1236), 1, + anon_sym_or, + ACTIONS(1238), 1, + anon_sym_and, + ACTIONS(1256), 1, + anon_sym_desc, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1240), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1242), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1244), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1246), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1248), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1254), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1252), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [50545] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1236), 1, + anon_sym_or, + ACTIONS(1238), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1240), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1242), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1244), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1246), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1248), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1286), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1284), 25, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [50622] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1236), 1, + anon_sym_or, + ACTIONS(1238), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1240), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1242), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1244), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1246), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1248), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1282), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1280), 25, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [50699] = 9, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1248), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 7, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1166), 30, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [50764] = 10, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1246), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1248), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 5, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1166), 30, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [50831] = 12, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1242), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1244), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1246), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1248), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 3, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + ACTIONS(1166), 28, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [50902] = 13, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1240), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1242), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1244), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1246), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1248), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 3, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + ACTIONS(1166), 26, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + [50975] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1168), 1, + anon_sym_EQ, + ACTIONS(1236), 1, + anon_sym_or, + ACTIONS(1238), 1, + anon_sym_and, + ACTIONS(1290), 1, + anon_sym_DOT_DOT, + ACTIONS(1292), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1240), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1242), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1244), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1246), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1248), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [51056] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1008), 1, + anon_sym_as, + ACTIONS(1298), 1, + anon_sym_or, + ACTIONS(1300), 1, + anon_sym_and, + STATE(471), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1192), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1302), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1304), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1306), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1308), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1310), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1190), 23, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [51137] = 16, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1298), 1, + anon_sym_or, + ACTIONS(1300), 1, + anon_sym_and, + STATE(471), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1192), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1302), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1304), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1306), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1308), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1310), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1190), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [51216] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1022), 1, + anon_sym_or, + ACTIONS(1024), 1, + anon_sym_and, + ACTIONS(1274), 1, + anon_sym_EQ, + ACTIONS(1312), 1, + anon_sym_DOT_DOT, + ACTIONS(1314), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1026), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1028), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1032), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1272), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [51297] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1022), 1, + anon_sym_or, + ACTIONS(1024), 1, + anon_sym_and, + ACTIONS(1168), 1, + anon_sym_EQ, + ACTIONS(1312), 1, + anon_sym_DOT_DOT, + ACTIONS(1314), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1026), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1028), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1032), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [51378] = 13, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1026), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1028), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1032), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 3, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + ACTIONS(1166), 26, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + [51451] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1022), 1, + anon_sym_or, + ACTIONS(1024), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1026), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1028), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1032), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1166), 25, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [51528] = 12, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1028), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1032), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 3, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + ACTIONS(1166), 28, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [51599] = 10, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1032), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 5, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1166), 30, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [51666] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1022), 1, + anon_sym_or, + ACTIONS(1024), 1, + anon_sym_and, + ACTIONS(1270), 1, + anon_sym_EQ, + ACTIONS(1312), 1, + anon_sym_DOT_DOT, + ACTIONS(1314), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1026), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1028), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1032), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1268), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [51747] = 9, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 7, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1166), 30, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [51812] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1022), 1, + anon_sym_or, + ACTIONS(1024), 1, + anon_sym_and, + ACTIONS(1266), 1, + anon_sym_EQ, + ACTIONS(1312), 1, + anon_sym_DOT_DOT, + ACTIONS(1314), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1026), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1028), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1032), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1264), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [51893] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1022), 1, + anon_sym_or, + ACTIONS(1024), 1, + anon_sym_and, + ACTIONS(1312), 1, + anon_sym_DOT_DOT, + ACTIONS(1314), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1316), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1026), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1028), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1032), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1318), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1260), 20, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + [51976] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1022), 1, + anon_sym_or, + ACTIONS(1024), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1026), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1028), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1032), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1282), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1280), 25, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [52053] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1022), 1, + anon_sym_or, + ACTIONS(1024), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1026), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1028), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1032), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1286), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1284), 25, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [52130] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1022), 1, + anon_sym_or, + ACTIONS(1024), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1026), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1028), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1032), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1278), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1276), 25, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [52207] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1022), 1, + anon_sym_or, + ACTIONS(1024), 1, + anon_sym_and, + ACTIONS(1312), 1, + anon_sym_DOT_DOT, + ACTIONS(1314), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1316), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1026), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1028), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1032), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1318), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1250), 20, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + [52290] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1022), 1, + anon_sym_or, + ACTIONS(1024), 1, + anon_sym_and, + ACTIONS(1312), 1, + anon_sym_DOT_DOT, + ACTIONS(1314), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1316), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1026), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1028), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1032), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1318), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1226), 20, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + [52373] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1022), 1, + anon_sym_or, + ACTIONS(1024), 1, + anon_sym_and, + ACTIONS(1312), 1, + anon_sym_DOT_DOT, + ACTIONS(1314), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1316), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1026), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1028), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1032), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1318), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1258), 20, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + [52456] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1022), 1, + anon_sym_or, + ACTIONS(1024), 1, + anon_sym_and, + ACTIONS(1312), 1, + anon_sym_DOT_DOT, + ACTIONS(1314), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1316), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1026), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1028), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1032), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1318), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1288), 20, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + [52539] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1022), 1, + anon_sym_or, + ACTIONS(1024), 1, + anon_sym_and, + ACTIONS(1312), 1, + anon_sym_DOT_DOT, + ACTIONS(1314), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1316), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1026), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1028), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1032), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1318), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1262), 20, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + [52622] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1236), 1, + anon_sym_or, + ACTIONS(1238), 1, + anon_sym_and, + ACTIONS(1290), 1, + anon_sym_DOT_DOT, + ACTIONS(1292), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1294), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1240), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1242), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1244), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1246), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1248), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1296), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1260), 20, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + [52705] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1236), 1, + anon_sym_or, + ACTIONS(1238), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1240), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1242), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1244), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1246), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1248), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1278), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1276), 25, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [52782] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1236), 1, + anon_sym_or, + ACTIONS(1238), 1, + anon_sym_and, + ACTIONS(1290), 1, + anon_sym_DOT_DOT, + ACTIONS(1292), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1294), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1240), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1242), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1244), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1246), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1248), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1296), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1226), 20, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + [52865] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1236), 1, + anon_sym_or, + ACTIONS(1238), 1, + anon_sym_and, + ACTIONS(1290), 1, + anon_sym_DOT_DOT, + ACTIONS(1292), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1294), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1240), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1242), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1244), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1246), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1248), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1296), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1258), 20, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + [52948] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1236), 1, + anon_sym_or, + ACTIONS(1238), 1, + anon_sym_and, + ACTIONS(1290), 1, + anon_sym_DOT_DOT, + ACTIONS(1292), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1294), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1240), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1242), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1244), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1246), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1248), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1296), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1288), 20, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + [53031] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1236), 1, + anon_sym_or, + ACTIONS(1238), 1, + anon_sym_and, + ACTIONS(1290), 1, + anon_sym_DOT_DOT, + ACTIONS(1292), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1294), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1240), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1242), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1244), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1246), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1248), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1296), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1262), 20, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + [53114] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1236), 1, + anon_sym_or, + ACTIONS(1238), 1, + anon_sym_and, + ACTIONS(1274), 1, + anon_sym_EQ, + ACTIONS(1290), 1, + anon_sym_DOT_DOT, + ACTIONS(1292), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1240), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1242), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1244), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1246), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1248), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1272), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [53195] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1236), 1, + anon_sym_or, + ACTIONS(1238), 1, + anon_sym_and, + ACTIONS(1270), 1, + anon_sym_EQ, + ACTIONS(1290), 1, + anon_sym_DOT_DOT, + ACTIONS(1292), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1240), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1242), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1244), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1246), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1248), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1268), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [53276] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1320), 1, + anon_sym_EQ, + ACTIONS(1322), 1, + anon_sym_or, + ACTIONS(1326), 1, + anon_sym_DOT_DOT, + ACTIONS(1328), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1330), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1332), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1334), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1336), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1338), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1340), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1324), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1260), 19, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + [53358] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1270), 1, + anon_sym_EQ, + ACTIONS(1322), 1, + anon_sym_or, + ACTIONS(1326), 1, + anon_sym_DOT_DOT, + ACTIONS(1328), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1330), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1332), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1334), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1336), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1338), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1340), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1268), 23, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [53438] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1298), 1, + anon_sym_or, + ACTIONS(1300), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1278), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1302), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1304), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1306), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1308), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1310), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1276), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [53514] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1298), 1, + anon_sym_or, + ACTIONS(1300), 1, + anon_sym_and, + ACTIONS(1342), 1, + anon_sym_EQ, + ACTIONS(1346), 1, + anon_sym_DOT_DOT, + ACTIONS(1348), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1302), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1304), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1306), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1308), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1310), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1344), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1262), 19, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + [53596] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1320), 1, + anon_sym_EQ, + ACTIONS(1322), 1, + anon_sym_or, + ACTIONS(1326), 1, + anon_sym_DOT_DOT, + ACTIONS(1328), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1330), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1332), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1334), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1336), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1338), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1340), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1324), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1262), 19, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + [53678] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1320), 1, + anon_sym_EQ, + ACTIONS(1322), 1, + anon_sym_or, + ACTIONS(1326), 1, + anon_sym_DOT_DOT, + ACTIONS(1328), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1330), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1332), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1334), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1336), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1338), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1340), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1324), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1288), 19, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + [53760] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1320), 1, + anon_sym_EQ, + ACTIONS(1322), 1, + anon_sym_or, + ACTIONS(1326), 1, + anon_sym_DOT_DOT, + ACTIONS(1328), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1330), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1332), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1334), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1336), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1338), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1340), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1324), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1258), 19, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + [53842] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1298), 1, + anon_sym_or, + ACTIONS(1300), 1, + anon_sym_and, + ACTIONS(1342), 1, + anon_sym_EQ, + ACTIONS(1346), 1, + anon_sym_DOT_DOT, + ACTIONS(1348), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1302), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1304), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1306), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1308), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1310), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1344), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1260), 19, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + [53924] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1320), 1, + anon_sym_EQ, + ACTIONS(1322), 1, + anon_sym_or, + ACTIONS(1326), 1, + anon_sym_DOT_DOT, + ACTIONS(1328), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1330), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1332), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1334), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1336), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1338), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1340), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1324), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1226), 19, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + [54006] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1322), 1, + anon_sym_or, + ACTIONS(1330), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1278), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1332), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1334), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1336), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1338), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1340), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1276), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [54082] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1266), 1, + anon_sym_EQ, + ACTIONS(1298), 1, + anon_sym_or, + ACTIONS(1300), 1, + anon_sym_and, + ACTIONS(1346), 1, + anon_sym_DOT_DOT, + ACTIONS(1348), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1302), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1304), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1306), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1308), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1310), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1264), 23, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [54162] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1270), 1, + anon_sym_EQ, + ACTIONS(1298), 1, + anon_sym_or, + ACTIONS(1300), 1, + anon_sym_and, + ACTIONS(1346), 1, + anon_sym_DOT_DOT, + ACTIONS(1348), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1302), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1304), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1306), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1308), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1310), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1268), 23, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [54242] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1274), 1, + anon_sym_EQ, + ACTIONS(1298), 1, + anon_sym_or, + ACTIONS(1300), 1, + anon_sym_and, + ACTIONS(1346), 1, + anon_sym_DOT_DOT, + ACTIONS(1348), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1302), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1304), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1306), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1308), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1310), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1272), 23, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [54322] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1266), 1, + anon_sym_EQ, + ACTIONS(1322), 1, + anon_sym_or, + ACTIONS(1326), 1, + anon_sym_DOT_DOT, + ACTIONS(1328), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1330), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1332), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1334), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1336), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1338), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1340), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1264), 23, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [54402] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1274), 1, + anon_sym_EQ, + ACTIONS(1322), 1, + anon_sym_or, + ACTIONS(1326), 1, + anon_sym_DOT_DOT, + ACTIONS(1328), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1330), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1332), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1334), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1336), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1338), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1340), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1272), 23, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [54482] = 16, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1256), 1, + anon_sym_desc, + ACTIONS(1322), 1, + anon_sym_or, + ACTIONS(1330), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1254), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1332), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1334), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1336), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1338), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1340), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1252), 23, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [54560] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1298), 1, + anon_sym_or, + ACTIONS(1300), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1286), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1302), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1304), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1306), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1308), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1310), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1284), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [54636] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1322), 1, + anon_sym_or, + ACTIONS(1330), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1254), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1332), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1334), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1336), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1338), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1340), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1252), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [54712] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1298), 1, + anon_sym_or, + ACTIONS(1300), 1, + anon_sym_and, + ACTIONS(1342), 1, + anon_sym_EQ, + ACTIONS(1346), 1, + anon_sym_DOT_DOT, + ACTIONS(1348), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1302), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1304), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1306), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1308), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1310), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1344), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1250), 19, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + [54794] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1298), 1, + anon_sym_or, + ACTIONS(1300), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1282), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1302), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1304), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1306), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1308), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1310), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1280), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [54870] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1298), 1, + anon_sym_or, + ACTIONS(1300), 1, + anon_sym_and, + ACTIONS(1342), 1, + anon_sym_EQ, + ACTIONS(1346), 1, + anon_sym_DOT_DOT, + ACTIONS(1348), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1302), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1304), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1306), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1308), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1310), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1344), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1226), 19, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + [54952] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1298), 1, + anon_sym_or, + ACTIONS(1300), 1, + anon_sym_and, + ACTIONS(1342), 1, + anon_sym_EQ, + ACTIONS(1346), 1, + anon_sym_DOT_DOT, + ACTIONS(1348), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1302), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1304), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1306), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1308), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1310), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1344), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1258), 19, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + [55034] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1298), 1, + anon_sym_or, + ACTIONS(1300), 1, + anon_sym_and, + ACTIONS(1342), 1, + anon_sym_EQ, + ACTIONS(1346), 1, + anon_sym_DOT_DOT, + ACTIONS(1348), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1302), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1304), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1306), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1308), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1310), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1344), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1288), 19, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + [55116] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1168), 1, + anon_sym_EQ, + ACTIONS(1298), 1, + anon_sym_or, + ACTIONS(1300), 1, + anon_sym_and, + ACTIONS(1346), 1, + anon_sym_DOT_DOT, + ACTIONS(1348), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1302), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1304), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1306), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1308), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1310), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 23, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [55196] = 13, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1302), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1304), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1306), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1308), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1310), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 3, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + ACTIONS(1166), 25, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + [55268] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1168), 1, + anon_sym_EQ, + ACTIONS(1322), 1, + anon_sym_or, + ACTIONS(1326), 1, + anon_sym_DOT_DOT, + ACTIONS(1328), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1330), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1332), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1334), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1336), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1338), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1340), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 23, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [55348] = 13, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1332), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1334), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1336), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1338), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1340), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 3, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + ACTIONS(1166), 25, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + [55420] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1322), 1, + anon_sym_or, + ACTIONS(1330), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1168), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1332), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1334), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1336), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1338), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1340), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [55496] = 12, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1334), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1336), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1338), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1340), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 3, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + ACTIONS(1166), 27, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [55566] = 10, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1338), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1340), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 5, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1166), 29, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [55632] = 9, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1340), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 7, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1166), 29, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [55696] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1322), 1, + anon_sym_or, + ACTIONS(1330), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1282), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1332), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1334), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1336), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1338), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1340), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1280), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [55772] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1322), 1, + anon_sym_or, + ACTIONS(1330), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1286), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1332), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1334), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1336), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1338), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1340), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1284), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [55848] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1298), 1, + anon_sym_or, + ACTIONS(1300), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1168), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1302), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1304), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1306), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1308), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1310), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [55924] = 12, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1304), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1306), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1308), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1310), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 3, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + ACTIONS(1166), 27, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [55994] = 9, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1310), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 7, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1166), 29, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [56058] = 10, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1308), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1310), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 5, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1166), 29, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [56124] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1274), 1, + anon_sym_EQ, + ACTIONS(1350), 1, + anon_sym_or, + ACTIONS(1352), 1, + anon_sym_DOT_DOT, + ACTIONS(1354), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1356), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1358), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1360), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1362), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1364), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1366), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1272), 22, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [56203] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1350), 1, + anon_sym_or, + ACTIONS(1352), 1, + anon_sym_DOT_DOT, + ACTIONS(1354), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1356), 1, + anon_sym_and, + ACTIONS(1368), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1358), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1360), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1362), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1364), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1366), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1370), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1258), 18, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + [56284] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1350), 1, + anon_sym_or, + ACTIONS(1356), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1168), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1358), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1360), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1362), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1364), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1366), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 23, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [56359] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1350), 1, + anon_sym_or, + ACTIONS(1352), 1, + anon_sym_DOT_DOT, + ACTIONS(1354), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1356), 1, + anon_sym_and, + ACTIONS(1368), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1358), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1360), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1362), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1364), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1366), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1370), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1226), 18, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + [56440] = 9, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1366), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 7, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1166), 28, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [56503] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1350), 1, + anon_sym_or, + ACTIONS(1352), 1, + anon_sym_DOT_DOT, + ACTIONS(1354), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1356), 1, + anon_sym_and, + ACTIONS(1368), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1358), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1360), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1362), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1364), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1366), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1370), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1260), 18, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + [56584] = 13, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1358), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1360), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1362), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1364), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1366), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 3, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + ACTIONS(1166), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + [56655] = 10, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1364), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1366), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 5, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1166), 28, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [56720] = 12, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1360), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1362), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1364), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1366), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 3, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + ACTIONS(1166), 26, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [56789] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1350), 1, + anon_sym_or, + ACTIONS(1356), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1282), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1358), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1360), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1362), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1364), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1366), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1280), 23, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [56864] = 19, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1008), 1, + anon_sym_as, + ACTIONS(1372), 1, + anon_sym_or, + ACTIONS(1374), 1, + anon_sym_of, + ACTIONS(1376), 1, + anon_sym_and, + STATE(501), 1, + sym__as, + STATE(503), 1, + sym__of, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(972), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1378), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1380), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1382), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1384), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(970), 19, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [56947] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1350), 1, + anon_sym_or, + ACTIONS(1356), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1278), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1358), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1360), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1362), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1364), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1366), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1276), 23, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [57022] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1266), 1, + anon_sym_EQ, + ACTIONS(1350), 1, + anon_sym_or, + ACTIONS(1352), 1, + anon_sym_DOT_DOT, + ACTIONS(1354), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1356), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1358), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1360), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1362), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1364), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1366), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1264), 22, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [57101] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1350), 1, + anon_sym_or, + ACTIONS(1352), 1, + anon_sym_DOT_DOT, + ACTIONS(1354), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1356), 1, + anon_sym_and, + ACTIONS(1368), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1358), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1360), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1362), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1364), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1366), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1370), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1288), 18, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + [57182] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1168), 1, + anon_sym_EQ, + ACTIONS(1350), 1, + anon_sym_or, + ACTIONS(1352), 1, + anon_sym_DOT_DOT, + ACTIONS(1354), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1356), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1358), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1360), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1362), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1364), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1366), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 22, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [57261] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1270), 1, + anon_sym_EQ, + ACTIONS(1350), 1, + anon_sym_or, + ACTIONS(1352), 1, + anon_sym_DOT_DOT, + ACTIONS(1354), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1356), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1358), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1360), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1362), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1364), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1366), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1268), 22, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [57340] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1350), 1, + anon_sym_or, + ACTIONS(1352), 1, + anon_sym_DOT_DOT, + ACTIONS(1354), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1356), 1, + anon_sym_and, + ACTIONS(1368), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1358), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1360), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1362), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1364), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1366), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1370), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1262), 18, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + [57421] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1350), 1, + anon_sym_or, + ACTIONS(1356), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1286), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1358), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1360), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1362), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1364), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1366), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1284), 23, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_on, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [57496] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1372), 1, + anon_sym_or, + ACTIONS(1374), 1, + anon_sym_of, + ACTIONS(1376), 1, + anon_sym_and, + STATE(453), 1, + sym__of, + STATE(497), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(936), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1378), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1380), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1382), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1384), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(928), 20, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [57577] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1372), 1, + anon_sym_or, + ACTIONS(1374), 1, + anon_sym_of, + ACTIONS(1376), 1, + anon_sym_and, + STATE(451), 1, + sym__of, + STATE(501), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(972), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1378), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1380), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1382), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1384), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(970), 20, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [57658] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1372), 1, + anon_sym_or, + ACTIONS(1376), 1, + anon_sym_and, + STATE(453), 1, + sym__of, + STATE(497), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(936), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1378), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1380), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1382), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1384), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(928), 21, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [57737] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1372), 1, + anon_sym_or, + ACTIONS(1376), 1, + anon_sym_and, + STATE(451), 1, + sym__of, + STATE(501), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(972), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1378), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1380), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1382), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1384), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(970), 21, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [57816] = 19, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1008), 1, + anon_sym_as, + ACTIONS(1372), 1, + anon_sym_or, + ACTIONS(1374), 1, + anon_sym_of, + ACTIONS(1376), 1, + anon_sym_and, + STATE(497), 1, + sym__as, + STATE(500), 1, + sym__of, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(936), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1378), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1380), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1382), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1384), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(928), 19, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [57899] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1388), 1, + anon_sym_or, + ACTIONS(1390), 1, + anon_sym_and, + STATE(451), 1, + sym__of, + STATE(501), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(972), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1392), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1394), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1396), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1398), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1400), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(970), 20, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [57977] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1388), 1, + anon_sym_or, + ACTIONS(1390), 1, + anon_sym_and, + STATE(453), 1, + sym__of, + STATE(497), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(936), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1392), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1394), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1396), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1398), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1400), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(928), 20, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [58055] = 19, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1008), 1, + anon_sym_as, + ACTIONS(1388), 1, + anon_sym_or, + ACTIONS(1390), 1, + anon_sym_and, + ACTIONS(1402), 1, + anon_sym_of, + STATE(497), 1, + sym__as, + STATE(500), 1, + sym__of, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(936), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1392), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1394), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1396), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1398), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1400), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(928), 18, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [58137] = 22, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1008), 1, + anon_sym_as, + ACTIONS(1022), 1, + anon_sym_or, + ACTIONS(1024), 1, + anon_sym_and, + ACTIONS(1072), 1, + anon_sym_of, + ACTIONS(1312), 1, + anon_sym_DOT_DOT, + ACTIONS(1314), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1316), 1, + anon_sym_EQ, + STATE(497), 1, + sym__as, + STATE(500), 1, + sym__of, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1026), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1028), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1032), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1318), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(928), 13, + anon_sym_RBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + [58225] = 16, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1372), 1, + anon_sym_or, + ACTIONS(1376), 1, + anon_sym_and, + STATE(471), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1192), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1378), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1380), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1382), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1384), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1190), 21, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [58301] = 22, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1008), 1, + anon_sym_as, + ACTIONS(1022), 1, + anon_sym_or, + ACTIONS(1024), 1, + anon_sym_and, + ACTIONS(1072), 1, + anon_sym_of, + ACTIONS(1312), 1, + anon_sym_DOT_DOT, + ACTIONS(1314), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1316), 1, + anon_sym_EQ, + STATE(501), 1, + sym__as, + STATE(503), 1, + sym__of, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1026), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1028), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1032), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1034), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1318), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(970), 13, + anon_sym_RBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + [58389] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1388), 1, + anon_sym_or, + ACTIONS(1390), 1, + anon_sym_and, + ACTIONS(1402), 1, + anon_sym_of, + STATE(451), 1, + sym__of, + STATE(501), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(972), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1392), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1394), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1396), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1398), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1400), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(970), 19, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [58469] = 19, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1008), 1, + anon_sym_as, + ACTIONS(1388), 1, + anon_sym_or, + ACTIONS(1390), 1, + anon_sym_and, + ACTIONS(1402), 1, + anon_sym_of, + STATE(501), 1, + sym__as, + STATE(503), 1, + sym__of, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(972), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1392), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1394), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1396), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1398), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1400), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(970), 18, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [58551] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1388), 1, + anon_sym_or, + ACTIONS(1390), 1, + anon_sym_and, + ACTIONS(1402), 1, + anon_sym_of, + STATE(453), 1, + sym__of, + STATE(497), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(936), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1392), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1394), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1396), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1398), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1400), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(928), 19, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [58631] = 16, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1256), 1, + anon_sym_desc, + ACTIONS(1372), 1, + anon_sym_or, + ACTIONS(1376), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1254), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1378), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1380), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1382), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1384), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1252), 20, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [58706] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1372), 1, + anon_sym_or, + ACTIONS(1376), 1, + anon_sym_and, + ACTIONS(1404), 1, + anon_sym_EQ, + ACTIONS(1408), 1, + anon_sym_DOT_DOT, + ACTIONS(1410), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1378), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1380), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1382), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1384), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1406), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1250), 16, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + [58785] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1372), 1, + anon_sym_or, + ACTIONS(1376), 1, + anon_sym_and, + ACTIONS(1404), 1, + anon_sym_EQ, + ACTIONS(1408), 1, + anon_sym_DOT_DOT, + ACTIONS(1410), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1378), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1380), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1382), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1384), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1406), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1262), 16, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + [58864] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1372), 1, + anon_sym_or, + ACTIONS(1376), 1, + anon_sym_and, + ACTIONS(1404), 1, + anon_sym_EQ, + ACTIONS(1408), 1, + anon_sym_DOT_DOT, + ACTIONS(1410), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1378), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1380), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1382), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1384), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1406), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1288), 16, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + [58943] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1372), 1, + anon_sym_or, + ACTIONS(1376), 1, + anon_sym_and, + ACTIONS(1404), 1, + anon_sym_EQ, + ACTIONS(1408), 1, + anon_sym_DOT_DOT, + ACTIONS(1410), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1378), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1380), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1382), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1384), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1406), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1258), 16, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + [59022] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1372), 1, + anon_sym_or, + ACTIONS(1376), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1254), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1378), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1380), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1382), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1384), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1252), 21, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [59095] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1008), 1, + anon_sym_as, + ACTIONS(1412), 1, + anon_sym_or, + ACTIONS(1414), 1, + anon_sym_and, + STATE(471), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1192), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1416), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1418), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1420), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1422), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1424), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1190), 19, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [59172] = 16, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1412), 1, + anon_sym_or, + ACTIONS(1414), 1, + anon_sym_and, + STATE(471), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1192), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1416), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1418), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1420), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1422), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1424), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1190), 20, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [59247] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1168), 1, + anon_sym_EQ, + ACTIONS(1372), 1, + anon_sym_or, + ACTIONS(1376), 1, + anon_sym_and, + ACTIONS(1408), 1, + anon_sym_DOT_DOT, + ACTIONS(1410), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1378), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1380), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1382), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1384), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 20, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [59324] = 13, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1378), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1380), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1382), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1384), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 3, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + ACTIONS(1166), 22, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + [59393] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1372), 1, + anon_sym_or, + ACTIONS(1376), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1168), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1378), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1380), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1382), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1384), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 21, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [59466] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1372), 1, + anon_sym_or, + ACTIONS(1376), 1, + anon_sym_and, + ACTIONS(1404), 1, + anon_sym_EQ, + ACTIONS(1408), 1, + anon_sym_DOT_DOT, + ACTIONS(1410), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1378), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1380), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1382), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1384), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1406), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1226), 16, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + [59545] = 12, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1380), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1382), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1384), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 3, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + ACTIONS(1166), 24, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [59612] = 10, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1384), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 5, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1166), 26, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [59675] = 9, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 7, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1166), 26, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [59736] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1372), 1, + anon_sym_or, + ACTIONS(1376), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1282), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1378), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1380), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1382), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1384), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1280), 21, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [59809] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1372), 1, + anon_sym_or, + ACTIONS(1376), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1278), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1378), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1380), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1382), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1384), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1276), 21, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [59882] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1372), 1, + anon_sym_or, + ACTIONS(1376), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1286), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1378), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1380), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1382), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1384), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1284), 21, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [59955] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1266), 1, + anon_sym_EQ, + ACTIONS(1372), 1, + anon_sym_or, + ACTIONS(1376), 1, + anon_sym_and, + ACTIONS(1408), 1, + anon_sym_DOT_DOT, + ACTIONS(1410), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1378), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1380), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1382), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1384), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1264), 20, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [60032] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1270), 1, + anon_sym_EQ, + ACTIONS(1372), 1, + anon_sym_or, + ACTIONS(1376), 1, + anon_sym_and, + ACTIONS(1408), 1, + anon_sym_DOT_DOT, + ACTIONS(1410), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1378), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1380), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1382), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1384), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1268), 20, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [60109] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1274), 1, + anon_sym_EQ, + ACTIONS(1372), 1, + anon_sym_or, + ACTIONS(1376), 1, + anon_sym_and, + ACTIONS(1408), 1, + anon_sym_DOT_DOT, + ACTIONS(1410), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1378), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1380), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1382), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1384), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1272), 20, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [60186] = 16, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1388), 1, + anon_sym_or, + ACTIONS(1390), 1, + anon_sym_and, + STATE(471), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1192), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1392), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1394), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1396), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1398), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1400), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1190), 20, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [60261] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1372), 1, + anon_sym_or, + ACTIONS(1376), 1, + anon_sym_and, + ACTIONS(1404), 1, + anon_sym_EQ, + ACTIONS(1408), 1, + anon_sym_DOT_DOT, + ACTIONS(1410), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1378), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1380), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1382), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1384), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1386), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1406), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1260), 16, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_of, + [60340] = 12, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1394), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1396), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1398), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1400), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 3, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + ACTIONS(1166), 23, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [60406] = 16, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1426), 1, + anon_sym_or, + ACTIONS(1428), 1, + anon_sym_and, + STATE(471), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1192), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1430), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1432), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1434), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1436), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1438), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1190), 19, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [60480] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1412), 1, + anon_sym_or, + ACTIONS(1414), 1, + anon_sym_and, + ACTIONS(1440), 1, + anon_sym_EQ, + ACTIONS(1444), 1, + anon_sym_DOT_DOT, + ACTIONS(1446), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1416), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1418), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1420), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1422), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1424), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1442), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1260), 15, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + [60558] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1412), 1, + anon_sym_or, + ACTIONS(1414), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1278), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1416), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1418), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1420), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1422), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1424), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1276), 20, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [60630] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1412), 1, + anon_sym_or, + ACTIONS(1414), 1, + anon_sym_and, + ACTIONS(1440), 1, + anon_sym_EQ, + ACTIONS(1444), 1, + anon_sym_DOT_DOT, + ACTIONS(1446), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1416), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1418), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1420), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1422), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1424), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1442), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1226), 15, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + [60708] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1412), 1, + anon_sym_or, + ACTIONS(1414), 1, + anon_sym_and, + ACTIONS(1440), 1, + anon_sym_EQ, + ACTIONS(1444), 1, + anon_sym_DOT_DOT, + ACTIONS(1446), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1416), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1418), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1420), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1422), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1424), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1442), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1258), 15, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + [60786] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1412), 1, + anon_sym_or, + ACTIONS(1414), 1, + anon_sym_and, + ACTIONS(1440), 1, + anon_sym_EQ, + ACTIONS(1444), 1, + anon_sym_DOT_DOT, + ACTIONS(1446), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1416), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1418), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1420), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1422), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1424), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1442), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1288), 15, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + [60864] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1412), 1, + anon_sym_or, + ACTIONS(1414), 1, + anon_sym_and, + ACTIONS(1440), 1, + anon_sym_EQ, + ACTIONS(1444), 1, + anon_sym_DOT_DOT, + ACTIONS(1446), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1416), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1418), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1420), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1422), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1424), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1442), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1262), 15, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + [60942] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1412), 1, + anon_sym_or, + ACTIONS(1414), 1, + anon_sym_and, + ACTIONS(1440), 1, + anon_sym_EQ, + ACTIONS(1444), 1, + anon_sym_DOT_DOT, + ACTIONS(1446), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1416), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1418), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1420), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1422), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1424), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1442), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1250), 15, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + [61020] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1412), 1, + anon_sym_or, + ACTIONS(1414), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1254), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1416), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1418), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1420), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1422), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1424), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1252), 20, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [61092] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1388), 1, + anon_sym_or, + ACTIONS(1390), 1, + anon_sym_and, + ACTIONS(1448), 1, + anon_sym_EQ, + ACTIONS(1452), 1, + anon_sym_DOT_DOT, + ACTIONS(1454), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1392), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1394), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1396), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1398), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1400), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1450), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1250), 15, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + [61170] = 16, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1256), 1, + anon_sym_desc, + ACTIONS(1412), 1, + anon_sym_or, + ACTIONS(1414), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1254), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1416), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1418), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1420), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1422), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1424), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1252), 19, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [61244] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1274), 1, + anon_sym_EQ, + ACTIONS(1412), 1, + anon_sym_or, + ACTIONS(1414), 1, + anon_sym_and, + ACTIONS(1444), 1, + anon_sym_DOT_DOT, + ACTIONS(1446), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1416), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1418), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1420), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1422), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1424), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1272), 19, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [61320] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1270), 1, + anon_sym_EQ, + ACTIONS(1412), 1, + anon_sym_or, + ACTIONS(1414), 1, + anon_sym_and, + ACTIONS(1444), 1, + anon_sym_DOT_DOT, + ACTIONS(1446), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1416), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1418), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1420), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1422), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1424), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1268), 19, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [61396] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1266), 1, + anon_sym_EQ, + ACTIONS(1412), 1, + anon_sym_or, + ACTIONS(1414), 1, + anon_sym_and, + ACTIONS(1444), 1, + anon_sym_DOT_DOT, + ACTIONS(1446), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1416), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1418), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1420), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1422), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1424), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1264), 19, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [61472] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1412), 1, + anon_sym_or, + ACTIONS(1414), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1286), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1416), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1418), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1420), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1422), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1424), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1284), 20, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [61544] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1412), 1, + anon_sym_or, + ACTIONS(1414), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1282), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1416), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1418), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1420), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1422), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1424), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1280), 20, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [61616] = 9, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1424), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 7, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1166), 25, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [61676] = 10, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1422), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1424), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 5, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1166), 25, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [61738] = 20, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1008), 1, + anon_sym_as, + ACTIONS(1298), 1, + anon_sym_or, + ACTIONS(1300), 1, + anon_sym_and, + ACTIONS(1342), 1, + anon_sym_EQ, + ACTIONS(1346), 1, + anon_sym_DOT_DOT, + ACTIONS(1348), 1, + anon_sym_DOT_DOT_EQ, + STATE(471), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1302), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1304), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1306), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1308), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1310), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1344), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1190), 13, + anon_sym_RBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + [61820] = 12, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1418), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1420), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1422), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1424), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 3, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + ACTIONS(1166), 23, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [61886] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1412), 1, + anon_sym_or, + ACTIONS(1414), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1168), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1416), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1418), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1420), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1422), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1424), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 20, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [61958] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1388), 1, + anon_sym_or, + ACTIONS(1390), 1, + anon_sym_and, + ACTIONS(1448), 1, + anon_sym_EQ, + ACTIONS(1452), 1, + anon_sym_DOT_DOT, + ACTIONS(1454), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1392), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1394), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1396), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1398), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1400), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1450), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1262), 15, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + [62036] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1388), 1, + anon_sym_or, + ACTIONS(1390), 1, + anon_sym_and, + ACTIONS(1448), 1, + anon_sym_EQ, + ACTIONS(1452), 1, + anon_sym_DOT_DOT, + ACTIONS(1454), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1392), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1394), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1396), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1398), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1400), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1450), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1288), 15, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + [62114] = 13, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1416), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1418), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1420), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1422), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1424), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 3, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + ACTIONS(1166), 21, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + [62182] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1388), 1, + anon_sym_or, + ACTIONS(1390), 1, + anon_sym_and, + ACTIONS(1448), 1, + anon_sym_EQ, + ACTIONS(1452), 1, + anon_sym_DOT_DOT, + ACTIONS(1454), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1392), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1394), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1396), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1398), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1400), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1450), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1258), 15, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + [62260] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1168), 1, + anon_sym_EQ, + ACTIONS(1412), 1, + anon_sym_or, + ACTIONS(1414), 1, + anon_sym_and, + ACTIONS(1444), 1, + anon_sym_DOT_DOT, + ACTIONS(1446), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1416), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1418), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1420), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1422), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1424), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 19, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [62336] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1388), 1, + anon_sym_or, + ACTIONS(1390), 1, + anon_sym_and, + ACTIONS(1448), 1, + anon_sym_EQ, + ACTIONS(1452), 1, + anon_sym_DOT_DOT, + ACTIONS(1454), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1392), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1394), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1396), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1398), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1400), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1450), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1226), 15, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + [62414] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1388), 1, + anon_sym_or, + ACTIONS(1390), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1278), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1392), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1394), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1396), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1398), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1400), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1276), 20, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [62486] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1388), 1, + anon_sym_or, + ACTIONS(1390), 1, + anon_sym_and, + ACTIONS(1448), 1, + anon_sym_EQ, + ACTIONS(1452), 1, + anon_sym_DOT_DOT, + ACTIONS(1454), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1392), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1394), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1396), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1398), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1400), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1450), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1260), 15, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + [62564] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1008), 1, + anon_sym_as, + ACTIONS(1426), 1, + anon_sym_or, + ACTIONS(1428), 1, + anon_sym_and, + STATE(471), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1192), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1430), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1432), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1434), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1436), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1438), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1190), 18, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [62640] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1168), 1, + anon_sym_EQ, + ACTIONS(1388), 1, + anon_sym_or, + ACTIONS(1390), 1, + anon_sym_and, + ACTIONS(1452), 1, + anon_sym_DOT_DOT, + ACTIONS(1454), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1392), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1394), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1396), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1398), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1400), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 19, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [62716] = 13, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1392), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1394), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1396), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1398), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1400), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 3, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + ACTIONS(1166), 21, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + [62784] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1388), 1, + anon_sym_or, + ACTIONS(1390), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1168), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1392), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1394), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1396), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1398), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1400), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 20, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [62856] = 10, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1398), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1400), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 5, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1166), 25, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [62918] = 9, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1400), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 7, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1166), 25, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [62978] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1388), 1, + anon_sym_or, + ACTIONS(1390), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1282), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1392), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1394), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1396), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1398), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1400), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1280), 20, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [63050] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1388), 1, + anon_sym_or, + ACTIONS(1390), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1286), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1392), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1394), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1396), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1398), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1400), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1284), 20, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [63122] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1266), 1, + anon_sym_EQ, + ACTIONS(1388), 1, + anon_sym_or, + ACTIONS(1390), 1, + anon_sym_and, + ACTIONS(1452), 1, + anon_sym_DOT_DOT, + ACTIONS(1454), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1392), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1394), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1396), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1398), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1400), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1264), 19, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [63198] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1274), 1, + anon_sym_EQ, + ACTIONS(1388), 1, + anon_sym_or, + ACTIONS(1390), 1, + anon_sym_and, + ACTIONS(1452), 1, + anon_sym_DOT_DOT, + ACTIONS(1454), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1392), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1394), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1396), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1398), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1400), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1272), 19, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [63274] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1270), 1, + anon_sym_EQ, + ACTIONS(1388), 1, + anon_sym_or, + ACTIONS(1390), 1, + anon_sym_and, + ACTIONS(1452), 1, + anon_sym_DOT_DOT, + ACTIONS(1454), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1392), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1394), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1396), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1398), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1400), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1268), 19, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_of, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [63350] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1456), 1, + anon_sym_or, + ACTIONS(1458), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1278), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1460), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1462), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1464), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1466), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1468), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1276), 19, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [63421] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1456), 1, + anon_sym_or, + ACTIONS(1458), 1, + anon_sym_and, + ACTIONS(1470), 1, + anon_sym_EQ, + ACTIONS(1474), 1, + anon_sym_DOT_DOT, + ACTIONS(1476), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1460), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1462), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1464), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1466), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1468), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1472), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1226), 14, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + [63498] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1426), 1, + anon_sym_or, + ACTIONS(1428), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1278), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1430), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1432), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1434), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1436), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1438), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1276), 19, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [63569] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1426), 1, + anon_sym_or, + ACTIONS(1428), 1, + anon_sym_and, + ACTIONS(1478), 1, + anon_sym_EQ, + ACTIONS(1482), 1, + anon_sym_DOT_DOT, + ACTIONS(1484), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1430), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1432), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1434), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1436), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1438), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1480), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1226), 14, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + [63646] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1426), 1, + anon_sym_or, + ACTIONS(1428), 1, + anon_sym_and, + ACTIONS(1478), 1, + anon_sym_EQ, + ACTIONS(1482), 1, + anon_sym_DOT_DOT, + ACTIONS(1484), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1430), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1432), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1434), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1436), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1438), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1480), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1258), 14, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + [63723] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1426), 1, + anon_sym_or, + ACTIONS(1428), 1, + anon_sym_and, + ACTIONS(1478), 1, + anon_sym_EQ, + ACTIONS(1482), 1, + anon_sym_DOT_DOT, + ACTIONS(1484), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1430), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1432), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1434), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1436), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1438), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1480), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1288), 14, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + [63800] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1426), 1, + anon_sym_or, + ACTIONS(1428), 1, + anon_sym_and, + ACTIONS(1478), 1, + anon_sym_EQ, + ACTIONS(1482), 1, + anon_sym_DOT_DOT, + ACTIONS(1484), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1430), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1432), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1434), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1436), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1438), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1480), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1262), 14, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + [63877] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1456), 1, + anon_sym_or, + ACTIONS(1458), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1168), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1460), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1462), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1464), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1466), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1468), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 19, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [63948] = 13, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1460), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1462), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1464), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1466), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1468), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 3, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + ACTIONS(1166), 20, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + [64015] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1168), 1, + anon_sym_EQ, + ACTIONS(1456), 1, + anon_sym_or, + ACTIONS(1458), 1, + anon_sym_and, + ACTIONS(1474), 1, + anon_sym_DOT_DOT, + ACTIONS(1476), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1460), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1462), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1464), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1466), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1468), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 18, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [64090] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1168), 1, + anon_sym_EQ, + ACTIONS(1426), 1, + anon_sym_or, + ACTIONS(1428), 1, + anon_sym_and, + ACTIONS(1482), 1, + anon_sym_DOT_DOT, + ACTIONS(1484), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1430), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1432), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1434), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1436), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1438), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 18, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [64165] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1456), 1, + anon_sym_or, + ACTIONS(1458), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1254), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1460), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1462), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1464), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1466), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1468), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1252), 19, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [64236] = 10, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1436), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1438), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 5, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1166), 24, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [64297] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1274), 1, + anon_sym_EQ, + ACTIONS(1426), 1, + anon_sym_or, + ACTIONS(1428), 1, + anon_sym_and, + ACTIONS(1482), 1, + anon_sym_DOT_DOT, + ACTIONS(1484), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1430), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1432), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1434), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1436), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1438), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1272), 18, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [64372] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1270), 1, + anon_sym_EQ, + ACTIONS(1426), 1, + anon_sym_or, + ACTIONS(1428), 1, + anon_sym_and, + ACTIONS(1482), 1, + anon_sym_DOT_DOT, + ACTIONS(1484), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1430), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1432), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1434), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1436), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1438), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1268), 18, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [64447] = 12, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1462), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1464), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1466), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1468), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 3, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + ACTIONS(1166), 22, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [64512] = 10, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1466), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1468), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 5, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1166), 24, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [64573] = 9, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1468), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 7, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1166), 24, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [64632] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1456), 1, + anon_sym_or, + ACTIONS(1458), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1282), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1460), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1462), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1464), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1466), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1468), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1280), 19, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [64703] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1456), 1, + anon_sym_or, + ACTIONS(1458), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1286), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1460), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1462), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1464), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1466), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1468), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1284), 19, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [64774] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1266), 1, + anon_sym_EQ, + ACTIONS(1456), 1, + anon_sym_or, + ACTIONS(1458), 1, + anon_sym_and, + ACTIONS(1474), 1, + anon_sym_DOT_DOT, + ACTIONS(1476), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1460), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1462), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1464), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1466), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1468), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1264), 18, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [64849] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1456), 1, + anon_sym_or, + ACTIONS(1458), 1, + anon_sym_and, + ACTIONS(1470), 1, + anon_sym_EQ, + ACTIONS(1474), 1, + anon_sym_DOT_DOT, + ACTIONS(1476), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1460), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1462), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1464), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1466), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1468), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1472), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1260), 14, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + [64926] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1426), 1, + anon_sym_or, + ACTIONS(1428), 1, + anon_sym_and, + ACTIONS(1478), 1, + anon_sym_EQ, + ACTIONS(1482), 1, + anon_sym_DOT_DOT, + ACTIONS(1484), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1430), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1432), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1434), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1436), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1438), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1480), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1250), 14, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + [65003] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1270), 1, + anon_sym_EQ, + ACTIONS(1456), 1, + anon_sym_or, + ACTIONS(1458), 1, + anon_sym_and, + ACTIONS(1474), 1, + anon_sym_DOT_DOT, + ACTIONS(1476), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1460), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1462), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1464), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1466), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1468), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1268), 18, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [65078] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1274), 1, + anon_sym_EQ, + ACTIONS(1456), 1, + anon_sym_or, + ACTIONS(1458), 1, + anon_sym_and, + ACTIONS(1474), 1, + anon_sym_DOT_DOT, + ACTIONS(1476), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1460), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1462), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1464), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1466), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1468), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1272), 18, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [65153] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1426), 1, + anon_sym_or, + ACTIONS(1428), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1282), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1430), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1432), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1434), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1436), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1438), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1280), 19, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [65224] = 19, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1256), 1, + anon_sym_desc, + ACTIONS(1320), 1, + anon_sym_EQ, + ACTIONS(1322), 1, + anon_sym_or, + ACTIONS(1326), 1, + anon_sym_DOT_DOT, + ACTIONS(1328), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1330), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1332), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1334), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1336), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1338), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1340), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1324), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1252), 13, + anon_sym_RBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + [65303] = 16, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1256), 1, + anon_sym_desc, + ACTIONS(1456), 1, + anon_sym_or, + ACTIONS(1458), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1254), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1460), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1462), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1464), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1466), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1468), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1252), 18, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [65376] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1456), 1, + anon_sym_or, + ACTIONS(1458), 1, + anon_sym_and, + ACTIONS(1470), 1, + anon_sym_EQ, + ACTIONS(1474), 1, + anon_sym_DOT_DOT, + ACTIONS(1476), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1460), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1462), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1464), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1466), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1468), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1472), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1258), 14, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + [65453] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1456), 1, + anon_sym_or, + ACTIONS(1458), 1, + anon_sym_and, + ACTIONS(1470), 1, + anon_sym_EQ, + ACTIONS(1474), 1, + anon_sym_DOT_DOT, + ACTIONS(1476), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1460), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1462), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1464), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1466), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1468), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1472), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1288), 14, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + [65530] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1456), 1, + anon_sym_or, + ACTIONS(1458), 1, + anon_sym_and, + ACTIONS(1470), 1, + anon_sym_EQ, + ACTIONS(1474), 1, + anon_sym_DOT_DOT, + ACTIONS(1476), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1460), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1462), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1464), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1466), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1468), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1472), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1262), 14, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_desc, + [65607] = 12, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1432), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1434), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1436), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1438), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 3, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + ACTIONS(1166), 22, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [65672] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1426), 1, + anon_sym_or, + ACTIONS(1428), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1286), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1430), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1432), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1434), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1436), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1438), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1284), 19, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [65743] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1426), 1, + anon_sym_or, + ACTIONS(1428), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1168), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1430), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1432), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1434), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1436), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1438), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 19, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [65814] = 9, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1438), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 7, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1166), 24, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [65873] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1266), 1, + anon_sym_EQ, + ACTIONS(1426), 1, + anon_sym_or, + ACTIONS(1428), 1, + anon_sym_and, + ACTIONS(1482), 1, + anon_sym_DOT_DOT, + ACTIONS(1484), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1430), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1432), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1434), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1436), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1438), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1264), 18, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [65948] = 13, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1430), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1432), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1434), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1436), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1438), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 3, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + ACTIONS(1166), 20, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + [66015] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1426), 1, + anon_sym_or, + ACTIONS(1428), 1, + anon_sym_and, + ACTIONS(1478), 1, + anon_sym_EQ, + ACTIONS(1482), 1, + anon_sym_DOT_DOT, + ACTIONS(1484), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1430), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1432), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1434), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1436), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1438), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1480), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1260), 14, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_as, + [66092] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1168), 1, + anon_sym_EQ, + ACTIONS(1486), 1, + anon_sym_or, + ACTIONS(1488), 1, + anon_sym_DOT_DOT, + ACTIONS(1490), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1492), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1494), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1496), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1498), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1500), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1502), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 17, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [66166] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1274), 1, + anon_sym_EQ, + ACTIONS(1486), 1, + anon_sym_or, + ACTIONS(1488), 1, + anon_sym_DOT_DOT, + ACTIONS(1490), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1492), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1494), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1496), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1498), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1500), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1502), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1272), 17, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [66240] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1266), 1, + anon_sym_EQ, + ACTIONS(1486), 1, + anon_sym_or, + ACTIONS(1488), 1, + anon_sym_DOT_DOT, + ACTIONS(1490), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1492), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1494), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1496), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1498), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1500), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1502), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1264), 17, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [66314] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1486), 1, + anon_sym_or, + ACTIONS(1492), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1282), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1494), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1496), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1498), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1500), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1502), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1280), 18, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [66384] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1486), 1, + anon_sym_or, + ACTIONS(1492), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1286), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1494), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1496), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1498), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1500), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1502), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1284), 18, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [66454] = 9, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1502), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 7, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1166), 23, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [66512] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1486), 1, + anon_sym_or, + ACTIONS(1488), 1, + anon_sym_DOT_DOT, + ACTIONS(1490), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1492), 1, + anon_sym_and, + ACTIONS(1504), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1494), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1496), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1498), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1500), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1502), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1506), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1260), 13, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + [66588] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1486), 1, + anon_sym_or, + ACTIONS(1488), 1, + anon_sym_DOT_DOT, + ACTIONS(1490), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1492), 1, + anon_sym_and, + ACTIONS(1504), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1494), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1496), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1498), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1500), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1502), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1506), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1226), 13, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + [66664] = 10, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1500), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1502), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 5, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1166), 23, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [66724] = 12, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1496), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1498), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1500), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1502), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 3, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + ACTIONS(1166), 21, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [66788] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1486), 1, + anon_sym_or, + ACTIONS(1492), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1168), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1494), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1496), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1498), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1500), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1502), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 18, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [66858] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1350), 1, + anon_sym_or, + ACTIONS(1352), 1, + anon_sym_DOT_DOT, + ACTIONS(1354), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1356), 1, + anon_sym_and, + ACTIONS(1368), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1358), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1360), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1362), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1364), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1366), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1370), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1276), 13, + anon_sym_RBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + [66934] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1486), 1, + anon_sym_or, + ACTIONS(1488), 1, + anon_sym_DOT_DOT, + ACTIONS(1490), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1492), 1, + anon_sym_and, + ACTIONS(1504), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1494), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1496), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1498), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1500), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1502), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1506), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1262), 13, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + [67010] = 13, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1494), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1496), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1498), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1500), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1502), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 3, + anon_sym_EQ, + anon_sym_or, + anon_sym_DOT_DOT, + ACTIONS(1166), 19, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + [67076] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1486), 1, + anon_sym_or, + ACTIONS(1488), 1, + anon_sym_DOT_DOT, + ACTIONS(1490), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1492), 1, + anon_sym_and, + ACTIONS(1504), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1494), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1496), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1498), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1500), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1502), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1506), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1258), 13, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + [67152] = 18, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1486), 1, + anon_sym_or, + ACTIONS(1488), 1, + anon_sym_DOT_DOT, + ACTIONS(1490), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1492), 1, + anon_sym_and, + ACTIONS(1504), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1494), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1496), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1498), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1500), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1502), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1506), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + ACTIONS(1288), 13, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + [67228] = 15, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1486), 1, + anon_sym_or, + ACTIONS(1492), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1278), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1494), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1496), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1498), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1500), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1502), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1276), 18, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [67298] = 17, + ACTIONS(930), 1, + anon_sym_COLON, + ACTIONS(932), 1, + anon_sym_LPAREN, + ACTIONS(934), 1, + anon_sym_LBRACK, + ACTIONS(940), 1, + anon_sym_DOT, + ACTIONS(956), 1, + anon_sym_COLON_COLON, + ACTIONS(1270), 1, + anon_sym_EQ, + ACTIONS(1486), 1, + anon_sym_or, + ACTIONS(1488), 1, + anon_sym_DOT_DOT, + ACTIONS(1490), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1492), 1, + anon_sym_and, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1494), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1496), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1498), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1500), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1502), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1268), 17, + anon_sym_LBRACE, + anon_sym_from, + anon_sym_where, + anon_sym_join, + anon_sym_union, + anon_sym_group, + anon_sym_over, + anon_sym_roll, + anon_sym_compute, + anon_sym_select, + anon_sym_with, + anon_sym_into, + anon_sym_order, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [67372] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(918), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(916), 26, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + anon_sym_EQ_GT, + [67417] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(870), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(868), 26, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + anon_sym_EQ_GT, + [67462] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(922), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(920), 26, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + anon_sym_EQ_GT, + [67507] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(890), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(888), 26, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + anon_sym_EQ_GT, + [67552] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(886), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(884), 26, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + anon_sym_EQ_GT, + [67597] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1092), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1090), 26, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + anon_sym_EQ_GT, + [67642] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(862), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(860), 26, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + anon_sym_EQ_GT, + [67687] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(866), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(864), 26, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + anon_sym_EQ_GT, + [67732] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(882), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(880), 26, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + anon_sym_EQ_GT, + [67777] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(874), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(872), 26, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + anon_sym_EQ_GT, + [67822] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(878), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(876), 26, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + anon_sym_EQ_GT, + [67867] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(914), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(912), 26, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + anon_sym_EQ_GT, + [67912] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(858), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(856), 26, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + anon_sym_EQ_GT, + [67957] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1096), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1094), 26, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + anon_sym_EQ_GT, + [68002] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1208), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1206), 26, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + anon_sym_EQ_GT, + [68047] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1204), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1202), 26, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + anon_sym_EQ_GT, + [68092] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(926), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(924), 26, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + anon_sym_EQ_GT, + [68137] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1196), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1194), 26, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + anon_sym_EQ_GT, + [68182] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1508), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1510), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [68225] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1512), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1514), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [68268] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1516), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1518), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [68311] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1520), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1522), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [68354] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1524), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1526), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [68397] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(906), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(904), 24, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [68440] = 5, + ACTIONS(1528), 1, + anon_sym_AMP, + ACTIONS(1530), 1, + anon_sym_PLUS_PLUS, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(894), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(892), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [68487] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(974), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(976), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [68530] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(978), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(980), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [68573] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(966), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(968), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [68616] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1532), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1534), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [68659] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(968), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(966), 24, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + anon_sym_else, + anon_sym_catch, + [68702] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1536), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1538), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [68745] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1540), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1542), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [68788] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1544), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1546), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [68831] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1548), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1550), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [68874] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1552), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1554), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [68917] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1556), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1558), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [68960] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(980), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(978), 24, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + anon_sym_else, + anon_sym_catch, + [69003] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1560), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1562), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [69046] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1564), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1566), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [69089] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1568), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1570), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [69132] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1572), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1574), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [69175] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1576), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1578), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [69218] = 5, + ACTIONS(1528), 1, + anon_sym_AMP, + ACTIONS(1530), 1, + anon_sym_PLUS_PLUS, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(902), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(900), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [69265] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1580), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1582), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [69308] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1584), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1586), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [69351] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1588), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1590), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [69394] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1592), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1594), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [69437] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1596), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1598), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [69480] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1600), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1602), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [69523] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1604), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1606), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [69566] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1608), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1610), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [69609] = 5, + ACTIONS(1528), 1, + anon_sym_AMP, + ACTIONS(1530), 1, + anon_sym_PLUS_PLUS, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(910), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(908), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [69656] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1612), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1614), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [69699] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1616), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1618), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [69742] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1620), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1622), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [69785] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1624), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1626), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [69828] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(976), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(974), 24, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + anon_sym_else, + anon_sym_catch, + [69871] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1628), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1630), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [69914] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1632), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1634), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [69957] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1636), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1638), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [70000] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1640), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1642), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [70043] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1644), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1646), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [70086] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1648), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1650), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [70129] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1652), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1654), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [70172] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1656), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1658), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [70215] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1660), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1662), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [70258] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1664), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1666), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [70301] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1668), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1670), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [70344] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1672), 11, + ts_builtin_sym_end, + anon_sym_AT, + anon_sym_LBRACE, + anon_sym_RBRACE, + sym_constant_float, + sym_string_quote, + anon_sym_SQUOTE, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_SEMI, + anon_sym_DASH_DASH_DASH, + ACTIONS(1674), 23, + sym_name, + sym_constant_int, + anon_sym_true, + anon_sym_false, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + anon_sym_val, + anon_sym_var, + anon_sym_rust, + anon_sym_fun, + anon_sym_return, + anon_sym_break, + anon_sym_continue, + anon_sym_throw, + anon_sym_from, + anon_sym_do, + anon_sym_if, + anon_sym_match, + anon_sym_loop, + anon_sym_while, + anon_sym_for, + anon_sym_try, + [70387] = 4, + ACTIONS(1676), 1, + anon_sym_else, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(992), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(990), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [70431] = 17, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1682), 1, + anon_sym_RBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1289), 1, + sym_arm, + STATE(1372), 1, + sym_variant_name, + STATE(1429), 1, + sym__arms, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1204), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [70501] = 17, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + ACTIONS(1694), 1, + anon_sym_RBRACE, + STATE(1289), 1, + sym_arm, + STATE(1372), 1, + sym_variant_name, + STATE(1404), 1, + sym__arms, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1204), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [70571] = 16, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + ACTIONS(1696), 1, + anon_sym_RPAREN, + STATE(1372), 1, + sym_variant_name, + STATE(1483), 1, + sym__patterns, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1149), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [70638] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1136), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1134), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [70679] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1066), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1064), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [70720] = 16, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + ACTIONS(1698), 1, + anon_sym_RPAREN, + STATE(1372), 1, + sym_variant_name, + STATE(1409), 1, + sym__patterns, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1149), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [70787] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1042), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1040), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [70828] = 16, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + ACTIONS(1700), 1, + anon_sym_RPAREN, + STATE(1372), 1, + sym_variant_name, + STATE(1454), 1, + sym__patterns, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1149), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [70895] = 16, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + ACTIONS(1702), 1, + anon_sym_RPAREN, + STATE(1372), 1, + sym_variant_name, + STATE(1463), 1, + sym__patterns, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1149), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [70962] = 5, + ACTIONS(1704), 1, + anon_sym_LPAREN, + ACTIONS(1706), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1012), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1010), 20, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [71007] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1172), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1170), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [71048] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1050), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1048), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [71089] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1088), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1086), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [71130] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1216), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1214), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [71171] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1104), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1102), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [71212] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1062), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1060), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [71253] = 8, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1168), 8, + anon_sym_EQ, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 19, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [71304] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1046), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1044), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [71345] = 16, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1289), 1, + sym_arm, + STATE(1372), 1, + sym_variant_name, + STATE(1402), 1, + sym__arms, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1204), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [71412] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1076), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1074), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [71453] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1156), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1154), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [71494] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1152), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1150), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [71535] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1116), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1114), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [71576] = 16, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + ACTIONS(1718), 1, + anon_sym_RPAREN, + STATE(1372), 1, + sym_variant_name, + STATE(1509), 1, + sym__patterns, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1149), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [71643] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1020), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1018), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [71684] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1120), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1118), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [71725] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1054), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1052), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [71766] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1144), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1142), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [71807] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1180), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1178), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [71848] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1140), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1138), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [71889] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1148), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1146), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [71930] = 16, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + ACTIONS(1720), 1, + anon_sym_RPAREN, + STATE(1372), 1, + sym_variant_name, + STATE(1397), 1, + sym__patterns, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1149), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [71997] = 16, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + ACTIONS(1722), 1, + anon_sym_RBRACK, + STATE(1372), 1, + sym_variant_name, + STATE(1400), 1, + sym__patterns, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1149), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [72064] = 16, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + ACTIONS(1724), 1, + anon_sym_RPAREN, + STATE(1372), 1, + sym_variant_name, + STATE(1384), 1, + sym__patterns, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1149), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [72131] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1084), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1082), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [72172] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1164), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1162), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [72213] = 16, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + ACTIONS(1726), 1, + anon_sym_RPAREN, + STATE(1372), 1, + sym_variant_name, + STATE(1510), 1, + sym__patterns, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1149), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [72280] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1058), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1056), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [72321] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1108), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1106), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [72362] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1038), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1036), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [72403] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1124), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1122), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [72444] = 16, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1289), 1, + sym_arm, + STATE(1372), 1, + sym_variant_name, + STATE(1416), 1, + sym__arms, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1204), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [72511] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1128), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1126), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [72552] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1200), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1198), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [72593] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1100), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1098), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [72634] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1132), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1130), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [72675] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1184), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1182), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [72716] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1212), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1210), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [72757] = 3, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1224), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1222), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [72798] = 15, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + STATE(1410), 1, + sym__patterns, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1149), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [72862] = 15, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + STATE(1427), 1, + sym__patterns, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1149), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [72926] = 15, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + STATE(1500), 1, + sym__patterns, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1149), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [72990] = 15, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + STATE(1452), 1, + sym__patterns, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1149), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [73054] = 15, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + STATE(1446), 1, + sym__patterns, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1149), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [73118] = 15, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + STATE(1411), 1, + sym__patterns, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1149), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [73182] = 15, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + STATE(1438), 1, + sym__patterns, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1149), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [73246] = 15, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + STATE(1506), 1, + sym__patterns, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1149), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [73310] = 15, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + STATE(1458), 1, + sym__patterns, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1149), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [73374] = 15, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1344), 1, + sym_arm, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1204), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [73438] = 15, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + STATE(1503), 1, + sym__patterns, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1149), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [73502] = 15, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + STATE(1492), 1, + sym__patterns, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1149), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [73566] = 15, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + STATE(1447), 1, + sym__patterns, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1149), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [73630] = 15, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + STATE(1395), 1, + sym__patterns, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1149), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [73694] = 15, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + STATE(1394), 1, + sym__patterns, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1149), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [73758] = 15, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + STATE(1419), 1, + sym__patterns, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1149), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [73822] = 15, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(380), 1, + anon_sym_RPAREN, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1151), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [73886] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1196), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [73947] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1230), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [74008] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1186), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [74069] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1199), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [74130] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1200), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [74191] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1208), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [74252] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1210), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [74313] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1157), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [74374] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1180), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [74435] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1209), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [74496] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1185), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [74557] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1172), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [74618] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1167), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [74679] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1181), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [74740] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1179), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [74801] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1177), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [74862] = 10, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 4, + anon_sym_EQ, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1166), 17, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [74915] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1173), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [74976] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1198), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [75037] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1218), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [75098] = 14, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1286), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1284), 11, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_on, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [75159] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1159), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [75220] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1138), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [75281] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1213), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [75342] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1164), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [75403] = 14, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1282), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1280), 11, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_on, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [75464] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1201), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [75525] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1150), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [75586] = 16, + ACTIONS(1168), 1, + anon_sym_EQ, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1166), 10, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_on, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [75651] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1174), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [75712] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1233), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [75773] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1229), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [75834] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1163), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [75895] = 16, + ACTIONS(1266), 1, + anon_sym_EQ, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1264), 10, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_on, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [75960] = 16, + ACTIONS(1270), 1, + anon_sym_EQ, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1268), 10, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_on, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [76025] = 16, + ACTIONS(1274), 1, + anon_sym_EQ, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1272), 10, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_on, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [76090] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1153), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [76151] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1189), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [76212] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1145), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [76273] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1144), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [76334] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1214), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [76395] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1160), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [76456] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1206), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [76517] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1219), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [76578] = 13, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1168), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1166), 13, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + [76637] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1194), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [76698] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1220), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [76759] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1231), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [76820] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1232), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [76881] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1195), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [76942] = 14, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1168), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1166), 11, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_on, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [77003] = 12, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1168), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1166), 15, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [77060] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1224), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [77121] = 9, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 6, + anon_sym_EQ, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1166), 17, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_on, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [77172] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1217), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [77233] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1190), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [77294] = 14, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(1678), 1, + sym_name, + ACTIONS(1680), 1, + anon_sym_LBRACE, + ACTIONS(1684), 1, + sym_constant_int, + ACTIONS(1686), 1, + sym_constant_float, + ACTIONS(1688), 1, + anon_sym_LPAREN, + ACTIONS(1690), 1, + anon_sym_LBRACK, + ACTIONS(1692), 1, + anon_sym__, + STATE(1372), 1, + sym_variant_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(21), 2, + anon_sym_true, + anon_sym_false, + STATE(1136), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + STATE(1211), 13, + sym__pattern, + sym_pattern_annot, + sym_pattern_or, + sym_pattern_record_concat, + sym_pattern_array_concat, + sym_pattern_paren, + sym_pattern_constant, + sym_pattern_name, + sym_pattern_variant, + sym_pattern_tuple, + sym_pattern_record, + sym_pattern_array, + sym_pattern_wild, + [77355] = 19, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1744), 1, + anon_sym_COMMA, + ACTIONS(1748), 1, + anon_sym_EQ, + STATE(1236), 1, + aux_sym__exprs_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1746), 2, + anon_sym_RPAREN, + anon_sym_RBRACK, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [77424] = 19, + ACTIONS(1008), 1, + anon_sym_as, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1752), 1, + anon_sym_LBRACE, + ACTIONS(1754), 1, + anon_sym_EQ, + ACTIONS(1760), 1, + anon_sym_DOT_DOT, + ACTIONS(1762), 1, + anon_sym_DOT_DOT_EQ, + STATE(1436), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1756), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1764), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1766), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1768), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1770), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1772), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1758), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [77492] = 15, + ACTIONS(608), 1, + anon_sym_from, + ACTIONS(610), 1, + anon_sym_where, + ACTIONS(612), 1, + anon_sym_join, + ACTIONS(614), 1, + anon_sym_union, + ACTIONS(616), 1, + anon_sym_group, + ACTIONS(618), 1, + anon_sym_over, + ACTIONS(628), 1, + anon_sym_into, + ACTIONS(1774), 1, + anon_sym_RBRACE, + ACTIONS(1776), 1, + anon_sym_roll, + ACTIONS(1778), 1, + anon_sym_compute, + ACTIONS(1780), 1, + anon_sym_select, + ACTIONS(1782), 1, + anon_sym_with, + ACTIONS(1784), 1, + anon_sym_order, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(976), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + [77552] = 19, + ACTIONS(1008), 1, + anon_sym_as, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1754), 1, + anon_sym_EQ, + ACTIONS(1760), 1, + anon_sym_DOT_DOT, + ACTIONS(1762), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1786), 1, + anon_sym_LBRACE, + STATE(1434), 1, + sym__as, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1756), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1764), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1766), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1768), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1770), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1772), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1758), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [77620] = 15, + ACTIONS(608), 1, + anon_sym_from, + ACTIONS(610), 1, + anon_sym_where, + ACTIONS(612), 1, + anon_sym_join, + ACTIONS(614), 1, + anon_sym_union, + ACTIONS(616), 1, + anon_sym_group, + ACTIONS(618), 1, + anon_sym_over, + ACTIONS(628), 1, + anon_sym_into, + ACTIONS(1776), 1, + anon_sym_roll, + ACTIONS(1778), 1, + anon_sym_compute, + ACTIONS(1780), 1, + anon_sym_select, + ACTIONS(1782), 1, + anon_sym_with, + ACTIONS(1784), 1, + anon_sym_order, + ACTIONS(1788), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(976), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + [77680] = 15, + ACTIONS(390), 1, + anon_sym_RBRACE, + ACTIONS(554), 1, + anon_sym_group, + ACTIONS(557), 1, + anon_sym_over, + ACTIONS(578), 1, + anon_sym_from, + ACTIONS(581), 1, + anon_sym_where, + ACTIONS(584), 1, + anon_sym_join, + ACTIONS(587), 1, + anon_sym_union, + ACTIONS(602), 1, + anon_sym_into, + ACTIONS(1790), 1, + anon_sym_roll, + ACTIONS(1793), 1, + anon_sym_compute, + ACTIONS(1796), 1, + anon_sym_select, + ACTIONS(1799), 1, + anon_sym_with, + ACTIONS(1802), 1, + anon_sym_order, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(976), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + [77740] = 15, + ACTIONS(608), 1, + anon_sym_from, + ACTIONS(610), 1, + anon_sym_where, + ACTIONS(612), 1, + anon_sym_join, + ACTIONS(614), 1, + anon_sym_union, + ACTIONS(616), 1, + anon_sym_group, + ACTIONS(618), 1, + anon_sym_over, + ACTIONS(628), 1, + anon_sym_into, + ACTIONS(1776), 1, + anon_sym_roll, + ACTIONS(1778), 1, + anon_sym_compute, + ACTIONS(1780), 1, + anon_sym_select, + ACTIONS(1782), 1, + anon_sym_with, + ACTIONS(1784), 1, + anon_sym_order, + ACTIONS(1805), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(978), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + [77800] = 15, + ACTIONS(608), 1, + anon_sym_from, + ACTIONS(610), 1, + anon_sym_where, + ACTIONS(612), 1, + anon_sym_join, + ACTIONS(614), 1, + anon_sym_union, + ACTIONS(616), 1, + anon_sym_group, + ACTIONS(618), 1, + anon_sym_over, + ACTIONS(628), 1, + anon_sym_into, + ACTIONS(1776), 1, + anon_sym_roll, + ACTIONS(1778), 1, + anon_sym_compute, + ACTIONS(1780), 1, + anon_sym_select, + ACTIONS(1782), 1, + anon_sym_with, + ACTIONS(1784), 1, + anon_sym_order, + ACTIONS(1807), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(976), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + [77860] = 15, + ACTIONS(608), 1, + anon_sym_from, + ACTIONS(610), 1, + anon_sym_where, + ACTIONS(612), 1, + anon_sym_join, + ACTIONS(614), 1, + anon_sym_union, + ACTIONS(616), 1, + anon_sym_group, + ACTIONS(618), 1, + anon_sym_over, + ACTIONS(628), 1, + anon_sym_into, + ACTIONS(1776), 1, + anon_sym_roll, + ACTIONS(1778), 1, + anon_sym_compute, + ACTIONS(1780), 1, + anon_sym_select, + ACTIONS(1782), 1, + anon_sym_with, + ACTIONS(1784), 1, + anon_sym_order, + ACTIONS(1809), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(973), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + [77920] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1811), 3, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [77984] = 15, + ACTIONS(608), 1, + anon_sym_from, + ACTIONS(610), 1, + anon_sym_where, + ACTIONS(612), 1, + anon_sym_join, + ACTIONS(614), 1, + anon_sym_union, + ACTIONS(616), 1, + anon_sym_group, + ACTIONS(618), 1, + anon_sym_over, + ACTIONS(628), 1, + anon_sym_into, + ACTIONS(1776), 1, + anon_sym_roll, + ACTIONS(1778), 1, + anon_sym_compute, + ACTIONS(1780), 1, + anon_sym_select, + ACTIONS(1782), 1, + anon_sym_with, + ACTIONS(1784), 1, + anon_sym_order, + ACTIONS(1813), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(985), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + [78044] = 15, + ACTIONS(608), 1, + anon_sym_from, + ACTIONS(610), 1, + anon_sym_where, + ACTIONS(612), 1, + anon_sym_join, + ACTIONS(614), 1, + anon_sym_union, + ACTIONS(616), 1, + anon_sym_group, + ACTIONS(618), 1, + anon_sym_over, + ACTIONS(628), 1, + anon_sym_into, + ACTIONS(1776), 1, + anon_sym_roll, + ACTIONS(1778), 1, + anon_sym_compute, + ACTIONS(1780), 1, + anon_sym_select, + ACTIONS(1782), 1, + anon_sym_with, + ACTIONS(1784), 1, + anon_sym_order, + ACTIONS(1815), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(987), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + [78104] = 15, + ACTIONS(608), 1, + anon_sym_from, + ACTIONS(610), 1, + anon_sym_where, + ACTIONS(612), 1, + anon_sym_join, + ACTIONS(614), 1, + anon_sym_union, + ACTIONS(616), 1, + anon_sym_group, + ACTIONS(618), 1, + anon_sym_over, + ACTIONS(628), 1, + anon_sym_into, + ACTIONS(1776), 1, + anon_sym_roll, + ACTIONS(1778), 1, + anon_sym_compute, + ACTIONS(1780), 1, + anon_sym_select, + ACTIONS(1782), 1, + anon_sym_with, + ACTIONS(1784), 1, + anon_sym_order, + ACTIONS(1807), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(984), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + [78164] = 15, + ACTIONS(608), 1, + anon_sym_from, + ACTIONS(610), 1, + anon_sym_where, + ACTIONS(612), 1, + anon_sym_join, + ACTIONS(614), 1, + anon_sym_union, + ACTIONS(616), 1, + anon_sym_group, + ACTIONS(618), 1, + anon_sym_over, + ACTIONS(628), 1, + anon_sym_into, + ACTIONS(1776), 1, + anon_sym_roll, + ACTIONS(1778), 1, + anon_sym_compute, + ACTIONS(1780), 1, + anon_sym_select, + ACTIONS(1782), 1, + anon_sym_with, + ACTIONS(1784), 1, + anon_sym_order, + ACTIONS(1817), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(976), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + [78224] = 15, + ACTIONS(608), 1, + anon_sym_from, + ACTIONS(610), 1, + anon_sym_where, + ACTIONS(612), 1, + anon_sym_join, + ACTIONS(614), 1, + anon_sym_union, + ACTIONS(616), 1, + anon_sym_group, + ACTIONS(618), 1, + anon_sym_over, + ACTIONS(628), 1, + anon_sym_into, + ACTIONS(1776), 1, + anon_sym_roll, + ACTIONS(1778), 1, + anon_sym_compute, + ACTIONS(1780), 1, + anon_sym_select, + ACTIONS(1782), 1, + anon_sym_with, + ACTIONS(1784), 1, + anon_sym_order, + ACTIONS(1819), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(976), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + [78284] = 15, + ACTIONS(608), 1, + anon_sym_from, + ACTIONS(610), 1, + anon_sym_where, + ACTIONS(612), 1, + anon_sym_join, + ACTIONS(614), 1, + anon_sym_union, + ACTIONS(616), 1, + anon_sym_group, + ACTIONS(618), 1, + anon_sym_over, + ACTIONS(628), 1, + anon_sym_into, + ACTIONS(1776), 1, + anon_sym_roll, + ACTIONS(1778), 1, + anon_sym_compute, + ACTIONS(1780), 1, + anon_sym_select, + ACTIONS(1782), 1, + anon_sym_with, + ACTIONS(1784), 1, + anon_sym_order, + ACTIONS(1819), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(975), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + [78344] = 15, + ACTIONS(608), 1, + anon_sym_from, + ACTIONS(610), 1, + anon_sym_where, + ACTIONS(612), 1, + anon_sym_join, + ACTIONS(614), 1, + anon_sym_union, + ACTIONS(616), 1, + anon_sym_group, + ACTIONS(618), 1, + anon_sym_over, + ACTIONS(628), 1, + anon_sym_into, + ACTIONS(1776), 1, + anon_sym_roll, + ACTIONS(1778), 1, + anon_sym_compute, + ACTIONS(1780), 1, + anon_sym_select, + ACTIONS(1782), 1, + anon_sym_with, + ACTIONS(1784), 1, + anon_sym_order, + ACTIONS(1821), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(976), 14, + aux_sym__query_stmts, + sym__query_stmt, + sym_query_from, + sym_query_where, + sym_query_join, + sym_query_union, + sym_query_group, + sym_query_over, + sym_query_roll, + sym_query_compute, + sym_query_select, + sym_query_val, + sym_query_into, + sym_query_order, + [78404] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1823), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [78467] = 18, + ACTIONS(320), 1, + anon_sym_RBRACE, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1825), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [78532] = 18, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1827), 1, + anon_sym_LBRACE, + ACTIONS(1829), 1, + anon_sym_EQ, + ACTIONS(1835), 1, + anon_sym_DOT_DOT, + ACTIONS(1837), 1, + anon_sym_DOT_DOT_EQ, + STATE(888), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1831), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1839), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1841), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1843), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1845), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1847), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1833), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [78597] = 18, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1829), 1, + anon_sym_EQ, + ACTIONS(1835), 1, + anon_sym_DOT_DOT, + ACTIONS(1837), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1849), 1, + anon_sym_LBRACE, + STATE(452), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1831), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1839), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1841), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1843), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1845), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1847), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1833), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [78662] = 18, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1829), 1, + anon_sym_EQ, + ACTIONS(1835), 1, + anon_sym_DOT_DOT, + ACTIONS(1837), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1849), 1, + anon_sym_LBRACE, + STATE(511), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1831), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1839), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1841), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1843), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1845), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1847), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1833), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [78727] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1851), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [78790] = 6, + ACTIONS(1704), 1, + anon_sym_LPAREN, + ACTIONS(1706), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1853), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + ACTIONS(1012), 10, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1010), 12, + anon_sym_LBRACK, + anon_sym_or, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [78831] = 18, + ACTIONS(342), 1, + anon_sym_RBRACE, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1825), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [78896] = 16, + ACTIONS(1274), 1, + anon_sym_EQ, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1760), 1, + anon_sym_DOT_DOT, + ACTIONS(1762), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1756), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1764), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1766), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1768), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1770), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1772), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1272), 6, + anon_sym_LBRACE, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [78957] = 16, + ACTIONS(1270), 1, + anon_sym_EQ, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1760), 1, + anon_sym_DOT_DOT, + ACTIONS(1762), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1756), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1764), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1766), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1768), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1770), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1772), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1268), 6, + anon_sym_LBRACE, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [79018] = 16, + ACTIONS(1266), 1, + anon_sym_EQ, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1760), 1, + anon_sym_DOT_DOT, + ACTIONS(1762), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1756), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1764), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1766), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1768), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1770), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1772), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1264), 6, + anon_sym_LBRACE, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [79079] = 18, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1825), 1, + anon_sym_SEMI, + ACTIONS(1855), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [79144] = 18, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1857), 1, + anon_sym_COMMA, + ACTIONS(1859), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [79209] = 14, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1286), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1756), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1764), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1766), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1768), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1770), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1772), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1284), 7, + anon_sym_LBRACE, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [79266] = 14, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1282), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1756), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1764), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1766), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1768), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1770), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1772), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1280), 7, + anon_sym_LBRACE, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [79323] = 18, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1827), 1, + anon_sym_LBRACE, + ACTIONS(1829), 1, + anon_sym_EQ, + ACTIONS(1835), 1, + anon_sym_DOT_DOT, + ACTIONS(1837), 1, + anon_sym_DOT_DOT_EQ, + STATE(894), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1831), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1839), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1841), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1843), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1845), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1847), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1833), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [79388] = 9, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1772), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 6, + anon_sym_EQ, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1166), 13, + anon_sym_LBRACE, + anon_sym_or, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [79435] = 18, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1827), 1, + anon_sym_LBRACE, + ACTIONS(1829), 1, + anon_sym_EQ, + ACTIONS(1835), 1, + anon_sym_DOT_DOT, + ACTIONS(1837), 1, + anon_sym_DOT_DOT_EQ, + STATE(847), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1831), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1839), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1841), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1843), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1845), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1847), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1833), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [79500] = 10, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1770), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1772), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 4, + anon_sym_EQ, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1166), 13, + anon_sym_LBRACE, + anon_sym_or, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [79549] = 12, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1168), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1766), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1768), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1770), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1772), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 11, + anon_sym_LBRACE, + anon_sym_or, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [79602] = 18, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1825), 1, + anon_sym_SEMI, + ACTIONS(1861), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [79667] = 18, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1863), 1, + anon_sym_COMMA, + ACTIONS(1865), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [79732] = 14, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1168), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1756), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1764), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1766), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1768), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1770), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1772), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 7, + anon_sym_LBRACE, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [79789] = 13, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1168), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1764), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1766), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1768), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1770), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1772), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 9, + anon_sym_LBRACE, + anon_sym_or, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + [79844] = 16, + ACTIONS(1168), 1, + anon_sym_EQ, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1760), 1, + anon_sym_DOT_DOT, + ACTIONS(1762), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1756), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1764), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1766), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1768), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1770), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1772), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 6, + anon_sym_LBRACE, + anon_sym_as, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [79905] = 18, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1825), 1, + anon_sym_SEMI, + ACTIONS(1867), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [79970] = 18, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1825), 1, + anon_sym_SEMI, + ACTIONS(1869), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [80035] = 18, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1829), 1, + anon_sym_EQ, + ACTIONS(1835), 1, + anon_sym_DOT_DOT, + ACTIONS(1837), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1849), 1, + anon_sym_LBRACE, + STATE(490), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1831), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1839), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1841), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1843), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1845), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1847), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1833), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [80100] = 18, + ACTIONS(338), 1, + anon_sym_RBRACE, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1825), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [80165] = 18, + ACTIONS(328), 1, + anon_sym_RBRACE, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1825), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [80230] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1871), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [80292] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1873), 1, + anon_sym_on, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [80354] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1875), 1, + anon_sym_on, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [80416] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1877), 1, + anon_sym_on, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [80478] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1879), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [80540] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1881), 1, + anon_sym_RBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [80602] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1883), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [80664] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1825), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [80726] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1885), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [80788] = 9, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1847), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 6, + anon_sym_EQ, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1166), 12, + anon_sym_LBRACE, + anon_sym_or, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [80834] = 10, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1845), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1847), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1168), 4, + anon_sym_EQ, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1166), 12, + anon_sym_LBRACE, + anon_sym_or, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [80882] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1887), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [80944] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1889), 1, + anon_sym_on, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [81006] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1891), 1, + anon_sym_on, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [81068] = 14, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1286), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1831), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1839), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1841), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1843), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1845), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1847), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1284), 6, + anon_sym_LBRACE, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [81124] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1893), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [81186] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1895), 1, + anon_sym_on, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [81248] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1897), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [81310] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1899), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [81372] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1829), 1, + anon_sym_EQ, + ACTIONS(1835), 1, + anon_sym_DOT_DOT, + ACTIONS(1837), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1901), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1831), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1839), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1841), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1843), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1845), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1847), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1833), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [81434] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1829), 1, + anon_sym_EQ, + ACTIONS(1835), 1, + anon_sym_DOT_DOT, + ACTIONS(1837), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1903), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1831), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1839), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1841), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1843), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1845), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1847), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1833), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [81496] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1905), 1, + anon_sym_on, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [81558] = 16, + ACTIONS(1270), 1, + anon_sym_EQ, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1835), 1, + anon_sym_DOT_DOT, + ACTIONS(1837), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1831), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1839), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1841), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1843), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1845), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1847), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1268), 5, + anon_sym_LBRACE, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [81618] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1907), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [81680] = 16, + ACTIONS(1266), 1, + anon_sym_EQ, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1835), 1, + anon_sym_DOT_DOT, + ACTIONS(1837), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1831), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1839), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1841), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1843), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1845), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1847), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1264), 5, + anon_sym_LBRACE, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [81740] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1909), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [81802] = 16, + ACTIONS(1274), 1, + anon_sym_EQ, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1835), 1, + anon_sym_DOT_DOT, + ACTIONS(1837), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1831), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1839), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1841), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1843), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1845), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1847), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1272), 5, + anon_sym_LBRACE, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [81862] = 14, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1282), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1831), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1839), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1841), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1843), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1845), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1847), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1280), 6, + anon_sym_LBRACE, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [81918] = 12, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1168), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1841), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1843), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1845), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1847), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 10, + anon_sym_LBRACE, + anon_sym_or, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + [81970] = 14, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1168), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1831), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1839), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1841), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1843), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1845), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1847), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 6, + anon_sym_LBRACE, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + [82026] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1829), 1, + anon_sym_EQ, + ACTIONS(1835), 1, + anon_sym_DOT_DOT, + ACTIONS(1837), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1911), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1831), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1839), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1841), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1843), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1845), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1847), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1833), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [82088] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1913), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [82150] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1915), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [82212] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1917), 1, + anon_sym_on, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [82274] = 13, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1168), 2, + anon_sym_EQ, + anon_sym_DOT_DOT, + ACTIONS(1839), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1841), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1843), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1845), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1847), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 8, + anon_sym_LBRACE, + anon_sym_or, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + [82328] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1919), 1, + anon_sym_RBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [82390] = 16, + ACTIONS(1168), 1, + anon_sym_EQ, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1835), 1, + anon_sym_DOT_DOT, + ACTIONS(1837), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1831), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1839), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1841), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1843), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1845), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1847), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1166), 5, + anon_sym_LBRACE, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [82450] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1921), 1, + anon_sym_on, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [82512] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1923), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [82574] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1925), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [82636] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1927), 1, + anon_sym_on, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [82698] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1929), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [82760] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1931), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [82822] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1933), 1, + anon_sym_on, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [82884] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1935), 1, + anon_sym_on, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [82946] = 17, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1714), 1, + anon_sym_DOT, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1829), 1, + anon_sym_EQ, + ACTIONS(1835), 1, + anon_sym_DOT_DOT, + ACTIONS(1837), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1937), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1831), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1839), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1841), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1843), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1845), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1847), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1833), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [83008] = 4, + ACTIONS(1939), 1, + anon_sym_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1200), 9, + anon_sym_EQ, + anon_sym_DOT, + anon_sym_DOT_DOT, + anon_sym_LT, + anon_sym_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1198), 14, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_or, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_DOT_DOT_EQ, + anon_sym_and, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_COLON_COLON, + [83043] = 16, + ACTIONS(1708), 1, + anon_sym_COLON, + ACTIONS(1710), 1, + anon_sym_LPAREN, + ACTIONS(1712), 1, + anon_sym_LBRACK, + ACTIONS(1716), 1, + anon_sym_COLON_COLON, + ACTIONS(1740), 1, + anon_sym_DOT_DOT, + ACTIONS(1742), 1, + anon_sym_DOT_DOT_EQ, + ACTIONS(1748), 1, + anon_sym_EQ, + ACTIONS(1941), 1, + anon_sym_DOT, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1728), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(1730), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1732), 2, + anon_sym_or, + anon_sym_and, + ACTIONS(1734), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(1736), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(1750), 4, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + [83102] = 12, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1949), 1, + anon_sym_RPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1955), 1, + sym_type_never, + ACTIONS(1957), 1, + anon_sym__, + STATE(1129), 1, + sym_type_name, + STATE(1375), 1, + sym__types, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1152), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [83150] = 12, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1955), 1, + sym_type_never, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(1959), 1, + anon_sym_RPAREN, + STATE(1129), 1, + sym_type_name, + STATE(1476), 1, + sym__types, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1152), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [83198] = 12, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1955), 1, + sym_type_never, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(1961), 1, + anon_sym_RBRACK, + STATE(1129), 1, + sym_type_name, + STATE(1484), 1, + sym__types, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1152), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [83246] = 12, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1955), 1, + sym_type_never, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(1963), 1, + anon_sym_RPAREN, + STATE(1129), 1, + sym_type_name, + STATE(1499), 1, + sym__types, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1152), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [83294] = 12, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1955), 1, + sym_type_never, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(1965), 1, + anon_sym_RBRACK, + STATE(1129), 1, + sym_type_name, + STATE(1467), 1, + sym__types, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1152), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [83342] = 12, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1955), 1, + sym_type_never, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(1967), 1, + anon_sym_RPAREN, + STATE(1129), 1, + sym_type_name, + STATE(1380), 1, + sym__types, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1152), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [83390] = 12, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1955), 1, + sym_type_never, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(1969), 1, + anon_sym_RBRACK, + STATE(1129), 1, + sym_type_name, + STATE(1396), 1, + sym__types, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1152), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [83438] = 11, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1955), 1, + sym_type_never, + ACTIONS(1957), 1, + anon_sym__, + STATE(1129), 1, + sym_type_name, + STATE(1496), 1, + sym__types, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1152), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [83483] = 11, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1955), 1, + sym_type_never, + ACTIONS(1957), 1, + anon_sym__, + STATE(1129), 1, + sym_type_name, + STATE(1381), 1, + sym__types, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1152), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [83528] = 11, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1955), 1, + sym_type_never, + ACTIONS(1957), 1, + anon_sym__, + STATE(1129), 1, + sym_type_name, + STATE(1501), 1, + sym__types, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1152), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [83573] = 11, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1955), 1, + sym_type_never, + ACTIONS(1957), 1, + anon_sym__, + STATE(1129), 1, + sym_type_name, + STATE(1376), 1, + sym__types, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1152), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [83618] = 11, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(1971), 1, + anon_sym_RPAREN, + ACTIONS(1973), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1259), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [83663] = 11, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(1975), 1, + anon_sym_RPAREN, + ACTIONS(1977), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1260), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [83708] = 11, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(1979), 1, + anon_sym_RPAREN, + ACTIONS(1981), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1318), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [83753] = 11, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(1983), 1, + anon_sym_RPAREN, + ACTIONS(1985), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1299), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [83798] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(1987), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1182), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [83840] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(1989), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1169), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [83882] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(1991), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1304), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [83924] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(1993), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1333), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [83966] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(1995), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1205), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [84008] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(1997), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1323), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [84050] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(1999), 1, + anon_sym_fun, + ACTIONS(2001), 1, + sym_type_never, + STATE(801), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(829), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [84092] = 10, + ACTIONS(2003), 1, + sym_name, + ACTIONS(2005), 1, + anon_sym_LBRACE, + ACTIONS(2007), 1, + anon_sym_LPAREN, + ACTIONS(2009), 1, + anon_sym_LBRACK, + ACTIONS(2011), 1, + anon_sym_fun, + ACTIONS(2013), 1, + sym_type_never, + ACTIONS(2015), 1, + anon_sym__, + STATE(436), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(437), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [84134] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2017), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1203), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [84176] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2019), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1184), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [84218] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2021), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1215), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [84260] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(1999), 1, + anon_sym_fun, + ACTIONS(2023), 1, + sym_type_never, + STATE(801), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(802), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [84302] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2025), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1183), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [84344] = 10, + ACTIONS(2003), 1, + sym_name, + ACTIONS(2005), 1, + anon_sym_LBRACE, + ACTIONS(2007), 1, + anon_sym_LPAREN, + ACTIONS(2009), 1, + anon_sym_LBRACK, + ACTIONS(2011), 1, + anon_sym_fun, + ACTIONS(2015), 1, + anon_sym__, + ACTIONS(2027), 1, + sym_type_never, + STATE(436), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(434), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [84386] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2029), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1295), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [84428] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2031), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1292), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [84470] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2033), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1212), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [84512] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(1999), 1, + anon_sym_fun, + ACTIONS(2035), 1, + sym_type_never, + STATE(801), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(787), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [84554] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2037), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1221), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [84596] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(1999), 1, + anon_sym_fun, + ACTIONS(2039), 1, + sym_type_never, + STATE(801), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(788), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [84638] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2041), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1226), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [84680] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2043), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1216), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [84722] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2045), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1175), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [84764] = 10, + ACTIONS(2003), 1, + sym_name, + ACTIONS(2005), 1, + anon_sym_LBRACE, + ACTIONS(2007), 1, + anon_sym_LPAREN, + ACTIONS(2009), 1, + anon_sym_LBRACK, + ACTIONS(2011), 1, + anon_sym_fun, + ACTIONS(2015), 1, + anon_sym__, + ACTIONS(2047), 1, + sym_type_never, + STATE(436), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(435), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [84806] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2049), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1142), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [84848] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2051), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1158), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [84890] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2035), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(787), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [84932] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2039), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(788), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [84974] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2053), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1191), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [85016] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2055), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1325), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [85058] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2057), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1162), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [85100] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2059), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1156), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [85142] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2061), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1166), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [85184] = 10, + ACTIONS(2003), 1, + sym_name, + ACTIONS(2005), 1, + anon_sym_LBRACE, + ACTIONS(2007), 1, + anon_sym_LPAREN, + ACTIONS(2009), 1, + anon_sym_LBRACK, + ACTIONS(2011), 1, + anon_sym_fun, + ACTIONS(2015), 1, + anon_sym__, + ACTIONS(2063), 1, + sym_type_never, + STATE(436), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(430), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [85226] = 10, + ACTIONS(2003), 1, + sym_name, + ACTIONS(2005), 1, + anon_sym_LBRACE, + ACTIONS(2007), 1, + anon_sym_LPAREN, + ACTIONS(2009), 1, + anon_sym_LBRACK, + ACTIONS(2011), 1, + anon_sym_fun, + ACTIONS(2015), 1, + anon_sym__, + ACTIONS(2065), 1, + sym_type_never, + STATE(436), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(429), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [85268] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(1999), 1, + anon_sym_fun, + ACTIONS(2067), 1, + sym_type_never, + STATE(801), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(820), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [85310] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2069), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1228), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [85352] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2071), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1170), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [85394] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2073), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1132), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [85436] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2075), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1187), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [85478] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2077), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1130), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [85520] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2079), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1193), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [85562] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2081), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1154), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [85604] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2083), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1188), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [85646] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2085), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1279), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [85688] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2087), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1222), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [85730] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2089), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1207), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [85772] = 10, + ACTIONS(1943), 1, + sym_name, + ACTIONS(1945), 1, + anon_sym_LBRACE, + ACTIONS(1947), 1, + anon_sym_LPAREN, + ACTIONS(1951), 1, + anon_sym_LBRACK, + ACTIONS(1953), 1, + anon_sym_fun, + ACTIONS(1957), 1, + anon_sym__, + ACTIONS(2091), 1, + sym_type_never, + STATE(1129), 1, + sym_type_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + STATE(1161), 11, + sym__type, + sym_type_fun, + sym_type_record_concat, + sym_type_array_concat, + sym_type_paren, + sym_type_nominal, + sym_type_tuple, + sym_type_record, + sym_type_array, + sym_type_unit, + sym_type_wild, + [85814] = 4, + ACTIONS(906), 1, + anon_sym_EQ, + ACTIONS(2093), 1, + anon_sym_LBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(904), 12, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_EQ_GT, + [85839] = 5, + ACTIONS(902), 1, + anon_sym_EQ, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(900), 10, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_in, + anon_sym_EQ_GT, + [85865] = 4, + ACTIONS(2103), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2099), 2, + anon_sym_LBRACE, + anon_sym_LPAREN, + ACTIONS(2101), 10, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_EQ_GT, + [85889] = 5, + ACTIONS(910), 1, + anon_sym_EQ, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(908), 10, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_SEMI, + anon_sym_or, + anon_sym_in, + anon_sym_EQ_GT, + [85915] = 8, + ACTIONS(17), 1, + sym_string_quote, + ACTIONS(19), 1, + anon_sym_SQUOTE, + ACTIONS(2105), 1, + sym_constant_int, + ACTIONS(2107), 1, + sym_constant_float, + ACTIONS(2111), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2109), 2, + anon_sym_true, + anon_sym_false, + STATE(1369), 5, + sym__constant, + sym_constant_string, + sym_constant_char, + sym_constant_bool, + sym_constant_unit, + [85946] = 3, + ACTIONS(2115), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2113), 10, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_EQ_GT, + [85966] = 3, + ACTIONS(2119), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2117), 10, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_EQ_GT, + [85986] = 3, + ACTIONS(2123), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2121), 10, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_EQ_GT, + [86006] = 3, + ACTIONS(2127), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2125), 10, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_EQ_GT, + [86026] = 3, + ACTIONS(2131), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2129), 10, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_EQ_GT, + [86046] = 3, + ACTIONS(2135), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2133), 10, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_EQ_GT, + [86066] = 3, + ACTIONS(2139), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2137), 10, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_EQ_GT, + [86086] = 3, + ACTIONS(2143), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2141), 10, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_EQ_GT, + [86106] = 5, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2147), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2145), 8, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_or, + anon_sym_in, + anon_sym_EQ_GT, + [86130] = 3, + ACTIONS(2151), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2149), 10, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_EQ_GT, + [86150] = 3, + ACTIONS(2155), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2153), 10, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_EQ_GT, + [86170] = 3, + ACTIONS(2159), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2157), 10, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_EQ_GT, + [86190] = 3, + ACTIONS(2163), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2161), 10, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_EQ_GT, + [86210] = 3, + ACTIONS(2167), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2165), 10, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_EQ_GT, + [86230] = 3, + ACTIONS(2171), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2169), 10, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_AMP, + anon_sym_PLUS_PLUS, + anon_sym_or, + anon_sym_in, + anon_sym_EQ_GT, + [86250] = 8, + ACTIONS(2173), 1, + anon_sym_COMMA, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + STATE(1251), 1, + aux_sym__patterns_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2177), 2, + anon_sym_RPAREN, + anon_sym_RBRACK, + [86277] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2185), 3, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + [86299] = 7, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2187), 1, + anon_sym_COMMA, + ACTIONS(2189), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [86322] = 6, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2191), 1, + anon_sym_COMMA, + STATE(1267), 1, + aux_sym__types_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2193), 2, + anon_sym_RPAREN, + anon_sym_RBRACK, + [86343] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2195), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + [86364] = 6, + ACTIONS(1849), 1, + anon_sym_LBRACE, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2197), 1, + anon_sym_EQ, + STATE(485), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [86384] = 5, + ACTIONS(2201), 1, + anon_sym_LBRACE, + ACTIONS(2203), 1, + anon_sym_RBRACE, + ACTIONS(2205), 1, + aux_sym__rust_token1, + ACTIONS(2199), 2, + sym__whitespace, + sym_line_comment, + STATE(1223), 2, + sym__rust, + aux_sym__rust_repeat1, + [86402] = 6, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2207), 1, + anon_sym_LBRACE, + ACTIONS(2209), 1, + anon_sym_EQ, + STATE(840), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [86422] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2211), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [86442] = 6, + ACTIONS(1849), 1, + anon_sym_LBRACE, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2213), 1, + anon_sym_EQ, + STATE(485), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [86462] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2215), 1, + anon_sym_in, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [86482] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2217), 1, + anon_sym_in, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [86502] = 6, + ACTIONS(1827), 1, + anon_sym_LBRACE, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2219), 1, + anon_sym_EQ, + STATE(886), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [86522] = 6, + ACTIONS(1849), 1, + anon_sym_LBRACE, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2221), 1, + anon_sym_EQ, + STATE(485), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [86542] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2223), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [86562] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2225), 1, + anon_sym_in, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [86582] = 5, + ACTIONS(2227), 1, + sym_string_quote, + ACTIONS(2229), 1, + sym_string_content, + ACTIONS(2231), 1, + anon_sym_DOLLAR, + ACTIONS(2199), 2, + sym__whitespace, + sym_line_comment, + STATE(1197), 2, + sym_string_interpolation, + aux_sym_constant_string_repeat1, + [86600] = 6, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2207), 1, + anon_sym_LBRACE, + ACTIONS(2233), 1, + anon_sym_EQ, + STATE(845), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [86620] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2235), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [86640] = 5, + ACTIONS(2201), 1, + anon_sym_LBRACE, + ACTIONS(2237), 1, + anon_sym_RBRACE, + ACTIONS(2239), 1, + aux_sym__rust_token1, + ACTIONS(2199), 2, + sym__whitespace, + sym_line_comment, + STATE(1227), 2, + sym__rust, + aux_sym__rust_repeat1, + [86658] = 6, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2207), 1, + anon_sym_LBRACE, + ACTIONS(2241), 1, + anon_sym_EQ, + STATE(819), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [86678] = 4, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2243), 3, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + [86694] = 5, + ACTIONS(2245), 1, + sym_string_quote, + ACTIONS(2247), 1, + sym_string_content, + ACTIONS(2250), 1, + anon_sym_DOLLAR, + ACTIONS(2199), 2, + sym__whitespace, + sym_line_comment, + STATE(1171), 2, + sym_string_interpolation, + aux_sym_constant_string_repeat1, + [86712] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2253), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [86732] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2255), 1, + anon_sym_in, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [86752] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2257), 1, + anon_sym_in, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [86772] = 6, + ACTIONS(1849), 1, + anon_sym_LBRACE, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2259), 1, + anon_sym_EQ, + STATE(485), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [86792] = 5, + ACTIONS(2201), 1, + anon_sym_LBRACE, + ACTIONS(2261), 1, + anon_sym_RBRACE, + ACTIONS(2263), 1, + aux_sym__rust_token1, + ACTIONS(2199), 2, + sym__whitespace, + sym_line_comment, + STATE(1192), 2, + sym__rust, + aux_sym__rust_repeat1, + [86810] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2265), 1, + anon_sym_in, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [86830] = 5, + ACTIONS(2231), 1, + anon_sym_DOLLAR, + ACTIONS(2267), 1, + sym_string_quote, + ACTIONS(2269), 1, + sym_string_content, + ACTIONS(2199), 2, + sym__whitespace, + sym_line_comment, + STATE(1171), 2, + sym_string_interpolation, + aux_sym_constant_string_repeat1, + [86848] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2271), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [86868] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2273), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [86888] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2275), 1, + anon_sym_in, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [86908] = 6, + ACTIONS(1849), 1, + anon_sym_LBRACE, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2277), 1, + anon_sym_EQ, + STATE(485), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [86928] = 6, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2207), 1, + anon_sym_LBRACE, + ACTIONS(2279), 1, + anon_sym_EQ, + STATE(822), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [86948] = 6, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2207), 1, + anon_sym_LBRACE, + ACTIONS(2281), 1, + anon_sym_EQ, + STATE(832), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [86968] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2283), 1, + anon_sym_in, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [86988] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2285), 1, + anon_sym_in, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87008] = 6, + ACTIONS(1827), 1, + anon_sym_LBRACE, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2287), 1, + anon_sym_EQ, + STATE(886), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87028] = 6, + ACTIONS(1849), 1, + anon_sym_LBRACE, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2289), 1, + anon_sym_EQ, + STATE(485), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87048] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2291), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87068] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2293), 1, + anon_sym_in, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87088] = 6, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2207), 1, + anon_sym_LBRACE, + ACTIONS(2295), 1, + anon_sym_EQ, + STATE(833), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87108] = 5, + ACTIONS(2297), 1, + anon_sym_LBRACE, + ACTIONS(2300), 1, + anon_sym_RBRACE, + ACTIONS(2302), 1, + aux_sym__rust_token1, + ACTIONS(2199), 2, + sym__whitespace, + sym_line_comment, + STATE(1192), 2, + sym__rust, + aux_sym__rust_repeat1, + [87126] = 6, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2207), 1, + anon_sym_LBRACE, + ACTIONS(2305), 1, + anon_sym_EQ, + STATE(835), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87146] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2307), 1, + anon_sym_in, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87166] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2309), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87186] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2311), 1, + anon_sym_in, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87206] = 5, + ACTIONS(2231), 1, + anon_sym_DOLLAR, + ACTIONS(2269), 1, + sym_string_content, + ACTIONS(2313), 1, + sym_string_quote, + ACTIONS(2199), 2, + sym__whitespace, + sym_line_comment, + STATE(1171), 2, + sym_string_interpolation, + aux_sym_constant_string_repeat1, + [87224] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2315), 1, + anon_sym_in, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87244] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2317), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87264] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2319), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87284] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2321), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87304] = 5, + ACTIONS(2201), 1, + anon_sym_LBRACE, + ACTIONS(2323), 1, + anon_sym_RBRACE, + ACTIONS(2325), 1, + aux_sym__rust_token1, + ACTIONS(2199), 2, + sym__whitespace, + sym_line_comment, + STATE(1176), 2, + sym__rust, + aux_sym__rust_repeat1, + [87322] = 6, + ACTIONS(1849), 1, + anon_sym_LBRACE, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2327), 1, + anon_sym_EQ, + STATE(485), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87342] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2329), 1, + anon_sym_EQ_GT, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87362] = 6, + ACTIONS(1849), 1, + anon_sym_LBRACE, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2331), 1, + anon_sym_EQ, + STATE(485), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87382] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2333), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87402] = 6, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2207), 1, + anon_sym_LBRACE, + ACTIONS(2335), 1, + anon_sym_EQ, + STATE(839), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87422] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2337), 1, + anon_sym_in, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87442] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2339), 1, + anon_sym_in, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87462] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2341), 1, + anon_sym_in, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87482] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2343), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87502] = 6, + ACTIONS(1849), 1, + anon_sym_LBRACE, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2345), 1, + anon_sym_EQ, + STATE(485), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87522] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2347), 1, + anon_sym_in, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87542] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2349), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87562] = 6, + ACTIONS(1849), 1, + anon_sym_LBRACE, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2351), 1, + anon_sym_EQ, + STATE(485), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87582] = 6, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2207), 1, + anon_sym_LBRACE, + ACTIONS(2353), 1, + anon_sym_EQ, + STATE(810), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87602] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2355), 1, + anon_sym_in, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87622] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2357), 1, + anon_sym_in, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87642] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2359), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87662] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2361), 1, + anon_sym_in, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87682] = 6, + ACTIONS(1849), 1, + anon_sym_LBRACE, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2363), 1, + anon_sym_EQ, + STATE(485), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87702] = 6, + ACTIONS(1849), 1, + anon_sym_LBRACE, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2365), 1, + anon_sym_EQ, + STATE(485), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87722] = 5, + ACTIONS(2201), 1, + anon_sym_LBRACE, + ACTIONS(2263), 1, + aux_sym__rust_token1, + ACTIONS(2367), 1, + anon_sym_RBRACE, + ACTIONS(2199), 2, + sym__whitespace, + sym_line_comment, + STATE(1192), 2, + sym__rust, + aux_sym__rust_repeat1, + [87740] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2369), 1, + anon_sym_in, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87760] = 5, + ACTIONS(2231), 1, + anon_sym_DOLLAR, + ACTIONS(2371), 1, + sym_string_quote, + ACTIONS(2373), 1, + sym_string_content, + ACTIONS(2199), 2, + sym__whitespace, + sym_line_comment, + STATE(1178), 2, + sym_string_interpolation, + aux_sym_constant_string_repeat1, + [87778] = 6, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2207), 1, + anon_sym_LBRACE, + ACTIONS(2375), 1, + anon_sym_EQ, + STATE(827), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87798] = 5, + ACTIONS(2201), 1, + anon_sym_LBRACE, + ACTIONS(2263), 1, + aux_sym__rust_token1, + ACTIONS(2377), 1, + anon_sym_RBRACE, + ACTIONS(2199), 2, + sym__whitespace, + sym_line_comment, + STATE(1192), 2, + sym__rust, + aux_sym__rust_repeat1, + [87816] = 6, + ACTIONS(1827), 1, + anon_sym_LBRACE, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2379), 1, + anon_sym_EQ, + STATE(886), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87836] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2381), 1, + anon_sym_in, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87856] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2383), 1, + anon_sym_in, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87876] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2385), 1, + anon_sym_in, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87896] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2387), 1, + anon_sym_in, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87916] = 6, + ACTIONS(2175), 1, + anon_sym_COLON, + ACTIONS(2179), 1, + anon_sym_AMP, + ACTIONS(2181), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2183), 1, + anon_sym_or, + ACTIONS(2389), 1, + anon_sym_in, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87936] = 5, + ACTIONS(2391), 1, + anon_sym_DASH_DASH_DASH, + ACTIONS(2393), 1, + aux_sym_code_token1, + STATE(1322), 1, + aux_sym_code_repeat1, + STATE(1480), 1, + sym_code, + ACTIONS(2199), 2, + sym__whitespace, + sym_line_comment, + [87953] = 5, + ACTIONS(2207), 1, + anon_sym_LBRACE, + ACTIONS(2295), 1, + anon_sym_EQ, + ACTIONS(2395), 1, + anon_sym_COLON, + STATE(833), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [87970] = 4, + ACTIONS(1744), 1, + anon_sym_COMMA, + STATE(1275), 1, + aux_sym__exprs_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2397), 2, + anon_sym_RPAREN, + anon_sym_RBRACK, + [87985] = 5, + ACTIONS(2399), 1, + sym_name, + ACTIONS(2401), 1, + anon_sym_RBRACK, + STATE(1328), 1, + sym_generic, + STATE(1441), 1, + sym__generics, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88002] = 5, + ACTIONS(2399), 1, + sym_name, + ACTIONS(2403), 1, + anon_sym_RBRACK, + STATE(1328), 1, + sym_generic, + STATE(1391), 1, + sym__generics, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88019] = 5, + ACTIONS(1849), 1, + anon_sym_LBRACE, + ACTIONS(2405), 1, + anon_sym_COLON, + ACTIONS(2407), 1, + anon_sym_EQ, + STATE(493), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88036] = 5, + ACTIONS(2207), 1, + anon_sym_LBRACE, + ACTIONS(2375), 1, + anon_sym_EQ, + ACTIONS(2409), 1, + anon_sym_COLON, + STATE(827), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88053] = 5, + ACTIONS(1849), 1, + anon_sym_LBRACE, + ACTIONS(2411), 1, + anon_sym_COLON, + ACTIONS(2413), 1, + anon_sym_EQ, + STATE(493), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88070] = 5, + ACTIONS(2207), 1, + anon_sym_LBRACE, + ACTIONS(2281), 1, + anon_sym_EQ, + ACTIONS(2415), 1, + anon_sym_COLON, + STATE(832), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88087] = 5, + ACTIONS(1827), 1, + anon_sym_LBRACE, + ACTIONS(2417), 1, + anon_sym_COLON, + ACTIONS(2419), 1, + anon_sym_EQ, + STATE(851), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88104] = 4, + ACTIONS(2421), 1, + anon_sym_COMMA, + STATE(1244), 1, + aux_sym__types_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2243), 2, + anon_sym_RPAREN, + anon_sym_RBRACK, + [88119] = 4, + ACTIONS(2424), 1, + anon_sym_COMMA, + STATE(1245), 1, + aux_sym__patterns_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2185), 2, + anon_sym_RPAREN, + anon_sym_RBRACK, + [88134] = 5, + ACTIONS(1827), 1, + anon_sym_LBRACE, + ACTIONS(2427), 1, + anon_sym_COLON, + ACTIONS(2429), 1, + anon_sym_EQ, + STATE(851), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88151] = 5, + ACTIONS(2207), 1, + anon_sym_LBRACE, + ACTIONS(2279), 1, + anon_sym_EQ, + ACTIONS(2431), 1, + anon_sym_COLON, + STATE(822), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88168] = 5, + ACTIONS(1726), 1, + anon_sym_RBRACE, + ACTIONS(2433), 1, + sym_name, + STATE(1290), 1, + sym_pattern_field, + STATE(1494), 1, + sym__pattern_fields, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88185] = 5, + ACTIONS(2435), 1, + sym_name, + ACTIONS(2437), 1, + anon_sym_RBRACE, + STATE(1310), 1, + sym_attribute, + STATE(1505), 1, + sym__attributes, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88202] = 5, + ACTIONS(1849), 1, + anon_sym_LBRACE, + ACTIONS(2439), 1, + anon_sym_COLON, + ACTIONS(2441), 1, + anon_sym_EQ, + STATE(493), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88219] = 4, + ACTIONS(2173), 1, + anon_sym_COMMA, + STATE(1245), 1, + aux_sym__patterns_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2443), 2, + anon_sym_RPAREN, + anon_sym_RBRACK, + [88234] = 5, + ACTIONS(1827), 1, + anon_sym_LBRACE, + ACTIONS(2445), 1, + anon_sym_COLON, + ACTIONS(2447), 1, + anon_sym_EQ, + STATE(851), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88251] = 5, + ACTIONS(2207), 1, + anon_sym_LBRACE, + ACTIONS(2353), 1, + anon_sym_EQ, + ACTIONS(2449), 1, + anon_sym_COLON, + STATE(810), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88268] = 5, + ACTIONS(1849), 1, + anon_sym_LBRACE, + ACTIONS(2451), 1, + anon_sym_COLON, + ACTIONS(2453), 1, + anon_sym_EQ, + STATE(493), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88285] = 5, + ACTIONS(2433), 1, + sym_name, + ACTIONS(2455), 1, + anon_sym_RBRACE, + STATE(1290), 1, + sym_pattern_field, + STATE(1420), 1, + sym__pattern_fields, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88302] = 5, + ACTIONS(2207), 1, + anon_sym_LBRACE, + ACTIONS(2457), 1, + anon_sym_COLON, + ACTIONS(2459), 1, + anon_sym_EQ, + STATE(808), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88319] = 5, + ACTIONS(1963), 1, + anon_sym_RBRACE, + ACTIONS(2461), 1, + sym_name, + STATE(1313), 1, + sym_type_field, + STATE(1393), 1, + sym__type_fields, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88336] = 5, + ACTIONS(1849), 1, + anon_sym_LBRACE, + ACTIONS(2463), 1, + anon_sym_COLON, + ACTIONS(2465), 1, + anon_sym_EQ, + STATE(493), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88353] = 5, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2467), 1, + anon_sym_COMMA, + ACTIONS(2469), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88370] = 5, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2471), 1, + anon_sym_COMMA, + ACTIONS(2473), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88387] = 5, + ACTIONS(1849), 1, + anon_sym_LBRACE, + ACTIONS(2475), 1, + anon_sym_COLON, + ACTIONS(2477), 1, + anon_sym_EQ, + STATE(493), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88404] = 5, + ACTIONS(1849), 1, + anon_sym_LBRACE, + ACTIONS(2479), 1, + anon_sym_COLON, + ACTIONS(2481), 1, + anon_sym_EQ, + STATE(493), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88421] = 5, + ACTIONS(1849), 1, + anon_sym_LBRACE, + ACTIONS(2483), 1, + anon_sym_COLON, + ACTIONS(2485), 1, + anon_sym_EQ, + STATE(493), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88438] = 5, + ACTIONS(1849), 1, + anon_sym_LBRACE, + ACTIONS(2487), 1, + anon_sym_COLON, + ACTIONS(2489), 1, + anon_sym_EQ, + STATE(493), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88455] = 5, + ACTIONS(2207), 1, + anon_sym_LBRACE, + ACTIONS(2491), 1, + anon_sym_COLON, + ACTIONS(2493), 1, + anon_sym_EQ, + STATE(809), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88472] = 5, + ACTIONS(2207), 1, + anon_sym_LBRACE, + ACTIONS(2495), 1, + anon_sym_COLON, + ACTIONS(2497), 1, + anon_sym_EQ, + STATE(817), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88489] = 4, + ACTIONS(2191), 1, + anon_sym_COMMA, + STATE(1244), 1, + aux_sym__types_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2499), 2, + anon_sym_RPAREN, + anon_sym_RBRACK, + [88504] = 5, + ACTIONS(2399), 1, + sym_name, + ACTIONS(2501), 1, + anon_sym_RBRACK, + STATE(1328), 1, + sym_generic, + STATE(1459), 1, + sym__generics, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88521] = 5, + ACTIONS(2207), 1, + anon_sym_LBRACE, + ACTIONS(2503), 1, + anon_sym_COLON, + ACTIONS(2505), 1, + anon_sym_EQ, + STATE(797), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88538] = 5, + ACTIONS(1849), 1, + anon_sym_LBRACE, + ACTIONS(2507), 1, + anon_sym_COLON, + ACTIONS(2509), 1, + anon_sym_EQ, + STATE(493), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88555] = 5, + ACTIONS(1849), 1, + anon_sym_LBRACE, + ACTIONS(2511), 1, + anon_sym_COLON, + ACTIONS(2513), 1, + anon_sym_EQ, + STATE(493), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88572] = 5, + ACTIONS(2399), 1, + sym_name, + ACTIONS(2515), 1, + anon_sym_RBRACK, + STATE(1328), 1, + sym_generic, + STATE(1413), 1, + sym__generics, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88589] = 5, + ACTIONS(2399), 1, + sym_name, + ACTIONS(2517), 1, + anon_sym_RBRACK, + STATE(1328), 1, + sym_generic, + STATE(1431), 1, + sym__generics, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88606] = 5, + ACTIONS(2399), 1, + sym_name, + ACTIONS(2519), 1, + anon_sym_RBRACK, + STATE(1328), 1, + sym_generic, + STATE(1415), 1, + sym__generics, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88623] = 4, + ACTIONS(2521), 1, + anon_sym_COMMA, + STATE(1275), 1, + aux_sym__exprs_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(1811), 2, + anon_sym_RPAREN, + anon_sym_RBRACK, + [88638] = 4, + ACTIONS(2526), 1, + anon_sym_LBRACE, + ACTIONS(2528), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2524), 2, + sym_name, + anon_sym_RBRACE, + [88653] = 5, + ACTIONS(1849), 1, + anon_sym_LBRACE, + ACTIONS(2530), 1, + anon_sym_COLON, + ACTIONS(2532), 1, + anon_sym_EQ, + STATE(493), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88670] = 5, + ACTIONS(2207), 1, + anon_sym_LBRACE, + ACTIONS(2209), 1, + anon_sym_EQ, + ACTIONS(2534), 1, + anon_sym_COLON, + STATE(840), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88687] = 4, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2536), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + [88702] = 4, + ACTIONS(2538), 1, + sym_name, + ACTIONS(2540), 1, + anon_sym_RBRACE, + STATE(1329), 1, + aux_sym_stmt_enum_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88716] = 4, + ACTIONS(2538), 1, + sym_name, + ACTIONS(2542), 1, + anon_sym_RBRACE, + STATE(1329), 1, + aux_sym_stmt_enum_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88730] = 4, + ACTIONS(2461), 1, + sym_name, + STATE(1313), 1, + sym_type_field, + STATE(1493), 1, + sym__type_fields, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88744] = 3, + ACTIONS(1038), 1, + aux_sym__rust_token1, + ACTIONS(1036), 2, + anon_sym_LBRACE, + anon_sym_RBRACE, + ACTIONS(2199), 2, + sym__whitespace, + sym_line_comment, + [88756] = 3, + ACTIONS(968), 1, + sym_string_content, + ACTIONS(966), 2, + sym_string_quote, + anon_sym_DOLLAR, + ACTIONS(2199), 2, + sym__whitespace, + sym_line_comment, + [88768] = 4, + ACTIONS(2544), 1, + anon_sym_RBRACE, + ACTIONS(2546), 1, + anon_sym_COMMA, + STATE(1285), 1, + aux_sym__expr_fields_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88782] = 4, + ACTIONS(2549), 1, + anon_sym_LBRACE, + STATE(494), 1, + sym__rust, + STATE(496), 1, + sym_rust, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88796] = 4, + ACTIONS(2538), 1, + sym_name, + ACTIONS(2551), 1, + anon_sym_RBRACE, + STATE(1307), 1, + aux_sym_stmt_enum_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88810] = 4, + ACTIONS(2553), 1, + anon_sym_RBRACE, + ACTIONS(2555), 1, + anon_sym_COMMA, + STATE(1288), 1, + aux_sym__attributes_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88824] = 4, + ACTIONS(2558), 1, + anon_sym_RBRACE, + ACTIONS(2560), 1, + anon_sym_COMMA, + STATE(1300), 1, + aux_sym__arms_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88838] = 4, + ACTIONS(2562), 1, + anon_sym_RBRACE, + ACTIONS(2564), 1, + anon_sym_COMMA, + STATE(1298), 1, + aux_sym__pattern_fields_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88852] = 4, + ACTIONS(2538), 1, + sym_name, + ACTIONS(2566), 1, + anon_sym_RBRACE, + STATE(1280), 1, + aux_sym_stmt_enum_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88866] = 4, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2568), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88880] = 4, + ACTIONS(2570), 1, + anon_sym_RBRACE, + ACTIONS(2572), 1, + anon_sym_COMMA, + STATE(1311), 1, + aux_sym__type_fields_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88894] = 4, + ACTIONS(2538), 1, + sym_name, + ACTIONS(2574), 1, + anon_sym_RBRACE, + STATE(1329), 1, + aux_sym_stmt_enum_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88908] = 4, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2576), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88922] = 4, + ACTIONS(2538), 1, + sym_name, + ACTIONS(2578), 1, + anon_sym_RBRACE, + STATE(1329), 1, + aux_sym_stmt_enum_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88936] = 4, + ACTIONS(2538), 1, + sym_name, + ACTIONS(2580), 1, + anon_sym_RBRACE, + STATE(1294), 1, + aux_sym_stmt_enum_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88950] = 4, + ACTIONS(2564), 1, + anon_sym_COMMA, + ACTIONS(2582), 1, + anon_sym_RBRACE, + STATE(1330), 1, + aux_sym__pattern_fields_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88964] = 4, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2584), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88978] = 4, + ACTIONS(2560), 1, + anon_sym_COMMA, + ACTIONS(2586), 1, + anon_sym_RBRACE, + STATE(1303), 1, + aux_sym__arms_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [88992] = 2, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2588), 3, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + [89002] = 3, + ACTIONS(2592), 1, + anon_sym_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2590), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + [89014] = 4, + ACTIONS(2594), 1, + anon_sym_RBRACE, + ACTIONS(2596), 1, + anon_sym_COMMA, + STATE(1303), 1, + aux_sym__arms_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89028] = 4, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2599), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89042] = 2, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2601), 3, + anon_sym_def, + anon_sym_type, + anon_sym_enum, + [89052] = 4, + ACTIONS(2538), 1, + sym_name, + ACTIONS(2603), 1, + anon_sym_RBRACE, + STATE(1326), 1, + aux_sym_stmt_enum_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89066] = 4, + ACTIONS(2538), 1, + sym_name, + ACTIONS(2605), 1, + anon_sym_RBRACE, + STATE(1329), 1, + aux_sym_stmt_enum_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89080] = 4, + ACTIONS(2461), 1, + sym_name, + STATE(1313), 1, + sym_type_field, + STATE(1507), 1, + sym__type_fields, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89094] = 4, + ACTIONS(2607), 1, + anon_sym_RBRACE, + ACTIONS(2609), 1, + anon_sym_COMMA, + STATE(1288), 1, + aux_sym__attributes_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89108] = 4, + ACTIONS(2609), 1, + anon_sym_COMMA, + ACTIONS(2611), 1, + anon_sym_RBRACE, + STATE(1309), 1, + aux_sym__attributes_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89122] = 4, + ACTIONS(2613), 1, + anon_sym_RBRACE, + ACTIONS(2615), 1, + anon_sym_COMMA, + STATE(1311), 1, + aux_sym__type_fields_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89136] = 4, + ACTIONS(2538), 1, + sym_name, + ACTIONS(2618), 1, + anon_sym_RBRACE, + STATE(1281), 1, + aux_sym_stmt_enum_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89150] = 4, + ACTIONS(2572), 1, + anon_sym_COMMA, + ACTIONS(2620), 1, + anon_sym_RBRACE, + STATE(1293), 1, + aux_sym__type_fields_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89164] = 4, + ACTIONS(2622), 1, + anon_sym_RBRACE, + ACTIONS(2624), 1, + anon_sym_COMMA, + STATE(1285), 1, + aux_sym__expr_fields_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89178] = 4, + ACTIONS(2626), 1, + anon_sym_LBRACE, + STATE(877), 1, + sym__rust, + STATE(878), 1, + sym_rust, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89192] = 3, + ACTIONS(2630), 1, + sym_string_content, + ACTIONS(2199), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2628), 2, + sym_string_quote, + anon_sym_DOLLAR, + [89204] = 4, + ACTIONS(2632), 1, + anon_sym_COMMA, + ACTIONS(2634), 1, + anon_sym_RBRACK, + STATE(1319), 1, + aux_sym__generics_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89218] = 4, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2636), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89232] = 4, + ACTIONS(2638), 1, + anon_sym_COMMA, + ACTIONS(2641), 1, + anon_sym_RBRACK, + STATE(1319), 1, + aux_sym__generics_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89246] = 4, + ACTIONS(2643), 1, + anon_sym_DASH_DASH_DASH, + ACTIONS(2645), 1, + aux_sym_code_token1, + STATE(1320), 1, + aux_sym_code_repeat1, + ACTIONS(2199), 2, + sym__whitespace, + sym_line_comment, + [89260] = 3, + ACTIONS(1084), 1, + aux_sym__rust_token1, + ACTIONS(1082), 2, + anon_sym_LBRACE, + anon_sym_RBRACE, + ACTIONS(2199), 2, + sym__whitespace, + sym_line_comment, + [89272] = 4, + ACTIONS(2648), 1, + anon_sym_DASH_DASH_DASH, + ACTIONS(2650), 1, + aux_sym_code_token1, + STATE(1320), 1, + aux_sym_code_repeat1, + ACTIONS(2199), 2, + sym__whitespace, + sym_line_comment, + [89286] = 4, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2652), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89300] = 3, + ACTIONS(2656), 1, + anon_sym_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2654), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + [89312] = 4, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2658), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89326] = 4, + ACTIONS(2538), 1, + sym_name, + ACTIONS(2660), 1, + anon_sym_RBRACE, + STATE(1329), 1, + aux_sym_stmt_enum_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89340] = 3, + ACTIONS(976), 1, + sym_string_content, + ACTIONS(974), 2, + sym_string_quote, + anon_sym_DOLLAR, + ACTIONS(2199), 2, + sym__whitespace, + sym_line_comment, + [89352] = 4, + ACTIONS(2632), 1, + anon_sym_COMMA, + ACTIONS(2662), 1, + anon_sym_RBRACK, + STATE(1317), 1, + aux_sym__generics_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89366] = 4, + ACTIONS(2664), 1, + sym_name, + ACTIONS(2667), 1, + anon_sym_RBRACE, + STATE(1329), 1, + aux_sym_stmt_enum_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89380] = 4, + ACTIONS(2669), 1, + anon_sym_RBRACE, + ACTIONS(2671), 1, + anon_sym_COMMA, + STATE(1330), 1, + aux_sym__pattern_fields_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89394] = 4, + ACTIONS(2624), 1, + anon_sym_COMMA, + ACTIONS(2674), 1, + anon_sym_RBRACE, + STATE(1314), 1, + aux_sym__expr_fields_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89408] = 4, + ACTIONS(2538), 1, + sym_name, + ACTIONS(2676), 1, + anon_sym_RBRACE, + STATE(1296), 1, + aux_sym_stmt_enum_repeat1, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89422] = 4, + ACTIONS(2095), 1, + anon_sym_AMP, + ACTIONS(2097), 1, + anon_sym_PLUS_PLUS, + ACTIONS(2678), 1, + anon_sym_SEMI, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89436] = 3, + ACTIONS(980), 1, + sym_string_content, + ACTIONS(978), 2, + sym_string_quote, + anon_sym_DOLLAR, + ACTIONS(2199), 2, + sym__whitespace, + sym_line_comment, + [89448] = 4, + ACTIONS(2680), 1, + sym_name, + ACTIONS(2682), 1, + anon_sym_LBRACE, + STATE(1316), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89462] = 4, + ACTIONS(2684), 1, + anon_sym_def, + ACTIONS(2686), 1, + anon_sym_type, + ACTIONS(2688), 1, + anon_sym_enum, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89476] = 2, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2690), 2, + anon_sym_rust, + anon_sym_python, + [89485] = 2, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2544), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + [89494] = 2, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2692), 2, + sym_name, + anon_sym_RBRACE, + [89503] = 3, + ACTIONS(2694), 1, + sym_name, + ACTIONS(2696), 1, + sym_index, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89514] = 3, + ACTIONS(2435), 1, + sym_name, + STATE(1368), 1, + sym_attribute, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89525] = 3, + ACTIONS(1827), 1, + anon_sym_LBRACE, + STATE(1477), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89536] = 2, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2641), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [89545] = 2, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2594), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + [89554] = 3, + ACTIONS(2698), 1, + sym_name, + ACTIONS(2700), 1, + sym_index, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89565] = 3, + ACTIONS(1827), 1, + anon_sym_LBRACE, + STATE(852), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89576] = 2, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2702), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [89585] = 3, + ACTIONS(1827), 1, + anon_sym_LBRACE, + STATE(885), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89596] = 3, + ACTIONS(2700), 1, + sym_index, + ACTIONS(2704), 1, + sym_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89607] = 2, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2706), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + [89616] = 3, + ACTIONS(2461), 1, + sym_name, + STATE(1363), 1, + sym_type_field, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89627] = 3, + ACTIONS(1849), 1, + anon_sym_LBRACE, + STATE(467), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89638] = 3, + ACTIONS(1849), 1, + anon_sym_LBRACE, + STATE(488), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89649] = 3, + ACTIONS(1849), 1, + anon_sym_LBRACE, + STATE(489), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89660] = 2, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2669), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + [89669] = 3, + ACTIONS(2708), 1, + anon_sym_LPAREN, + ACTIONS(2710), 1, + anon_sym_LBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89680] = 3, + ACTIONS(2712), 1, + anon_sym_LBRACK, + ACTIONS(2714), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89691] = 3, + ACTIONS(2716), 1, + anon_sym_LBRACE, + ACTIONS(2718), 1, + anon_sym_LBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89702] = 3, + ACTIONS(2720), 1, + anon_sym_LBRACK, + ACTIONS(2722), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89713] = 3, + ACTIONS(1827), 1, + anon_sym_LBRACE, + STATE(1444), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89724] = 3, + ACTIONS(1827), 1, + anon_sym_LBRACE, + STATE(870), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89735] = 3, + ACTIONS(1849), 1, + anon_sym_LBRACE, + STATE(492), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89746] = 2, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2613), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + [89755] = 3, + ACTIONS(1849), 1, + anon_sym_LBRACE, + STATE(469), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89766] = 3, + ACTIONS(2724), 1, + anon_sym_LBRACE, + ACTIONS(2726), 1, + anon_sym_LBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89777] = 2, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2728), 2, + sym_name, + anon_sym_RBRACE, + [89786] = 3, + ACTIONS(1827), 1, + anon_sym_LBRACE, + STATE(873), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89797] = 2, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2553), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + [89806] = 2, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + ACTIONS(2730), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + [89815] = 3, + ACTIONS(1827), 1, + anon_sym_LBRACE, + STATE(893), 1, + sym_block, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89826] = 3, + ACTIONS(2732), 1, + anon_sym_LPAREN, + ACTIONS(2734), 1, + anon_sym_LBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89837] = 3, + ACTIONS(2736), 1, + anon_sym_LBRACE, + ACTIONS(2738), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89848] = 3, + ACTIONS(2433), 1, + sym_name, + STATE(1355), 1, + sym_pattern_field, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89859] = 3, + ACTIONS(2399), 1, + sym_name, + STATE(1343), 1, + sym_generic, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89870] = 2, + ACTIONS(2740), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89878] = 2, + ACTIONS(2742), 1, + anon_sym_RBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89886] = 2, + ACTIONS(2744), 1, + anon_sym_RBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89894] = 2, + ACTIONS(2746), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89902] = 2, + ACTIONS(2748), 1, + ts_builtin_sym_end, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89910] = 2, + ACTIONS(2750), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89918] = 2, + ACTIONS(2752), 1, + anon_sym_RBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89926] = 2, + ACTIONS(2754), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89934] = 2, + ACTIONS(2756), 1, + anon_sym_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89942] = 2, + ACTIONS(2758), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89950] = 2, + ACTIONS(2760), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89958] = 2, + ACTIONS(2762), 1, + anon_sym_SQUOTE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89966] = 2, + ACTIONS(2764), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89974] = 2, + ACTIONS(2766), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89982] = 2, + ACTIONS(2768), 1, + anon_sym_RBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89990] = 2, + ACTIONS(2770), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [89998] = 2, + ACTIONS(2772), 1, + anon_sym_RBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90006] = 2, + ACTIONS(2774), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90014] = 2, + ACTIONS(2776), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90022] = 2, + ACTIONS(2778), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90030] = 2, + ACTIONS(2780), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90038] = 2, + ACTIONS(2782), 1, + anon_sym_RBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90046] = 2, + ACTIONS(2784), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90054] = 2, + ACTIONS(2786), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90062] = 2, + ACTIONS(2788), 1, + sym_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90070] = 2, + ACTIONS(2790), 1, + anon_sym_RBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90078] = 2, + ACTIONS(2792), 1, + anon_sym_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90086] = 2, + ACTIONS(2794), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90094] = 2, + ACTIONS(2796), 1, + anon_sym_finally, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90102] = 2, + ACTIONS(2798), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90110] = 2, + ACTIONS(2800), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90118] = 2, + ACTIONS(2802), 1, + sym_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90126] = 2, + ACTIONS(2804), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90134] = 2, + ACTIONS(2806), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90142] = 2, + ACTIONS(2808), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90150] = 2, + ACTIONS(2810), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90158] = 2, + ACTIONS(2812), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90166] = 2, + ACTIONS(2814), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90174] = 2, + ACTIONS(2816), 1, + anon_sym_RBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90182] = 2, + ACTIONS(2818), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90190] = 2, + ACTIONS(2820), 1, + anon_sym_RBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90198] = 2, + ACTIONS(2822), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90206] = 2, + ACTIONS(2824), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90214] = 2, + ACTIONS(2826), 1, + anon_sym_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90222] = 2, + ACTIONS(2828), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90230] = 2, + ACTIONS(2830), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90238] = 2, + ACTIONS(2832), 1, + anon_sym_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90246] = 2, + ACTIONS(2834), 1, + anon_sym_finally, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90254] = 2, + ACTIONS(2836), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90262] = 2, + ACTIONS(2838), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90270] = 2, + ACTIONS(380), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90278] = 2, + ACTIONS(2840), 1, + anon_sym_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90286] = 2, + ACTIONS(2842), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90294] = 2, + ACTIONS(2844), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90302] = 2, + ACTIONS(2846), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90310] = 2, + ACTIONS(2848), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90318] = 2, + ACTIONS(2850), 1, + anon_sym_RBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90326] = 2, + ACTIONS(2852), 1, + anon_sym_finally, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90334] = 2, + ACTIONS(2854), 1, + anon_sym_SQUOTE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90342] = 2, + ACTIONS(2856), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90350] = 2, + ACTIONS(2858), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90358] = 2, + ACTIONS(2860), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90366] = 2, + ACTIONS(2862), 1, + sym_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90374] = 2, + ACTIONS(2864), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90382] = 2, + ACTIONS(2866), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90390] = 2, + ACTIONS(2868), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90398] = 2, + ACTIONS(2870), 1, + anon_sym_RBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90406] = 2, + ACTIONS(2872), 1, + anon_sym_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90414] = 2, + ACTIONS(2874), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90422] = 2, + ACTIONS(2876), 1, + anon_sym_catch, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90430] = 2, + ACTIONS(2878), 1, + anon_sym_LBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90438] = 2, + ACTIONS(2880), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90446] = 2, + ACTIONS(2882), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90454] = 2, + ACTIONS(2884), 1, + aux_sym_constant_char_token1, + ACTIONS(2199), 2, + sym__whitespace, + sym_line_comment, + [90462] = 2, + ACTIONS(2886), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90470] = 2, + ACTIONS(2888), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90478] = 2, + ACTIONS(2890), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90486] = 2, + ACTIONS(2892), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90494] = 2, + ACTIONS(2894), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90502] = 2, + ACTIONS(2896), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90510] = 2, + ACTIONS(2898), 1, + sym_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90518] = 2, + ACTIONS(2900), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90526] = 2, + ACTIONS(2902), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90534] = 2, + ACTIONS(2904), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90542] = 2, + ACTIONS(2906), 1, + anon_sym_RBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90550] = 2, + ACTIONS(2908), 1, + sym_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90558] = 2, + ACTIONS(2910), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90566] = 2, + ACTIONS(2912), 1, + sym_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90574] = 2, + ACTIONS(2914), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90582] = 2, + ACTIONS(2916), 1, + anon_sym_RBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90590] = 2, + ACTIONS(2918), 1, + anon_sym_COLON, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90598] = 2, + ACTIONS(2920), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90606] = 2, + ACTIONS(2922), 1, + anon_sym_RBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90614] = 2, + ACTIONS(2924), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90622] = 2, + ACTIONS(2926), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90630] = 2, + ACTIONS(2928), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90638] = 2, + ACTIONS(2930), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90646] = 2, + ACTIONS(2932), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90654] = 2, + ACTIONS(2934), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90662] = 2, + ACTIONS(2936), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90670] = 2, + ACTIONS(2938), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90678] = 2, + ACTIONS(2940), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90686] = 2, + ACTIONS(2942), 1, + anon_sym_catch, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90694] = 2, + ACTIONS(2944), 1, + anon_sym_LBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90702] = 2, + ACTIONS(2946), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90710] = 2, + ACTIONS(2948), 1, + anon_sym_DASH_DASH_DASH, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90718] = 2, + ACTIONS(2950), 1, + anon_sym_LBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90726] = 2, + ACTIONS(2952), 1, + sym_name, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90734] = 2, + ACTIONS(1720), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90742] = 2, + ACTIONS(2954), 1, + anon_sym_RBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90750] = 2, + ACTIONS(2956), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90758] = 2, + ACTIONS(2958), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90766] = 2, + ACTIONS(2960), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90774] = 2, + ACTIONS(2962), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90782] = 2, + ACTIONS(2964), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90790] = 2, + ACTIONS(2966), 1, + aux_sym_constant_char_token1, + ACTIONS(2199), 2, + sym__whitespace, + sym_line_comment, + [90798] = 2, + ACTIONS(2968), 1, + anon_sym_finally, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90806] = 2, + ACTIONS(2970), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90814] = 2, + ACTIONS(2972), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90822] = 2, + ACTIONS(2974), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90830] = 2, + ACTIONS(2976), 1, + anon_sym_LBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90838] = 2, + ACTIONS(2978), 1, + anon_sym_RBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90846] = 2, + ACTIONS(2980), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90854] = 2, + ACTIONS(2982), 1, + anon_sym_LBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90862] = 2, + ACTIONS(2776), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90870] = 2, + ACTIONS(2984), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90878] = 2, + ACTIONS(2986), 1, + anon_sym_RBRACK, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90886] = 2, + ACTIONS(2988), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90894] = 2, + ACTIONS(2990), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90902] = 2, + ACTIONS(2992), 1, + anon_sym_EQ, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90910] = 2, + ACTIONS(2994), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90918] = 2, + ACTIONS(2996), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90926] = 2, + ACTIONS(2998), 1, + anon_sym_RBRACE, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90934] = 2, + ACTIONS(3000), 1, + anon_sym_LPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90942] = 2, + ACTIONS(1702), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, + [90950] = 2, + ACTIONS(2974), 1, + anon_sym_RPAREN, + ACTIONS(3), 2, + sym__whitespace, + sym_line_comment, +}; + +static const uint32_t ts_small_parse_table_map[] = { + [SMALL_STATE(44)] = 0, + [SMALL_STATE(45)] = 122, + [SMALL_STATE(46)] = 243, + [SMALL_STATE(47)] = 364, + [SMALL_STATE(48)] = 485, + [SMALL_STATE(49)] = 606, + [SMALL_STATE(50)] = 727, + [SMALL_STATE(51)] = 848, + [SMALL_STATE(52)] = 969, + [SMALL_STATE(53)] = 1090, + [SMALL_STATE(54)] = 1211, + [SMALL_STATE(55)] = 1332, + [SMALL_STATE(56)] = 1453, + [SMALL_STATE(57)] = 1574, + [SMALL_STATE(58)] = 1692, + [SMALL_STATE(59)] = 1810, + [SMALL_STATE(60)] = 1880, + [SMALL_STATE(61)] = 1950, + [SMALL_STATE(62)] = 2044, + [SMALL_STATE(63)] = 2159, + [SMALL_STATE(64)] = 2274, + [SMALL_STATE(65)] = 2389, + [SMALL_STATE(66)] = 2504, + [SMALL_STATE(67)] = 2619, + [SMALL_STATE(68)] = 2734, + [SMALL_STATE(69)] = 2849, + [SMALL_STATE(70)] = 2964, + [SMALL_STATE(71)] = 3079, + [SMALL_STATE(72)] = 3194, + [SMALL_STATE(73)] = 3309, + [SMALL_STATE(74)] = 3424, + [SMALL_STATE(75)] = 3539, + [SMALL_STATE(76)] = 3654, + [SMALL_STATE(77)] = 3769, + [SMALL_STATE(78)] = 3884, + [SMALL_STATE(79)] = 3999, + [SMALL_STATE(80)] = 4114, + [SMALL_STATE(81)] = 4229, + [SMALL_STATE(82)] = 4344, + [SMALL_STATE(83)] = 4459, + [SMALL_STATE(84)] = 4574, + [SMALL_STATE(85)] = 4689, + [SMALL_STATE(86)] = 4804, + [SMALL_STATE(87)] = 4919, + [SMALL_STATE(88)] = 5034, + [SMALL_STATE(89)] = 5149, + [SMALL_STATE(90)] = 5264, + [SMALL_STATE(91)] = 5379, + [SMALL_STATE(92)] = 5494, + [SMALL_STATE(93)] = 5609, + [SMALL_STATE(94)] = 5724, + [SMALL_STATE(95)] = 5839, + [SMALL_STATE(96)] = 5954, + [SMALL_STATE(97)] = 6069, + [SMALL_STATE(98)] = 6184, + [SMALL_STATE(99)] = 6299, + [SMALL_STATE(100)] = 6414, + [SMALL_STATE(101)] = 6529, + [SMALL_STATE(102)] = 6644, + [SMALL_STATE(103)] = 6759, + [SMALL_STATE(104)] = 6874, + [SMALL_STATE(105)] = 6989, + [SMALL_STATE(106)] = 7104, + [SMALL_STATE(107)] = 7219, + [SMALL_STATE(108)] = 7334, + [SMALL_STATE(109)] = 7449, + [SMALL_STATE(110)] = 7564, + [SMALL_STATE(111)] = 7679, + [SMALL_STATE(112)] = 7794, + [SMALL_STATE(113)] = 7909, + [SMALL_STATE(114)] = 8024, + [SMALL_STATE(115)] = 8139, + [SMALL_STATE(116)] = 8254, + [SMALL_STATE(117)] = 8369, + [SMALL_STATE(118)] = 8484, + [SMALL_STATE(119)] = 8599, + [SMALL_STATE(120)] = 8714, + [SMALL_STATE(121)] = 8829, + [SMALL_STATE(122)] = 8944, + [SMALL_STATE(123)] = 9059, + [SMALL_STATE(124)] = 9174, + [SMALL_STATE(125)] = 9289, + [SMALL_STATE(126)] = 9404, + [SMALL_STATE(127)] = 9519, + [SMALL_STATE(128)] = 9634, + [SMALL_STATE(129)] = 9749, + [SMALL_STATE(130)] = 9864, + [SMALL_STATE(131)] = 9979, + [SMALL_STATE(132)] = 10094, + [SMALL_STATE(133)] = 10209, + [SMALL_STATE(134)] = 10324, + [SMALL_STATE(135)] = 10439, + [SMALL_STATE(136)] = 10554, + [SMALL_STATE(137)] = 10669, + [SMALL_STATE(138)] = 10784, + [SMALL_STATE(139)] = 10899, + [SMALL_STATE(140)] = 11014, + [SMALL_STATE(141)] = 11129, + [SMALL_STATE(142)] = 11244, + [SMALL_STATE(143)] = 11359, + [SMALL_STATE(144)] = 11474, + [SMALL_STATE(145)] = 11589, + [SMALL_STATE(146)] = 11704, + [SMALL_STATE(147)] = 11819, + [SMALL_STATE(148)] = 11934, + [SMALL_STATE(149)] = 12049, + [SMALL_STATE(150)] = 12164, + [SMALL_STATE(151)] = 12279, + [SMALL_STATE(152)] = 12394, + [SMALL_STATE(153)] = 12509, + [SMALL_STATE(154)] = 12624, + [SMALL_STATE(155)] = 12739, + [SMALL_STATE(156)] = 12854, + [SMALL_STATE(157)] = 12969, + [SMALL_STATE(158)] = 13084, + [SMALL_STATE(159)] = 13199, + [SMALL_STATE(160)] = 13314, + [SMALL_STATE(161)] = 13429, + [SMALL_STATE(162)] = 13544, + [SMALL_STATE(163)] = 13659, + [SMALL_STATE(164)] = 13774, + [SMALL_STATE(165)] = 13889, + [SMALL_STATE(166)] = 14004, + [SMALL_STATE(167)] = 14119, + [SMALL_STATE(168)] = 14234, + [SMALL_STATE(169)] = 14349, + [SMALL_STATE(170)] = 14464, + [SMALL_STATE(171)] = 14579, + [SMALL_STATE(172)] = 14694, + [SMALL_STATE(173)] = 14809, + [SMALL_STATE(174)] = 14924, + [SMALL_STATE(175)] = 15039, + [SMALL_STATE(176)] = 15154, + [SMALL_STATE(177)] = 15269, + [SMALL_STATE(178)] = 15384, + [SMALL_STATE(179)] = 15499, + [SMALL_STATE(180)] = 15614, + [SMALL_STATE(181)] = 15729, + [SMALL_STATE(182)] = 15844, + [SMALL_STATE(183)] = 15959, + [SMALL_STATE(184)] = 16074, + [SMALL_STATE(185)] = 16189, + [SMALL_STATE(186)] = 16304, + [SMALL_STATE(187)] = 16419, + [SMALL_STATE(188)] = 16534, + [SMALL_STATE(189)] = 16649, + [SMALL_STATE(190)] = 16764, + [SMALL_STATE(191)] = 16879, + [SMALL_STATE(192)] = 16994, + [SMALL_STATE(193)] = 17109, + [SMALL_STATE(194)] = 17224, + [SMALL_STATE(195)] = 17339, + [SMALL_STATE(196)] = 17454, + [SMALL_STATE(197)] = 17569, + [SMALL_STATE(198)] = 17684, + [SMALL_STATE(199)] = 17799, + [SMALL_STATE(200)] = 17914, + [SMALL_STATE(201)] = 18029, + [SMALL_STATE(202)] = 18144, + [SMALL_STATE(203)] = 18259, + [SMALL_STATE(204)] = 18374, + [SMALL_STATE(205)] = 18489, + [SMALL_STATE(206)] = 18604, + [SMALL_STATE(207)] = 18719, + [SMALL_STATE(208)] = 18834, + [SMALL_STATE(209)] = 18949, + [SMALL_STATE(210)] = 19064, + [SMALL_STATE(211)] = 19179, + [SMALL_STATE(212)] = 19294, + [SMALL_STATE(213)] = 19409, + [SMALL_STATE(214)] = 19524, + [SMALL_STATE(215)] = 19639, + [SMALL_STATE(216)] = 19754, + [SMALL_STATE(217)] = 19869, + [SMALL_STATE(218)] = 19984, + [SMALL_STATE(219)] = 20099, + [SMALL_STATE(220)] = 20214, + [SMALL_STATE(221)] = 20329, + [SMALL_STATE(222)] = 20444, + [SMALL_STATE(223)] = 20559, + [SMALL_STATE(224)] = 20674, + [SMALL_STATE(225)] = 20789, + [SMALL_STATE(226)] = 20904, + [SMALL_STATE(227)] = 21019, + [SMALL_STATE(228)] = 21134, + [SMALL_STATE(229)] = 21249, + [SMALL_STATE(230)] = 21364, + [SMALL_STATE(231)] = 21479, + [SMALL_STATE(232)] = 21594, + [SMALL_STATE(233)] = 21709, + [SMALL_STATE(234)] = 21824, + [SMALL_STATE(235)] = 21939, + [SMALL_STATE(236)] = 22054, + [SMALL_STATE(237)] = 22169, + [SMALL_STATE(238)] = 22284, + [SMALL_STATE(239)] = 22399, + [SMALL_STATE(240)] = 22514, + [SMALL_STATE(241)] = 22629, + [SMALL_STATE(242)] = 22744, + [SMALL_STATE(243)] = 22859, + [SMALL_STATE(244)] = 22974, + [SMALL_STATE(245)] = 23089, + [SMALL_STATE(246)] = 23204, + [SMALL_STATE(247)] = 23319, + [SMALL_STATE(248)] = 23434, + [SMALL_STATE(249)] = 23549, + [SMALL_STATE(250)] = 23664, + [SMALL_STATE(251)] = 23779, + [SMALL_STATE(252)] = 23894, + [SMALL_STATE(253)] = 24009, + [SMALL_STATE(254)] = 24124, + [SMALL_STATE(255)] = 24239, + [SMALL_STATE(256)] = 24354, + [SMALL_STATE(257)] = 24469, + [SMALL_STATE(258)] = 24538, + [SMALL_STATE(259)] = 24653, + [SMALL_STATE(260)] = 24768, + [SMALL_STATE(261)] = 24837, + [SMALL_STATE(262)] = 24952, + [SMALL_STATE(263)] = 25067, + [SMALL_STATE(264)] = 25182, + [SMALL_STATE(265)] = 25297, + [SMALL_STATE(266)] = 25412, + [SMALL_STATE(267)] = 25527, + [SMALL_STATE(268)] = 25642, + [SMALL_STATE(269)] = 25757, + [SMALL_STATE(270)] = 25872, + [SMALL_STATE(271)] = 25987, + [SMALL_STATE(272)] = 26102, + [SMALL_STATE(273)] = 26217, + [SMALL_STATE(274)] = 26332, + [SMALL_STATE(275)] = 26447, + [SMALL_STATE(276)] = 26562, + [SMALL_STATE(277)] = 26677, + [SMALL_STATE(278)] = 26792, + [SMALL_STATE(279)] = 26907, + [SMALL_STATE(280)] = 27022, + [SMALL_STATE(281)] = 27137, + [SMALL_STATE(282)] = 27252, + [SMALL_STATE(283)] = 27367, + [SMALL_STATE(284)] = 27482, + [SMALL_STATE(285)] = 27597, + [SMALL_STATE(286)] = 27712, + [SMALL_STATE(287)] = 27827, + [SMALL_STATE(288)] = 27942, + [SMALL_STATE(289)] = 28057, + [SMALL_STATE(290)] = 28172, + [SMALL_STATE(291)] = 28287, + [SMALL_STATE(292)] = 28402, + [SMALL_STATE(293)] = 28517, + [SMALL_STATE(294)] = 28632, + [SMALL_STATE(295)] = 28747, + [SMALL_STATE(296)] = 28862, + [SMALL_STATE(297)] = 28977, + [SMALL_STATE(298)] = 29092, + [SMALL_STATE(299)] = 29207, + [SMALL_STATE(300)] = 29322, + [SMALL_STATE(301)] = 29437, + [SMALL_STATE(302)] = 29552, + [SMALL_STATE(303)] = 29667, + [SMALL_STATE(304)] = 29782, + [SMALL_STATE(305)] = 29897, + [SMALL_STATE(306)] = 30012, + [SMALL_STATE(307)] = 30127, + [SMALL_STATE(308)] = 30242, + [SMALL_STATE(309)] = 30357, + [SMALL_STATE(310)] = 30472, + [SMALL_STATE(311)] = 30587, + [SMALL_STATE(312)] = 30702, + [SMALL_STATE(313)] = 30817, + [SMALL_STATE(314)] = 30932, + [SMALL_STATE(315)] = 31047, + [SMALL_STATE(316)] = 31162, + [SMALL_STATE(317)] = 31277, + [SMALL_STATE(318)] = 31392, + [SMALL_STATE(319)] = 31507, + [SMALL_STATE(320)] = 31622, + [SMALL_STATE(321)] = 31737, + [SMALL_STATE(322)] = 31852, + [SMALL_STATE(323)] = 31967, + [SMALL_STATE(324)] = 32082, + [SMALL_STATE(325)] = 32197, + [SMALL_STATE(326)] = 32312, + [SMALL_STATE(327)] = 32427, + [SMALL_STATE(328)] = 32542, + [SMALL_STATE(329)] = 32657, + [SMALL_STATE(330)] = 32772, + [SMALL_STATE(331)] = 32887, + [SMALL_STATE(332)] = 33002, + [SMALL_STATE(333)] = 33117, + [SMALL_STATE(334)] = 33232, + [SMALL_STATE(335)] = 33347, + [SMALL_STATE(336)] = 33462, + [SMALL_STATE(337)] = 33577, + [SMALL_STATE(338)] = 33692, + [SMALL_STATE(339)] = 33807, + [SMALL_STATE(340)] = 33922, + [SMALL_STATE(341)] = 34037, + [SMALL_STATE(342)] = 34152, + [SMALL_STATE(343)] = 34267, + [SMALL_STATE(344)] = 34382, + [SMALL_STATE(345)] = 34497, + [SMALL_STATE(346)] = 34566, + [SMALL_STATE(347)] = 34681, + [SMALL_STATE(348)] = 34796, + [SMALL_STATE(349)] = 34911, + [SMALL_STATE(350)] = 35026, + [SMALL_STATE(351)] = 35141, + [SMALL_STATE(352)] = 35256, + [SMALL_STATE(353)] = 35349, + [SMALL_STATE(354)] = 35464, + [SMALL_STATE(355)] = 35579, + [SMALL_STATE(356)] = 35694, + [SMALL_STATE(357)] = 35809, + [SMALL_STATE(358)] = 35924, + [SMALL_STATE(359)] = 36039, + [SMALL_STATE(360)] = 36154, + [SMALL_STATE(361)] = 36269, + [SMALL_STATE(362)] = 36384, + [SMALL_STATE(363)] = 36499, + [SMALL_STATE(364)] = 36614, + [SMALL_STATE(365)] = 36729, + [SMALL_STATE(366)] = 36844, + [SMALL_STATE(367)] = 36959, + [SMALL_STATE(368)] = 37052, + [SMALL_STATE(369)] = 37167, + [SMALL_STATE(370)] = 37282, + [SMALL_STATE(371)] = 37397, + [SMALL_STATE(372)] = 37512, + [SMALL_STATE(373)] = 37627, + [SMALL_STATE(374)] = 37742, + [SMALL_STATE(375)] = 37857, + [SMALL_STATE(376)] = 37972, + [SMALL_STATE(377)] = 38087, + [SMALL_STATE(378)] = 38202, + [SMALL_STATE(379)] = 38317, + [SMALL_STATE(380)] = 38432, + [SMALL_STATE(381)] = 38547, + [SMALL_STATE(382)] = 38662, + [SMALL_STATE(383)] = 38777, + [SMALL_STATE(384)] = 38892, + [SMALL_STATE(385)] = 39007, + [SMALL_STATE(386)] = 39122, + [SMALL_STATE(387)] = 39237, + [SMALL_STATE(388)] = 39352, + [SMALL_STATE(389)] = 39467, + [SMALL_STATE(390)] = 39582, + [SMALL_STATE(391)] = 39697, + [SMALL_STATE(392)] = 39766, + [SMALL_STATE(393)] = 39834, + [SMALL_STATE(394)] = 39902, + [SMALL_STATE(395)] = 39970, + [SMALL_STATE(396)] = 40038, + [SMALL_STATE(397)] = 40130, + [SMALL_STATE(398)] = 40222, + [SMALL_STATE(399)] = 40313, + [SMALL_STATE(400)] = 40380, + [SMALL_STATE(401)] = 40471, + [SMALL_STATE(402)] = 40562, + [SMALL_STATE(403)] = 40629, + [SMALL_STATE(404)] = 40694, + [SMALL_STATE(405)] = 40783, + [SMALL_STATE(406)] = 40848, + [SMALL_STATE(407)] = 40912, + [SMALL_STATE(408)] = 40976, + [SMALL_STATE(409)] = 41040, + [SMALL_STATE(410)] = 41104, + [SMALL_STATE(411)] = 41192, + [SMALL_STATE(412)] = 41280, + [SMALL_STATE(413)] = 41343, + [SMALL_STATE(414)] = 41406, + [SMALL_STATE(415)] = 41493, + [SMALL_STATE(416)] = 41580, + [SMALL_STATE(417)] = 41643, + [SMALL_STATE(418)] = 41706, + [SMALL_STATE(419)] = 41793, + [SMALL_STATE(420)] = 41880, + [SMALL_STATE(421)] = 41966, + [SMALL_STATE(422)] = 42052, + [SMALL_STATE(423)] = 42114, + [SMALL_STATE(424)] = 42176, + [SMALL_STATE(425)] = 42262, + [SMALL_STATE(426)] = 42319, + [SMALL_STATE(427)] = 42376, + [SMALL_STATE(428)] = 42433, + [SMALL_STATE(429)] = 42490, + [SMALL_STATE(430)] = 42547, + [SMALL_STATE(431)] = 42604, + [SMALL_STATE(432)] = 42661, + [SMALL_STATE(433)] = 42718, + [SMALL_STATE(434)] = 42775, + [SMALL_STATE(435)] = 42836, + [SMALL_STATE(436)] = 42897, + [SMALL_STATE(437)] = 42954, + [SMALL_STATE(438)] = 43015, + [SMALL_STATE(439)] = 43072, + [SMALL_STATE(440)] = 43129, + [SMALL_STATE(441)] = 43186, + [SMALL_STATE(442)] = 43243, + [SMALL_STATE(443)] = 43329, + [SMALL_STATE(444)] = 43387, + [SMALL_STATE(445)] = 43445, + [SMALL_STATE(446)] = 43501, + [SMALL_STATE(447)] = 43585, + [SMALL_STATE(448)] = 43641, + [SMALL_STATE(449)] = 43725, + [SMALL_STATE(450)] = 43781, + [SMALL_STATE(451)] = 43839, + [SMALL_STATE(452)] = 43897, + [SMALL_STATE(453)] = 43955, + [SMALL_STATE(454)] = 44013, + [SMALL_STATE(455)] = 44071, + [SMALL_STATE(456)] = 44129, + [SMALL_STATE(457)] = 44217, + [SMALL_STATE(458)] = 44305, + [SMALL_STATE(459)] = 44391, + [SMALL_STATE(460)] = 44450, + [SMALL_STATE(461)] = 44505, + [SMALL_STATE(462)] = 44588, + [SMALL_STATE(463)] = 44643, + [SMALL_STATE(464)] = 44698, + [SMALL_STATE(465)] = 44753, + [SMALL_STATE(466)] = 44808, + [SMALL_STATE(467)] = 44863, + [SMALL_STATE(468)] = 44918, + [SMALL_STATE(469)] = 44973, + [SMALL_STATE(470)] = 45028, + [SMALL_STATE(471)] = 45087, + [SMALL_STATE(472)] = 45142, + [SMALL_STATE(473)] = 45227, + [SMALL_STATE(474)] = 45282, + [SMALL_STATE(475)] = 45337, + [SMALL_STATE(476)] = 45396, + [SMALL_STATE(477)] = 45451, + [SMALL_STATE(478)] = 45506, + [SMALL_STATE(479)] = 45561, + [SMALL_STATE(480)] = 45616, + [SMALL_STATE(481)] = 45671, + [SMALL_STATE(482)] = 45730, + [SMALL_STATE(483)] = 45785, + [SMALL_STATE(484)] = 45840, + [SMALL_STATE(485)] = 45895, + [SMALL_STATE(486)] = 45950, + [SMALL_STATE(487)] = 46005, + [SMALL_STATE(488)] = 46060, + [SMALL_STATE(489)] = 46115, + [SMALL_STATE(490)] = 46170, + [SMALL_STATE(491)] = 46225, + [SMALL_STATE(492)] = 46280, + [SMALL_STATE(493)] = 46335, + [SMALL_STATE(494)] = 46390, + [SMALL_STATE(495)] = 46445, + [SMALL_STATE(496)] = 46500, + [SMALL_STATE(497)] = 46555, + [SMALL_STATE(498)] = 46610, + [SMALL_STATE(499)] = 46665, + [SMALL_STATE(500)] = 46720, + [SMALL_STATE(501)] = 46779, + [SMALL_STATE(502)] = 46834, + [SMALL_STATE(503)] = 46889, + [SMALL_STATE(504)] = 46948, + [SMALL_STATE(505)] = 47031, + [SMALL_STATE(506)] = 47086, + [SMALL_STATE(507)] = 47151, + [SMALL_STATE(508)] = 47206, + [SMALL_STATE(509)] = 47291, + [SMALL_STATE(510)] = 47346, + [SMALL_STATE(511)] = 47401, + [SMALL_STATE(512)] = 47456, + [SMALL_STATE(513)] = 47515, + [SMALL_STATE(514)] = 47570, + [SMALL_STATE(515)] = 47657, + [SMALL_STATE(516)] = 47744, + [SMALL_STATE(517)] = 47825, + [SMALL_STATE(518)] = 47880, + [SMALL_STATE(519)] = 47939, + [SMALL_STATE(520)] = 47994, + [SMALL_STATE(521)] = 48049, + [SMALL_STATE(522)] = 48104, + [SMALL_STATE(523)] = 48159, + [SMALL_STATE(524)] = 48214, + [SMALL_STATE(525)] = 48269, + [SMALL_STATE(526)] = 48324, + [SMALL_STATE(527)] = 48408, + [SMALL_STATE(528)] = 48474, + [SMALL_STATE(529)] = 48554, + [SMALL_STATE(530)] = 48638, + [SMALL_STATE(531)] = 48718, + [SMALL_STATE(532)] = 48800, + [SMALL_STATE(533)] = 48874, + [SMALL_STATE(534)] = 48952, + [SMALL_STATE(535)] = 49024, + [SMALL_STATE(536)] = 49108, + [SMALL_STATE(537)] = 49188, + [SMALL_STATE(538)] = 49272, + [SMALL_STATE(539)] = 49356, + [SMALL_STATE(540)] = 49438, + [SMALL_STATE(541)] = 49520, + [SMALL_STATE(542)] = 49602, + [SMALL_STATE(543)] = 49670, + [SMALL_STATE(544)] = 49748, + [SMALL_STATE(545)] = 49826, + [SMALL_STATE(546)] = 49904, + [SMALL_STATE(547)] = 49982, + [SMALL_STATE(548)] = 50064, + [SMALL_STATE(549)] = 50148, + [SMALL_STATE(550)] = 50225, + [SMALL_STATE(551)] = 50306, + [SMALL_STATE(552)] = 50389, + [SMALL_STATE(553)] = 50466, + [SMALL_STATE(554)] = 50545, + [SMALL_STATE(555)] = 50622, + [SMALL_STATE(556)] = 50699, + [SMALL_STATE(557)] = 50764, + [SMALL_STATE(558)] = 50831, + [SMALL_STATE(559)] = 50902, + [SMALL_STATE(560)] = 50975, + [SMALL_STATE(561)] = 51056, + [SMALL_STATE(562)] = 51137, + [SMALL_STATE(563)] = 51216, + [SMALL_STATE(564)] = 51297, + [SMALL_STATE(565)] = 51378, + [SMALL_STATE(566)] = 51451, + [SMALL_STATE(567)] = 51528, + [SMALL_STATE(568)] = 51599, + [SMALL_STATE(569)] = 51666, + [SMALL_STATE(570)] = 51747, + [SMALL_STATE(571)] = 51812, + [SMALL_STATE(572)] = 51893, + [SMALL_STATE(573)] = 51976, + [SMALL_STATE(574)] = 52053, + [SMALL_STATE(575)] = 52130, + [SMALL_STATE(576)] = 52207, + [SMALL_STATE(577)] = 52290, + [SMALL_STATE(578)] = 52373, + [SMALL_STATE(579)] = 52456, + [SMALL_STATE(580)] = 52539, + [SMALL_STATE(581)] = 52622, + [SMALL_STATE(582)] = 52705, + [SMALL_STATE(583)] = 52782, + [SMALL_STATE(584)] = 52865, + [SMALL_STATE(585)] = 52948, + [SMALL_STATE(586)] = 53031, + [SMALL_STATE(587)] = 53114, + [SMALL_STATE(588)] = 53195, + [SMALL_STATE(589)] = 53276, + [SMALL_STATE(590)] = 53358, + [SMALL_STATE(591)] = 53438, + [SMALL_STATE(592)] = 53514, + [SMALL_STATE(593)] = 53596, + [SMALL_STATE(594)] = 53678, + [SMALL_STATE(595)] = 53760, + [SMALL_STATE(596)] = 53842, + [SMALL_STATE(597)] = 53924, + [SMALL_STATE(598)] = 54006, + [SMALL_STATE(599)] = 54082, + [SMALL_STATE(600)] = 54162, + [SMALL_STATE(601)] = 54242, + [SMALL_STATE(602)] = 54322, + [SMALL_STATE(603)] = 54402, + [SMALL_STATE(604)] = 54482, + [SMALL_STATE(605)] = 54560, + [SMALL_STATE(606)] = 54636, + [SMALL_STATE(607)] = 54712, + [SMALL_STATE(608)] = 54794, + [SMALL_STATE(609)] = 54870, + [SMALL_STATE(610)] = 54952, + [SMALL_STATE(611)] = 55034, + [SMALL_STATE(612)] = 55116, + [SMALL_STATE(613)] = 55196, + [SMALL_STATE(614)] = 55268, + [SMALL_STATE(615)] = 55348, + [SMALL_STATE(616)] = 55420, + [SMALL_STATE(617)] = 55496, + [SMALL_STATE(618)] = 55566, + [SMALL_STATE(619)] = 55632, + [SMALL_STATE(620)] = 55696, + [SMALL_STATE(621)] = 55772, + [SMALL_STATE(622)] = 55848, + [SMALL_STATE(623)] = 55924, + [SMALL_STATE(624)] = 55994, + [SMALL_STATE(625)] = 56058, + [SMALL_STATE(626)] = 56124, + [SMALL_STATE(627)] = 56203, + [SMALL_STATE(628)] = 56284, + [SMALL_STATE(629)] = 56359, + [SMALL_STATE(630)] = 56440, + [SMALL_STATE(631)] = 56503, + [SMALL_STATE(632)] = 56584, + [SMALL_STATE(633)] = 56655, + [SMALL_STATE(634)] = 56720, + [SMALL_STATE(635)] = 56789, + [SMALL_STATE(636)] = 56864, + [SMALL_STATE(637)] = 56947, + [SMALL_STATE(638)] = 57022, + [SMALL_STATE(639)] = 57101, + [SMALL_STATE(640)] = 57182, + [SMALL_STATE(641)] = 57261, + [SMALL_STATE(642)] = 57340, + [SMALL_STATE(643)] = 57421, + [SMALL_STATE(644)] = 57496, + [SMALL_STATE(645)] = 57577, + [SMALL_STATE(646)] = 57658, + [SMALL_STATE(647)] = 57737, + [SMALL_STATE(648)] = 57816, + [SMALL_STATE(649)] = 57899, + [SMALL_STATE(650)] = 57977, + [SMALL_STATE(651)] = 58055, + [SMALL_STATE(652)] = 58137, + [SMALL_STATE(653)] = 58225, + [SMALL_STATE(654)] = 58301, + [SMALL_STATE(655)] = 58389, + [SMALL_STATE(656)] = 58469, + [SMALL_STATE(657)] = 58551, + [SMALL_STATE(658)] = 58631, + [SMALL_STATE(659)] = 58706, + [SMALL_STATE(660)] = 58785, + [SMALL_STATE(661)] = 58864, + [SMALL_STATE(662)] = 58943, + [SMALL_STATE(663)] = 59022, + [SMALL_STATE(664)] = 59095, + [SMALL_STATE(665)] = 59172, + [SMALL_STATE(666)] = 59247, + [SMALL_STATE(667)] = 59324, + [SMALL_STATE(668)] = 59393, + [SMALL_STATE(669)] = 59466, + [SMALL_STATE(670)] = 59545, + [SMALL_STATE(671)] = 59612, + [SMALL_STATE(672)] = 59675, + [SMALL_STATE(673)] = 59736, + [SMALL_STATE(674)] = 59809, + [SMALL_STATE(675)] = 59882, + [SMALL_STATE(676)] = 59955, + [SMALL_STATE(677)] = 60032, + [SMALL_STATE(678)] = 60109, + [SMALL_STATE(679)] = 60186, + [SMALL_STATE(680)] = 60261, + [SMALL_STATE(681)] = 60340, + [SMALL_STATE(682)] = 60406, + [SMALL_STATE(683)] = 60480, + [SMALL_STATE(684)] = 60558, + [SMALL_STATE(685)] = 60630, + [SMALL_STATE(686)] = 60708, + [SMALL_STATE(687)] = 60786, + [SMALL_STATE(688)] = 60864, + [SMALL_STATE(689)] = 60942, + [SMALL_STATE(690)] = 61020, + [SMALL_STATE(691)] = 61092, + [SMALL_STATE(692)] = 61170, + [SMALL_STATE(693)] = 61244, + [SMALL_STATE(694)] = 61320, + [SMALL_STATE(695)] = 61396, + [SMALL_STATE(696)] = 61472, + [SMALL_STATE(697)] = 61544, + [SMALL_STATE(698)] = 61616, + [SMALL_STATE(699)] = 61676, + [SMALL_STATE(700)] = 61738, + [SMALL_STATE(701)] = 61820, + [SMALL_STATE(702)] = 61886, + [SMALL_STATE(703)] = 61958, + [SMALL_STATE(704)] = 62036, + [SMALL_STATE(705)] = 62114, + [SMALL_STATE(706)] = 62182, + [SMALL_STATE(707)] = 62260, + [SMALL_STATE(708)] = 62336, + [SMALL_STATE(709)] = 62414, + [SMALL_STATE(710)] = 62486, + [SMALL_STATE(711)] = 62564, + [SMALL_STATE(712)] = 62640, + [SMALL_STATE(713)] = 62716, + [SMALL_STATE(714)] = 62784, + [SMALL_STATE(715)] = 62856, + [SMALL_STATE(716)] = 62918, + [SMALL_STATE(717)] = 62978, + [SMALL_STATE(718)] = 63050, + [SMALL_STATE(719)] = 63122, + [SMALL_STATE(720)] = 63198, + [SMALL_STATE(721)] = 63274, + [SMALL_STATE(722)] = 63350, + [SMALL_STATE(723)] = 63421, + [SMALL_STATE(724)] = 63498, + [SMALL_STATE(725)] = 63569, + [SMALL_STATE(726)] = 63646, + [SMALL_STATE(727)] = 63723, + [SMALL_STATE(728)] = 63800, + [SMALL_STATE(729)] = 63877, + [SMALL_STATE(730)] = 63948, + [SMALL_STATE(731)] = 64015, + [SMALL_STATE(732)] = 64090, + [SMALL_STATE(733)] = 64165, + [SMALL_STATE(734)] = 64236, + [SMALL_STATE(735)] = 64297, + [SMALL_STATE(736)] = 64372, + [SMALL_STATE(737)] = 64447, + [SMALL_STATE(738)] = 64512, + [SMALL_STATE(739)] = 64573, + [SMALL_STATE(740)] = 64632, + [SMALL_STATE(741)] = 64703, + [SMALL_STATE(742)] = 64774, + [SMALL_STATE(743)] = 64849, + [SMALL_STATE(744)] = 64926, + [SMALL_STATE(745)] = 65003, + [SMALL_STATE(746)] = 65078, + [SMALL_STATE(747)] = 65153, + [SMALL_STATE(748)] = 65224, + [SMALL_STATE(749)] = 65303, + [SMALL_STATE(750)] = 65376, + [SMALL_STATE(751)] = 65453, + [SMALL_STATE(752)] = 65530, + [SMALL_STATE(753)] = 65607, + [SMALL_STATE(754)] = 65672, + [SMALL_STATE(755)] = 65743, + [SMALL_STATE(756)] = 65814, + [SMALL_STATE(757)] = 65873, + [SMALL_STATE(758)] = 65948, + [SMALL_STATE(759)] = 66015, + [SMALL_STATE(760)] = 66092, + [SMALL_STATE(761)] = 66166, + [SMALL_STATE(762)] = 66240, + [SMALL_STATE(763)] = 66314, + [SMALL_STATE(764)] = 66384, + [SMALL_STATE(765)] = 66454, + [SMALL_STATE(766)] = 66512, + [SMALL_STATE(767)] = 66588, + [SMALL_STATE(768)] = 66664, + [SMALL_STATE(769)] = 66724, + [SMALL_STATE(770)] = 66788, + [SMALL_STATE(771)] = 66858, + [SMALL_STATE(772)] = 66934, + [SMALL_STATE(773)] = 67010, + [SMALL_STATE(774)] = 67076, + [SMALL_STATE(775)] = 67152, + [SMALL_STATE(776)] = 67228, + [SMALL_STATE(777)] = 67298, + [SMALL_STATE(778)] = 67372, + [SMALL_STATE(779)] = 67417, + [SMALL_STATE(780)] = 67462, + [SMALL_STATE(781)] = 67507, + [SMALL_STATE(782)] = 67552, + [SMALL_STATE(783)] = 67597, + [SMALL_STATE(784)] = 67642, + [SMALL_STATE(785)] = 67687, + [SMALL_STATE(786)] = 67732, + [SMALL_STATE(787)] = 67777, + [SMALL_STATE(788)] = 67822, + [SMALL_STATE(789)] = 67867, + [SMALL_STATE(790)] = 67912, + [SMALL_STATE(791)] = 67957, + [SMALL_STATE(792)] = 68002, + [SMALL_STATE(793)] = 68047, + [SMALL_STATE(794)] = 68092, + [SMALL_STATE(795)] = 68137, + [SMALL_STATE(796)] = 68182, + [SMALL_STATE(797)] = 68225, + [SMALL_STATE(798)] = 68268, + [SMALL_STATE(799)] = 68311, + [SMALL_STATE(800)] = 68354, + [SMALL_STATE(801)] = 68397, + [SMALL_STATE(802)] = 68440, + [SMALL_STATE(803)] = 68487, + [SMALL_STATE(804)] = 68530, + [SMALL_STATE(805)] = 68573, + [SMALL_STATE(806)] = 68616, + [SMALL_STATE(807)] = 68659, + [SMALL_STATE(808)] = 68702, + [SMALL_STATE(809)] = 68745, + [SMALL_STATE(810)] = 68788, + [SMALL_STATE(811)] = 68831, + [SMALL_STATE(812)] = 68874, + [SMALL_STATE(813)] = 68917, + [SMALL_STATE(814)] = 68960, + [SMALL_STATE(815)] = 69003, + [SMALL_STATE(816)] = 69046, + [SMALL_STATE(817)] = 69089, + [SMALL_STATE(818)] = 69132, + [SMALL_STATE(819)] = 69175, + [SMALL_STATE(820)] = 69218, + [SMALL_STATE(821)] = 69265, + [SMALL_STATE(822)] = 69308, + [SMALL_STATE(823)] = 69351, + [SMALL_STATE(824)] = 69394, + [SMALL_STATE(825)] = 69437, + [SMALL_STATE(826)] = 69480, + [SMALL_STATE(827)] = 69523, + [SMALL_STATE(828)] = 69566, + [SMALL_STATE(829)] = 69609, + [SMALL_STATE(830)] = 69656, + [SMALL_STATE(831)] = 69699, + [SMALL_STATE(832)] = 69742, + [SMALL_STATE(833)] = 69785, + [SMALL_STATE(834)] = 69828, + [SMALL_STATE(835)] = 69871, + [SMALL_STATE(836)] = 69914, + [SMALL_STATE(837)] = 69957, + [SMALL_STATE(838)] = 70000, + [SMALL_STATE(839)] = 70043, + [SMALL_STATE(840)] = 70086, + [SMALL_STATE(841)] = 70129, + [SMALL_STATE(842)] = 70172, + [SMALL_STATE(843)] = 70215, + [SMALL_STATE(844)] = 70258, + [SMALL_STATE(845)] = 70301, + [SMALL_STATE(846)] = 70344, + [SMALL_STATE(847)] = 70387, + [SMALL_STATE(848)] = 70431, + [SMALL_STATE(849)] = 70501, + [SMALL_STATE(850)] = 70571, + [SMALL_STATE(851)] = 70638, + [SMALL_STATE(852)] = 70679, + [SMALL_STATE(853)] = 70720, + [SMALL_STATE(854)] = 70787, + [SMALL_STATE(855)] = 70828, + [SMALL_STATE(856)] = 70895, + [SMALL_STATE(857)] = 70962, + [SMALL_STATE(858)] = 71007, + [SMALL_STATE(859)] = 71048, + [SMALL_STATE(860)] = 71089, + [SMALL_STATE(861)] = 71130, + [SMALL_STATE(862)] = 71171, + [SMALL_STATE(863)] = 71212, + [SMALL_STATE(864)] = 71253, + [SMALL_STATE(865)] = 71304, + [SMALL_STATE(866)] = 71345, + [SMALL_STATE(867)] = 71412, + [SMALL_STATE(868)] = 71453, + [SMALL_STATE(869)] = 71494, + [SMALL_STATE(870)] = 71535, + [SMALL_STATE(871)] = 71576, + [SMALL_STATE(872)] = 71643, + [SMALL_STATE(873)] = 71684, + [SMALL_STATE(874)] = 71725, + [SMALL_STATE(875)] = 71766, + [SMALL_STATE(876)] = 71807, + [SMALL_STATE(877)] = 71848, + [SMALL_STATE(878)] = 71889, + [SMALL_STATE(879)] = 71930, + [SMALL_STATE(880)] = 71997, + [SMALL_STATE(881)] = 72064, + [SMALL_STATE(882)] = 72131, + [SMALL_STATE(883)] = 72172, + [SMALL_STATE(884)] = 72213, + [SMALL_STATE(885)] = 72280, + [SMALL_STATE(886)] = 72321, + [SMALL_STATE(887)] = 72362, + [SMALL_STATE(888)] = 72403, + [SMALL_STATE(889)] = 72444, + [SMALL_STATE(890)] = 72511, + [SMALL_STATE(891)] = 72552, + [SMALL_STATE(892)] = 72593, + [SMALL_STATE(893)] = 72634, + [SMALL_STATE(894)] = 72675, + [SMALL_STATE(895)] = 72716, + [SMALL_STATE(896)] = 72757, + [SMALL_STATE(897)] = 72798, + [SMALL_STATE(898)] = 72862, + [SMALL_STATE(899)] = 72926, + [SMALL_STATE(900)] = 72990, + [SMALL_STATE(901)] = 73054, + [SMALL_STATE(902)] = 73118, + [SMALL_STATE(903)] = 73182, + [SMALL_STATE(904)] = 73246, + [SMALL_STATE(905)] = 73310, + [SMALL_STATE(906)] = 73374, + [SMALL_STATE(907)] = 73438, + [SMALL_STATE(908)] = 73502, + [SMALL_STATE(909)] = 73566, + [SMALL_STATE(910)] = 73630, + [SMALL_STATE(911)] = 73694, + [SMALL_STATE(912)] = 73758, + [SMALL_STATE(913)] = 73822, + [SMALL_STATE(914)] = 73886, + [SMALL_STATE(915)] = 73947, + [SMALL_STATE(916)] = 74008, + [SMALL_STATE(917)] = 74069, + [SMALL_STATE(918)] = 74130, + [SMALL_STATE(919)] = 74191, + [SMALL_STATE(920)] = 74252, + [SMALL_STATE(921)] = 74313, + [SMALL_STATE(922)] = 74374, + [SMALL_STATE(923)] = 74435, + [SMALL_STATE(924)] = 74496, + [SMALL_STATE(925)] = 74557, + [SMALL_STATE(926)] = 74618, + [SMALL_STATE(927)] = 74679, + [SMALL_STATE(928)] = 74740, + [SMALL_STATE(929)] = 74801, + [SMALL_STATE(930)] = 74862, + [SMALL_STATE(931)] = 74915, + [SMALL_STATE(932)] = 74976, + [SMALL_STATE(933)] = 75037, + [SMALL_STATE(934)] = 75098, + [SMALL_STATE(935)] = 75159, + [SMALL_STATE(936)] = 75220, + [SMALL_STATE(937)] = 75281, + [SMALL_STATE(938)] = 75342, + [SMALL_STATE(939)] = 75403, + [SMALL_STATE(940)] = 75464, + [SMALL_STATE(941)] = 75525, + [SMALL_STATE(942)] = 75586, + [SMALL_STATE(943)] = 75651, + [SMALL_STATE(944)] = 75712, + [SMALL_STATE(945)] = 75773, + [SMALL_STATE(946)] = 75834, + [SMALL_STATE(947)] = 75895, + [SMALL_STATE(948)] = 75960, + [SMALL_STATE(949)] = 76025, + [SMALL_STATE(950)] = 76090, + [SMALL_STATE(951)] = 76151, + [SMALL_STATE(952)] = 76212, + [SMALL_STATE(953)] = 76273, + [SMALL_STATE(954)] = 76334, + [SMALL_STATE(955)] = 76395, + [SMALL_STATE(956)] = 76456, + [SMALL_STATE(957)] = 76517, + [SMALL_STATE(958)] = 76578, + [SMALL_STATE(959)] = 76637, + [SMALL_STATE(960)] = 76698, + [SMALL_STATE(961)] = 76759, + [SMALL_STATE(962)] = 76820, + [SMALL_STATE(963)] = 76881, + [SMALL_STATE(964)] = 76942, + [SMALL_STATE(965)] = 77003, + [SMALL_STATE(966)] = 77060, + [SMALL_STATE(967)] = 77121, + [SMALL_STATE(968)] = 77172, + [SMALL_STATE(969)] = 77233, + [SMALL_STATE(970)] = 77294, + [SMALL_STATE(971)] = 77355, + [SMALL_STATE(972)] = 77424, + [SMALL_STATE(973)] = 77492, + [SMALL_STATE(974)] = 77552, + [SMALL_STATE(975)] = 77620, + [SMALL_STATE(976)] = 77680, + [SMALL_STATE(977)] = 77740, + [SMALL_STATE(978)] = 77800, + [SMALL_STATE(979)] = 77860, + [SMALL_STATE(980)] = 77920, + [SMALL_STATE(981)] = 77984, + [SMALL_STATE(982)] = 78044, + [SMALL_STATE(983)] = 78104, + [SMALL_STATE(984)] = 78164, + [SMALL_STATE(985)] = 78224, + [SMALL_STATE(986)] = 78284, + [SMALL_STATE(987)] = 78344, + [SMALL_STATE(988)] = 78404, + [SMALL_STATE(989)] = 78467, + [SMALL_STATE(990)] = 78532, + [SMALL_STATE(991)] = 78597, + [SMALL_STATE(992)] = 78662, + [SMALL_STATE(993)] = 78727, + [SMALL_STATE(994)] = 78790, + [SMALL_STATE(995)] = 78831, + [SMALL_STATE(996)] = 78896, + [SMALL_STATE(997)] = 78957, + [SMALL_STATE(998)] = 79018, + [SMALL_STATE(999)] = 79079, + [SMALL_STATE(1000)] = 79144, + [SMALL_STATE(1001)] = 79209, + [SMALL_STATE(1002)] = 79266, + [SMALL_STATE(1003)] = 79323, + [SMALL_STATE(1004)] = 79388, + [SMALL_STATE(1005)] = 79435, + [SMALL_STATE(1006)] = 79500, + [SMALL_STATE(1007)] = 79549, + [SMALL_STATE(1008)] = 79602, + [SMALL_STATE(1009)] = 79667, + [SMALL_STATE(1010)] = 79732, + [SMALL_STATE(1011)] = 79789, + [SMALL_STATE(1012)] = 79844, + [SMALL_STATE(1013)] = 79905, + [SMALL_STATE(1014)] = 79970, + [SMALL_STATE(1015)] = 80035, + [SMALL_STATE(1016)] = 80100, + [SMALL_STATE(1017)] = 80165, + [SMALL_STATE(1018)] = 80230, + [SMALL_STATE(1019)] = 80292, + [SMALL_STATE(1020)] = 80354, + [SMALL_STATE(1021)] = 80416, + [SMALL_STATE(1022)] = 80478, + [SMALL_STATE(1023)] = 80540, + [SMALL_STATE(1024)] = 80602, + [SMALL_STATE(1025)] = 80664, + [SMALL_STATE(1026)] = 80726, + [SMALL_STATE(1027)] = 80788, + [SMALL_STATE(1028)] = 80834, + [SMALL_STATE(1029)] = 80882, + [SMALL_STATE(1030)] = 80944, + [SMALL_STATE(1031)] = 81006, + [SMALL_STATE(1032)] = 81068, + [SMALL_STATE(1033)] = 81124, + [SMALL_STATE(1034)] = 81186, + [SMALL_STATE(1035)] = 81248, + [SMALL_STATE(1036)] = 81310, + [SMALL_STATE(1037)] = 81372, + [SMALL_STATE(1038)] = 81434, + [SMALL_STATE(1039)] = 81496, + [SMALL_STATE(1040)] = 81558, + [SMALL_STATE(1041)] = 81618, + [SMALL_STATE(1042)] = 81680, + [SMALL_STATE(1043)] = 81740, + [SMALL_STATE(1044)] = 81802, + [SMALL_STATE(1045)] = 81862, + [SMALL_STATE(1046)] = 81918, + [SMALL_STATE(1047)] = 81970, + [SMALL_STATE(1048)] = 82026, + [SMALL_STATE(1049)] = 82088, + [SMALL_STATE(1050)] = 82150, + [SMALL_STATE(1051)] = 82212, + [SMALL_STATE(1052)] = 82274, + [SMALL_STATE(1053)] = 82328, + [SMALL_STATE(1054)] = 82390, + [SMALL_STATE(1055)] = 82450, + [SMALL_STATE(1056)] = 82512, + [SMALL_STATE(1057)] = 82574, + [SMALL_STATE(1058)] = 82636, + [SMALL_STATE(1059)] = 82698, + [SMALL_STATE(1060)] = 82760, + [SMALL_STATE(1061)] = 82822, + [SMALL_STATE(1062)] = 82884, + [SMALL_STATE(1063)] = 82946, + [SMALL_STATE(1064)] = 83008, + [SMALL_STATE(1065)] = 83043, + [SMALL_STATE(1066)] = 83102, + [SMALL_STATE(1067)] = 83150, + [SMALL_STATE(1068)] = 83198, + [SMALL_STATE(1069)] = 83246, + [SMALL_STATE(1070)] = 83294, + [SMALL_STATE(1071)] = 83342, + [SMALL_STATE(1072)] = 83390, + [SMALL_STATE(1073)] = 83438, + [SMALL_STATE(1074)] = 83483, + [SMALL_STATE(1075)] = 83528, + [SMALL_STATE(1076)] = 83573, + [SMALL_STATE(1077)] = 83618, + [SMALL_STATE(1078)] = 83663, + [SMALL_STATE(1079)] = 83708, + [SMALL_STATE(1080)] = 83753, + [SMALL_STATE(1081)] = 83798, + [SMALL_STATE(1082)] = 83840, + [SMALL_STATE(1083)] = 83882, + [SMALL_STATE(1084)] = 83924, + [SMALL_STATE(1085)] = 83966, + [SMALL_STATE(1086)] = 84008, + [SMALL_STATE(1087)] = 84050, + [SMALL_STATE(1088)] = 84092, + [SMALL_STATE(1089)] = 84134, + [SMALL_STATE(1090)] = 84176, + [SMALL_STATE(1091)] = 84218, + [SMALL_STATE(1092)] = 84260, + [SMALL_STATE(1093)] = 84302, + [SMALL_STATE(1094)] = 84344, + [SMALL_STATE(1095)] = 84386, + [SMALL_STATE(1096)] = 84428, + [SMALL_STATE(1097)] = 84470, + [SMALL_STATE(1098)] = 84512, + [SMALL_STATE(1099)] = 84554, + [SMALL_STATE(1100)] = 84596, + [SMALL_STATE(1101)] = 84638, + [SMALL_STATE(1102)] = 84680, + [SMALL_STATE(1103)] = 84722, + [SMALL_STATE(1104)] = 84764, + [SMALL_STATE(1105)] = 84806, + [SMALL_STATE(1106)] = 84848, + [SMALL_STATE(1107)] = 84890, + [SMALL_STATE(1108)] = 84932, + [SMALL_STATE(1109)] = 84974, + [SMALL_STATE(1110)] = 85016, + [SMALL_STATE(1111)] = 85058, + [SMALL_STATE(1112)] = 85100, + [SMALL_STATE(1113)] = 85142, + [SMALL_STATE(1114)] = 85184, + [SMALL_STATE(1115)] = 85226, + [SMALL_STATE(1116)] = 85268, + [SMALL_STATE(1117)] = 85310, + [SMALL_STATE(1118)] = 85352, + [SMALL_STATE(1119)] = 85394, + [SMALL_STATE(1120)] = 85436, + [SMALL_STATE(1121)] = 85478, + [SMALL_STATE(1122)] = 85520, + [SMALL_STATE(1123)] = 85562, + [SMALL_STATE(1124)] = 85604, + [SMALL_STATE(1125)] = 85646, + [SMALL_STATE(1126)] = 85688, + [SMALL_STATE(1127)] = 85730, + [SMALL_STATE(1128)] = 85772, + [SMALL_STATE(1129)] = 85814, + [SMALL_STATE(1130)] = 85839, + [SMALL_STATE(1131)] = 85865, + [SMALL_STATE(1132)] = 85889, + [SMALL_STATE(1133)] = 85915, + [SMALL_STATE(1134)] = 85946, + [SMALL_STATE(1135)] = 85966, + [SMALL_STATE(1136)] = 85986, + [SMALL_STATE(1137)] = 86006, + [SMALL_STATE(1138)] = 86026, + [SMALL_STATE(1139)] = 86046, + [SMALL_STATE(1140)] = 86066, + [SMALL_STATE(1141)] = 86086, + [SMALL_STATE(1142)] = 86106, + [SMALL_STATE(1143)] = 86130, + [SMALL_STATE(1144)] = 86150, + [SMALL_STATE(1145)] = 86170, + [SMALL_STATE(1146)] = 86190, + [SMALL_STATE(1147)] = 86210, + [SMALL_STATE(1148)] = 86230, + [SMALL_STATE(1149)] = 86250, + [SMALL_STATE(1150)] = 86277, + [SMALL_STATE(1151)] = 86299, + [SMALL_STATE(1152)] = 86322, + [SMALL_STATE(1153)] = 86343, + [SMALL_STATE(1154)] = 86364, + [SMALL_STATE(1155)] = 86384, + [SMALL_STATE(1156)] = 86402, + [SMALL_STATE(1157)] = 86422, + [SMALL_STATE(1158)] = 86442, + [SMALL_STATE(1159)] = 86462, + [SMALL_STATE(1160)] = 86482, + [SMALL_STATE(1161)] = 86502, + [SMALL_STATE(1162)] = 86522, + [SMALL_STATE(1163)] = 86542, + [SMALL_STATE(1164)] = 86562, + [SMALL_STATE(1165)] = 86582, + [SMALL_STATE(1166)] = 86600, + [SMALL_STATE(1167)] = 86620, + [SMALL_STATE(1168)] = 86640, + [SMALL_STATE(1169)] = 86658, + [SMALL_STATE(1170)] = 86678, + [SMALL_STATE(1171)] = 86694, + [SMALL_STATE(1172)] = 86712, + [SMALL_STATE(1173)] = 86732, + [SMALL_STATE(1174)] = 86752, + [SMALL_STATE(1175)] = 86772, + [SMALL_STATE(1176)] = 86792, + [SMALL_STATE(1177)] = 86810, + [SMALL_STATE(1178)] = 86830, + [SMALL_STATE(1179)] = 86848, + [SMALL_STATE(1180)] = 86868, + [SMALL_STATE(1181)] = 86888, + [SMALL_STATE(1182)] = 86908, + [SMALL_STATE(1183)] = 86928, + [SMALL_STATE(1184)] = 86948, + [SMALL_STATE(1185)] = 86968, + [SMALL_STATE(1186)] = 86988, + [SMALL_STATE(1187)] = 87008, + [SMALL_STATE(1188)] = 87028, + [SMALL_STATE(1189)] = 87048, + [SMALL_STATE(1190)] = 87068, + [SMALL_STATE(1191)] = 87088, + [SMALL_STATE(1192)] = 87108, + [SMALL_STATE(1193)] = 87126, + [SMALL_STATE(1194)] = 87146, + [SMALL_STATE(1195)] = 87166, + [SMALL_STATE(1196)] = 87186, + [SMALL_STATE(1197)] = 87206, + [SMALL_STATE(1198)] = 87224, + [SMALL_STATE(1199)] = 87244, + [SMALL_STATE(1200)] = 87264, + [SMALL_STATE(1201)] = 87284, + [SMALL_STATE(1202)] = 87304, + [SMALL_STATE(1203)] = 87322, + [SMALL_STATE(1204)] = 87342, + [SMALL_STATE(1205)] = 87362, + [SMALL_STATE(1206)] = 87382, + [SMALL_STATE(1207)] = 87402, + [SMALL_STATE(1208)] = 87422, + [SMALL_STATE(1209)] = 87442, + [SMALL_STATE(1210)] = 87462, + [SMALL_STATE(1211)] = 87482, + [SMALL_STATE(1212)] = 87502, + [SMALL_STATE(1213)] = 87522, + [SMALL_STATE(1214)] = 87542, + [SMALL_STATE(1215)] = 87562, + [SMALL_STATE(1216)] = 87582, + [SMALL_STATE(1217)] = 87602, + [SMALL_STATE(1218)] = 87622, + [SMALL_STATE(1219)] = 87642, + [SMALL_STATE(1220)] = 87662, + [SMALL_STATE(1221)] = 87682, + [SMALL_STATE(1222)] = 87702, + [SMALL_STATE(1223)] = 87722, + [SMALL_STATE(1224)] = 87740, + [SMALL_STATE(1225)] = 87760, + [SMALL_STATE(1226)] = 87778, + [SMALL_STATE(1227)] = 87798, + [SMALL_STATE(1228)] = 87816, + [SMALL_STATE(1229)] = 87836, + [SMALL_STATE(1230)] = 87856, + [SMALL_STATE(1231)] = 87876, + [SMALL_STATE(1232)] = 87896, + [SMALL_STATE(1233)] = 87916, + [SMALL_STATE(1234)] = 87936, + [SMALL_STATE(1235)] = 87953, + [SMALL_STATE(1236)] = 87970, + [SMALL_STATE(1237)] = 87985, + [SMALL_STATE(1238)] = 88002, + [SMALL_STATE(1239)] = 88019, + [SMALL_STATE(1240)] = 88036, + [SMALL_STATE(1241)] = 88053, + [SMALL_STATE(1242)] = 88070, + [SMALL_STATE(1243)] = 88087, + [SMALL_STATE(1244)] = 88104, + [SMALL_STATE(1245)] = 88119, + [SMALL_STATE(1246)] = 88134, + [SMALL_STATE(1247)] = 88151, + [SMALL_STATE(1248)] = 88168, + [SMALL_STATE(1249)] = 88185, + [SMALL_STATE(1250)] = 88202, + [SMALL_STATE(1251)] = 88219, + [SMALL_STATE(1252)] = 88234, + [SMALL_STATE(1253)] = 88251, + [SMALL_STATE(1254)] = 88268, + [SMALL_STATE(1255)] = 88285, + [SMALL_STATE(1256)] = 88302, + [SMALL_STATE(1257)] = 88319, + [SMALL_STATE(1258)] = 88336, + [SMALL_STATE(1259)] = 88353, + [SMALL_STATE(1260)] = 88370, + [SMALL_STATE(1261)] = 88387, + [SMALL_STATE(1262)] = 88404, + [SMALL_STATE(1263)] = 88421, + [SMALL_STATE(1264)] = 88438, + [SMALL_STATE(1265)] = 88455, + [SMALL_STATE(1266)] = 88472, + [SMALL_STATE(1267)] = 88489, + [SMALL_STATE(1268)] = 88504, + [SMALL_STATE(1269)] = 88521, + [SMALL_STATE(1270)] = 88538, + [SMALL_STATE(1271)] = 88555, + [SMALL_STATE(1272)] = 88572, + [SMALL_STATE(1273)] = 88589, + [SMALL_STATE(1274)] = 88606, + [SMALL_STATE(1275)] = 88623, + [SMALL_STATE(1276)] = 88638, + [SMALL_STATE(1277)] = 88653, + [SMALL_STATE(1278)] = 88670, + [SMALL_STATE(1279)] = 88687, + [SMALL_STATE(1280)] = 88702, + [SMALL_STATE(1281)] = 88716, + [SMALL_STATE(1282)] = 88730, + [SMALL_STATE(1283)] = 88744, + [SMALL_STATE(1284)] = 88756, + [SMALL_STATE(1285)] = 88768, + [SMALL_STATE(1286)] = 88782, + [SMALL_STATE(1287)] = 88796, + [SMALL_STATE(1288)] = 88810, + [SMALL_STATE(1289)] = 88824, + [SMALL_STATE(1290)] = 88838, + [SMALL_STATE(1291)] = 88852, + [SMALL_STATE(1292)] = 88866, + [SMALL_STATE(1293)] = 88880, + [SMALL_STATE(1294)] = 88894, + [SMALL_STATE(1295)] = 88908, + [SMALL_STATE(1296)] = 88922, + [SMALL_STATE(1297)] = 88936, + [SMALL_STATE(1298)] = 88950, + [SMALL_STATE(1299)] = 88964, + [SMALL_STATE(1300)] = 88978, + [SMALL_STATE(1301)] = 88992, + [SMALL_STATE(1302)] = 89002, + [SMALL_STATE(1303)] = 89014, + [SMALL_STATE(1304)] = 89028, + [SMALL_STATE(1305)] = 89042, + [SMALL_STATE(1306)] = 89052, + [SMALL_STATE(1307)] = 89066, + [SMALL_STATE(1308)] = 89080, + [SMALL_STATE(1309)] = 89094, + [SMALL_STATE(1310)] = 89108, + [SMALL_STATE(1311)] = 89122, + [SMALL_STATE(1312)] = 89136, + [SMALL_STATE(1313)] = 89150, + [SMALL_STATE(1314)] = 89164, + [SMALL_STATE(1315)] = 89178, + [SMALL_STATE(1316)] = 89192, + [SMALL_STATE(1317)] = 89204, + [SMALL_STATE(1318)] = 89218, + [SMALL_STATE(1319)] = 89232, + [SMALL_STATE(1320)] = 89246, + [SMALL_STATE(1321)] = 89260, + [SMALL_STATE(1322)] = 89272, + [SMALL_STATE(1323)] = 89286, + [SMALL_STATE(1324)] = 89300, + [SMALL_STATE(1325)] = 89312, + [SMALL_STATE(1326)] = 89326, + [SMALL_STATE(1327)] = 89340, + [SMALL_STATE(1328)] = 89352, + [SMALL_STATE(1329)] = 89366, + [SMALL_STATE(1330)] = 89380, + [SMALL_STATE(1331)] = 89394, + [SMALL_STATE(1332)] = 89408, + [SMALL_STATE(1333)] = 89422, + [SMALL_STATE(1334)] = 89436, + [SMALL_STATE(1335)] = 89448, + [SMALL_STATE(1336)] = 89462, + [SMALL_STATE(1337)] = 89476, + [SMALL_STATE(1338)] = 89485, + [SMALL_STATE(1339)] = 89494, + [SMALL_STATE(1340)] = 89503, + [SMALL_STATE(1341)] = 89514, + [SMALL_STATE(1342)] = 89525, + [SMALL_STATE(1343)] = 89536, + [SMALL_STATE(1344)] = 89545, + [SMALL_STATE(1345)] = 89554, + [SMALL_STATE(1346)] = 89565, + [SMALL_STATE(1347)] = 89576, + [SMALL_STATE(1348)] = 89585, + [SMALL_STATE(1349)] = 89596, + [SMALL_STATE(1350)] = 89607, + [SMALL_STATE(1351)] = 89616, + [SMALL_STATE(1352)] = 89627, + [SMALL_STATE(1353)] = 89638, + [SMALL_STATE(1354)] = 89649, + [SMALL_STATE(1355)] = 89660, + [SMALL_STATE(1356)] = 89669, + [SMALL_STATE(1357)] = 89680, + [SMALL_STATE(1358)] = 89691, + [SMALL_STATE(1359)] = 89702, + [SMALL_STATE(1360)] = 89713, + [SMALL_STATE(1361)] = 89724, + [SMALL_STATE(1362)] = 89735, + [SMALL_STATE(1363)] = 89746, + [SMALL_STATE(1364)] = 89755, + [SMALL_STATE(1365)] = 89766, + [SMALL_STATE(1366)] = 89777, + [SMALL_STATE(1367)] = 89786, + [SMALL_STATE(1368)] = 89797, + [SMALL_STATE(1369)] = 89806, + [SMALL_STATE(1370)] = 89815, + [SMALL_STATE(1371)] = 89826, + [SMALL_STATE(1372)] = 89837, + [SMALL_STATE(1373)] = 89848, + [SMALL_STATE(1374)] = 89859, + [SMALL_STATE(1375)] = 89870, + [SMALL_STATE(1376)] = 89878, + [SMALL_STATE(1377)] = 89886, + [SMALL_STATE(1378)] = 89894, + [SMALL_STATE(1379)] = 89902, + [SMALL_STATE(1380)] = 89910, + [SMALL_STATE(1381)] = 89918, + [SMALL_STATE(1382)] = 89926, + [SMALL_STATE(1383)] = 89934, + [SMALL_STATE(1384)] = 89942, + [SMALL_STATE(1385)] = 89950, + [SMALL_STATE(1386)] = 89958, + [SMALL_STATE(1387)] = 89966, + [SMALL_STATE(1388)] = 89974, + [SMALL_STATE(1389)] = 89982, + [SMALL_STATE(1390)] = 89990, + [SMALL_STATE(1391)] = 89998, + [SMALL_STATE(1392)] = 90006, + [SMALL_STATE(1393)] = 90014, + [SMALL_STATE(1394)] = 90022, + [SMALL_STATE(1395)] = 90030, + [SMALL_STATE(1396)] = 90038, + [SMALL_STATE(1397)] = 90046, + [SMALL_STATE(1398)] = 90054, + [SMALL_STATE(1399)] = 90062, + [SMALL_STATE(1400)] = 90070, + [SMALL_STATE(1401)] = 90078, + [SMALL_STATE(1402)] = 90086, + [SMALL_STATE(1403)] = 90094, + [SMALL_STATE(1404)] = 90102, + [SMALL_STATE(1405)] = 90110, + [SMALL_STATE(1406)] = 90118, + [SMALL_STATE(1407)] = 90126, + [SMALL_STATE(1408)] = 90134, + [SMALL_STATE(1409)] = 90142, + [SMALL_STATE(1410)] = 90150, + [SMALL_STATE(1411)] = 90158, + [SMALL_STATE(1412)] = 90166, + [SMALL_STATE(1413)] = 90174, + [SMALL_STATE(1414)] = 90182, + [SMALL_STATE(1415)] = 90190, + [SMALL_STATE(1416)] = 90198, + [SMALL_STATE(1417)] = 90206, + [SMALL_STATE(1418)] = 90214, + [SMALL_STATE(1419)] = 90222, + [SMALL_STATE(1420)] = 90230, + [SMALL_STATE(1421)] = 90238, + [SMALL_STATE(1422)] = 90246, + [SMALL_STATE(1423)] = 90254, + [SMALL_STATE(1424)] = 90262, + [SMALL_STATE(1425)] = 90270, + [SMALL_STATE(1426)] = 90278, + [SMALL_STATE(1427)] = 90286, + [SMALL_STATE(1428)] = 90294, + [SMALL_STATE(1429)] = 90302, + [SMALL_STATE(1430)] = 90310, + [SMALL_STATE(1431)] = 90318, + [SMALL_STATE(1432)] = 90326, + [SMALL_STATE(1433)] = 90334, + [SMALL_STATE(1434)] = 90342, + [SMALL_STATE(1435)] = 90350, + [SMALL_STATE(1436)] = 90358, + [SMALL_STATE(1437)] = 90366, + [SMALL_STATE(1438)] = 90374, + [SMALL_STATE(1439)] = 90382, + [SMALL_STATE(1440)] = 90390, + [SMALL_STATE(1441)] = 90398, + [SMALL_STATE(1442)] = 90406, + [SMALL_STATE(1443)] = 90414, + [SMALL_STATE(1444)] = 90422, + [SMALL_STATE(1445)] = 90430, + [SMALL_STATE(1446)] = 90438, + [SMALL_STATE(1447)] = 90446, + [SMALL_STATE(1448)] = 90454, + [SMALL_STATE(1449)] = 90462, + [SMALL_STATE(1450)] = 90470, + [SMALL_STATE(1451)] = 90478, + [SMALL_STATE(1452)] = 90486, + [SMALL_STATE(1453)] = 90494, + [SMALL_STATE(1454)] = 90502, + [SMALL_STATE(1455)] = 90510, + [SMALL_STATE(1456)] = 90518, + [SMALL_STATE(1457)] = 90526, + [SMALL_STATE(1458)] = 90534, + [SMALL_STATE(1459)] = 90542, + [SMALL_STATE(1460)] = 90550, + [SMALL_STATE(1461)] = 90558, + [SMALL_STATE(1462)] = 90566, + [SMALL_STATE(1463)] = 90574, + [SMALL_STATE(1464)] = 90582, + [SMALL_STATE(1465)] = 90590, + [SMALL_STATE(1466)] = 90598, + [SMALL_STATE(1467)] = 90606, + [SMALL_STATE(1468)] = 90614, + [SMALL_STATE(1469)] = 90622, + [SMALL_STATE(1470)] = 90630, + [SMALL_STATE(1471)] = 90638, + [SMALL_STATE(1472)] = 90646, + [SMALL_STATE(1473)] = 90654, + [SMALL_STATE(1474)] = 90662, + [SMALL_STATE(1475)] = 90670, + [SMALL_STATE(1476)] = 90678, + [SMALL_STATE(1477)] = 90686, + [SMALL_STATE(1478)] = 90694, + [SMALL_STATE(1479)] = 90702, + [SMALL_STATE(1480)] = 90710, + [SMALL_STATE(1481)] = 90718, + [SMALL_STATE(1482)] = 90726, + [SMALL_STATE(1483)] = 90734, + [SMALL_STATE(1484)] = 90742, + [SMALL_STATE(1485)] = 90750, + [SMALL_STATE(1486)] = 90758, + [SMALL_STATE(1487)] = 90766, + [SMALL_STATE(1488)] = 90774, + [SMALL_STATE(1489)] = 90782, + [SMALL_STATE(1490)] = 90790, + [SMALL_STATE(1491)] = 90798, + [SMALL_STATE(1492)] = 90806, + [SMALL_STATE(1493)] = 90814, + [SMALL_STATE(1494)] = 90822, + [SMALL_STATE(1495)] = 90830, + [SMALL_STATE(1496)] = 90838, + [SMALL_STATE(1497)] = 90846, + [SMALL_STATE(1498)] = 90854, + [SMALL_STATE(1499)] = 90862, + [SMALL_STATE(1500)] = 90870, + [SMALL_STATE(1501)] = 90878, + [SMALL_STATE(1502)] = 90886, + [SMALL_STATE(1503)] = 90894, + [SMALL_STATE(1504)] = 90902, + [SMALL_STATE(1505)] = 90910, + [SMALL_STATE(1506)] = 90918, + [SMALL_STATE(1507)] = 90926, + [SMALL_STATE(1508)] = 90934, + [SMALL_STATE(1509)] = 90942, + [SMALL_STATE(1510)] = 90950, +}; + +static const TSParseActionEntry ts_parse_actions[] = { + [0] = {.entry = {.count = 0, .reusable = false}}, + [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), + [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), + [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 0), + [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(891), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1498), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(896), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(896), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1225), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1490), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(793), + [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1482), + [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1406), + [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1399), + [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(917), + [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(918), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1337), + [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1315), + [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1388), + [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), + [47] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), + [49] = {.entry = {.count = 1, .reusable = false}}, SHIFT(861), + [51] = {.entry = {.count = 1, .reusable = false}}, SHIFT(370), + [53] = {.entry = {.count = 1, .reusable = false}}, SHIFT(919), + [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1367), + [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(279), + [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(390), + [61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1361), + [63] = {.entry = {.count = 1, .reusable = false}}, SHIFT(382), + [65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(920), + [67] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1360), + [69] = {.entry = {.count = 1, .reusable = false}}, SHIFT(519), + [71] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [73] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_return, 1), + [75] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_return, 1), + [77] = {.entry = {.count = 1, .reusable = false}}, SHIFT(525), + [79] = {.entry = {.count = 1, .reusable = true}}, SHIFT(525), + [81] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1165), + [83] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1448), + [85] = {.entry = {.count = 1, .reusable = false}}, SHIFT(520), + [87] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1286), + [89] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1473), + [91] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2), + [93] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3), + [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(523), + [97] = {.entry = {.count = 1, .reusable = false}}, SHIFT(296), + [99] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1354), + [101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(350), + [103] = {.entry = {.count = 1, .reusable = false}}, SHIFT(245), + [105] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1353), + [107] = {.entry = {.count = 1, .reusable = false}}, SHIFT(349), + [109] = {.entry = {.count = 1, .reusable = false}}, SHIFT(933), + [111] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1342), + [113] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_break, 1), + [115] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_break, 1), + [117] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1474), + [119] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4), + [121] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7), + [123] = {.entry = {.count = 1, .reusable = false}}, SHIFT(182), + [125] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1456), + [127] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6), + [129] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5), + [131] = {.entry = {.count = 1, .reusable = false}}, SHIFT(342), + [133] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1461), + [135] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8), + [137] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), + [139] = {.entry = {.count = 1, .reusable = false}}, SHIFT(325), + [141] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1466), + [143] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10), + [145] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), + [147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(311), + [149] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1428), + [151] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13), + [153] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12), + [155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(256), + [157] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1475), + [159] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), + [161] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), + [163] = {.entry = {.count = 1, .reusable = false}}, SHIFT(327), + [165] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1469), + [167] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), + [169] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16), + [171] = {.entry = {.count = 1, .reusable = false}}, SHIFT(221), + [173] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1472), + [175] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18), + [177] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19), + [179] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69), + [181] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1470), + [183] = {.entry = {.count = 1, .reusable = false}}, SHIFT(20), + [185] = {.entry = {.count = 1, .reusable = false}}, SHIFT(21), + [187] = {.entry = {.count = 1, .reusable = false}}, SHIFT(159), + [189] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1471), + [191] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), + [193] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), + [195] = {.entry = {.count = 1, .reusable = false}}, SHIFT(123), + [197] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1468), + [199] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), + [201] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24), + [203] = {.entry = {.count = 1, .reusable = false}}, SHIFT(278), + [205] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1443), + [207] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28), + [209] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29), + [211] = {.entry = {.count = 1, .reusable = false}}, SHIFT(236), + [213] = {.entry = {.count = 1, .reusable = false}}, SHIFT(943), + [215] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1405), + [217] = {.entry = {.count = 1, .reusable = false}}, SHIFT(30), + [219] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31), + [221] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80), + [223] = {.entry = {.count = 1, .reusable = false}}, SHIFT(923), + [225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__stmts, 2), + [227] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(891), + [230] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(1498), + [233] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(42), + [236] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(896), + [239] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(896), + [242] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(1225), + [245] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(1490), + [248] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(793), + [251] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(58), + [254] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(1482), + [257] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(49), + [260] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(32), + [263] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(1406), + [266] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(1399), + [269] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(917), + [272] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(918), + [275] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(1337), + [278] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(1315), + [281] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(1388), + [284] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(26), + [287] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(27), + [290] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(861), + [293] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(370), + [296] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(919), + [299] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(1367), + [302] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(279), + [305] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(390), + [308] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(1361), + [311] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(382), + [314] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(920), + [317] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__stmts, 2), SHIFT_REPEAT(1360), + [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(814), + [322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1284), + [326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(449), + [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(445), + [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(807), + [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1334), + [340] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 1), + [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(804), + [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(805), + [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [348] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1064), + [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(895), + [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(522), + [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(460), + [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(510), + [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(505), + [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(465), + [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(883), + [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(863), + [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(872), + [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(859), + [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(892), + [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(876), + [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(482), + [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(468), + [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(517), + [380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(795), + [382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_query, 1), + [384] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_query, 1), + [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_query, 2), + [388] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_query, 2), + [390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), + [392] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__query_stmts, 2), + [394] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(931), + [397] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(85), + [400] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(962), + [403] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(84), + [406] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(253), + [409] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(252), + [412] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(192), + [415] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(191), + [418] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(134), + [421] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(928), + [424] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(83), + [427] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(193), + [430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [434] = {.entry = {.count = 1, .reusable = false}}, SHIFT(924), + [436] = {.entry = {.count = 1, .reusable = false}}, SHIFT(927), + [438] = {.entry = {.count = 1, .reusable = false}}, SHIFT(931), + [440] = {.entry = {.count = 1, .reusable = false}}, SHIFT(938), + [442] = {.entry = {.count = 1, .reusable = false}}, SHIFT(960), + [444] = {.entry = {.count = 1, .reusable = false}}, SHIFT(955), + [446] = {.entry = {.count = 1, .reusable = false}}, SHIFT(914), + [448] = {.entry = {.count = 1, .reusable = false}}, SHIFT(968), + [450] = {.entry = {.count = 1, .reusable = false}}, SHIFT(937), + [452] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(924), + [455] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(259), + [458] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(944), + [461] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(262), + [464] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(188), + [467] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(187), + [470] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(86), + [473] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(951), + [476] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(158), + [479] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(135), + [482] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(955), + [485] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(255), + [488] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(945), + [491] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(254), + [494] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(375), + [497] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(373), + [500] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(371), + [503] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(921), + [506] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(248), + [509] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(247), + [512] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(914), + [515] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(171), + [518] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(915), + [521] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(170), + [524] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(366), + [527] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(365), + [530] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(190), + [533] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(940), + [536] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(169), + [539] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(168), + [542] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(968), + [545] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(132), + [548] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(961), + [551] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(131), + [554] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(105), + [557] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(106), + [560] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(251), + [563] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(250), + [566] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(249), + [569] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(963), + [572] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(130), + [575] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(385), + [578] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(919), + [581] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(102), + [584] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(969), + [587] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(104), + [590] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(107), + [593] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(108), + [596] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(109), + [599] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(970), + [602] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(111), + [605] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(112), + [608] = {.entry = {.count = 1, .reusable = true}}, SHIFT(919), + [610] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [612] = {.entry = {.count = 1, .reusable = true}}, SHIFT(969), + [614] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [616] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [618] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), + [620] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [622] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [624] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [626] = {.entry = {.count = 1, .reusable = true}}, SHIFT(970), + [628] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [632] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(938), + [635] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(330), + [638] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(959), + [641] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(329), + [644] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(186), + [647] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(185), + [650] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(87), + [653] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(946), + [656] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(326), + [659] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(133), + [662] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(937), + [665] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(146), + [668] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(966), + [671] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(145), + [674] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(361), + [677] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(360), + [680] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(196), + [683] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(954), + [686] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(144), + [689] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(142), + [692] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(927), + [695] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(183), + [698] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(916), + [701] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(184), + [704] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(198), + [707] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(197), + [710] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(136), + [713] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(922), + [716] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(222), + [719] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(189), + [722] = {.entry = {.count = 1, .reusable = true}}, SHIFT(943), + [724] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), + [726] = {.entry = {.count = 1, .reusable = true}}, SHIFT(932), + [728] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), + [730] = {.entry = {.count = 1, .reusable = true}}, SHIFT(253), + [732] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252), + [734] = {.entry = {.count = 1, .reusable = true}}, SHIFT(388), + [736] = {.entry = {.count = 1, .reusable = true}}, SHIFT(387), + [738] = {.entry = {.count = 1, .reusable = true}}, SHIFT(386), + [740] = {.entry = {.count = 1, .reusable = true}}, SHIFT(925), + [742] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), + [744] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), + [746] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(960), + [749] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(103), + [752] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(929), + [755] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(101), + [758] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(209), + [761] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(208), + [764] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(207), + [767] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(957), + [770] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(95), + [773] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(369), + [776] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(943), + [779] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(211), + [782] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(932), + [785] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(210), + [788] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(388), + [791] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(387), + [794] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(386), + [797] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(925), + [800] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(206), + [803] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(205), + [806] = {.entry = {.count = 1, .reusable = true}}, SHIFT(923), + [808] = {.entry = {.count = 1, .reusable = true}}, SHIFT(348), + [810] = {.entry = {.count = 1, .reusable = true}}, SHIFT(935), + [812] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [814] = {.entry = {.count = 1, .reusable = true}}, SHIFT(351), + [816] = {.entry = {.count = 1, .reusable = true}}, SHIFT(354), + [818] = {.entry = {.count = 1, .reusable = true}}, SHIFT(355), + [820] = {.entry = {.count = 1, .reusable = true}}, SHIFT(956), + [822] = {.entry = {.count = 1, .reusable = true}}, SHIFT(359), + [824] = {.entry = {.count = 1, .reusable = true}}, SHIFT(362), + [826] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(923), + [829] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(348), + [832] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(935), + [835] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(62), + [838] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(351), + [841] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(354), + [844] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(355), + [847] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(956), + [850] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(359), + [853] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(362), + [856] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_nominal, 3), + [858] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_nominal, 3), + [860] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_record, 3), + [862] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_record, 3), + [864] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_paren, 3), + [866] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_paren, 3), + [868] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_array, 3), + [870] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_array, 3), + [872] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_record_concat, 3), + [874] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_record_concat, 3), + [876] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_array_concat, 3), + [878] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_array_concat, 3), + [880] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_unit, 2), + [882] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_unit, 2), + [884] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_tuple, 4), + [886] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_tuple, 4), + [888] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_nominal, 4), + [890] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_nominal, 4), + [892] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_annot, 3), + [894] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_annot, 3), + [896] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1115), + [898] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1114), + [900] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_fun, 5), + [902] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_fun, 5), + [904] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_nominal, 1), + [906] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_nominal, 1), + [908] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_fun, 6), + [910] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_fun, 6), + [912] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_wild, 1), + [914] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_wild, 1), + [916] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_name, 1), + [918] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_name, 1), + [920] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_array, 2), + [922] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_array, 2), + [924] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_tuple, 5), + [926] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_tuple, 5), + [928] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_query_roll, 2), + [930] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1094), + [932] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [934] = {.entry = {.count = 1, .reusable = true}}, SHIFT(347), + [936] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_query_roll, 2), + [938] = {.entry = {.count = 1, .reusable = false}}, SHIFT(286), + [940] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1340), + [942] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), + [944] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286), + [946] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284), + [948] = {.entry = {.count = 1, .reusable = false}}, SHIFT(283), + [950] = {.entry = {.count = 1, .reusable = true}}, SHIFT(283), + [952] = {.entry = {.count = 1, .reusable = false}}, SHIFT(281), + [954] = {.entry = {.count = 1, .reusable = false}}, SHIFT(280), + [956] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1478), + [958] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_query_group, 4), + [960] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_query_group, 4), + [962] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_query_over, 4), + [964] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_query_over, 4), + [966] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [968] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), + [970] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_query_compute, 2), + [972] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_query_compute, 2), + [974] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4), + [976] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 4), + [978] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [980] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3), + [982] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_query_group, 5), + [984] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_query_group, 5), + [986] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_query_compute, 3), + [988] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_query_compute, 3), + [990] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_if, 3), + [992] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_if, 3), + [994] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1362), + [996] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_query_roll, 3), + [998] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_query_roll, 3), + [1000] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_query_group, 6), + [1002] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_query_group, 6), + [1004] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_query_over, 5), + [1006] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_query_over, 5), + [1008] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1437), + [1010] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_record_access, 3), + [1012] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_record_access, 3), + [1014] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [1016] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1481), + [1018] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_tuple, 4), + [1020] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_tuple, 4), + [1022] = {.entry = {.count = 1, .reusable = false}}, SHIFT(340), + [1024] = {.entry = {.count = 1, .reusable = true}}, SHIFT(340), + [1026] = {.entry = {.count = 1, .reusable = true}}, SHIFT(338), + [1028] = {.entry = {.count = 1, .reusable = false}}, SHIFT(337), + [1030] = {.entry = {.count = 1, .reusable = true}}, SHIFT(337), + [1032] = {.entry = {.count = 1, .reusable = false}}, SHIFT(336), + [1034] = {.entry = {.count = 1, .reusable = false}}, SHIFT(335), + [1036] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__rust, 2), + [1038] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__rust, 2), + [1040] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_array, 3), + [1042] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_array, 3), + [1044] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_method_call, 10, .production_id = 10), + [1046] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_method_call, 10, .production_id = 10), + [1048] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_method_call, 9, .production_id = 10), + [1050] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_method_call, 9, .production_id = 10), + [1052] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_call, 8, .production_id = 2), + [1054] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_call, 8, .production_id = 2), + [1056] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_try, 8), + [1058] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_try, 8), + [1060] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_call, 7, .production_id = 2), + [1062] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_call, 7, .production_id = 2), + [1064] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_try, 7), + [1066] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_try, 7), + [1068] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_query_select, 3), + [1070] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_query_select, 3), + [1072] = {.entry = {.count = 1, .reusable = true}}, SHIFT(287), + [1074] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_method_call, 6, .production_id = 10), + [1076] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_method_call, 6, .production_id = 10), + [1078] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_query_over, 6), + [1080] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_query_over, 6), + [1082] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__rust, 3), + [1084] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__rust, 3), + [1086] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_paren, 3), + [1088] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_paren, 3), + [1090] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_char, 3), + [1092] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_char, 3), + [1094] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_string, 3), + [1096] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_string, 3), + [1098] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_method_call, 5, .production_id = 10), + [1100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_method_call, 5, .production_id = 10), + [1102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_record, 3), + [1104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_record, 3), + [1106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_fun, 7), + [1108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_fun, 7), + [1110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_query_compute, 4), + [1112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_query_compute, 4), + [1114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_loop, 2), + [1116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_loop, 2), + [1118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_do, 2), + [1120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_do, 2), + [1122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_for, 5), + [1124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_for, 5), + [1126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_match, 5), + [1128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_match, 5), + [1130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_if, 5), + [1132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_if, 5), + [1134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_fun, 5), + [1136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_fun, 5), + [1138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_rust, 1), + [1140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_rust, 1), + [1142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_tuple, 5), + [1144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_tuple, 5), + [1146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_rust, 2), + [1148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_rust, 2), + [1150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_array_access, 4), + [1152] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_array_access, 4), + [1154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_call, 4, .production_id = 2), + [1156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_call, 4, .production_id = 2), + [1158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_query_group, 7), + [1160] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_query_group, 7), + [1162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_array, 2), + [1164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_array, 2), + [1166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_binary, 3), + [1168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_binary, 3), + [1170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_tuple_access, 3), + [1172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_tuple_access, 3), + [1174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_query_order, 3), + [1176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_query_order, 3), + [1178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_call, 3, .production_id = 2), + [1180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_call, 3, .production_id = 2), + [1182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_while, 3), + [1184] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_while, 3), + [1186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__as, 2), + [1188] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__as, 2), + [1190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_query_select, 2), + [1192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_query_select, 2), + [1194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_unit, 2), + [1196] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_unit, 2), + [1198] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_name, 1), + [1200] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_name, 1), + [1202] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_bool, 1), + [1204] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_bool, 1), + [1206] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constant_string, 2), + [1208] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constant_string, 2), + [1210] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_record, 2), + [1212] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_record, 2), + [1214] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_continue, 1), + [1216] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_continue, 1), + [1218] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_query_roll, 4), + [1220] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_query_roll, 4), + [1222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_constant, 1), + [1224] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_constant, 1), + [1226] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_query_from, 4), + [1228] = {.entry = {.count = 1, .reusable = false}}, SHIFT(295), + [1230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(295), + [1232] = {.entry = {.count = 1, .reusable = false}}, SHIFT(285), + [1234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285), + [1236] = {.entry = {.count = 1, .reusable = false}}, SHIFT(180), + [1238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180), + [1240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), + [1242] = {.entry = {.count = 1, .reusable = false}}, SHIFT(177), + [1244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), + [1246] = {.entry = {.count = 1, .reusable = false}}, SHIFT(176), + [1248] = {.entry = {.count = 1, .reusable = false}}, SHIFT(175), + [1250] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__of, 2), + [1252] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_query_order, 2), + [1254] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_query_order, 2), + [1256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(509), + [1258] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_query_into, 2), + [1260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_query_join, 6), + [1262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_query_where, 2), + [1264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_return, 2), + [1266] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_return, 2), + [1268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_break, 2), + [1270] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_break, 2), + [1272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_throw, 2), + [1274] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_throw, 2), + [1276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_query_val, 4), + [1278] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_query_val, 4), + [1280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_fun, 6), + [1282] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_fun, 6), + [1284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_fun, 8), + [1286] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_fun, 8), + [1288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_query_union, 2), + [1290] = {.entry = {.count = 1, .reusable = false}}, SHIFT(179), + [1292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), + [1294] = {.entry = {.count = 1, .reusable = false}}, SHIFT(181), + [1296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), + [1298] = {.entry = {.count = 1, .reusable = false}}, SHIFT(323), + [1300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(323), + [1302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(321), + [1304] = {.entry = {.count = 1, .reusable = false}}, SHIFT(306), + [1306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(306), + [1308] = {.entry = {.count = 1, .reusable = false}}, SHIFT(319), + [1310] = {.entry = {.count = 1, .reusable = false}}, SHIFT(318), + [1312] = {.entry = {.count = 1, .reusable = false}}, SHIFT(339), + [1314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(339), + [1316] = {.entry = {.count = 1, .reusable = false}}, SHIFT(341), + [1318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(341), + [1320] = {.entry = {.count = 1, .reusable = false}}, SHIFT(310), + [1322] = {.entry = {.count = 1, .reusable = false}}, SHIFT(309), + [1324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(310), + [1326] = {.entry = {.count = 1, .reusable = false}}, SHIFT(308), + [1328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(308), + [1330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(309), + [1332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(307), + [1334] = {.entry = {.count = 1, .reusable = false}}, SHIFT(320), + [1336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(320), + [1338] = {.entry = {.count = 1, .reusable = false}}, SHIFT(173), + [1340] = {.entry = {.count = 1, .reusable = false}}, SHIFT(164), + [1342] = {.entry = {.count = 1, .reusable = false}}, SHIFT(324), + [1344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(324), + [1346] = {.entry = {.count = 1, .reusable = false}}, SHIFT(322), + [1348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(322), + [1350] = {.entry = {.count = 1, .reusable = false}}, SHIFT(261), + [1352] = {.entry = {.count = 1, .reusable = false}}, SHIFT(263), + [1354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(263), + [1356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261), + [1358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(264), + [1360] = {.entry = {.count = 1, .reusable = false}}, SHIFT(266), + [1362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(266), + [1364] = {.entry = {.count = 1, .reusable = false}}, SHIFT(267), + [1366] = {.entry = {.count = 1, .reusable = false}}, SHIFT(268), + [1368] = {.entry = {.count = 1, .reusable = false}}, SHIFT(258), + [1370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258), + [1372] = {.entry = {.count = 1, .reusable = false}}, SHIFT(344), + [1374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), + [1376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(344), + [1378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(368), + [1380] = {.entry = {.count = 1, .reusable = false}}, SHIFT(376), + [1382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(376), + [1384] = {.entry = {.count = 1, .reusable = false}}, SHIFT(389), + [1386] = {.entry = {.count = 1, .reusable = false}}, SHIFT(377), + [1388] = {.entry = {.count = 1, .reusable = false}}, SHIFT(219), + [1390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), + [1392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217), + [1394] = {.entry = {.count = 1, .reusable = false}}, SHIFT(216), + [1396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), + [1398] = {.entry = {.count = 1, .reusable = false}}, SHIFT(215), + [1400] = {.entry = {.count = 1, .reusable = false}}, SHIFT(214), + [1402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(378), + [1404] = {.entry = {.count = 1, .reusable = false}}, SHIFT(343), + [1406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(343), + [1408] = {.entry = {.count = 1, .reusable = false}}, SHIFT(353), + [1410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(353), + [1412] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), + [1414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [1416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [1418] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64), + [1420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [1422] = {.entry = {.count = 1, .reusable = false}}, SHIFT(305), + [1424] = {.entry = {.count = 1, .reusable = false}}, SHIFT(160), + [1426] = {.entry = {.count = 1, .reusable = false}}, SHIFT(155), + [1428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), + [1430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), + [1432] = {.entry = {.count = 1, .reusable = false}}, SHIFT(152), + [1434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), + [1436] = {.entry = {.count = 1, .reusable = false}}, SHIFT(151), + [1438] = {.entry = {.count = 1, .reusable = false}}, SHIFT(150), + [1440] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), + [1442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [1444] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), + [1446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [1448] = {.entry = {.count = 1, .reusable = false}}, SHIFT(220), + [1450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), + [1452] = {.entry = {.count = 1, .reusable = false}}, SHIFT(218), + [1454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), + [1456] = {.entry = {.count = 1, .reusable = false}}, SHIFT(121), + [1458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [1460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), + [1462] = {.entry = {.count = 1, .reusable = false}}, SHIFT(117), + [1464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [1466] = {.entry = {.count = 1, .reusable = false}}, SHIFT(116), + [1468] = {.entry = {.count = 1, .reusable = false}}, SHIFT(115), + [1470] = {.entry = {.count = 1, .reusable = false}}, SHIFT(122), + [1472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), + [1474] = {.entry = {.count = 1, .reusable = false}}, SHIFT(120), + [1476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), + [1478] = {.entry = {.count = 1, .reusable = false}}, SHIFT(157), + [1480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), + [1482] = {.entry = {.count = 1, .reusable = false}}, SHIFT(154), + [1484] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [1486] = {.entry = {.count = 1, .reusable = false}}, SHIFT(289), + [1488] = {.entry = {.count = 1, .reusable = false}}, SHIFT(290), + [1490] = {.entry = {.count = 1, .reusable = true}}, SHIFT(290), + [1492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(289), + [1494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(291), + [1496] = {.entry = {.count = 1, .reusable = false}}, SHIFT(292), + [1498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(292), + [1500] = {.entry = {.count = 1, .reusable = false}}, SHIFT(294), + [1502] = {.entry = {.count = 1, .reusable = false}}, SHIFT(299), + [1504] = {.entry = {.count = 1, .reusable = false}}, SHIFT(288), + [1506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(288), + [1508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_enum, 6, .production_id = 11), + [1510] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_enum, 6, .production_id = 11), + [1512] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_def, 5, .production_id = 6), + [1514] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_def, 5, .production_id = 6), + [1516] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_enum, 6, .production_id = 15), + [1518] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_enum, 6, .production_id = 15), + [1520] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_type, 6, .production_id = 14), + [1522] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_type, 6, .production_id = 14), + [1524] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_enum, 4, .production_id = 4), + [1526] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_enum, 4, .production_id = 4), + [1528] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1098), + [1530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1100), + [1532] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_enum, 5, .production_id = 9), + [1534] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_enum, 5, .production_id = 9), + [1536] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_def, 6, .production_id = 11), + [1538] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_def, 6, .production_id = 11), + [1540] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_def, 7, .production_id = 19), + [1542] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_def, 7, .production_id = 19), + [1544] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_def, 7, .production_id = 16), + [1546] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_def, 7, .production_id = 16), + [1548] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_code, 4, .production_id = 5), + [1550] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_code, 4, .production_id = 5), + [1552] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_code, 3, .production_id = 1), + [1554] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_code, 3, .production_id = 1), + [1556] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_type, 7, .production_id = 16), + [1558] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_type, 7, .production_id = 16), + [1560] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_enum, 7, .production_id = 18), + [1562] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_enum, 7, .production_id = 18), + [1564] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_enum, 7, .production_id = 16), + [1566] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_enum, 7, .production_id = 16), + [1568] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_def, 6, .production_id = 14), + [1570] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_def, 6, .production_id = 14), + [1572] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_enum, 7, .production_id = 19), + [1574] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_enum, 7, .production_id = 19), + [1576] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_def, 10, .production_id = 27), + [1578] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_def, 10, .production_id = 27), + [1580] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_expr, 2), + [1582] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_expr, 2), + [1584] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_def, 8, .production_id = 20), + [1586] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_def, 8, .production_id = 20), + [1588] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_def, 13, .production_id = 33), + [1590] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_def, 13, .production_id = 33), + [1592] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_type, 8, .production_id = 20), + [1594] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_type, 8, .production_id = 20), + [1596] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_enum, 8, .production_id = 21), + [1598] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_enum, 8, .production_id = 21), + [1600] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_type, 5, .production_id = 6), + [1602] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_type, 5, .production_id = 6), + [1604] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_def, 8, .production_id = 22), + [1606] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_def, 8, .production_id = 22), + [1608] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_def, 13, .production_id = 34), + [1610] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_def, 13, .production_id = 34), + [1612] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_enum, 5, .production_id = 7), + [1614] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_enum, 5, .production_id = 7), + [1616] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_def, 14, .production_id = 35), + [1618] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_def, 14, .production_id = 35), + [1620] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_def, 9, .production_id = 25), + [1622] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_def, 9, .production_id = 25), + [1624] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_def, 9, .production_id = 24), + [1626] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_def, 9, .production_id = 24), + [1628] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_def, 11, .production_id = 29), + [1630] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_def, 11, .production_id = 29), + [1632] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_enum, 8, .production_id = 22), + [1634] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_enum, 8, .production_id = 22), + [1636] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_type, 9, .production_id = 25), + [1638] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_type, 9, .production_id = 25), + [1640] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_enum, 8, .production_id = 23), + [1642] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_enum, 8, .production_id = 23), + [1644] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_def, 11, .production_id = 30), + [1646] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_def, 11, .production_id = 30), + [1648] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_def, 10, .production_id = 28), + [1650] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_def, 10, .production_id = 28), + [1652] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_var, 5), + [1654] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_var, 5), + [1656] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_def, 12, .production_id = 31), + [1658] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_def, 12, .production_id = 31), + [1660] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_enum, 9, .production_id = 26), + [1662] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_enum, 9, .production_id = 26), + [1664] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_type, 8, .production_id = 22), + [1666] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_type, 8, .production_id = 22), + [1668] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_def, 12, .production_id = 32), + [1670] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_def, 12, .production_id = 32), + [1672] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_val, 5), + [1674] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_val, 5), + [1676] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1370), + [1678] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1131), + [1680] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1255), + [1682] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1432), + [1684] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1136), + [1686] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1136), + [1688] = {.entry = {.count = 1, .reusable = true}}, SHIFT(913), + [1690] = {.entry = {.count = 1, .reusable = true}}, SHIFT(880), + [1692] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1137), + [1694] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1403), + [1696] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1253), + [1698] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1266), + [1700] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1269), + [1702] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1242), + [1704] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [1706] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1445), + [1708] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1092), + [1710] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [1712] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [1714] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1345), + [1716] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1495), + [1718] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1240), + [1720] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1247), + [1722] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1135), + [1724] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1140), + [1726] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1141), + [1728] = {.entry = {.count = 1, .reusable = false}}, SHIFT(99), + [1730] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), + [1732] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [1734] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [1736] = {.entry = {.count = 1, .reusable = false}}, SHIFT(98), + [1738] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [1740] = {.entry = {.count = 1, .reusable = false}}, SHIFT(96), + [1742] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [1744] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [1746] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__exprs, 1), + [1748] = {.entry = {.count = 1, .reusable = false}}, SHIFT(92), + [1750] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [1752] = {.entry = {.count = 1, .reusable = true}}, SHIFT(977), + [1754] = {.entry = {.count = 1, .reusable = false}}, SHIFT(235), + [1756] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234), + [1758] = {.entry = {.count = 1, .reusable = true}}, SHIFT(235), + [1760] = {.entry = {.count = 1, .reusable = false}}, SHIFT(233), + [1762] = {.entry = {.count = 1, .reusable = true}}, SHIFT(233), + [1764] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), + [1766] = {.entry = {.count = 1, .reusable = false}}, SHIFT(231), + [1768] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231), + [1770] = {.entry = {.count = 1, .reusable = false}}, SHIFT(230), + [1772] = {.entry = {.count = 1, .reusable = false}}, SHIFT(229), + [1774] = {.entry = {.count = 1, .reusable = true}}, SHIFT(481), + [1776] = {.entry = {.count = 1, .reusable = true}}, SHIFT(358), + [1778] = {.entry = {.count = 1, .reusable = true}}, SHIFT(357), + [1780] = {.entry = {.count = 1, .reusable = true}}, SHIFT(364), + [1782] = {.entry = {.count = 1, .reusable = true}}, SHIFT(926), + [1784] = {.entry = {.count = 1, .reusable = true}}, SHIFT(363), + [1786] = {.entry = {.count = 1, .reusable = true}}, SHIFT(981), + [1788] = {.entry = {.count = 1, .reusable = true}}, SHIFT(454), + [1790] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(358), + [1793] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(357), + [1796] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(364), + [1799] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(926), + [1802] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__query_stmts, 2), SHIFT_REPEAT(363), + [1805] = {.entry = {.count = 1, .reusable = true}}, SHIFT(512), + [1807] = {.entry = {.count = 1, .reusable = true}}, SHIFT(470), + [1809] = {.entry = {.count = 1, .reusable = true}}, SHIFT(518), + [1811] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__exprs_repeat1, 2), + [1813] = {.entry = {.count = 1, .reusable = true}}, SHIFT(443), + [1815] = {.entry = {.count = 1, .reusable = true}}, SHIFT(444), + [1817] = {.entry = {.count = 1, .reusable = true}}, SHIFT(475), + [1819] = {.entry = {.count = 1, .reusable = true}}, SHIFT(450), + [1821] = {.entry = {.count = 1, .reusable = true}}, SHIFT(455), + [1823] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arm, 3, .production_id = 13), + [1825] = {.entry = {.count = 1, .reusable = true}}, SHIFT(821), + [1827] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [1829] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), + [1831] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [1833] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [1835] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), + [1837] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [1839] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [1841] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72), + [1843] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [1845] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), + [1847] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), + [1849] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [1851] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_field_expr, 3), + [1853] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_field_name, 3), + [1855] = {.entry = {.count = 1, .reusable = true}}, SHIFT(834), + [1857] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [1859] = {.entry = {.count = 1, .reusable = true}}, SHIFT(478), + [1861] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1327), + [1863] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [1865] = {.entry = {.count = 1, .reusable = true}}, SHIFT(860), + [1867] = {.entry = {.count = 1, .reusable = true}}, SHIFT(447), + [1869] = {.entry = {.count = 1, .reusable = true}}, SHIFT(803), + [1871] = {.entry = {.count = 1, .reusable = true}}, SHIFT(841), + [1873] = {.entry = {.count = 1, .reusable = true}}, SHIFT(274), + [1875] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), + [1877] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [1879] = {.entry = {.count = 1, .reusable = true}}, SHIFT(842), + [1881] = {.entry = {.count = 1, .reusable = true}}, SHIFT(498), + [1883] = {.entry = {.count = 1, .reusable = true}}, SHIFT(845), + [1885] = {.entry = {.count = 1, .reusable = true}}, SHIFT(819), + [1887] = {.entry = {.count = 1, .reusable = true}}, SHIFT(846), + [1889] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [1891] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), + [1893] = {.entry = {.count = 1, .reusable = true}}, SHIFT(823), + [1895] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276), + [1897] = {.entry = {.count = 1, .reusable = true}}, SHIFT(828), + [1899] = {.entry = {.count = 1, .reusable = true}}, SHIFT(831), + [1901] = {.entry = {.count = 1, .reusable = true}}, SHIFT(979), + [1903] = {.entry = {.count = 1, .reusable = true}}, SHIFT(982), + [1905] = {.entry = {.count = 1, .reusable = true}}, SHIFT(239), + [1907] = {.entry = {.count = 1, .reusable = true}}, SHIFT(822), + [1909] = {.entry = {.count = 1, .reusable = true}}, SHIFT(810), + [1911] = {.entry = {.count = 1, .reusable = true}}, SHIFT(889), + [1913] = {.entry = {.count = 1, .reusable = true}}, SHIFT(840), + [1915] = {.entry = {.count = 1, .reusable = true}}, SHIFT(835), + [1917] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [1919] = {.entry = {.count = 1, .reusable = true}}, SHIFT(869), + [1921] = {.entry = {.count = 1, .reusable = true}}, SHIFT(384), + [1923] = {.entry = {.count = 1, .reusable = true}}, SHIFT(832), + [1925] = {.entry = {.count = 1, .reusable = true}}, SHIFT(833), + [1927] = {.entry = {.count = 1, .reusable = true}}, SHIFT(313), + [1929] = {.entry = {.count = 1, .reusable = true}}, SHIFT(839), + [1931] = {.entry = {.count = 1, .reusable = true}}, SHIFT(827), + [1933] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), + [1935] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [1937] = {.entry = {.count = 1, .reusable = true}}, SHIFT(866), + [1939] = {.entry = {.count = 1, .reusable = false}}, SHIFT(118), + [1941] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1349), + [1943] = {.entry = {.count = 1, .reusable = false}}, SHIFT(778), + [1945] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1308), + [1947] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1077), + [1949] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1442), + [1951] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1070), + [1953] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1408), + [1955] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1152), + [1957] = {.entry = {.count = 1, .reusable = false}}, SHIFT(789), + [1959] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1465), + [1961] = {.entry = {.count = 1, .reusable = true}}, SHIFT(790), + [1963] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1339), + [1965] = {.entry = {.count = 1, .reusable = true}}, SHIFT(780), + [1967] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1426), + [1969] = {.entry = {.count = 1, .reusable = true}}, SHIFT(440), + [1971] = {.entry = {.count = 1, .reusable = true}}, SHIFT(786), + [1973] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1259), + [1975] = {.entry = {.count = 1, .reusable = true}}, SHIFT(431), + [1977] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1260), + [1979] = {.entry = {.count = 1, .reusable = true}}, SHIFT(782), + [1981] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1318), + [1983] = {.entry = {.count = 1, .reusable = true}}, SHIFT(432), + [1985] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1299), + [1987] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1182), + [1989] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1169), + [1991] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1304), + [1993] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1333), + [1995] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1205), + [1997] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1323), + [1999] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1398), + [2001] = {.entry = {.count = 1, .reusable = true}}, SHIFT(829), + [2003] = {.entry = {.count = 1, .reusable = false}}, SHIFT(439), + [2005] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1282), + [2007] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1078), + [2009] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1072), + [2011] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1385), + [2013] = {.entry = {.count = 1, .reusable = true}}, SHIFT(437), + [2015] = {.entry = {.count = 1, .reusable = false}}, SHIFT(438), + [2017] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1203), + [2019] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1184), + [2021] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1215), + [2023] = {.entry = {.count = 1, .reusable = true}}, SHIFT(802), + [2025] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1183), + [2027] = {.entry = {.count = 1, .reusable = true}}, SHIFT(434), + [2029] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1295), + [2031] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1292), + [2033] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1212), + [2035] = {.entry = {.count = 1, .reusable = true}}, SHIFT(787), + [2037] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1221), + [2039] = {.entry = {.count = 1, .reusable = true}}, SHIFT(788), + [2041] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1226), + [2043] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1216), + [2045] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1175), + [2047] = {.entry = {.count = 1, .reusable = true}}, SHIFT(435), + [2049] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1142), + [2051] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1158), + [2053] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1191), + [2055] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1325), + [2057] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1162), + [2059] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1156), + [2061] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1166), + [2063] = {.entry = {.count = 1, .reusable = true}}, SHIFT(430), + [2065] = {.entry = {.count = 1, .reusable = true}}, SHIFT(429), + [2067] = {.entry = {.count = 1, .reusable = true}}, SHIFT(820), + [2069] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1228), + [2071] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1170), + [2073] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1132), + [2075] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1187), + [2077] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1130), + [2079] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1193), + [2081] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1154), + [2083] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1188), + [2085] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1279), + [2087] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1222), + [2089] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1207), + [2091] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1161), + [2093] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1068), + [2095] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1107), + [2097] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1108), + [2099] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variant_name, 1), + [2101] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_name, 1), + [2103] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_name, 1), + [2105] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1369), + [2107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1369), + [2109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(793), + [2111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1425), + [2113] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_variant, 4), + [2115] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_variant, 4), + [2117] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_array, 2), + [2119] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_array, 2), + [2121] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_constant, 1), + [2123] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_constant, 1), + [2125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_wild, 1), + [2127] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_wild, 1), + [2129] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_or, 3), + [2131] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_or, 3), + [2133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_record, 3), + [2135] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_record, 3), + [2137] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_tuple, 4), + [2139] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_tuple, 4), + [2141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_variant, 3), + [2143] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_variant, 3), + [2145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_annot, 3), + [2147] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_annot, 3), + [2149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_record, 2), + [2151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_record, 2), + [2153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_record_concat, 3), + [2155] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_record_concat, 3), + [2157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_array_concat, 3), + [2159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_array_concat, 3), + [2161] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_paren, 3), + [2163] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_paren, 3), + [2165] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_array, 3), + [2167] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_array, 3), + [2169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_tuple, 5), + [2171] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_tuple, 5), + [2173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(941), + [2175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1105), + [2177] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 1), + [2179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(953), + [2181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(952), + [2183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(936), + [2185] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__patterns_repeat1, 2), + [2187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(881), + [2189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1146), + [2191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1118), + [2193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__types, 1), + [2195] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_field, 3), + [2197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(331), + [2199] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), + [2201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1155), + [2203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1283), + [2205] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1223), + [2207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [2209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), + [2211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), + [2213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), + [2215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), + [2217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246), + [2219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), + [2221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(333), + [2223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277), + [2225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(315), + [2227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(521), + [2229] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1197), + [2231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1335), + [2233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), + [2235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(380), + [2237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(462), + [2239] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1227), + [2241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), + [2243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__types_repeat1, 2), + [2245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_constant_string_repeat1, 2), + [2247] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_constant_string_repeat1, 2), SHIFT_REPEAT(1171), + [2250] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_constant_string_repeat1, 2), SHIFT_REPEAT(1335), + [2253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), + [2255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [2257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204), + [2259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(316), + [2261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(882), + [2263] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1192), + [2265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [2267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(791), + [2269] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1171), + [2271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [2273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237), + [2275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), + [2277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), + [2279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228), + [2281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), + [2283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297), + [2285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298), + [2287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(265), + [2289] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), + [2291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312), + [2293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282), + [2295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), + [2297] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__rust_repeat1, 2), SHIFT_REPEAT(1155), + [2300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__rust_repeat1, 2), + [2302] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__rust_repeat1, 2), SHIFT_REPEAT(1192), + [2305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), + [2307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(275), + [2309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), + [2311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), + [2313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(480), + [2315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), + [2317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), + [2319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), + [2321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(304), + [2323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(887), + [2325] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1176), + [2327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302), + [2329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(332), + [2331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270), + [2333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(379), + [2335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), + [2337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [2339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(372), + [2341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), + [2343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293), + [2345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), + [2347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), + [2349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), + [2351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(314), + [2353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(271), + [2355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), + [2357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(346), + [2359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [2361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [2363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [2365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(273), + [2367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1321), + [2369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [2371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(792), + [2373] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1178), + [2375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), + [2377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(477), + [2379] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226), + [2381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), + [2383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), + [2385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [2387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [2389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(381), + [2391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(812), + [2393] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1322), + [2395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1122), + [2397] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__exprs, 2), + [2399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1347), + [2401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1439), + [2403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1486), + [2405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1103), + [2407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(317), + [2409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1112), + [2411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1081), + [2413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), + [2415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1127), + [2417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1128), + [2419] = {.entry = {.count = 1, .reusable = true}}, SHIFT(224), + [2421] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__types_repeat1, 2), SHIFT_REPEAT(1118), + [2424] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__patterns_repeat1, 2), SHIFT_REPEAT(941), + [2427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1117), + [2429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), + [2431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1082), + [2433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1421), + [2435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1302), + [2437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1305), + [2439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1123), + [2441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(374), + [2443] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 2), + [2445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1120), + [2447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(328), + [2449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1109), + [2451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1111), + [2453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(334), + [2455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1143), + [2457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1093), + [2459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(383), + [2461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1324), + [2463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1085), + [2465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(272), + [2467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1079), + [2469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(785), + [2471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1080), + [2473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(427), + [2475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1126), + [2477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269), + [2479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1091), + [2481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(300), + [2483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1097), + [2485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), + [2487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1124), + [2489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), + [2491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1090), + [2493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244), + [2495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1101), + [2497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(356), + [2499] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__types, 2), + [2501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1457), + [2503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1102), + [2505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(301), + [2507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1099), + [2509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [2511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1089), + [2513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(303), + [2515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1412), + [2517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1435), + [2519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1414), + [2521] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__exprs_repeat1, 2), SHIFT_REPEAT(128), + [2524] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_stmt_enum_repeat1, 1, .production_id = 3), + [2526] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1257), + [2528] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1069), + [2530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1106), + [2532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [2534] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1113), + [2536] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_field, 3), + [2538] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1276), + [2540] = {.entry = {.count = 1, .reusable = true}}, SHIFT(830), + [2542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(798), + [2544] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__expr_fields_repeat1, 2), + [2546] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expr_fields_repeat1, 2), SHIFT_REPEAT(44), + [2549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1168), + [2551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(818), + [2553] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__attributes_repeat1, 2), + [2555] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__attributes_repeat1, 2), SHIFT_REPEAT(1341), + [2558] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__arms, 1), + [2560] = {.entry = {.count = 1, .reusable = true}}, SHIFT(906), + [2562] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__pattern_fields, 1), + [2564] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1373), + [2566] = {.entry = {.count = 1, .reusable = true}}, SHIFT(800), + [2568] = {.entry = {.count = 1, .reusable = true}}, SHIFT(799), + [2570] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_fields, 2), + [2572] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1351), + [2574] = {.entry = {.count = 1, .reusable = true}}, SHIFT(825), + [2576] = {.entry = {.count = 1, .reusable = true}}, SHIFT(826), + [2578] = {.entry = {.count = 1, .reusable = true}}, SHIFT(815), + [2580] = {.entry = {.count = 1, .reusable = true}}, SHIFT(816), + [2582] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__pattern_fields, 2), + [2584] = {.entry = {.count = 1, .reusable = true}}, SHIFT(441), + [2586] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__arms, 2), + [2588] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 4), + [2590] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 1), + [2592] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1133), + [2594] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__arms_repeat1, 2), + [2596] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__arms_repeat1, 2), SHIFT_REPEAT(906), + [2599] = {.entry = {.count = 1, .reusable = true}}, SHIFT(824), + [2601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 3), + [2603] = {.entry = {.count = 1, .reusable = true}}, SHIFT(836), + [2605] = {.entry = {.count = 1, .reusable = true}}, SHIFT(838), + [2607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__attributes, 2), + [2609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1341), + [2611] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__attributes, 1), + [2613] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__type_fields_repeat1, 2), + [2615] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__type_fields_repeat1, 2), SHIFT_REPEAT(1351), + [2618] = {.entry = {.count = 1, .reusable = true}}, SHIFT(806), + [2620] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_fields, 1), + [2622] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr_fields, 2), + [2624] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [2626] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1202), + [2628] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_interpolation, 2), + [2630] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_interpolation, 2), + [2632] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1374), + [2634] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__generics, 2), + [2636] = {.entry = {.count = 1, .reusable = true}}, SHIFT(794), + [2638] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__generics_repeat1, 2), SHIFT_REPEAT(1374), + [2641] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__generics_repeat1, 2), + [2643] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_code_repeat1, 2), + [2645] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_code_repeat1, 2), SHIFT_REPEAT(1320), + [2648] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_code, 1), + [2650] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1320), + [2652] = {.entry = {.count = 1, .reusable = true}}, SHIFT(844), + [2654] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_field, 1), + [2656] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1125), + [2658] = {.entry = {.count = 1, .reusable = true}}, SHIFT(813), + [2660] = {.entry = {.count = 1, .reusable = true}}, SHIFT(843), + [2662] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__generics, 1), + [2664] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_stmt_enum_repeat1, 2, .production_id = 8), SHIFT_REPEAT(1276), + [2667] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_stmt_enum_repeat1, 2, .production_id = 8), + [2669] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__pattern_fields_repeat1, 2), + [2671] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__pattern_fields_repeat1, 2), SHIFT_REPEAT(1373), + [2674] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr_fields, 1), + [2676] = {.entry = {.count = 1, .reusable = true}}, SHIFT(796), + [2678] = {.entry = {.count = 1, .reusable = true}}, SHIFT(837), + [2680] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1316), + [2682] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [2684] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1455), + [2686] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1460), + [2688] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1462), + [2690] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1234), + [2692] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_stmt_enum_repeat1, 3, .production_id = 12), + [2694] = {.entry = {.count = 1, .reusable = true}}, SHIFT(459), + [2696] = {.entry = {.count = 1, .reusable = true}}, SHIFT(507), + [2698] = {.entry = {.count = 1, .reusable = true}}, SHIFT(857), + [2700] = {.entry = {.count = 1, .reusable = true}}, SHIFT(858), + [2702] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generic, 1), + [2704] = {.entry = {.count = 1, .reusable = true}}, SHIFT(994), + [2706] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_field, 1), + [2708] = {.entry = {.count = 1, .reusable = true}}, SHIFT(853), + [2710] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1272), + [2712] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1274), + [2714] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1096), + [2716] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1312), + [2718] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1237), + [2720] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1268), + [2722] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1095), + [2724] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1291), + [2726] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1273), + [2728] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_stmt_enum_repeat1, 4, .production_id = 17), + [2730] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 3), + [2732] = {.entry = {.count = 1, .reusable = true}}, SHIFT(855), + [2734] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1238), + [2736] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1248), + [2738] = {.entry = {.count = 1, .reusable = true}}, SHIFT(884), + [2740] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1401), + [2742] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1488), + [2744] = {.entry = {.count = 1, .reusable = true}}, SHIFT(433), + [2746] = {.entry = {.count = 1, .reusable = true}}, SHIFT(473), + [2748] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [2750] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1418), + [2752] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1417), + [2754] = {.entry = {.count = 1, .reusable = true}}, SHIFT(499), + [2756] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1087), + [2758] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1148), + [2760] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1066), + [2762] = {.entry = {.count = 1, .reusable = true}}, SHIFT(783), + [2764] = {.entry = {.count = 1, .reusable = true}}, SHIFT(879), + [2766] = {.entry = {.count = 1, .reusable = true}}, SHIFT(909), + [2768] = {.entry = {.count = 1, .reusable = true}}, SHIFT(854), + [2770] = {.entry = {.count = 1, .reusable = true}}, SHIFT(849), + [2772] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1387), + [2774] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1306), + [2776] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1366), + [2778] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1250), + [2780] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1258), + [2782] = {.entry = {.count = 1, .reusable = true}}, SHIFT(428), + [2784] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1235), + [2786] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1067), + [2788] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1365), + [2790] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1147), + [2792] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1088), + [2794] = {.entry = {.count = 1, .reusable = true}}, SHIFT(491), + [2796] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1346), + [2798] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1491), + [2800] = {.entry = {.count = 1, .reusable = true}}, SHIFT(903), + [2802] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1359), + [2804] = {.entry = {.count = 1, .reusable = true}}, SHIFT(848), + [2806] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1071), + [2808] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1265), + [2810] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1277), + [2812] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1264), + [2814] = {.entry = {.count = 1, .reusable = true}}, SHIFT(871), + [2816] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1508), + [2818] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1086), + [2820] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1504), + [2822] = {.entry = {.count = 1, .reusable = true}}, SHIFT(890), + [2824] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [2826] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1119), + [2828] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1239), + [2830] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1139), + [2832] = {.entry = {.count = 1, .reusable = true}}, SHIFT(950), + [2834] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1352), + [2836] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [2838] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1083), + [2840] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1121), + [2842] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1261), + [2844] = {.entry = {.count = 1, .reusable = true}}, SHIFT(898), + [2846] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1422), + [2848] = {.entry = {.count = 1, .reusable = true}}, SHIFT(484), + [2850] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1451), + [2852] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1364), + [2854] = {.entry = {.count = 1, .reusable = true}}, SHIFT(479), + [2856] = {.entry = {.count = 1, .reusable = true}}, SHIFT(986), + [2858] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1332), + [2860] = {.entry = {.count = 1, .reusable = true}}, SHIFT(983), + [2862] = {.entry = {.count = 1, .reusable = true}}, SHIFT(513), + [2864] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1243), + [2866] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1287), + [2868] = {.entry = {.count = 1, .reusable = true}}, SHIFT(868), + [2870] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1392), + [2872] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1104), + [2874] = {.entry = {.count = 1, .reusable = true}}, SHIFT(905), + [2876] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1390), + [2878] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1073), + [2880] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1263), + [2882] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1252), + [2884] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1433), + [2886] = {.entry = {.count = 1, .reusable = true}}, SHIFT(875), + [2888] = {.entry = {.count = 1, .reusable = true}}, SHIFT(865), + [2890] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1297), + [2892] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1270), + [2894] = {.entry = {.count = 1, .reusable = true}}, SHIFT(862), + [2896] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1256), + [2898] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1356), + [2900] = {.entry = {.count = 1, .reusable = true}}, SHIFT(908), + [2902] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1110), + [2904] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1246), + [2906] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1424), + [2908] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1357), + [2910] = {.entry = {.count = 1, .reusable = true}}, SHIFT(912), + [2912] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1358), + [2914] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1278), + [2916] = {.entry = {.count = 1, .reusable = true}}, SHIFT(463), + [2918] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1116), + [2920] = {.entry = {.count = 1, .reusable = true}}, SHIFT(907), + [2922] = {.entry = {.count = 1, .reusable = true}}, SHIFT(779), + [2924] = {.entry = {.count = 1, .reusable = true}}, SHIFT(904), + [2926] = {.entry = {.count = 1, .reusable = true}}, SHIFT(902), + [2928] = {.entry = {.count = 1, .reusable = true}}, SHIFT(901), + [2930] = {.entry = {.count = 1, .reusable = true}}, SHIFT(900), + [2932] = {.entry = {.count = 1, .reusable = true}}, SHIFT(899), + [2934] = {.entry = {.count = 1, .reusable = true}}, SHIFT(910), + [2936] = {.entry = {.count = 1, .reusable = true}}, SHIFT(897), + [2938] = {.entry = {.count = 1, .reusable = true}}, SHIFT(911), + [2940] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1383), + [2942] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1407), + [2944] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1075), + [2946] = {.entry = {.count = 1, .reusable = true}}, SHIFT(466), + [2948] = {.entry = {.count = 1, .reusable = true}}, SHIFT(811), + [2950] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1074), + [2952] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1371), + [2954] = {.entry = {.count = 1, .reusable = true}}, SHIFT(781), + [2956] = {.entry = {.count = 1, .reusable = true}}, SHIFT(867), + [2958] = {.entry = {.count = 1, .reusable = true}}, SHIFT(850), + [2960] = {.entry = {.count = 1, .reusable = true}}, SHIFT(874), + [2962] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [2964] = {.entry = {.count = 1, .reusable = true}}, SHIFT(464), + [2966] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1386), + [2968] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1348), + [2970] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1254), + [2972] = {.entry = {.count = 1, .reusable = true}}, SHIFT(426), + [2974] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1134), + [2976] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1076), + [2978] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1497), + [2980] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [2982] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1249), + [2984] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1241), + [2986] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1423), + [2988] = {.entry = {.count = 1, .reusable = true}}, SHIFT(495), + [2990] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1271), + [2992] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1084), + [2994] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1301), + [2996] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1262), + [2998] = {.entry = {.count = 1, .reusable = true}}, SHIFT(784), + [3000] = {.entry = {.count = 1, .reusable = true}}, SHIFT(856), +}; + +#ifdef __cplusplus +extern "C" { +#endif +#ifdef _WIN32 +#define extern __declspec(dllexport) +#endif + +extern const TSLanguage *tree_sitter_arc_lang(void) { + static const TSLanguage language = { + .version = LANGUAGE_VERSION, + .symbol_count = SYMBOL_COUNT, + .alias_count = ALIAS_COUNT, + .token_count = TOKEN_COUNT, + .external_token_count = EXTERNAL_TOKEN_COUNT, + .state_count = STATE_COUNT, + .large_state_count = LARGE_STATE_COUNT, + .production_id_count = PRODUCTION_ID_COUNT, + .field_count = FIELD_COUNT, + .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH, + .parse_table = &ts_parse_table[0][0], + .small_parse_table = ts_small_parse_table, + .small_parse_table_map = ts_small_parse_table_map, + .parse_actions = ts_parse_actions, + .symbol_names = ts_symbol_names, + .field_names = ts_field_names, + .field_map_slices = ts_field_map_slices, + .field_map_entries = ts_field_map_entries, + .symbol_metadata = ts_symbol_metadata, + .public_symbol_map = ts_symbol_map, + .alias_map = ts_non_terminal_alias_map, + .alias_sequences = &ts_alias_sequences[0][0], + .lex_modes = ts_lex_modes, + .lex_fn = ts_lex, + .keyword_lex_fn = ts_lex_keywords, + .keyword_capture_token = sym_name, + .primary_state_ids = ts_primary_state_ids, + }; + return &language; +} +#ifdef __cplusplus +} +#endif diff --git a/arc-lang/crates/tree-sitter/src/tree_sitter/parser.h b/arc-lang/crates/tree-sitter/src/tree_sitter/parser.h new file mode 100644 index 000000000..2b14ac104 --- /dev/null +++ b/arc-lang/crates/tree-sitter/src/tree_sitter/parser.h @@ -0,0 +1,224 @@ +#ifndef TREE_SITTER_PARSER_H_ +#define TREE_SITTER_PARSER_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#define ts_builtin_sym_error ((TSSymbol)-1) +#define ts_builtin_sym_end 0 +#define TREE_SITTER_SERIALIZATION_BUFFER_SIZE 1024 + +typedef uint16_t TSStateId; + +#ifndef TREE_SITTER_API_H_ +typedef uint16_t TSSymbol; +typedef uint16_t TSFieldId; +typedef struct TSLanguage TSLanguage; +#endif + +typedef struct { + TSFieldId field_id; + uint8_t child_index; + bool inherited; +} TSFieldMapEntry; + +typedef struct { + uint16_t index; + uint16_t length; +} TSFieldMapSlice; + +typedef struct { + bool visible; + bool named; + bool supertype; +} TSSymbolMetadata; + +typedef struct TSLexer TSLexer; + +struct TSLexer { + int32_t lookahead; + TSSymbol result_symbol; + void (*advance)(TSLexer *, bool); + void (*mark_end)(TSLexer *); + uint32_t (*get_column)(TSLexer *); + bool (*is_at_included_range_start)(const TSLexer *); + bool (*eof)(const TSLexer *); +}; + +typedef enum { + TSParseActionTypeShift, + TSParseActionTypeReduce, + TSParseActionTypeAccept, + TSParseActionTypeRecover, +} TSParseActionType; + +typedef union { + struct { + uint8_t type; + TSStateId state; + bool extra; + bool repetition; + } shift; + struct { + uint8_t type; + uint8_t child_count; + TSSymbol symbol; + int16_t dynamic_precedence; + uint16_t production_id; + } reduce; + uint8_t type; +} TSParseAction; + +typedef struct { + uint16_t lex_state; + uint16_t external_lex_state; +} TSLexMode; + +typedef union { + TSParseAction action; + struct { + uint8_t count; + bool reusable; + } entry; +} TSParseActionEntry; + +struct TSLanguage { + uint32_t version; + uint32_t symbol_count; + uint32_t alias_count; + uint32_t token_count; + uint32_t external_token_count; + uint32_t state_count; + uint32_t large_state_count; + uint32_t production_id_count; + uint32_t field_count; + uint16_t max_alias_sequence_length; + const uint16_t *parse_table; + const uint16_t *small_parse_table; + const uint32_t *small_parse_table_map; + const TSParseActionEntry *parse_actions; + const char * const *symbol_names; + const char * const *field_names; + const TSFieldMapSlice *field_map_slices; + const TSFieldMapEntry *field_map_entries; + const TSSymbolMetadata *symbol_metadata; + const TSSymbol *public_symbol_map; + const uint16_t *alias_map; + const TSSymbol *alias_sequences; + const TSLexMode *lex_modes; + bool (*lex_fn)(TSLexer *, TSStateId); + bool (*keyword_lex_fn)(TSLexer *, TSStateId); + TSSymbol keyword_capture_token; + struct { + const bool *states; + const TSSymbol *symbol_map; + void *(*create)(void); + void (*destroy)(void *); + bool (*scan)(void *, TSLexer *, const bool *symbol_whitelist); + unsigned (*serialize)(void *, char *); + void (*deserialize)(void *, const char *, unsigned); + } external_scanner; + const TSStateId *primary_state_ids; +}; + +/* + * Lexer Macros + */ + +#define START_LEXER() \ + bool result = false; \ + bool skip = false; \ + bool eof = false; \ + int32_t lookahead; \ + goto start; \ + next_state: \ + lexer->advance(lexer, skip); \ + start: \ + skip = false; \ + lookahead = lexer->lookahead; + +#define ADVANCE(state_value) \ + { \ + state = state_value; \ + goto next_state; \ + } + +#define SKIP(state_value) \ + { \ + skip = true; \ + state = state_value; \ + goto next_state; \ + } + +#define ACCEPT_TOKEN(symbol_value) \ + result = true; \ + lexer->result_symbol = symbol_value; \ + lexer->mark_end(lexer); + +#define END_STATE() return result; + +/* + * Parse Table Macros + */ + +#define SMALL_STATE(id) id - LARGE_STATE_COUNT + +#define STATE(id) id + +#define ACTIONS(id) id + +#define SHIFT(state_value) \ + {{ \ + .shift = { \ + .type = TSParseActionTypeShift, \ + .state = state_value \ + } \ + }} + +#define SHIFT_REPEAT(state_value) \ + {{ \ + .shift = { \ + .type = TSParseActionTypeShift, \ + .state = state_value, \ + .repetition = true \ + } \ + }} + +#define SHIFT_EXTRA() \ + {{ \ + .shift = { \ + .type = TSParseActionTypeShift, \ + .extra = true \ + } \ + }} + +#define REDUCE(symbol_val, child_count_val, ...) \ + {{ \ + .reduce = { \ + .type = TSParseActionTypeReduce, \ + .symbol = symbol_val, \ + .child_count = child_count_val, \ + __VA_ARGS__ \ + }, \ + }} + +#define RECOVER() \ + {{ \ + .type = TSParseActionTypeRecover \ + }} + +#define ACCEPT_INPUT() \ + {{ \ + .type = TSParseActionTypeAccept \ + }} + +#ifdef __cplusplus +} +#endif + +#endif // TREE_SITTER_PARSER_H_ diff --git a/arc-lang/crates/version/Cargo.toml b/arc-lang/crates/version/Cargo.toml new file mode 100644 index 000000000..c9fd3929d --- /dev/null +++ b/arc-lang/crates/version/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "version" +version.workspace = true +edition.workspace = true +authors.workspace = true +homepage.workspace = true +repository.workspace = true +readme.workspace = true +build = "build.rs" + +[dependencies] + +[build-dependencies] +built.workspace = true diff --git a/arc-lang/crates/version/build.rs b/arc-lang/crates/version/build.rs new file mode 100644 index 000000000..4306bb787 --- /dev/null +++ b/arc-lang/crates/version/build.rs @@ -0,0 +1,3 @@ +fn main() { + built::write_built_file().expect("Failed to acquire build-time information") +} diff --git a/arc-lang/crates/version/src/lib.rs b/arc-lang/crates/version/src/lib.rs new file mode 100644 index 000000000..3989f3072 --- /dev/null +++ b/arc-lang/crates/version/src/lib.rs @@ -0,0 +1,11 @@ +mod data { + include!(concat!(env!("OUT_DIR"), "/built.rs")); +} + +pub fn show() { + println!(" version: {}", data::PKG_VERSION); + println!(" target: {}", data::TARGET); + println!(" profile: {}", data::PROFILE); + println!("compiler: {}", data::RUSTC_VERSION); + println!(" time: {}", data::BUILT_TIME_UTC); +} diff --git a/arc-lang/crates/website/config.toml b/arc-lang/crates/website/config.toml new file mode 100644 index 000000000..87319c419 --- /dev/null +++ b/arc-lang/crates/website/config.toml @@ -0,0 +1,25 @@ +# The URL the site will be built for +base_url = "https://cda-group.github.io/arc/" +theme = "juice" + +# Whether to automatically compile all Sass files in the sass directory +compile_sass = true + +# Whether to build a search index to be used later on by a JavaScript library +build_search_index = false + +[markdown] +# Whether to do syntax highlighting +# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola +highlight_code = false + +[extra] +juice_logo_name = "Arc-Lang" +juice_logo_path = "logo.png" +juice_extra_menu = [ + { title = "Github", link = "https://github.com/cda-group/arc"} +] +juice_exclude_menu = [ + "exclude_from_nav" +] +repository_url = "https://github.com/cda-group/arc" diff --git a/arc-lang/crates/website/content/_index.md b/arc-lang/crates/website/content/_index.md new file mode 100644 index 000000000..bd39969b0 --- /dev/null +++ b/arc-lang/crates/website/content/_index.md @@ -0,0 +1,45 @@ ++++ +title = "Arc-Lang" +sort_by = "weight" ++++ + +**Arc-Lang** is a programming language for processing data streams. + +## Features + +* Consume and produce streams using different connectors (e.g., Kafka, TCP, files). +* Decode and encode events using different data formats (e.g., CSV, JSON, Avro). +* Interactively create dataflows that transform, filter and aggregate data through concise query syntax. +* Transparently execute programs locally or distributed. +* Inject Rust and Python code into programs. + +## Installation + +
      
      +$ git clone https://github.com/cda-group/arc -b klas/v0.1.0 --single-branch
      +$ cargo install --path arc/arc-lang
      +
      + +## Usage + +
      
      +$ arc-lang
      +>> print("Hello world!");
      +Hello world!
      +
      + +## An example + +
      
      +$ for i in {1..100}; do echo $RANDOM; done > data.csv
      +$ arc-lang
      +>> from n:i32 in source(file("data.csv"), csv())
      +   select {result:n+1}
      +   into sink(file("output.csv"), csv());
      +
      + +## More + +* Checkout the [examples](https://github.com/cda-group/arc/tree/klas/v1/arc-lang/examples) directory for working examples (more to be added soon). + +* View the specification of Arc-Lang in the [Arc-Lang Research Report](/arc/Arc-Lang-Report.pdf). diff --git a/arc-lang/crates/website/content/about.md b/arc-lang/crates/website/content/about.md new file mode 100644 index 000000000..412498445 --- /dev/null +++ b/arc-lang/crates/website/content/about.md @@ -0,0 +1,25 @@ ++++ +title = "About" +description = "About" +weight = 3 ++++ + +# Juice + +**Juice** is an intuitive, elegant, and responsive Zola theme for product sites. +Built by [Huhu.io](https://huhu.io), adopted by a several product sites. + +# Logo + +![](/juice.svg) + +# Zola + +[Zola](https://www.getzola.org) is a fast static site generator in a single binary with everything built-in. + + +# Huhu.io + +[Huhu.io](https://huhu.io) is a global community of coders dedicated to making cool stuff coders need and want. +We focus on enabling the developer community by curating, incubating, and launching tools based on great ideas, +providing support and funding that allows our engineers to develop what they want, the way they want. diff --git a/arc-lang/crates/website/content/changelog.md b/arc-lang/crates/website/content/changelog.md new file mode 100644 index 000000000..45da74627 --- /dev/null +++ b/arc-lang/crates/website/content/changelog.md @@ -0,0 +1,43 @@ ++++ +title = "Changelog" +description = "Changelog" +weight = 2 ++++ + +# v0.6.0 - 2021-10-05 + +- Add `favicon` block. +- Always align footer bottom. {{ issue(id=4) }} +- Support config favicon. Fixes {{ issue(id=5) }}. +- Table of Content supports auto-scroll if the list is too long. + +# v0.5.0 - 2021-03-02 + +- Add `issue` shortcode. +- Add `sidebar` block. +- Adjust blockquote background color. +- Fix explore-more class left align. + +# v0.4.0 - 2020-11-18 + +- Prevent showcase images be included by downstream Zola project. +- Fix TOC highlight in localhost mode. See {{ issue(id=1) }}. +- Hide TOC for empty markdown content page. + +# v0.3.0 - 2020-07-17 + +- Rename css filename to avoid conflicts. +- Replace sass variables with css variable. +- Add `--toc-highlight-text-color` variable. +- Add normalize.css. + +# v0.2.0 - 2020-06-28 + +- Add extra juice_extra_menu config. +- Add color customization CSS variables. +- Improve docs and blockquote style. +- Support customize logo and name. + +# v0.1.0 - 2020-06-21 + +- First release! \ No newline at end of file diff --git a/arc-lang/crates/website/content/exclude_from_nav.md b/arc-lang/crates/website/content/exclude_from_nav.md new file mode 100644 index 000000000..7e4b445d3 --- /dev/null +++ b/arc-lang/crates/website/content/exclude_from_nav.md @@ -0,0 +1,9 @@ ++++ +title = "exclude_from_nav" +description = "Page without nav link" +weight = 3 ++++ + +# Hidden page + +This page will not be added to the nav links in the header. diff --git a/arc-lang/crates/website/content/favicon.ico b/arc-lang/crates/website/content/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..ca809d66ba452433614e0e008442e0910041af35 GIT binary patch literal 15406 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 bool { /* Rust code */ } +--- + +from r:Request in source(kafka("127.0.0.1:9092", "requests"), json()) +where fun(r) = r.items.len() > 0 +join a0 in areas on a0.id == r.src_id +join a1 in areas on a1.id == r.dst_id +val features = [r.items.sum_by(_.mass), f32(r.t.day()), distance(a0, a1)] +val [shipment_cost] = model.predict(features) +select {request.id, shipment_cost} +into source(kafka("127.0.0.1:9092", "cost_predictions"), json()); +``` diff --git a/arc-lang/crates/website/content/juice.svg b/arc-lang/crates/website/content/juice.svg new file mode 100644 index 000000000..d952b50aa --- /dev/null +++ b/arc-lang/crates/website/content/juice.svg @@ -0,0 +1,48 @@ + \ No newline at end of file diff --git a/arc-lang/crates/website/content/showcases.md b/arc-lang/crates/website/content/showcases.md new file mode 100644 index 000000000..da9ec05df --- /dev/null +++ b/arc-lang/crates/website/content/showcases.md @@ -0,0 +1,127 @@ ++++ +title = "Showcases" +description = "Showcases" +weight = 1 ++++ + +# Pull request + +If you use **Juice** as your theme, feel free to make Pull request. + +Here are some steps to help you get started: + +- Change the [content/showcases.md](https://github.com/huhu/juice/blob/master/content/showcases.md) file, add your product site. Make sure the lexicographical order. +- Add a link to your product site. + +# Gallery + +Here are some product websites which use **Juice** as the theme. +Sort by lexicographical order. For more showcases, please visit [here](https://github.com/search?l=&p=1&q=theme+%3D+%22juice%22+filename%3Aconfig.toml&ref=advsearch&type=Code). + +## Acton Lang + +[https://www.acton-lang.org/](https://www.acton-lang.org/) + +## Arara + +[https://islandoftex.gitlab.io/arara/](https://islandoftex.gitlab.io/arara/) + +## Angular Rust + +[https://angular-rust.github.io/](https://angular-rust.github.io/) + +## Atlas Language + +[https://atlas-language.github.io/](https://atlas-language.github.io/) + +## Avatar CLI + +[https://avatar-cli.dev/](https://avatar-cli.dev/) + +## C/C++ Search Extension + +[https://cpp.extension.sh/](https://cpp.extension.sh/) + +## Crow Translate + +[https://crow-translate.github.io/](https://crow-translate.github.io/) + +## Drogue IOT + +[https://www.drogue.io/](https://www.drogue.io/) + +## El Monitorro + +[https://elmonitorro.badykov.com/](https://elmonitorro.badykov.com/) + +## Erg Lang + +[https://erg-lang.org/](https://erg-lang.org/) + +## Godot-rust + +[https://godot-rust.github.io/](https://godot-rust.github.io/) + +## GoToFix (JP) + +[https://gotofix.kumassy.com/](https://gotofix.kumassy.com/) + +## Go Search Extension + +[https://go.extension.sh/](https://go.extension.sh/) + +## Gradecoin + +[https://gradecoin.xyz/](https://gradecoin.xyz/) + +## Insta.rs + +[https://insta.rs/](https://insta.rs/) + +## Instant markdown + +[https://instant-markdown.github.io/](https://instant-markdown.github.io/) + +## ImpftHessen (DE) + +[https://impft-hessen.de/](https://impft-hessen.de/) + +## JS Search Extension + +[https://js.extension.sh/](https://js.extension.sh/) + +## Fun Notation + +[https://www.notation.fun/](https://www.notation.fun/) + +## PeopleForBike + +[https://peopleforbikes.github.io/](https://peopleforbikes.github.io/) + +## Rust Search Extension + +[https://rust.extension.sh/](https://rust.extension.sh/) + +## Stitcherd + +[https://stitcherd.vhodges.dev/](https://stitcherd.vhodges.dev/) + +## Streamson + +[https://streamson.henek.name/](https://streamson.henek.name/) + +## Tokay lang + +[https://tokay.dev](https://tokay.dev) + +## Trunk + +[https://trunkrs.dev/](https://trunkrs.dev/) + +## Vidar + +[https://calebsacks.me/vidar/](https://calebsacks.me/vidar/) + +## zDevelopers + +[https://dev.zcraft.fr/](https://dev.zcraft.fr/) \ No newline at end of file diff --git a/arc-lang/crates/website/sass/_ultility.scss b/arc-lang/crates/website/sass/_ultility.scss new file mode 100644 index 000000000..d2469c9c2 --- /dev/null +++ b/arc-lang/crates/website/sass/_ultility.scss @@ -0,0 +1,3 @@ +.text-left { + text-align: left; +} diff --git a/arc-lang/crates/website/templates/_variables.html b/arc-lang/crates/website/templates/_variables.html new file mode 100644 index 000000000..5cf302156 --- /dev/null +++ b/arc-lang/crates/website/templates/_variables.html @@ -0,0 +1,24 @@ + diff --git a/arc-lang/crates/website/templates/index.html b/arc-lang/crates/website/templates/index.html new file mode 100644 index 000000000..1e139dfe3 --- /dev/null +++ b/arc-lang/crates/website/templates/index.html @@ -0,0 +1,120 @@ +{% extends "juice/templates/index.html" %} + +{% block hero %} + +
      +

      + Arc-Lang +

      +

      + A programming language for data stream processing. +

      + +
      + +
      
      +type Item = {name:String, price:f64, mass:f64};
      +type Order = {id:u32, items: Vec[Item], t:Time, src_id:u32, dst_id:u32};
      +type Location = {id:u32, lon:f64, lat:f64};
      +
      +val model: Model = open("cost_predictor.onnx").read_bytes().load_model();
      +val locations: Set[Location] = open("locations.csv").read_bytes().decode(csv());
      +
      +---rust
      +fn distance(src: Location, dst: Location) -> f64 { /* ... */ }
      +---
      +
      +from o:Order in source(kafka("127.0.0.1:9092", "orders"), json())
      +join src in locations on src.id == o.src_id
      +join dst in locations on dst.id == o.dst_id
      +with features = [
      +  o.items.map(_.mass).sum(),
      +  o.t.day().to_f64(),
      +  distance(src, dst)
      +].into_matrix()
      +with prediction = model.predict(features)
      +select {o.id, shipment_cost: prediction[0]}
      +into sink(kafka("127.0.0.1:9092", "cost_predictions"), json());
      +
      + + + +
      +

      + Get Started ⇩ +

      +
      + + + + +{% endblock hero %} + +{% block favicon %} + +{% endblock favicon %} diff --git a/arc-lang/crates/website/themes/juice b/arc-lang/crates/website/themes/juice new file mode 160000 index 000000000..e8a24f54a --- /dev/null +++ b/arc-lang/crates/website/themes/juice @@ -0,0 +1 @@ +Subproject commit e8a24f54aa972aabd5a6002c4ba8542213b388ed diff --git a/arc-lang/dune-project b/arc-lang/dune-project deleted file mode 100644 index 51bac6380..000000000 --- a/arc-lang/dune-project +++ /dev/null @@ -1,4 +0,0 @@ -(lang dune 2.7) -(cram enable) -(name arc_script_prototyping) -(using menhir 2.0) diff --git a/arc-lang/dune-wrapper b/arc-lang/dune-wrapper deleted file mode 100755 index 47ab97a85..000000000 --- a/arc-lang/dune-wrapper +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -eval $(opam env) -exec dune "$@" diff --git a/arc-lang/editor/vim/ftdetect/arc.vim b/arc-lang/editor/vim/ftdetect/arc.vim deleted file mode 100644 index a6ff7efc1..000000000 --- a/arc-lang/editor/vim/ftdetect/arc.vim +++ /dev/null @@ -1 +0,0 @@ -autocmd BufNewFile,BufRead *.arc setfiletype arc diff --git a/arc-lang/editor/vim/ftplugin/arc.vim b/arc-lang/editor/vim/ftplugin/arc.vim deleted file mode 100644 index d7f57d84b..000000000 --- a/arc-lang/editor/vim/ftplugin/arc.vim +++ /dev/null @@ -1,11 +0,0 @@ -if exists("b:did_ftplugin") - finish -endif - -let b:did_ftplugin = 1 -setlocal shiftwidth=4 softtabstop=4 expandtab -setlocal textwidth=99 - -setlocal shiftwidth=4 -setlocal tabstop=4 -setlocal commentstring=#%s diff --git a/arc-lang/editor/vim/syntax/arc.vim b/arc-lang/editor/vim/syntax/arc.vim deleted file mode 100644 index 8e0bdcc60..000000000 --- a/arc-lang/editor/vim/syntax/arc.vim +++ /dev/null @@ -1,92 +0,0 @@ -" Vim syntax file -" Language: arc - -if version < 600 - syntax clear -elseif exists("b:current_syntax") - finish -endif - -runtime! syntax/rust.vim syntax/rust/*.vim - -let b:current_syntax = "arc" - -"============================================================================= -" Overrides -"============================================================================= -hi clear rustMacroVariable -syn clear rustMacroVariable -syn match rustSigil /&\s\+[&~@*$][^)= \t\r\n]/me=e-1,he=e-1 display -syn match rustSigil /[&~@*$][^)= \t\r\n]/me=e-1,he=e-1 display -"============================================================================= -" Operators -"============================================================================= -syn keyword arcOperator ** -syn keyword arcOperator and -syn keyword arcOperator or -syn keyword arcOperator xor -syn keyword arcOperator band -syn keyword arcOperator bor -syn keyword arcOperator bxor -syn keyword arcOperator is -syn keyword arcOperator not -syn keyword arcOperator in -syn keyword arcOperator from -syn keyword arcOperator where -syn keyword arcOperator yield -syn keyword arcOperator group -syn keyword arcOperator compute -syn keyword arcOperator window -syn keyword arcOperator sort -syn keyword arcOperator join -syn keyword arcOperator every -syn keyword arcOperator ascending -hi def link arcOperator Operator -"============================================================================= -" Statements -"============================================================================= -syn keyword arcStatement class -syn keyword arcStatement instance -syn keyword arcStatement def -syn keyword arcStatement task -syn keyword arcStatement on -syn keyword arcStatement emit -syn keyword arcStatement val -syn keyword arcStatement var -hi def link arcStatement Statement -"============================================================================= -" Conditionals -"============================================================================= -hi def link arcConditional Conditional -"============================================================================= -" Reserved Keywords -"============================================================================= -syn keyword arcStatement fun -hi def link arcKeyword Keyword -"============================================================================= -" Primitive Types -"============================================================================= -syn keyword arcType fun -syn keyword arcType unit -hi def link arcType Type -"============================================================================= -" Floats -"============================================================================= -hi def link arcFloat Float -"============================================================================= -" Constants -"============================================================================= -syn match arcConstant "[[:digit:]]\+ns" -syn match arcConstant "[[:digit:]]\+us" -syn match arcConstant "[[:digit:]]\+ms" -syn match arcConstant "[[:digit:]]\+s" -syn match arcConstant "[[:digit:]]\+m" -syn match arcConstant "[[:digit:]]\+h" -syn match arcConstant "[[:digit:]]\+d" -syn match arcConstant "[[:digit:]]\+w" -hi def link arcConstant Constant -"============================================================================= -" Comments -"============================================================================= -syn match arcComment "#[^{].*" -hi def link arcComment Comment diff --git a/arc-lang/etc/Cargo.toml.template b/arc-lang/etc/Cargo.toml.template deleted file mode 100644 index 0ff8585a9..000000000 --- a/arc-lang/etc/Cargo.toml.template +++ /dev/null @@ -1,14 +0,0 @@ -[package] -name = "${CRATE_NAME}" -version = "0.0.0" -edition = "2021" - -[dependencies] -arc-runtime = { version = "=0.0.0", path = "${ARC_RUNTIME_SOURCE_DIR}" } -hexf = { version = "0.2.1" } -serde = { version = "1.0.136" } - -[profile.dev] -opt-level = 0 -split-debuginfo = "unpacked" -debug = false diff --git a/arc-lang/examples/assign.arc b/arc-lang/examples/assign.arc deleted file mode 100644 index 88ee1ded8..000000000 --- a/arc-lang/examples/assign.arc +++ /dev/null @@ -1,10 +0,0 @@ -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -def main() { -# ANCHOR: example -val x = 1; -var y = 2; -y = x + y; -# ANCHOR_END: example -} diff --git a/arc-lang/examples/assign.arc.rust-tests b/arc-lang/examples/assign.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/assign.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/basic.arc b/arc-lang/examples/basic.arc deleted file mode 100644 index cace1b867..000000000 --- a/arc-lang/examples/basic.arc +++ /dev/null @@ -1,10 +0,0 @@ -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -def foo() = bar(1) - -def bar(a) = a -# ANCHOR_END: example - -def main() {} diff --git a/arc-lang/examples/basic.arc.rust-tests b/arc-lang/examples/basic.arc.rust-tests deleted file mode 100644 index 5e8163871..000000000 --- a/arc-lang/examples/basic.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/binopref.arc b/arc-lang/examples/binopref.arc deleted file mode 100644 index d9c678f27..000000000 --- a/arc-lang/examples/binopref.arc +++ /dev/null @@ -1,11 +0,0 @@ -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -# Binary operators can be lifted into functions. -def apply(binop, l, r) = binop(l, r) - -def main() = { - assert(apply((+), 1, 3) == 4); -} -# ANCHOR_END: example diff --git a/arc-lang/examples/binopref.arc.rust-tests b/arc-lang/examples/binopref.arc.rust-tests deleted file mode 100644 index 5e8163871..000000000 --- a/arc-lang/examples/binopref.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/binops.arc b/arc-lang/examples/binops.arc deleted file mode 100644 index 53d6a73cd..000000000 --- a/arc-lang/examples/binops.arc +++ /dev/null @@ -1,34 +0,0 @@ -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -def main() { -# ANCHOR: example -val n = 1; -val b = true; - -# Arithmetic -# - n; -n + n; -n - n; -n * n; -n / n; -# n ** n; -n % n; - -# Equality -n == n; -# n != n; - -# Logical -b and b; -b or b; -# n band n; -# n bor n; -# n bxor n; -# not b; - -# Containers -# n in [n, n, n]; -# n not in []; -# ANCHOR_END: example -} diff --git a/arc-lang/examples/binops.arc.rust-tests b/arc-lang/examples/binops.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/binops.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/blocks.arc b/arc-lang/examples/blocks.arc deleted file mode 100644 index 8ffe884de..000000000 --- a/arc-lang/examples/blocks.arc +++ /dev/null @@ -1,12 +0,0 @@ -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -def main() { -# ANCHOR: example -val a = { { { { { 6 } } } } }; -val b = { 1; 2; 3; 4; 5; 6 }; -val c = { 1; { 2; { 3; { 4; { 5; { 6 } } } } } }; -val d = { { { { { { 1 }; 2 }; 3 }; 4 }; 5 }; 6 }; -val e = a + b + c + d; -# ANCHOR_END: example -} diff --git a/arc-lang/examples/blocks.arc.rust-tests b/arc-lang/examples/blocks.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/blocks.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/body.arc b/arc-lang/examples/body.arc deleted file mode 100644 index fbeb6df22..000000000 --- a/arc-lang/examples/body.arc +++ /dev/null @@ -1,12 +0,0 @@ -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -def foo() = 3 - -def bar() { - 3 -} -# ANCHOR_END: example - -def main() {} diff --git a/arc-lang/examples/body.arc.rust-tests b/arc-lang/examples/body.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/body.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/comprehensions.arc b/arc-lang/examples/comprehensions.arc deleted file mode 100644 index f76a6a561..000000000 --- a/arc-lang/examples/comprehensions.arc +++ /dev/null @@ -1,11 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -def test(stream) { - [event+1; for event in stream; if event != 0] -} -# ANCHOR_END: example - -def main() {} diff --git a/arc-lang/examples/comprehensions.arc.rust-tests b/arc-lang/examples/comprehensions.arc.rust-tests deleted file mode 100644 index 5e8163871..000000000 --- a/arc-lang/examples/comprehensions.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/empty.arc b/arc-lang/examples/empty.arc deleted file mode 100644 index 5fa414ce5..000000000 --- a/arc-lang/examples/empty.arc +++ /dev/null @@ -1,4 +0,0 @@ -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -def main() {} diff --git a/arc-lang/examples/empty.arc.rust-tests b/arc-lang/examples/empty.arc.rust-tests deleted file mode 100644 index 5e8163871..000000000 --- a/arc-lang/examples/empty.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/enum-patterns.arc b/arc-lang/examples/enum-patterns.arc deleted file mode 100644 index 3e789c9bc..000000000 --- a/arc-lang/examples/enum-patterns.arc +++ /dev/null @@ -1,16 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -def main() { -# ANCHOR: example -# Pattern matching on enums -val a = Option::Some(3); - -match a { - Option::Some(2) => 2, - Option::Some(x) => x, - Option::None(_) => 0 -}; -# ANCHOR_END: example -} diff --git a/arc-lang/examples/enum-patterns.arc.rust-tests b/arc-lang/examples/enum-patterns.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/enum-patterns.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/enum.arc b/arc-lang/examples/enum.arc deleted file mode 100644 index 0da6e3e5b..000000000 --- a/arc-lang/examples/enum.arc +++ /dev/null @@ -1,13 +0,0 @@ -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -enum Foo[T] { - Bar(T) -} - -def main() { - Foo::Bar(1); - Foo::Bar(1.0); -} -# ANCHOR_END: example diff --git a/arc-lang/examples/enum.arc.rust-tests b/arc-lang/examples/enum.arc.rust-tests deleted file mode 100644 index 5e8163871..000000000 --- a/arc-lang/examples/enum.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/even-odd.arc b/arc-lang/examples/even-odd.arc deleted file mode 100644 index c325cfa6b..000000000 --- a/arc-lang/examples/even-odd.arc +++ /dev/null @@ -1,16 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -# The declaration order of top-level definitions is insignificant. In other words, -# functions can reference other functions declared farther down in the code. - -def is_even(n) = if n == 0 { true } else { is_odd(n-1) } - -def is_odd(n) = if n == 0 { false } else { is_even(n-1) } -# ANCHOR_END: example - -def main() = { - is_even(10); -} diff --git a/arc-lang/examples/even-odd.arc.rust-tests b/arc-lang/examples/even-odd.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/even-odd.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/fail-task-map.arc b/arc-lang/examples/fail-task-map.arc deleted file mode 100644 index cc13cea2e..000000000 --- a/arc-lang/examples/fail-task-map.arc +++ /dev/null @@ -1,15 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -task map(i, f): (o) { - loop { - o ! f(receive i); - } -} - -def main() { - val c = map(c, fun(x) = x + 1); -} -# ANCHOR_END: example diff --git a/arc-lang/examples/fail-task-map.arc.rust-tests b/arc-lang/examples/fail-task-map.arc.rust-tests deleted file mode 100644 index 5e8163871..000000000 --- a/arc-lang/examples/fail-task-map.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/fib-functional.arc b/arc-lang/examples/fib-functional.arc deleted file mode 100644 index 13f3df4a0..000000000 --- a/arc-lang/examples/fib-functional.arc +++ /dev/null @@ -1,17 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -# The following code shows how to define the Fibonacci function functionally. - -def fib(n) = match n { - 0 => 0, - 1 => 1, - n => fib(n-2) + fib(n-1) -} -# ANCHOR_END: example - -def main() = { - fib(10); -} diff --git a/arc-lang/examples/fib-functional.arc.rust-tests b/arc-lang/examples/fib-functional.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/fib-functional.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/fib-imperative.arc b/arc-lang/examples/fib-imperative.arc deleted file mode 100644 index 60596633d..000000000 --- a/arc-lang/examples/fib-imperative.arc +++ /dev/null @@ -1,21 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -# The following code shows how to define the Fibonacci function imperatively. - -def fib(n) { - var a = 0; - var b = 1; - while a < n { - a = b; - b = a + b; - }; - return a; -} -# ANCHOR_END: example - -def main() = { - fib(10); -} diff --git a/arc-lang/examples/fib-imperative.arc.rust-tests b/arc-lang/examples/fib-imperative.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/fib-imperative.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/file-to-file.arc b/arc-lang/examples/file-to-file.arc new file mode 100644 index 000000000..8819334d0 --- /dev/null +++ b/arc-lang/examples/file-to-file.arc @@ -0,0 +1,12 @@ +# Run with: +# Terminal 1: $ cargo run -- file-to-file.arc + +def f(x) = x + 1; + +val i = file_reader(path("input/generated/numbers.csv"), false); +val o = file_writer(path("output/numbers-plus-one.csv")); + +source::[i32](i, csv(','), ingestion(1s)) + .map(f) + .sink(o, csv(',')) + .run(); diff --git a/arc-lang/examples/filter-orders.arc b/arc-lang/examples/filter-orders.arc new file mode 100644 index 000000000..10ad0136c --- /dev/null +++ b/arc-lang/examples/filter-orders.arc @@ -0,0 +1,16 @@ +# Run with: +# Terminal 1: $ cargo run -- filter-orders.arc + +type Order = {name:String, price:i32, time:Time}; + +def f(o: Order) = o.price > 100; +def g(o: Order) = {o.name, o.price}; + +val i = file_reader(path("input/generated/orders.csv"), false); +val o = stdout_writer(); + +source::[Order](i, csv(','), ingestion(1s)) + .filter(f) + .map(g) + .sink(o, csv(',')) + .run(); diff --git a/arc-lang/examples/generic-enum.arc b/arc-lang/examples/generic-enum.arc deleted file mode 100644 index c0d4f7f55..000000000 --- a/arc-lang/examples/generic-enum.arc +++ /dev/null @@ -1,25 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -enum Option[T] { - Some(T), - None -} - -def main() { - - match Option::Some(5) { - Option::Some(x) => assert(x == 5), - Option::None => assert(false), - }; - - match Option::Some(5.0) { - Option::Some(x) => assert(x == 5.0), - Option::None => assert(false), - }; - -} -# ANCHOR_END: example - diff --git a/arc-lang/examples/generic-enum.arc.rust-tests b/arc-lang/examples/generic-enum.arc.rust-tests deleted file mode 100644 index 5e8163871..000000000 --- a/arc-lang/examples/generic-enum.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/generic-function.arc b/arc-lang/examples/generic-function.arc deleted file mode 100644 index 9649b6d10..000000000 --- a/arc-lang/examples/generic-function.arc +++ /dev/null @@ -1,13 +0,0 @@ -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -def id[A](x: A): A = x - -def main() { - id(1); - id(1.0); - id::[i32](1); - id::[f32](1.0); -} -# ANCHOR_END: example diff --git a/arc-lang/examples/generic-function.arc.rust-tests b/arc-lang/examples/generic-function.arc.rust-tests deleted file mode 100644 index 5e8163871..000000000 --- a/arc-lang/examples/generic-function.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/global.arc b/arc-lang/examples/global.arc deleted file mode 100644 index c9e628018..000000000 --- a/arc-lang/examples/global.arc +++ /dev/null @@ -1,11 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -val pi = 3.14; - -def main() { - val x = pi * 2.0; -} -# ANCHOR_END: example diff --git a/arc-lang/examples/global.arc.rust-tests b/arc-lang/examples/global.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/global.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/identity-function.arc b/arc-lang/examples/identity-function.arc deleted file mode 100644 index 1246be8e9..000000000 --- a/arc-lang/examples/identity-function.arc +++ /dev/null @@ -1,11 +0,0 @@ -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -def id[A](x: A): A = x - -def main() { - val x = id(1); - val y = id(1.0); -} -# ANCHOR_END: example diff --git a/arc-lang/examples/identity-function.arc.rust-tests b/arc-lang/examples/identity-function.arc.rust-tests deleted file mode 100644 index 5e8163871..000000000 --- a/arc-lang/examples/identity-function.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/inferred.arc b/arc-lang/examples/inferred.arc deleted file mode 100644 index c2c30621f..000000000 --- a/arc-lang/examples/inferred.arc +++ /dev/null @@ -1,11 +0,0 @@ -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -def id(x) = x - -def main() { - id(1); - id(1.0); -} -# ANCHOR_END: example diff --git a/arc-lang/examples/inferred.arc.rust-tests b/arc-lang/examples/inferred.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/inferred.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/input/generated/numbers.csv b/arc-lang/examples/input/generated/numbers.csv new file mode 100644 index 000000000..c492f21e6 --- /dev/null +++ b/arc-lang/examples/input/generated/numbers.csv @@ -0,0 +1,100 @@ +5067 +238 +8433 +22105 +30354 +30952 +31531 +28474 +30256 +21676 +5452 +28914 +8352 +8662 +27403 +8776 +17527 +541 +26618 +32729 +5392 +24996 +29951 +4443 +36 +24139 +12583 +4704 +1804 +24277 +4758 +30416 +22318 +5371 +27985 +7572 +5520 +14156 +6171 +18352 +3255 +27105 +26352 +10538 +10633 +6872 +25498 +19233 +27460 +20099 +6728 +2847 +13831 +5907 +27416 +1069 +13301 +9083 +5954 +5091 +16642 +6562 +24308 +3199 +7142 +6844 +19659 +17012 +25230 +25765 +8999 +30759 +22204 +30552 +17814 +32456 +11250 +22743 +11353 +17281 +23940 +16653 +17843 +3594 +23774 +6961 +16827 +6360 +7131 +20154 +13526 +30369 +20752 +8644 +19817 +10379 +19292 +9783 +2552 +3248 diff --git a/arc-lang/examples/input/generated/orders.csv b/arc-lang/examples/input/generated/orders.csv new file mode 100644 index 000000000..200b3db3c --- /dev/null +++ b/arc-lang/examples/input/generated/orders.csv @@ -0,0 +1,64800 @@ +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +spaghetti,139,2023-04-18T12:15:00Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z +soup,109,2023-04-18T12:16:10Z +pancakes,99,2023-04-18T12:17:20Z +pizza,129,2023-04-18T12:18:30Z +sandwich,79,2023-04-18T12:19:40Z +tacos,149,2023-04-18T12:20:50Z +burger,109,2023-04-18T12:22:00Z +sushi,179,2023-04-18T12:23:10Z +salad,89,2023-04-18T12:24:20Z +steak,199,2023-04-18T12:25:30Z diff --git a/arc-lang/examples/input/generated/output.csv b/arc-lang/examples/input/generated/output.csv new file mode 100644 index 000000000..4fd875adf --- /dev/null +++ b/arc-lang/examples/input/generated/output.csv @@ -0,0 +1,9 @@ +2 +3 +4 +5 +6 +7 +8 +9 +10 diff --git a/arc-lang/examples/input/generated/prices.csv b/arc-lang/examples/input/generated/prices.csv new file mode 100644 index 000000000..d68e9e3ac --- /dev/null +++ b/arc-lang/examples/input/generated/prices.csv @@ -0,0 +1,6760 @@ +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +soup,109 +pizza,129 +tacos,149 +burger,109 +sushi,179 +steak,199 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +spaghetti,139 +soup,109 +pizza,129 +tacos,149 +burger,109 +sushi,179 +steak,199 +soup,109 +pizza,129 +tacos,149 +burger,109 +sushi,179 +steak,199 +soup,109 +pizza,129 +tacos,149 +burger,109 +sushi,179 +steak,199 +soup,109 +pizza,129 +tacos,149 +burger,109 +sushi,179 +steak,199 +soup,109 +pizza,129 +tacos,149 +burger,109 +sushi,179 +steak,199 +soup,109 +pizza,129 +tacos,149 +burger,109 +sushi,179 +steak,199 +soup,109 +pizza,129 +tacos,149 +burger,109 +sushi,179 +steak,199 +soup,109 +pizza,129 +tacos,149 +burger,109 +sushi,179 +steak,199 +soup,109 +pizza,129 +tacos,149 +burger,109 +sushi,179 +steak,199 +soup,109 +pizza,129 +tacos,149 +burger,109 +sushi,179 +steak,199 +soup,109 +pizza,129 +tacos,149 +burger,109 +sushi,179 +steak,199 +soup,109 +pizza,129 +tacos,149 +burger,109 +sushi,179 +steak,199 +soup,109 +pizza,129 +tacos,149 +burger,109 +sushi,179 +steak,199 +soup,109 +pizza,129 +tacos,149 +burger,109 +sushi,179 +steak,199 +soup,109 +pizza,129 +tacos,149 +burger,109 +sushi,179 +steak,199 +soup,109 +pizza,129 +tacos,149 +burger,109 +sushi,179 +steak,199 +soup,109 +pizza,129 +tacos,149 +burger,109 +sushi,179 +steak,199 +soup,109 +pizza,129 +tacos,149 +burger,109 +sushi,179 +steak,199 +soup,109 +pizza,129 +tacos,149 +burger,109 +sushi,179 +steak,199 +soup,109 +pizza,129 +tacos,149 +burger,109 +sushi,179 +steak,199 +soup,109 +pizza,129 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 +steak,199 diff --git a/arc-lang/examples/input/random.sh b/arc-lang/examples/input/random.sh new file mode 100755 index 000000000..e22320097 --- /dev/null +++ b/arc-lang/examples/input/random.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +while :; do echo $RANDOM; sleep 0.01; done diff --git a/arc-lang/examples/interpolate.arc b/arc-lang/examples/interpolate.arc deleted file mode 100644 index c832c340c..000000000 --- a/arc-lang/examples/interpolate.arc +++ /dev/null @@ -1,13 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -# String interpolation is supported using the $ and ${} syntax. - -def main() { - val hello = "hello"; - val world = "world"; - val result = "$hello $world, 1+2 = ${1+2}"; -} -# ANCHOR_END: example diff --git a/arc-lang/examples/interpolate.arc.rust-tests b/arc-lang/examples/interpolate.arc.rust-tests deleted file mode 100644 index 5e8163871..000000000 --- a/arc-lang/examples/interpolate.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/interpreter.arc b/arc-lang/examples/interpreter.arc deleted file mode 100644 index 9ea9180b4..000000000 --- a/arc-lang/examples/interpreter.arc +++ /dev/null @@ -1,22 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -enum Expr { - Num(i32), - Add(Expr, Expr) -} - -def eval(e) { - match e { - Expr::Num(x) => x, - Expr::Add(a, b) => eval(a) + eval(b), - } -} - -def main() { - let x = eval(Expr::Num(1)); - let y = eval(Expr::Add((1, 2))); - assert(x == 1); - assert(y == 3); -} diff --git a/arc-lang/examples/interpreter.arc.rust-tests b/arc-lang/examples/interpreter.arc.rust-tests deleted file mode 100644 index 5e8163871..000000000 --- a/arc-lang/examples/interpreter.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/lambda.arc b/arc-lang/examples/lambda.arc deleted file mode 100644 index 8108d13bf..000000000 --- a/arc-lang/examples/lambda.arc +++ /dev/null @@ -1,21 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -# Lambdas can both capture their environment and be passed around as values. - -def main() { - val a = 1; - val b = 2; - val x = fun(c) = a + b + c; - val y = fun(b) = a + b; - run(x); - run(y); -} - -# If a function takes a lambda as parameter, then it is polymorphic over the -# lambda's environment. - -def run(lambda) = lambda(3) -# ANCHOR_END: example diff --git a/arc-lang/examples/lambda.arc.rust-tests b/arc-lang/examples/lambda.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/lambda.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/lvalues.arc b/arc-lang/examples/lvalues.arc deleted file mode 100644 index 08a80d806..000000000 --- a/arc-lang/examples/lvalues.arc +++ /dev/null @@ -1,22 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -def main() { -# ANCHOR: example -var a = 1; -val b = #{x:1, y:2, c:3}; -val c = (1, 2, 3); -val d = [1, 2, 3]; - -a = 4; -b.x = 4; -c.0 = 4; -d[0u32] = 4; -# ANCHOR_END: example - -assert(a == 4); -assert(b.x == 4); -assert(c.0 == 4); -assert(d[0u32] == 4); -} diff --git a/arc-lang/examples/lvalues.arc.rust-tests b/arc-lang/examples/lvalues.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/lvalues.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/manual.rs b/arc-lang/examples/manual.rs new file mode 100644 index 000000000..476252d04 --- /dev/null +++ b/arc-lang/examples/manual.rs @@ -0,0 +1,234 @@ +#![allow(unused)] +use runtime::prelude::*; + +fn main() { + let db = Database::new("snapshots"); + Runner::new(concat!(env!("CARGO_MANIFEST_DIR"), "/examples/log")).spawn(instance(db.clone())); +} + +async fn instance(_db: Database) { + let s0 = Stream::::source( + Reader::file( + Path::new(concat!( + env!("CARGO_MANIFEST_DIR"), + "/examples/data/csv/yellow/yellow_tripdata_2017-01.csv" + )), + false, + ), + Encoding::csv(','), + TimeSource::event( + |r| r.tpep_pickup_datetime, + Duration::from_seconds(10), // Watermark interval + Duration::from_seconds(2), // Slack + ), + ); + + let s1 = s0.filter(|r: Yellow| { + { + r.passenger_count > 0 + && r.passenger_count > 2 + && r.trip_distance > 0.1 + && r.trip_distance < 22.58 + && r.pu_location_id > 0 + && r.do_location_id > 0 + && r.payment_type > 0 + && r.fare_amount > 0.0 + && r.tpep_pickup_datetime.year() >= 2017 + && r.tpep_pickup_datetime.year() < 2018 + } + .into() + }); + + let s2 = s1.map(|r: Yellow| R2 { + passenger_count: r.passenger_count, + pu_location_id: r.pu_location_id, + do_location_id: r.do_location_id, + trip_distance: r.trip_distance, + fare_amount: r.fare_amount, + payment_type: r.payment_type, + }); + + let locations: Vec = File::open(Path::new(concat!( + env!("CARGO_MANIFEST_DIR"), + "taxi+_zone_lookup.csv" + ))) + .read_to_string() + .decode(Encoding::csv(',')); + + let s3 = s2.keyby(|r: R2| r.do_location_id); + + s3.unkey().sink( + Writer::file(Path::new(concat!( + env!("CARGO_MANIFEST_DIR"), + "/examples/output.csv" + ))), + Encoding::csv(','), + ); +} + +use runtime::*; + +#[data] +pub struct Green { + /// A code indicating the TPEP provider that provided the record. + /// 1 => Creative Mobile Technologies, LLC; + /// 2 => VeriFone Inc. + pub vendor_id: u8, + /// The date and time when the meter was engaged. + pub lpep_pickup_datetime: Time, + /// The date and time when the meter was disengaged. + pub lpep_dropoff_datetime: Time, + /// This flag indicates whether the trip record was held in vehicle + /// memory before sending to the vendor, aka “store and forward,” + /// because the vehicle did not have a connection to the server. + /// Y=store and forward trip + /// N=not a store and forward trip + pub store_and_fwd_flag: Flag, + /// The final rate code in effect at the end of the trip. + /// 1 => Standard rate + /// 2 => JFK + /// 3 => Newark + /// 4 => Nassau or Westchester + /// 5 => Negotiated fare + /// 6 => Group ride + pub ratecode_id: u8, + /// TLC Taxi Zone in which the taximeter was engaged. + pub pu_location_id: u64, + /// TLC Taxi Zone in which the taximeter was disengaged. + pub do_location_id: u64, + /// The number of passengers in the vehicle. + pub passenger_count: u64, + /// The elapsed trip distance in miles reported by the taximeter. + pub trip_distance: f64, + /// The time-and-distance fare calculated by the meter. + pub fare_amount: f64, + /// Miscellaneous extras and surcharges. Currently, this only includes + /// the $0.50 and $1 rush hour and overnight charges. + pub extra: f64, + /// $0.50 MTA tax that is automatically triggered based on the metered + /// rate in use. + pub mta_tax: f64, + /// Tip amount – This field is automatically populated for credit card + /// tips. Cash tips are not included. + pub tip_amount: f64, + /// Total amount of all tolls paid in trip. + pub tolls_amount: f64, + pub ehail_fee: f64, + /// $0.30 improvement surcharge assessed trips at the flag drop. The + /// improvement surcharge began being levied in 2015. + pub improvement_surcharge: f64, + /// The total amount charged to passengers. Does not include cash tips. + pub total_amount: f64, + /// A numeric code signifying how the passenger paid for the trip. + /// 1 => Credit card + /// 2 => Cash + /// 3 => No charge + /// 4 => Dispute + /// 5 => Unknown + /// 6 => Voided trip + pub payment_type: u8, + pub trip_type: u8, + pub congestion_surcharge: f64, +} + +#[data] +pub struct Yellow { + /// A code indicating the TPEP provider that provided the record. + /// 1 => Creative Mobile Technologies, LLC; + /// 2 => VeriFone Inc. + pub vendor_id: u8, + /// The date and time when the meter was engaged. + pub tpep_pickup_datetime: Time, + /// The date and time when the meter was disengaged. + pub tpep_dropoff_datetime: Time, + /// The number of passengers in the vehicle. + pub passenger_count: u64, + /// The elapsed trip distance in miles reported by the taximeter. + pub trip_distance: f64, + /// The final rate code in effect at the end of the trip. + /// 1 => Standard rate + /// 2 => JFK + /// 3 => Newark + /// 4 => Nassau or Westchester + /// 5 => Negotiated fare + /// 6 => Group ride + pub ratecode_id: u8, + /// This flag indicates whether the trip record was held in vehicle + /// memory before sending to the vendor, aka “store and forward,” + /// because the vehicle did not have a connection to the server. + /// Y=store and forward trip + /// N=not a store and forward trip + pub store_and_fwd_flag: Flag, + /// TLC Taxi Zone in which the taximeter was engaged. + pub pu_location_id: u64, + /// TLC Taxi Zone in which the taximeter was disengaged. + pub do_location_id: u64, + /// A numeric code signifying how the passenger paid for the trip. + /// 1 => Credit card + /// 2 => Cash + /// 3 => No charge + /// 4 => Dispute + /// 5 => Unknown + /// 6 => Voided trip + pub payment_type: u8, + /// The time-and-distance fare calculated by the meter. + pub fare_amount: f64, + /// Miscellaneous extras and surcharges. Currently, this only includes + /// the $0.50 and $1 rush hour and overnight charges. + pub extra: f64, + /// $0.50 MTA tax that is automatically triggered based on the metered + /// rate in use. + pub mta_tax: f64, + /// Tip amount – This field is automatically populated for credit card + /// tips. Cash tips are not included. + pub tip_amount: f64, + /// Total amount of all tolls paid in trip. + pub tolls_amount: f64, + /// $0.30 improvement surcharge assessed trips at the flag drop. The + /// improvement surcharge began being levied in 2015. + pub improvement_surcharge: f64, + /// The total amount charged to passengers. Does not include cash tips. + pub total_amount: f64, +} + +#[data] +pub struct R2 { + pub passenger_count: u64, + pub trip_distance: f64, + pub pu_location_id: u64, + pub do_location_id: u64, + pub payment_type: u8, + pub fare_amount: f64, +} + +#[data] +pub struct R3 { + pub total: f64, +} + +// 1. Filter out rides which have negative distance +// 2. Map to Record2 +// 3. Aggregate the total number of trips per hour per pickup location. +// 4. Group by number of trips + +#[data] +pub struct Location { + pub location_id: u64, + pub borough: String, + pub zone: String, + pub service_zone: String, +} + +#[data] +pub struct R5 { + #[serde(flatten)] + pub r3: R3, + #[serde(flatten)] + pub r4: Location, +} + +#[data] +pub enum Flag { + Y, + N, +} diff --git a/arc-lang/examples/models/download-imagenet.py b/arc-lang/examples/models/download-imagenet.py new file mode 100644 index 000000000..d1b5114ff --- /dev/null +++ b/arc-lang/examples/models/download-imagenet.py @@ -0,0 +1,18 @@ +import requests +import json + +url = 'https://storage.googleapis.com/download.tensorflow.org' \ + '/data/imagenet_class_index.json' +r = requests.get(url, allow_redirects=True) +data = json.loads(r.content) +result = [] + +for i in range(len(data)): + key = str(i) + if key in data: + result.append(data[key][1]) + else: + print(f"Key {key} does not exist.") + +with open("imagenet_class_index.json", "w") as f: + json.dump(result, f) diff --git a/arc-lang/examples/models/download-resnet18.py b/arc-lang/examples/models/download-resnet18.py new file mode 100644 index 000000000..c5392c808 --- /dev/null +++ b/arc-lang/examples/models/download-resnet18.py @@ -0,0 +1,16 @@ +import torch +import torchvision.models as models +from torchvision.models.resnet import ResNet18_Weights + +model = models.resnet18(weights=ResNet18_Weights.IMAGENET1K_V1) +model.eval() +torch.onnx.export(model, + torch.randn(1, 3, 224, 224), + "resnet18.onnx", + export_params=True, + opset_version=10, + do_constant_folding=True, + input_names=['input'], + output_names=['output'], + dynamic_axes={'input': {0: 'batch_size'}, + 'output': {0: 'batch_size'}}) diff --git a/arc-lang/examples/models/download-yolov8.py b/arc-lang/examples/models/download-yolov8.py new file mode 100644 index 000000000..a27ac0367 --- /dev/null +++ b/arc-lang/examples/models/download-yolov8.py @@ -0,0 +1,4 @@ +from ultralytics import YOLO + +model = YOLO("yolov8m.pt") +model.export(format="onnx") diff --git a/arc-lang/examples/modules.arc b/arc-lang/examples/modules.arc deleted file mode 100644 index 6a1b0a9ea..000000000 --- a/arc-lang/examples/modules.arc +++ /dev/null @@ -1,15 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -mod foo { - mod bar { - mod baz { - def qux() = 3 - } - } -} - -def main() = foo::bar::baz::qux() -# ANCHOR_END: example diff --git a/arc-lang/examples/modules.arc.rust-tests b/arc-lang/examples/modules.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/modules.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/monoid.arc b/arc-lang/examples/monoid.arc deleted file mode 100644 index 23f438043..000000000 --- a/arc-lang/examples/monoid.arc +++ /dev/null @@ -1,15 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -class Monoid { - def identity(): Self; - def merge(Self, Self): Self; -} -impl Monoid for {sum:i32} { - def identity() = #{sum: 0} - def merge(a, b) = #{sum: a.sum + b.sum} -} -def main() = x.merge(y.merge(identity())) -# ANCHOR_END: example diff --git a/arc-lang/examples/monoid.arc.rust-tests b/arc-lang/examples/monoid.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/monoid.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/names.arc b/arc-lang/examples/names.arc deleted file mode 100644 index b053dbe41..000000000 --- a/arc-lang/examples/names.arc +++ /dev/null @@ -1,10 +0,0 @@ -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -def this_is_a_name(this_is_also_a_name) { - val this_is_yet_another_name = 1; -} -# ANCHOR_END: example - -def main() {} diff --git a/arc-lang/examples/names.arc.rust-tests b/arc-lang/examples/names.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/names.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/open-records.arc b/arc-lang/examples/open-records.arc deleted file mode 100644 index c59588848..000000000 --- a/arc-lang/examples/open-records.arc +++ /dev/null @@ -1,11 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -def coerce(x: #{}): #{} { - x -} - -def main() { - coerce(#{y:5}); -} diff --git a/arc-lang/examples/open-records.arc.rust-tests b/arc-lang/examples/open-records.arc.rust-tests deleted file mode 100644 index 5e8163871..000000000 --- a/arc-lang/examples/open-records.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/output/numbers-plus-one.csv b/arc-lang/examples/output/numbers-plus-one.csv new file mode 100644 index 000000000..c2793b316 --- /dev/null +++ b/arc-lang/examples/output/numbers-plus-one.csv @@ -0,0 +1,100 @@ +5068 +239 +8434 +22106 +30355 +30953 +31532 +28475 +30257 +21677 +5453 +28915 +8353 +8663 +27404 +8777 +17528 +542 +26619 +32730 +5393 +24997 +29952 +4444 +37 +24140 +12584 +4705 +1805 +24278 +4759 +30417 +22319 +5372 +27986 +7573 +5521 +14157 +6172 +18353 +3256 +27106 +26353 +10539 +10634 +6873 +25499 +19234 +27461 +20100 +6729 +2848 +13832 +5908 +27417 +1070 +13302 +9084 +5955 +5092 +16643 +6563 +24309 +3200 +7143 +6845 +19660 +17013 +25231 +25766 +9000 +30760 +22205 +30553 +17815 +32457 +11251 +22744 +11354 +17282 +23941 +16654 +17844 +3595 +23775 +6962 +16828 +6361 +7132 +20155 +13527 +30370 +20753 +8645 +19818 +10380 +19293 +9784 +2553 +3249 diff --git a/arc-lang/examples/overload-plus.arc b/arc-lang/examples/overload-plus.arc deleted file mode 100644 index 5a54ca3b1..000000000 --- a/arc-lang/examples/overload-plus.arc +++ /dev/null @@ -1,10 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -def test1() = 1 + 2 -def test2() = 1.0 + 2.0 -# ANCHOR_END: example - -def main() {} diff --git a/arc-lang/examples/overload-plus.arc.rust-tests b/arc-lang/examples/overload-plus.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/overload-plus.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/parallelism.arc b/arc-lang/examples/parallelism.arc deleted file mode 100644 index 97751df88..000000000 --- a/arc-lang/examples/parallelism.arc +++ /dev/null @@ -1,39 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -task read_stream(): Stream[i32]; - -def main() {} - -# ANCHOR: pipeline -task map(i, f): (o) { - for x in i { - o ! f(receive x) - } -} - -task filter(i, f): (o) { - for x in i { - if f(x) { - o ! x - } - } -} - -def pipeline_parallel() { - val s0 = read_stream(); - val s1 = map(s0, |x| x * 2); - val s2 = filter(s1, |x| x % 2 == 0); - # ... -} -# ANCHOR_END: pipeline - -# ANCHOR: task -def task_parallel() { - val s0 = source(0..100); - val s1 = map(s0, |x| x * 2); - val s2 = filter(s0, |x| x % 2 == 0); - # ... -} -# ANCHOR_END: task diff --git a/arc-lang/examples/parallelism.arc.rust-tests b/arc-lang/examples/parallelism.arc.rust-tests deleted file mode 100644 index 5e8163871..000000000 --- a/arc-lang/examples/parallelism.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/params.arc b/arc-lang/examples/params.arc deleted file mode 100644 index b0e098b54..000000000 --- a/arc-lang/examples/params.arc +++ /dev/null @@ -1,8 +0,0 @@ -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -def test(typed_param: i32, untyped_param) = typed_param + untyped_param -# ANCHOR_END: example - -def main() {} diff --git a/arc-lang/examples/params.arc.rust-tests b/arc-lang/examples/params.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/params.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/paths.arc b/arc-lang/examples/paths.arc deleted file mode 100644 index 2a7b26890..000000000 --- a/arc-lang/examples/paths.arc +++ /dev/null @@ -1,20 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -mod foo { - mod bar { - val baz = 3 - def relative() = baz - def absolute() = ::foo::bar::baz - } - def relative() = bar::baz - def absolute() = ::foo::bar::baz -} - -def relative() = foo::bar::baz -def absolute() = ::foo::bar::baz -# ANCHOR_END: example - -def main() {} diff --git a/arc-lang/examples/paths.arc.rust-tests b/arc-lang/examples/paths.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/paths.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/placeholder.arc b/arc-lang/examples/placeholder.arc deleted file mode 100644 index e8a3cba64..000000000 --- a/arc-lang/examples/placeholder.arc +++ /dev/null @@ -1,11 +0,0 @@ -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -# `(_ + _)` desugars into a lambda function `fun(x0, x1): x0 + x1` -def main() = { - apply(_ + _); -} - -def apply(f) = f(1, 2) -# ANCHOR_END: example diff --git a/arc-lang/examples/placeholder.arc.rust-tests b/arc-lang/examples/placeholder.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/placeholder.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/pre-declaration.arc b/arc-lang/examples/pre-declaration.arc deleted file mode 100644 index 206a0d5bd..000000000 --- a/arc-lang/examples/pre-declaration.arc +++ /dev/null @@ -1,11 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -def add(a: i32, b: i32): i32; - -def add(a, b) = a + b -# ANCHOR_END: example - -def main() {} diff --git a/arc-lang/examples/pre-declaration.arc.rust-tests b/arc-lang/examples/pre-declaration.arc.rust-tests deleted file mode 100644 index 5e8163871..000000000 --- a/arc-lang/examples/pre-declaration.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/predict.rs b/arc-lang/examples/predict.rs new file mode 100644 index 000000000..6158ac6e9 --- /dev/null +++ b/arc-lang/examples/predict.rs @@ -0,0 +1,29 @@ +use runtime::prelude::*; + +fn main() { + std::env::set_current_dir(concat!(env!("CARGO_MANIFEST_DIR"), "/examples/")).unwrap(); + + let model_file: File = File::open("./model/resnet18.onnx"); + let model_data: Blob = model_file.read_to_bytes(); + let model: Model = Model::new(model_data); + + let img_file: File = File::open("./data/images/cats.txt"); + let img_data: Blob = img_file.read_to_bytes(); + let img: Image = Image::new(img_data); + let img: Image = img.resize_height(256); + let img: Image = img.center_crop(224, 224); + + let x: Matrix = img.into_matrix().insert_axis(0); + let y: Matrix = model.predict(x).remove_axis(0); + + let y = y.into_vec().sort(); + + let labels_file: File = File::open("./models/imagenet_class_index.txt"); + let labels_data: String = labels_file.read_to_string(); + let labels: Vec = labels_data.decode(Encoding::Json); + + for (i, score) in y.iter().enumerate() { + let label = labels[i as usize].clone(); + println!("{}: {}", label, score); + } +} diff --git a/arc-lang/examples/program.arc b/arc-lang/examples/program.arc deleted file mode 100644 index 29824a748..000000000 --- a/arc-lang/examples/program.arc +++ /dev/null @@ -1,8 +0,0 @@ -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -def main() { - # ... -} -# ANCHOR_END: example diff --git a/arc-lang/examples/program.arc.rust-tests b/arc-lang/examples/program.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/program.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/query.arc b/arc-lang/examples/query.arc deleted file mode 100644 index 7aa7d2848..000000000 --- a/arc-lang/examples/query.arc +++ /dev/null @@ -1,27 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: implicit -def test0(s) = - from x in s { - where x.k != 1 - group x.k - reduce - sum of x.v, - count - } -# ANCHOR_END: implicit - -# ANCHOR: explicit -def test1(s: Stream[#{k:i32,v:i32}]) = - from x in s { - where x.k != 1 - group k = x.k - reduce - sum = sum of x.v, - count = count - } -# ANCHOR_END: explicit - -def main() {} diff --git a/arc-lang/examples/query.arc.rust-tests b/arc-lang/examples/query.arc.rust-tests deleted file mode 100644 index 5e8163871..000000000 --- a/arc-lang/examples/query.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/record-patterns.arc b/arc-lang/examples/record-patterns.arc deleted file mode 100644 index 3824c4b86..000000000 --- a/arc-lang/examples/record-patterns.arc +++ /dev/null @@ -1,14 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -def main() { -# ANCHOR: example -# Pattern matching on records -val a = {x0:0, x1:2, x2:3}; -val {x0, x1, x2} = a; # Extract `x0`, `x1`, and `x2` -val {x0} = a; # Extract only `x0` -val {x0, x1, x2:y} = a; # Extract `x0` and `x1`, and alias `x2` to `y` -val {x0, x1|b} = a; # Extract `x0` and `x1`, and bind `{x1}` to `b` -# ANCHOR_END: example -} diff --git a/arc-lang/examples/record-patterns.arc.rust-tests b/arc-lang/examples/record-patterns.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/record-patterns.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/row-polymorphism-shape.arc b/arc-lang/examples/row-polymorphism-shape.arc deleted file mode 100644 index b3e3df119..000000000 --- a/arc-lang/examples/row-polymorphism-shape.arc +++ /dev/null @@ -1,17 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -def area(shape) = shape.x * shape.y - -def main() { - val line = #{x:5}; - val rect = #{y:10|line}; - val cube = #{z:20|rect}; - - area(line); # ERROR - area(rect); # OK - area(cube); # OK -} -# ANCHOR_END: example diff --git a/arc-lang/examples/row-polymorphism-shape.arc.rust-tests b/arc-lang/examples/row-polymorphism-shape.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/row-polymorphism-shape.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/row-polymorphism.arc b/arc-lang/examples/row-polymorphism.arc deleted file mode 100644 index bcae0331d..000000000 --- a/arc-lang/examples/row-polymorphism.arc +++ /dev/null @@ -1,14 +0,0 @@ -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -def foo[T](x: #{y:i32|T}): i32 = x.y - -def bar(x: #{y:i32, z:i32}): i32 = x.y + x.z - -def main() { - val x = #{y:5, z:5}; - val y = #{y:5, z:5, w:9}; - foo(x); - foo(y); - bar(x); -} diff --git a/arc-lang/examples/row-polymorphism.arc.rust-tests b/arc-lang/examples/row-polymorphism.arc.rust-tests deleted file mode 100644 index 5e8163871..000000000 --- a/arc-lang/examples/row-polymorphism.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/shapes.arc b/arc-lang/examples/shapes.arc deleted file mode 100644 index 0c6e34664..000000000 --- a/arc-lang/examples/shapes.arc +++ /dev/null @@ -1,20 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -enum Shape[T] { - Rectangle(T, T), - Circle(T), -} - -def area(shape) = match shape { - Shape::Rectangle(width, height) => width * height, - Shape::Circle(radius) => 3.14 * radius ** 2 -} - -def main() { - val a0 = area(Shape::Rectangle(5.0, 3.0)); - val a1 = area(Shape::Circle(3.0)); -} -# ANCHOR_END: example diff --git a/arc-lang/examples/shapes.arc.rust-tests b/arc-lang/examples/shapes.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/shapes.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/socket-to-stdout.arc b/arc-lang/examples/socket-to-stdout.arc new file mode 100644 index 000000000..ad8371830 --- /dev/null +++ b/arc-lang/examples/socket-to-stdout.arc @@ -0,0 +1,13 @@ +# Run with: +# Terminal 1: $ nc -l 9000 +# Terminal 2: $ echo "1\n2\n3" | cargo run -- socket-to-stdout.arc + +def f(x) = x + 1; + +val i = tcp_reader(socket("127.0.0.1:9000")); +val o = stdout_writer(); + +source::[i32](i, csv(','), ingestion(1s)) + .map(f) + .sink(o, csv(',')) + .run(); diff --git a/arc-lang/examples/stdin-to-socket.arc b/arc-lang/examples/stdin-to-socket.arc new file mode 100644 index 000000000..5093d53be --- /dev/null +++ b/arc-lang/examples/stdin-to-socket.arc @@ -0,0 +1,13 @@ +# Run with: +# Terminal 1: $ cargo run -- socket-to-stdout.arc +# Terminal 2: $ nc 127.0.0.1 9000 + +def f(x) = x + 1; + +val i = stdin_reader(); +val o = tcp_writer(socket("127.0.0.1:9000")); + +source::[i32](i, csv(','), ingestion(1s)) + .map(f) + .sink(o, csv(',')) + .run(); diff --git a/arc-lang/examples/stdin-to-stdout.arc b/arc-lang/examples/stdin-to-stdout.arc new file mode 100644 index 000000000..3c019872a --- /dev/null +++ b/arc-lang/examples/stdin-to-stdout.arc @@ -0,0 +1,13 @@ +# Run with: +# Terminal 1: $ cargo run -- socket-to-stdout.arc +# Terminal 2: $ nc 127.0.0.1 9000 + +def f(x) = x + 1; + +val i = stdin_reader(); +val o = stdout_writer(); + +source::[i32](i, csv(','), ingestion(1s)) + .map(f) + .sink(o, csv(',')) + .run(); diff --git a/arc-lang/examples/stdio-stream.arc b/arc-lang/examples/stdio-stream.arc new file mode 100644 index 000000000..2fd78ce08 --- /dev/null +++ b/arc-lang/examples/stdio-stream.arc @@ -0,0 +1,6 @@ +def f(x) = x > 1; + +source::[i32](stdin_reader(), csv(','), ingestion(1s)) + .filter(f) + .sink(file_writer(path("foo.csv")), csv(',')) + .run(); diff --git a/arc-lang/examples/strings.arc b/arc-lang/examples/strings.arc deleted file mode 100644 index 6c75a4249..000000000 --- a/arc-lang/examples/strings.arc +++ /dev/null @@ -1,33 +0,0 @@ -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -def main() { -# ANCHOR: example -val a0 = "hello"; - -assert(a0.str_eq("hello")); -assert(not a0.str_eq("world")); - -val a1 = i32_to_string(1); -assert(a1.str_eq("1")); - -val a2 = "world"; -a2.push_char('!'); -assert(a2.str_eq("world!")); - -a2.insert_char(0u32, '!'); -assert(str_eq(a2, "!world!")); - -val a3 = ""; -assert(not a2.is_empty_str()); -assert(a3.is_empty_str()); - -val a4 = "hey"; -a4.clear_str(); -assert(is_empty_str(a4)); - -val a5 = "((("; -val a6 = ")))"; -assert(a5.concat(a6).str_eq("((()))")); -# ANCHOR_END: example -} diff --git a/arc-lang/examples/strings.arc.rust-tests b/arc-lang/examples/strings.arc.rust-tests deleted file mode 100644 index 5e8163871..000000000 --- a/arc-lang/examples/strings.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/task-exception-at-consumer.arc b/arc-lang/examples/task-exception-at-consumer.arc deleted file mode 100644 index 14c696924..000000000 --- a/arc-lang/examples/task-exception-at-consumer.arc +++ /dev/null @@ -1,27 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -task producer(xs): (o) { - for x in xs { - o ! x; - } -} - -task consumer(i) { - loop { - try { - print(receive i); - } catch Exception::Receive { - print("Producer has terminated, therefore I will terminate."); - return; - } - } -} - -def main() { - val stream = producer([1,2,3]); - consumer(stream); -} -# ANCHOR_END: example diff --git a/arc-lang/examples/task-exception-at-consumer.arc.rust-tests b/arc-lang/examples/task-exception-at-consumer.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/task-exception-at-consumer.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/task-exception-at-producer.arc b/arc-lang/examples/task-exception-at-producer.arc deleted file mode 100644 index b0b6d15bf..000000000 --- a/arc-lang/examples/task-exception-at-producer.arc +++ /dev/null @@ -1,30 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -task producer(xs): (o) { - for x in xs { - try { - o ! x; - } catch Exception::Emit { - print("Consumer has terminated, therefore I will terminate."); - return; - } - } -} - -task consumer(i) { - for x in i { - print(x); - if rand() % 100 == 0 { - break; - } - } -} - -def main() { - val stream = producer([1,2,3]); - consumer(stream); -} -# ANCHOR_END: example diff --git a/arc-lang/examples/task-exception-at-producer.arc.rust-tests b/arc-lang/examples/task-exception-at-producer.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/task-exception-at-producer.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/task-flow-control.arc b/arc-lang/examples/task-flow-control.arc deleted file mode 100644 index d22cfe7cc..000000000 --- a/arc-lang/examples/task-flow-control.arc +++ /dev/null @@ -1,23 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -task producer(): (o) { - for x in 0.. { - o ! x; - } -} - -task consumer(i): () { - for x in i.. { - sleep(1s); - print(i); - } -} - -def main() { - val s = producer(); - consumer(s); -} -# ANCHOR_END: example diff --git a/arc-lang/examples/task-flow-control.arc.rust-tests b/arc-lang/examples/task-flow-control.arc.rust-tests deleted file mode 100644 index 5e8163871..000000000 --- a/arc-lang/examples/task-flow-control.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/task-identity.arc b/arc-lang/examples/task-identity.arc deleted file mode 100644 index 30743fefd..000000000 --- a/arc-lang/examples/task-identity.arc +++ /dev/null @@ -1,13 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -task identity(source): (sink) { - loop { - on event in source => sink ! event; - } -} -# ANCHOR_END: example - -def main() {} diff --git a/arc-lang/examples/task-identity.arc.rust-tests b/arc-lang/examples/task-identity.arc.rust-tests deleted file mode 100644 index 5e8163871..000000000 --- a/arc-lang/examples/task-identity.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/task-lambda.arc b/arc-lang/examples/task-lambda.arc deleted file mode 100644 index 4e1dd7c79..000000000 --- a/arc-lang/examples/task-lambda.arc +++ /dev/null @@ -1,13 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -def test(i) { - task: (o) = loop { - on x in i => o ! x - } -} -# ANCHOR_END: example - -def main() {} diff --git a/arc-lang/examples/task-lambda.arc.rust-tests b/arc-lang/examples/task-lambda.arc.rust-tests deleted file mode 100644 index 5e8163871..000000000 --- a/arc-lang/examples/task-lambda.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/task-map-for.arc b/arc-lang/examples/task-map-for.arc deleted file mode 100644 index 890c913f1..000000000 --- a/arc-lang/examples/task-map-for.arc +++ /dev/null @@ -1,13 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -task map(i, f): (o) { - for x in i { - o ! f(x); - } -} -# ANCHOR_END: example - -def main() {} diff --git a/arc-lang/examples/task-map-for.arc.rust-tests b/arc-lang/examples/task-map-for.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/task-map-for.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/task-map.arc b/arc-lang/examples/task-map.arc deleted file mode 100644 index b12cffeea..000000000 --- a/arc-lang/examples/task-map.arc +++ /dev/null @@ -1,37 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -task map(i, f): (o) { - loop { - o ! f(receive i); - } -} - -def main() { - val stream0 = source(0..); - val stream1 = map(stream0, fun(x) = x + 1); -} -# ANCHOR_END: example - -# ANCHOR: for-loop -task map(i, f): (o) { - for x in i { - o ! f(x); - } -} -# ANCHOR_END: for-loop - -# ANCHOR: annotated -task map(i: Stream[i32], f: fun(i32):i32): (o: Drain[i32]) { - loop { - o ! f(receive i); - } -} - -def main() { - val stream0: Stream[i32] = source(0..); - val stream1: Stream[i32] = map(stream0, fun(x) = x + 1); -} -# ANCHOR_END: annotated diff --git a/arc-lang/examples/task-map.arc.rust-tests b/arc-lang/examples/task-map.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/task-map.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/task-merge.arc b/arc-lang/examples/task-merge.arc deleted file mode 100644 index 7536fe965..000000000 --- a/arc-lang/examples/task-merge.arc +++ /dev/null @@ -1,18 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -task merge(s0, s1): (s2) { - loop { - s2 ! (receive s0); - s2 ! (receive s1); - } -} - -def main() { - val stream0 = 0..100; - val stream1 = 0..100; - val stream2 = merge(stream0, stream1); -} -# ANCHOR_END: example diff --git a/arc-lang/examples/task-merge.arc.rust-tests b/arc-lang/examples/task-merge.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/task-merge.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/task-split.arc b/arc-lang/examples/task-split.arc deleted file mode 100644 index 34db30135..000000000 --- a/arc-lang/examples/task-split.arc +++ /dev/null @@ -1,20 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -extern def read_numbers_stream(): Stream[i32]; - -# ANCHOR: example -task split(s0, f): (s1, s2) { - loop { - val x = receive s0; - s1 ! x; - s2 ! x; - } -} - -def main() { - val stream0 = read_numbers_stream(); - val (stream1, stream2) = split(stream0, stream1); -} -# ANCHOR_END: example diff --git a/arc-lang/examples/task-split.arc.rust-tests b/arc-lang/examples/task-split.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/task-split.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/task-state.arc b/arc-lang/examples/task-state.arc deleted file mode 100644 index 33b9bda45..000000000 --- a/arc-lang/examples/task-state.arc +++ /dev/null @@ -1,19 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -task reduce(i, f, init): (o) { - var state = init; - for x in i { - state = f(state, x); - o ! state; - } -} - -def main() { - let sum = reduce(0..100, fun(a, b): a + b, 0); - let count = reduce(0..100, fun(a, _): a + 1, 0); - let max = reduce(0..100, fun(a, b): if a > b { a } else { b }, 0); -} -# ANCHOR_END: example diff --git a/arc-lang/examples/task-state.arc.rust-tests b/arc-lang/examples/task-state.arc.rust-tests deleted file mode 100644 index 5e8163871..000000000 --- a/arc-lang/examples/task-state.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/task-union.arc b/arc-lang/examples/task-union.arc deleted file mode 100644 index 152a90d72..000000000 --- a/arc-lang/examples/task-union.arc +++ /dev/null @@ -1,20 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -task union(s0, s1): (s2) { - loop { - on { - x in s0 => s2 ! x, - x in s1 => s2 ! x, - } - } -} - -def main() { - val stream0 = 0..100; - val stream1 = 0..100; - val stream2 = union(stream0, stream1); -} -# ANCHOR_END: example diff --git a/arc-lang/examples/task-union.arc.rust-tests b/arc-lang/examples/task-union.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/task-union.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/todo/operators.arc b/arc-lang/examples/todo/operators.arc new file mode 100644 index 000000000..cd9b38330 --- /dev/null +++ b/arc-lang/examples/todo/operators.arc @@ -0,0 +1,52 @@ +# XFAIL: * +# RUN: arc-lang %s + +type Item = {name: Text, price: f64, mass: f64}; +type Order = {id: u32, customer_id: u32, price: f64, items: Vec[Item], time: Time}; + +val s0: Stream[Order] = source(stdin(), json()); +val s1: Stream[Order] = source(file("logs/*.csv"), csv()); +val s2: Stream[Order] = source(http("127.0.0.1", 8080, "orders"), tsv()); +val s3: Stream[Order] = source(tcp("127.0.0.1", 8081), text()); +val s4: Stream[Order] = source(kafka("127.0.0.1", 8082, "orders"), json()); + +# Can either generate or extract timestamps +val s5: Stream[Order] = source(stdin(), csv(), ingestion()); +val s6: Stream[Order] = source(stdin(), csv(), event(fun(e) = e.time)); +val s7: Stream[Order] = merge([s0, s1, s2, s3, s4, s5, s6]); + +sink(s7, stdout(), json()); +sink(s7, file("output.csv"), csv()); + +def to_usd(price) = price * 1.1; + +val s1: Stream[Order] = filter(s0, fun(o) = o.price > 10.0 and o.items.len() > 0); +val s2: Stream[Item] = flatmap(s1, fun(o) = o.items); +val s3: Stream[Text] = map(s2, fun(i) = {name: i.name, price: to_usd(i.price)}); +sink(s3, stdout(), json()); + +source::[Order](stdin(), json()) + .filter(fun(o) = o.price > 10.0 and o.items.len() > 0) + .flatmap(_.items) + .map(fun(i) = {i.name, price: i.price.to_usd()}) + .sink(stdout(), json()); + +from o:Order in source(stdin(), json()) +where o.price > 10.0 and o.items.len() > 0 +from i in o.items +select {i.name, usd: i.price.to_usd()} +into sink(stdout(), json()); + +val stream = + from o:Order in source(stdin(), json()) + where o.price > 10.0 and o.items.len() > 0 + from i in o.items + select {i.name, usd: i.price.to_usd()}; + +def query(stream) = + from o in stream + where o.price > 10.0 and o.items.len() > 0 + from i in o.items + select {i.name, usd: i.price.to_usd()}; + +val stream = query(source::[Order](stdin(), json())); diff --git a/arc-lang/examples/todo/predict.arc b/arc-lang/examples/todo/predict.arc new file mode 100644 index 000000000..fe5f45c70 --- /dev/null +++ b/arc-lang/examples/todo/predict.arc @@ -0,0 +1,22 @@ +# XFAIL: * +# RUN: arc-lang %s + +type Item = {name:String, price:f64, mass:f64}; +type Order = {id:u32, items: Vec[Item], t:Time, src_id:u32, dst_id:u32}; +type Area = {id:u32, lon:f32, lat:f32}; + +val model: Model[[f32;3],[f32;1]] = model(path("cost_predictor.pb"), tf()); +val areas: Set[Area] = set(path("areas.csv"), csv()); + +---rust +fn is_valid_order(o: Order) -> bool { todo!() } +--- + +from o:Order in source(kafka("127.0.0.1:9092", "orders"), json()) +where is_valid_order(o) +join a0 in areas on a0.id == o.src_id +join a1 in areas on a1.id == o.dst_id +with features = [o.items.sum_by(_.mass), f32(o.t.day()), distance(a0, a1)] +with [shipment_cost] = model.predict(features) +select {o.id, shipment_cost} +into sink(kafka("127.0.0.1:9092", "cost_predictions"), json()); diff --git a/arc-lang/examples/todo/scoping.arc b/arc-lang/examples/todo/scoping.arc new file mode 100644 index 000000000..2811dd583 --- /dev/null +++ b/arc-lang/examples/todo/scoping.arc @@ -0,0 +1,29 @@ +# XFAIL: * +# RUN: arc-lang %s + +val a = 0; +val b = a; +def c() = a; +def d() = c(); +type T = i32; + +def e() { + val x = " a + 1 = ${a + 1} "; + val a = a; + val b = a; + def c() = a; + def d() = c(); + d(); +} + +def f0(a) = a+1; +val f1 = fun(a) = a+1; + +a.f0(); +a.f1(); +a.f1(); +a.f1(); +a.f1(); + +def r0() = r1(); +def r1() = r0(); diff --git a/arc-lang/examples/todo/wordcount.arc b/arc-lang/examples/todo/wordcount.arc new file mode 100644 index 000000000..11c463f67 --- /dev/null +++ b/arc-lang/examples/todo/wordcount.arc @@ -0,0 +1,13 @@ +# XFAIL: * +# RUN: arc-lang %s +from line:String in source(file("data/generated/lines.txt"), csv(','), ingestion()) +from word in line.split(" ") +over tumbling(size=1h) { + group word { + compute { + count + } as c + } as g +} as w +select {w.g.word, w.g.c.count} +into file("prices.csv"), csv(',')); diff --git a/arc-lang/examples/tuple-patterns.arc b/arc-lang/examples/tuple-patterns.arc deleted file mode 100644 index 358c1b337..000000000 --- a/arc-lang/examples/tuple-patterns.arc +++ /dev/null @@ -1,11 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -def main() { -# ANCHOR: example -# Pattern matching on tuples: -val a = (1, 2, 3); -val (x0, x1, x2) = a; -# ANCHOR_END: example -} diff --git a/arc-lang/examples/tuple-patterns.arc.rust-tests b/arc-lang/examples/tuple-patterns.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/tuple-patterns.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/type-alias.arc b/arc-lang/examples/type-alias.arc deleted file mode 100644 index 61696ed69..000000000 --- a/arc-lang/examples/type-alias.arc +++ /dev/null @@ -1,24 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -extern def sqrt(Num): Num; - -# ANCHOR: example -type Num = i32; -type Point = {x:Num, y:Num}; -type Line = {start:Point, end:Point}; - -def length(line) { - val a = line.start.x - line.end.x; - val b = line.start.y - line.end.y; - sqrt(a**2 + b**2) -} - -def main() { - val p0 = {x:0, y:1}; - val p1 = {x:5, y:9}; - val line = {start:p0, end:p1}; - length(line); -} -# ANCHOR_END: example diff --git a/arc-lang/examples/type-alias.arc.rust-tests b/arc-lang/examples/type-alias.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/type-alias.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/type-class.arc b/arc-lang/examples/type-class.arc deleted file mode 100644 index 0db423cd3..000000000 --- a/arc-lang/examples/type-class.arc +++ /dev/null @@ -1,15 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: class -class Add { - def add(T, T): T; -} -# ANCHOR_END: class - -# ANCHOR: instance -instance Add<#{sum:i32}> { - def add(l, r) = #{sum: l.sum + r.sum} -} -# ANCHOR_END: instance diff --git a/arc-lang/examples/type-class.arc.rust-tests b/arc-lang/examples/type-class.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/type-class.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/types.arc b/arc-lang/examples/types.arc deleted file mode 100644 index 29e1c46d4..000000000 --- a/arc-lang/examples/types.arc +++ /dev/null @@ -1,25 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -extern def main( -# ANCHOR: record -#{x:i32, y:str} # Record-type -# ANCHOR_END: record -, -# ANCHOR: tuple -(i32, str) # Tuple-type -# ANCHOR_END: tuple -, -# ANCHOR: function -fun(i32): i32 # Function-type -# ANCHOR_END: function -, -# ANCHOR: exclusive_range -i32..i32 # Exclusive Range-type -# ANCHOR_END: exclusive_range -, -# ANCHOR: inclusive_range -i32..=i32 # Inclusive Range-type -# ANCHOR_END: inclusive_range -); diff --git a/arc-lang/examples/types.arc.rust-tests b/arc-lang/examples/types.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/types.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/uses.arc b/arc-lang/examples/uses.arc deleted file mode 100644 index 3392d890e..000000000 --- a/arc-lang/examples/uses.arc +++ /dev/null @@ -1,14 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -type Person = #{name: str, age: i32} - -use Person as Human; # Creates an alias - -def main(): Person { - val person: Person = #{name:"Bob", age:35}; - val human: Human = Person; -} -# ANCHOR_END: example diff --git a/arc-lang/examples/uses.arc.rust-tests b/arc-lang/examples/uses.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/uses.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/values.arc b/arc-lang/examples/values.arc deleted file mode 100644 index 71f44fcd2..000000000 --- a/arc-lang/examples/values.arc +++ /dev/null @@ -1,20 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -def main() { -# ANCHOR: example -val v0: i32 = 3; # Integer -val v1: f32 = 0.1; # Float -val v2: f32 = 10%; # Float (Percentage) -val v3: i32 = 100ms; # Duration -val v4: String = 2020-12-16T16:00:00; # DateTime -val v5: char = 'c'; # Character -val v6: String = "hello"; # String -val v7: String = "$v6 world"; # String (Interpolated) -val v8: #{x:i32, y:i32} = #{x:5, y:8}; # Record -val v9: Option[i32] = Option::Some(3); # Enum variant -val v10: [i32] = [1,2,3]; # Vector -val v11: fun(i32): i32 = fun(x:i32) = x; # Lambda function -# ANCHOR_END: example -} diff --git a/arc-lang/examples/values.arc.rust-tests b/arc-lang/examples/values.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/values.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/vector-patterns.arc b/arc-lang/examples/vector-patterns.arc deleted file mode 100644 index 3dd5a2c30..000000000 --- a/arc-lang/examples/vector-patterns.arc +++ /dev/null @@ -1,16 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -def main() { -# ANCHOR: example -# Pattern matching on vectors -val a = [1,2,3]; - -match a { - [1, ..] => 1, - [.., 3] => 3, - _ => 0 -}; -# ANCHOR_END: example -} diff --git a/arc-lang/examples/vector-patterns.arc.rust-tests b/arc-lang/examples/vector-patterns.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/vector-patterns.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/vectors.arc b/arc-lang/examples/vectors.arc deleted file mode 100644 index d386f30ef..000000000 --- a/arc-lang/examples/vectors.arc +++ /dev/null @@ -1,52 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -def main() { -# ANCHOR: example -val a: Array[i32] = [1, 2, 3]; - -val b: Array[i32] = array(); -b.push(1); -b.push(2); -b.push(3); - -assert(a[0u32] == b[0u32]); -assert(a[1u32] == b[1u32]); -assert(a[2u32] == b[2u32]); - -a[0u32] = 2; - -assert(a[0u32] == 2); -assert(a.get(0u32) == 2); - -# for x in a { -# assert(x != 0); -# } - -assert(a.len() ==u32 3u32); -assert(a.capacity() ==u32 3u32); -assert(not a.is_empty()); - -a.clear(); -assert(a.is_empty()); - -b.pop(); -assert(b.len() ==u32 2u32); - -val c = [1]; - -c.extend([2, 3]); -assert(c[0u32] == 1); -assert(c[1u32] == 2); -assert(c[2u32] == 3); - -c.remove(0u32); -assert(c[0u32] == 2); - -c.insert(0u32, 1); -assert(c[0u32] == 2); - -# ANCHOR_END: example -} - diff --git a/arc-lang/examples/vectors.arc.rust-tests b/arc-lang/examples/vectors.arc.rust-tests deleted file mode 100644 index a862eeb60..000000000 --- a/arc-lang/examples/vectors.arc.rust-tests +++ /dev/null @@ -1,4 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-lang/examples/wordcount.arc b/arc-lang/examples/wordcount.arc deleted file mode 100644 index 38b7e9456..000000000 --- a/arc-lang/examples/wordcount.arc +++ /dev/null @@ -1,22 +0,0 @@ -# XFAIL: * -# RUN: arc -o %t run %s -- -rustinclude %s.rust-tests -# RUN: arc -o %t-canon run %s -- -rustinclude %s.rust-tests -canonicalize - -# ANCHOR: example -def wordcount(lines) = - from line in lines, - word in line.split(" ") - group word - window 10m every 5m - compute count -# ANCHOR_END: example - -def main() { -# ANCOR: polymorphic -val df = DataFrame::read("/path/to/data.csv"); -val wc0 = wordcount(df); - -val s = Stream::read("localhost:8080"); -val wc1 = wordcount(s); -# ANCOR_END: polymorphic -} diff --git a/arc-lang/lib/dune b/arc-lang/lib/dune deleted file mode 100644 index e35f627ff..000000000 --- a/arc-lang/lib/dune +++ /dev/null @@ -1,2 +0,0 @@ -(library - (name arc_script_prototyping)) diff --git a/arc-lang/src/ast.ml b/arc-lang/src/ast.ml deleted file mode 100644 index 6cdbb9318..000000000 --- a/arc-lang/src/ast.ml +++ /dev/null @@ -1,220 +0,0 @@ -type ast = items -and name = string -and path = name list -and arms = arm list -and arm = pattern * expr -and params = param list -and param = pattern * ty option -and index = int -and 't fields = 't field list -and 't field = name * 't option -and 't record = 't fields * 't option -and port = name * ty -and variants = variant list -and variant = name * tys -and block = stmts * expr option -and generics = generic list -and generic = name - -and defname = - | DName of name - | DUnOp of unop - | DBinOp of binop - -and decorator = lit fields - -and items = item list -and item = - | IExternDef of decorator * defname * generics * tys * ty option - | IDef of decorator * defname * generics * params * ty option * block option - | ITask of decorator * defname * generics * params * params * block option - | IVal of decorator * name * ty option * expr - | IEnum of decorator * name * generics * variants - | IExternType of decorator * name * generics - | IClass of decorator * name * generics * decls - | IInstance of decorator * generics * path * tys * defs - | IMod of decorator * name * items - | ITypeAlias of decorator * name * generics * ty - | IUse of decorator * path * name option - -and decls = decl list -and decl = name * generics * params * ty option - -and defs = def list -and def = name * generics * params * ty option * block - -and patterns = pattern list -and pattern = - | PIgnore - | POr of pattern * pattern - | PRecord of pattern record - | PTuple of patterns - | PConst of lit - | PVar of name - | PUnwrap of path * patterns - -and tys = ty list -and ty = - | TFunc of tys * ty - | TTuple of tys - | TRecord of ty record - | TPath of path * tys - | TArray of ty - -and binop = - | BAdd of string option - | BAnd - | BBand - | BBor - | BBxor - | BDiv of string option - | BEq of string option - | BGeq of string option - | BGt of string option - | BLeq of string option - | BLt of string option - | BMod of string option - | BMul of string option - | BMut - | BNeq of string option - | BOr - | BPow of string option - | BSub of string option - | BXor - | BIn - | BRExc - | BRInc - | BBy - | BNotIn - -and unop = - | UNeg of string option - | UNot - -and int_suffix = string -and float_suffix = string -and lit = - | LInt of int * int_suffix option - | LFloat of float * float_suffix option - | LBool of bool - | LString of string - | LUnit - | LChar of char - -and stmts = stmt list -and stmt = - | SNoop - | SVal of param * expr - | SVar of (name * ty option) * expr - | SExpr of expr - -and exprs = expr list -and expr = - | EAccess of expr * name - | ECall of expr * exprs - | ECast of expr * ty - | EIf of expr * block * block option - | ELit of lit - | ELoop of block - | ERecord of expr record - | EReturn of expr option - | EBreak of expr option - | EContinue - (* NB: These expressions are desugared *) - | EBinOpRef of binop - | EUnOp of unop * expr - | EArray of exprs * expr option - | EBinOp of binop * expr * expr - | EBlock of block - | ECompr of expr * (pattern * expr) * clauses - | EFor of pattern * expr * block - | EFunc of params * block - | EIfVal of pattern * expr * block * block option - | EInvoke of expr * name * exprs - | EMatch of expr * arms - | EReceive of expr - | EEmit of expr * expr - | EOn of receivers - | EPath of path * tys - | EProject of expr * index - | ESelect of expr * expr - | ETask of params * block - | ETuple of exprs - | EFrom of scans * steps - | EAnon - | EWhile of expr * block - | EWhileVal of pattern * expr * block - -and receivers = receiver list -and receiver = pattern * expr * expr - -and clauses = clause list -and clause = - | CFor of pattern * expr - | CIf of expr - -and scans = scan list -and scan = pattern * scankind * expr -and scankind = - | ScIn - | ScEq - -and steps = step list -and step = - | SWhere of expr - | SJoin of scan * expr option - | SGroup of exprs * window option * reduces - | SOrder of (expr * ord) list - | SYield of expr - -and window = expr option * expr (* Step and Duration *) - -and reduces = reduce list -and reduce = expr * expr option (* Aggregation and Column *) - -and ord = - | OAsc - | ODesc - -let rec unop_name op = - match op with - | UNeg s -> suffixed "neg" s - | UNot -> "not" - -and suffixed x s = - match s with - | Some s -> Printf.sprintf "%s%s" x s - | None -> Printf.sprintf "%s" x - -and binop_name op = - match op with - | BAdd s -> suffixed "add" s - | BAnd -> "and" - | BBand -> "band" - | BBor -> "bor" - | BBxor -> "bxor" - | BDiv s -> suffixed "div" s - | BGeq s -> suffixed "geq" s - | BGt s -> suffixed "gt" s - | BLeq s -> suffixed "leq" s - | BLt s -> suffixed "lt" s - | BMod s -> suffixed "mod" s - | BMul s -> suffixed "mul" s - | BNeq s -> suffixed "neq" s - | BOr -> "or" - | BPow s -> suffixed "pow" s - | BSub s -> suffixed "sub" s - | BXor -> "xor" - | BIn -> "contains" - | BNotIn -> "not_contains" - | BRExc -> "rexc" - | BRInc -> "rinc" - | BEq s -> suffixed "eq" s - | BMut -> "mut" - | BBy -> "by" - -and def_name d = - match d with - | DName x -> x - | DBinOp op -> binop_name op - | DUnOp op -> unop_name op diff --git a/arc-lang/src/ast_to_hir.ml b/arc-lang/src/ast_to_hir.ml deleted file mode 100644 index 085bcf6b2..000000000 --- a/arc-lang/src/ast_to_hir.ml +++ /dev/null @@ -1,1153 +0,0 @@ -open Hir -open Table -open Utils - -type clause = eq list * subst list * Ast.expr -and subst = (name * name) -and eq = name * Ast.pattern - -module Ctx = struct - type t = { - table: Table.table; (* Table of top-level item declarations *) - next_def_uid: Gen.t; (* Function uid counter *) - next_type_uid: Gen.t; (* Type uid counter *) - next_generic_uid: Gen.t; (* Generic uid counter *) - next_expr_uid: Gen.t; (* Expression uid counter *) - vstack: vscope list; (* Stack of scopes for value parameters *) - gstack: gscope list; (* Stack of scopes for type parameters *) - path: path; (* Current path *) - hir: definition list; (* Final output of the lowering *) - then_clauses: clause list; (* Then-clauses created during pattern compilation *) - else_clauses: clause list; (* Else-clauses created during pattern compilation *) - astack: ascope list; (* Stack of anonymous variables *) - } - and vscope = { - vsubst: (name * (name * mut)) list; - stmts: Hir.ssa list; - } - and mut = - | MVar - | MVal - and gscope = { - gsubst: (name * name) list; - } - and ascope = { - avars: name list; - } - and definition = path * item - - let rec make table = { - table = table; - next_def_uid = Gen.make (); - next_type_uid = Gen.make (); - next_generic_uid = Gen.make (); - next_expr_uid = Gen.make (); - vstack = []; - gstack = []; - astack = []; - path = []; - hir = []; - then_clauses = []; - else_clauses = []; - } - - - and pr_subst (x, (a, _)) ctx = - Pretty.pr_name x ctx; - Pretty.pr " => "; - Pretty.pr_name a ctx - - and print_substs substs ctx = - Pretty.pr "Substs: "; - Pretty.pr_brack (Pretty.pr_list pr_subst substs) ctx - - and print_scopes scopes ctx = - match scopes with - | [] -> () - | scope::scopes -> - Pretty.pr "Scope:"; - let ctx = ctx |> Pretty.Ctx.indent in - ctx |> Pretty.pr_indent; - print_substs scope.vsubst ctx; - ctx |> Pretty.pr_indent; - print_scopes scopes ctx; - - and add_item xs i (ctx:t) = - { ctx with hir = (xs, i)::ctx.hir } - - and fresh_ts n (ctx:t) = - repeat fresh_t n ctx - - and fresh_t (ctx:t) = - let (n, next_type_uid) = ctx.next_type_uid |> Gen.fresh in - let ctx = { ctx with next_type_uid } in - let x = Printf.sprintf "%d" n in - let t = Hir.TVar x in - (t, ctx) - - and fresh_x (ctx:t) = - let (n, next_expr_uid) = ctx.next_expr_uid |> Gen.fresh in - let x = Printf.sprintf "x%d" n in - let ctx = { ctx with next_expr_uid; } in - (x, ctx) - - and fresh_f (ctx:t) = - let (n, next_def_uid) = ctx.next_def_uid |> Gen.fresh in - let x = Printf.sprintf "f%d" n in - let ctx = { ctx with next_def_uid; } in - ([x], ctx) - - and fresh_g (ctx:t) = - let (n, next_generic_uid) = ctx.next_generic_uid |> Gen.fresh in - let g = Printf.sprintf "T%d" n in - let ctx = { ctx with next_generic_uid; } in - (g, ctx) - - and add_expr e (ctx:t) = - let (t, ctx) = ctx |> fresh_t in - ctx |> add_typed_expr e t - - and add_named_expr e x (ctx:t) = - let (t, ctx) = ctx |> fresh_t in - let s = (x, t, e) in - let ctx = ctx |> add_stmt s in - (x, ctx) - - and add_typed_expr e t (ctx:t) = - let (x, ctx) = ctx |> fresh_x in - let s = (x, t, e) in - let ctx = ctx |> add_stmt s in - (x, ctx) - - and add_stmt (s:Hir.ssa) (ctx:t) = - match ctx.vstack with - | h::t -> { ctx with vstack = { h with stmts = s::h.stmts}::t } - | [] -> unreachable () - - and add_stmts s (ctx:t) = - match ctx.vstack with - | h::t -> { ctx with vstack = { h with stmts = s @ h.stmts}::t } - | [] -> unreachable () - - and push_vscope (ctx:t) = - { ctx with vstack = { stmts = []; vsubst = [] }::ctx.vstack } - - and pop_vscope (ctx:t) = - match ctx.vstack with - | {stmts; _}::vstack -> (stmts |> List.rev, { ctx with vstack }) - | [] -> unreachable () - - and push_gscope (ctx:t) = - { ctx with gstack = { gsubst = [] }::ctx.gstack } - - and pop_gscope (ctx:t) = - { ctx with gstack = ctx.gstack |> List.tl } - - and push_ascope (ctx:t) = - { ctx with astack = { avars = [] }::ctx.astack } - - and pop_ascope (ctx:t) = - let vs = (ctx.astack |> List.hd).avars in - let ctx = { ctx with astack = ctx.astack |> List.tl } in - (vs, ctx) - - and add_anon (ctx:t) = - let (x, ctx) = ctx |> fresh_x in - match ctx.astack with - | h::t -> - let ctx = { ctx with astack = { avars = x::h.avars}::t } in - (x, ctx) - | [] -> unreachable () - - (* Returns a name path *) - and item_path x ctx = - x::ctx.path |> List.rev - - and bind_vname v m (ctx:t) = - match ctx.vstack with - | hd::tl -> - let (v', ctx) = ctx |> fresh_x in - let vstack = { hd with vsubst = (v, (v', m))::hd.vsubst }::tl in - let ctx = { ctx with vstack } in - (v', ctx) - | [] -> unreachable () - - and bind_gname g (ctx:t) = - match ctx.gstack with - | hd::tl -> - let (g', ctx) = ctx |> fresh_g in - let gstack = { gsubst = (g, g')::hd.gsubst}::tl in - let ctx = { ctx with gstack } in - (g', ctx) - | [] -> unreachable () - - and rename_vname v v' (ctx:t) = - match ctx.vstack with - | hd::tl -> - let hd = { hd with vsubst = (v, v')::hd.vsubst } in - { ctx with vstack = hd::tl } - | [] -> unreachable () - - (* Finds a value variable *) - and find_vname v (ctx:t) = - ctx.vstack |> List.find_map (fun vscope -> vscope.vsubst |> List.assoc_opt v) - - (* Finds a generic variable *) - and find_gname g (ctx:t) = - ctx.gstack |> List.find_map (fun gscope -> gscope.gsubst |> List.assoc_opt g) - - and push_namespace name ctx = - let ctx = { ctx with path = name::ctx.path } in - (ctx.path |> List.rev, ctx) - - (* Annotates SSA with name v in current scope to have type t0 *) - and annotate v t0 ctx = - match ctx.vstack with - | [] -> unreachable () - | hd0::tl0 -> - let stmts = hd0.stmts |> List.map (fun (x, t1, e) -> - let t = if v = x then t0 else t1 in - (x, t, e) - ) in - { ctx with vstack = { hd0 with stmts}::tl0 } - - and pop_namespace ctx = { ctx with path = ctx.path |> List.tl } - - and add_then_clause c ctx = { ctx with then_clauses = c::ctx.then_clauses } - - and add_else_clause c ctx = { ctx with else_clauses = c::ctx.else_clauses } - - and take_clauses ctx = - let then_clauses = ctx.then_clauses |> List.rev in - let else_clauses = ctx.else_clauses |> List.rev in - let ctx = { ctx with then_clauses = []; else_clauses = [] } in - (then_clauses, else_clauses, ctx) - - and resolve_path path (ctx:t) = - let rec resolve_path xs (ctx:t) = - match ctx.table |> PathMap.find_opt xs with - | Some (DUse xs) -> ctx |> resolve_path xs - | Some (DItem decl) -> (xs, decl) - | None -> panic (Printf.sprintf "Path not found \"%s\"" (Pretty.path_to_str xs)) - in ctx |> resolve_path (path @ ctx.path) - - and resolve_type_path xs ts ctx = - let resolve_type_path xs ctx = - let (xs, decl) = ctx |> resolve_path xs in - match decl with - | DExternDef _ | DDef _ | DTask _ | DVariant _ | DGlobal | DMod -> unreachable () - | DTypeAlias (n, _gs, _t) -> - let (_ts, _ctx) = match List.length ts with - | m when m = 0 -> fresh_ts n ctx - | m when m = n -> (ts, ctx) - | m -> panic (Printf.sprintf "Type alias \"%s\" expects %d arguments, but %d were given" (Pretty.path_to_str xs) n m) - in - todo () - | DEnum n | DClass n | DExternType n -> - let (ts, ctx) = match List.length ts with - | m when m = 0 -> fresh_ts n ctx - | m when m = n -> (ts, ctx) - | m -> panic (Printf.sprintf "Type path \"%s\" has wrong number of type arguments, expected %d but found %d" (Pretty.path_to_str xs) n m) - in - (Hir.TNominal (xs, ts), ctx) - in - match xs with - | [x] when ts = [] -> - begin match ctx |> find_gname x with - | Some x -> (Hir.TGeneric x, ctx) - | None -> ctx |> resolve_type_path xs - end - | _ -> ctx |> resolve_type_path xs - - (* Resolves a path expression *) - and resolve_expr_path xs ts ctx = - let resolve_expr_path xs ctx = - let (xs, decl) = ctx |> resolve_path xs in - match decl with - | DEnum n | DClass n | DExternDef n | DExternType n | DTask n | DDef n -> - begin - let (ts, ctx) = match List.length ts with - | m when m = 0 -> fresh_ts n ctx - | m when m = n -> (ts, ctx) - | m -> panic (Printf.sprintf "Type path \"%s\" has wrong number of type arguments, expected %d but found %d" - (Pretty.path_to_str xs) n m - ) - in - ctx |> add_expr (Hir.EItem (xs, ts)) - end - | DGlobal -> - begin - match List.length ts with - | 0 -> ctx |> add_expr (Hir.EItem (xs, [])) - | _ -> panic (Printf.sprintf "Path \"%s\" has type arguments" (Pretty.path_to_str xs)) - end - | DMod | DVariant _ | DTypeAlias _ -> panic "Found non-expr item where expr was expected" - in - match xs with - | [x] when ts = [] -> - begin match ctx |> find_vname x with - | Some (v, MVal) -> (v, ctx) - | Some (v, MVar) -> get_cell v ctx - | None -> ctx |> resolve_expr_path xs - end - | _ -> ctx |> resolve_expr_path xs - - (* Returns set of currently visible variables *) - and visible ctx = - let rec visible vstack acc = - match vstack with - | h::t -> h.stmts |> List.fold_left (fun acc (v, _, _) -> v::acc) acc |> visible t - | [] -> acc |> List.rev - in - visible ctx.vstack [] - - (* Create a new cell *) - and new_cell v t ctx = - let (v_fun, ctx) = ctx |> add_expr (Hir.EItem (["cell"], [t])) in - ctx |> add_expr (Hir.ECall (v_fun, [v])) - - (* Retrieve the value from a cell *) - and get_cell v ctx = - let (t, ctx) = ctx |> fresh_t in - let (v_fun, ctx) = ctx |> add_expr (Hir.EItem (["get_cell"], [t])) in - ctx |> add_expr (Hir.ECall (v_fun, [v])) - - (* Update the value inside a cell *) - and set_cell v0 v1 ctx = - let (t, ctx) = ctx |> fresh_t in - let (v_fun, ctx) = ctx |> add_expr (Hir.EItem (["set_cell"], [t])) in - ctx |> add_expr (Hir.ECall (v_fun, [v0; v1])) - - (* Create an empty block *) - and empty_block ctx = - let ctx = ctx |> push_vscope in - let (v, ctx) = ctx |> add_expr (Hir.ELit Ast.LUnit) in - let (ss, ctx) = ctx |> pop_vscope in - ((ss, v), ctx) - - and make_array vs ctx = - let (t, ctx) = ctx |> fresh_t in - let (v_new, ctx) = ctx |> add_expr (Hir.EItem (["array"], [t])) in - let (v_push, ctx) = ctx |> add_expr (Hir.EItem (["push"], [t])) in - let (v0, ctx) = ctx |> add_expr (Hir.ECall (v_new, [])) in - let ctx = vs |> foldl (fun ctx v1 -> ctx |> add_expr (Hir.ECall (v_push, [v0; v1])) |> snd) ctx in - (v0, ctx) - - and append_array v0 v1 ctx = - let (t, ctx) = ctx |> fresh_t in - let (v_append, ctx) = ctx |> add_expr (Hir.EItem (["append"], [t])) in - ctx |> add_expr (Hir.ECall (v_append, [v0; v1])) - - and get_array v0 v1 ctx = - let (t, ctx) = ctx |> fresh_t in - let (v_fun, ctx) = ctx |> add_expr (Hir.EItem (["get"], [t])) in - ctx |> add_expr (Hir.ECall (v_fun, [v0; v1])) - - and replace_array v0 v1 v2 ctx = - let (t, ctx) = ctx |> fresh_t in - let (v_fun, ctx) = ctx |> add_expr (Hir.EItem (["replace"], [t])) in - ctx |> add_expr (Hir.ECall (v_fun, [v0; v1; v2])) - - and nominal x ts = Hir.TNominal ([x], ts) - - and generic x = Hir.TGeneric x -end - -let rec hir_of_ast table ast = - let ctx = Ctx.make table in - let ctx = ast |> List.fold_left (fun ctx i -> lower_item i ctx) ctx in - let hir = ctx.hir |> List.rev in - hir - -and lower_item i ctx = - match i with - | Ast.IVal (d, x, t, e) -> - let xs = ctx |> Ctx.item_path x in - let (t, ctx) = lower_type_or_fresh t ctx in - let ctx = ctx |> Ctx.push_vscope in - let (v, ctx) = lower_expr e ctx in - let (ss, ctx) = ctx |> Ctx.pop_vscope in - let b = (ss, v) in - ctx |> Ctx.add_item xs (Hir.IVal (d, t, b)) - | Ast.IEnum (d, x, gs, variants) -> - let xs = x::ctx.path |> List.rev in - let ctx = ctx |> Ctx.push_gscope in - let (gs, ctx) = gs |> mapm lower_generic ctx in - let (variants, ctx) = variants |> mapm (lower_variant xs) ctx in - let ctx = ctx |> Ctx.pop_gscope in - ctx |> Ctx.add_item xs (Hir.IEnum (d, gs, variants)) - | Ast.IExternDef (d, x, gs, ts, t) -> - let x = Ast.def_name x in - let xs = x::ctx.path |> List.rev in - let ctx = ctx |> Ctx.push_gscope in - let (gs, ctx) = gs |> mapm lower_generic ctx in - let (ts, ctx) = ts |> mapm lower_type ctx in - let (t, ctx) = lower_type_or_unit t ctx in - let ctx = ctx |> Ctx.pop_gscope in - ctx |> Ctx.add_item xs (Hir.IExternDef (d, gs, ts, t)) - | Ast.IExternType (d, x, gs) -> - let xs = x::ctx.path |> List.rev in - let ctx = ctx |> Ctx.push_gscope in - let (gs, ctx) = gs |> mapm lower_generic ctx in - let ctx = ctx |> Ctx.pop_gscope in - ctx |> Ctx.add_item xs (Hir.IExternType (d, gs)) - | Ast.IClass (d, x, gs, decls) -> - let xs = x::ctx.path |> List.rev in - let ctx = ctx |> Ctx.push_gscope in - let (gs, ctx) = gs |> mapm lower_generic ctx in - let ctx = decls |> foldl (lower_decl xs) ctx in - let ctx = ctx |> Ctx.pop_gscope in - ctx |> Ctx.add_item xs (Hir.IClass (d, gs)) - | Ast.IInstance (d, gs, xs, ts, defs) -> - let ctx = ctx |> Ctx.push_gscope in - let (gs, ctx) = gs |> mapm lower_generic ctx in - let ctx = defs |> foldl (lower_def xs) ctx in - let (ts, ctx) = ts |> mapm lower_type ctx in - let ctx = ctx |> Ctx.pop_gscope in - ctx |> Ctx.add_item xs (Hir.IInstance (d, gs, xs, ts)) - (* Declaration *) - | Ast.IDef (_, _, _, _, _, None) -> ctx - (* Definition *) - | Ast.IDef (d, x, gs, ps, t, Some b) -> - let x = Ast.def_name x in - let xs = x::ctx.path in - let ctx = ctx |> Ctx.push_gscope in - let ctx = ctx |> Ctx.push_vscope in - let (gs, ctx) = gs |> mapm lower_generic ctx in - let (ps, ctx) = ps |> mapm lower_param ctx in - let (t, ctx) = lower_type_or_fresh t ctx in - let ((ss0, v), ctx) = lower_block b ctx in - let (ss1, ctx) = ctx |> Ctx.pop_vscope in - let b = (ss1 @ ss0, v) in - let ctx = ctx |> Ctx.pop_gscope in - ctx |> Ctx.add_item xs (Hir.IDef (d, gs, ps, t, b)) - | Ast.ITask (_, _, _, _, _, None) -> ctx - | Ast.ITask (d, x, gs, ps0, ps1, Some b) -> - let x = Ast.def_name x in - let xs = x::ctx.path in - let ctx = ctx |> Ctx.push_gscope in - let ctx = ctx |> Ctx.push_vscope in - let (gs, ctx) = gs |> mapm lower_generic ctx in - let (ps0, ctx) = ps0 |> mapm lower_param ctx in - let (ps1, ctx) = ps1 |> mapm lower_param ctx in - - let ((ss0, v), ctx) = lower_block b ctx in - - let (ss1, ctx) = ctx |> Ctx.pop_vscope in - let ctx = ctx |> Ctx.pop_gscope in - let b = (ss1 @ ss0, v) in - ctx |> Ctx.add_item xs (Hir.ITask (d, gs, ps0, ps1, b)) - | Ast.ITypeAlias _ -> - todo () - | Ast.IMod (_, x, is) -> - let (_, ctx) = ctx |> Ctx.push_namespace x in - let ctx = is |> List.fold_left (fun ctx i -> lower_item i ctx) ctx in - let ctx = ctx |> Ctx.pop_namespace in - ctx - | Ast.IUse _ -> ctx - -and lower_decl _xs _ctx (_d:Ast.decl) = - todo () - -and lower_def _xs _ctx (_d:Ast.def) = - todo () - -and lower_variant xs (x, ts) (ctx:Ctx.t) = - let xs = x::xs |> List.rev in - let (t, ctx) = match ts with - | [] -> (unit_type, ctx) - | [t] -> lower_type t ctx - | ts -> - let (ts, ctx) = ts |> mapm lower_type ctx in - let fts = ts |> Hir.indexes_to_fields in - let t = fts |> fields_to_rows Hir.TRowEmpty in - (Hir.TRecord t, ctx) - in - (xs, ctx |> Ctx.add_item xs (Hir.IVariant t)) - -and lower_generic x (ctx:Ctx.t) = - let (x, ctx) = ctx |> Ctx.bind_gname x in - (x, ctx) - -and lower_param (p, t) (ctx:Ctx.t) = - let (x', ctx) = ctx |> Ctx.fresh_x in - let (t, ctx) = lower_type_or_fresh t ctx in - let ctx = match p with - | Ast.PVar x -> ctx |> Ctx.rename_vname x (x', MVal) - | _ -> lower_irrefutable_pat p t x' ctx - in - ((x', t), ctx) - -and lower_arg_expr (e:Ast.expr) ctx = - let ctx = ctx |> Ctx.push_ascope in - let ctx = ctx |> Ctx.push_vscope in - let (v, ctx) = lower_expr e ctx in - let (ss, ctx) = ctx |> Ctx.pop_vscope in - let (vs, ctx) = ctx |> Ctx.pop_ascope in - match vs with - | [] -> - let ctx = ctx |> Ctx.add_stmts (ss |> List.rev) in - (v, ctx) - | vs -> - let (ps, ctx) = vs |> mapm (fun v ctx -> - let (t, ctx) = ctx |> Ctx.fresh_t in - ((v, t), ctx) - ) ctx in - let (xs, ctx) = ctx |> Ctx.fresh_f in - let (t, ctx) = ctx |> Ctx.fresh_t in - let b = (ss, v) in - let i = Hir.IDef ([], [], ps, t, b) in - let ctx = ctx |> Ctx.add_item xs i in - ctx |> Ctx.add_expr (Hir.EItem (xs, [])) - - -and lower_call e es ctx = - let lower_call e (es:Ast.expr list) ctx = - let (v, ctx) = lower_expr e ctx in - let (vs, ctx) = es |> mapm lower_arg_expr ctx in - ctx |> Ctx.add_expr (Hir.ECall (v, vs)) - in - match e with - | Ast.EPath (xs, ts) -> - let resolve_call_path xs ctx = - begin match ctx |> Ctx.resolve_path xs with - | (xs, DVariant n) -> - let (ts, ctx) = match List.length ts with - | m when m = n -> ts |> mapm lower_type ctx - | m when m = 0 -> ctx |> Ctx.fresh_ts n - | m -> panic (Printf.sprintf "Variant path \"%s\" has wrong number of type arguments, expected %d but found %d" (Pretty.path_to_str xs) n m) - in - let (v, ctx) = - match es with - | [] -> - ctx |> Ctx.add_expr (Hir.ELit (Ast.LUnit)) - | [e] -> - lower_expr e ctx - | es -> - let (vs, ctx) = es |> mapm lower_expr ctx in - let fs = vs |> Hir.indexes_to_fields in - ctx |> Ctx.add_expr (Hir.ERecord fs) - in - ctx |> Ctx.add_expr (Hir.EEnwrap (xs, ts, v)) - | _ -> lower_call e es ctx - end - in - begin match xs with - | [x] when ts = [] -> - begin match ctx |> Ctx.find_vname x with - | Some (_, Ctx.MVal) -> lower_call e es ctx - | Some (v, Ctx.MVar) -> Ctx.get_cell v ctx - | None -> ctx |> resolve_call_path xs - end - | _ -> ctx |> resolve_call_path xs - end - | _ -> lower_call e es ctx - -and lower_expr_opt e (ctx:Ctx.t) = - match e with - | Some e -> lower_expr e ctx - | None -> ctx |> Ctx.add_expr (Hir.ELit Ast.LUnit) - -and lower_mut e0 e1 ctx = - let (v1, ctx) = lower_expr e1 ctx in - match e0 with - | Ast.EPath ([x], []) -> - begin match ctx |> Ctx.find_vname x with - | Some (v0, Ctx.MVar) -> ctx |> Ctx.set_cell v0 v1 - | Some (_, Ctx.MVal) -> panic "L-value is a value" - | None -> panic "Variable not bound" - end - | Ast.ESelect (e00, e01) -> - let (v00, ctx) = lower_expr e00 ctx in - let (v01, ctx) = lower_expr e01 ctx in - ctx |> Ctx.replace_array v00 v01 v1 - | Ast.EProject (e00, i) -> - let (v00, ctx) = lower_expr e00 ctx in - ctx |> Ctx.add_expr (Hir.EUpdate (v00, index_to_field i, v1)) - | Ast.EAccess (e00, x) -> - let (v00, ctx) = lower_expr e00 ctx in - ctx |> Ctx.add_expr (Hir.EUpdate (v00, x, v1)) - | _ -> panic "Expected variable, found path" - - -and lower_expr expr ctx = - match expr with - | Ast.EAnon -> - ctx |> Ctx.add_anon - | Ast.EBinOpRef op -> - let x = Ast.binop_name op in - ctx |> Ctx.add_expr (Hir.EItem ([x], [])) - | Ast.EAccess (e, x) -> - let (v, ctx) = lower_expr e ctx in - ctx |> Ctx.add_expr (Hir.EAccess (v, x)) - | Ast.EArray (es, e) -> - let (vs, ctx) = es |> mapm lower_expr ctx in - let (v0, ctx) = ctx |> Ctx.make_array vs in - begin match e with - | None -> - (v0, ctx) - | Some e -> - let (v1, ctx) = lower_expr e ctx in - ctx |> Ctx.append_array v0 v1 - end - | Ast.EBinOp (Ast.BMut, e0, e1) -> - lower_mut e0 e1 ctx - | Ast.EBinOp (Ast.BNotIn, e0, e1) -> - lower_expr (Ast.EUnOp (Ast.UNot, (Ast.EBinOp (Ast.BIn, e0, e1)))) ctx - | Ast.EBinOp (Ast.BNeq s, e0, e1) -> - lower_expr (Ast.EUnOp (Ast.UNot, (Ast.EBinOp (Ast.BEq s, e0, e1)))) ctx - | Ast.EBinOp (op, e0, e1) -> - let (v0, ctx) = lower_binop op ctx in - let (v1, ctx) = lower_expr e0 ctx in - let (v2, ctx) = lower_expr e1 ctx in - ctx |> Ctx.add_expr (Hir.ECall (v0, [v1; v2])) - | Ast.ECall (e, es) -> - lower_call e es ctx - | Ast.EInvoke (e, x, es) -> - let (v0, ctx) = lower_expr e ctx in - let (v1, ctx) = Ctx.resolve_expr_path [x] [] ctx in - let (vs, ctx) = es |> mapm lower_expr ctx in - ctx |> Ctx.add_expr (Hir.ECall (v1, v0::vs)) - | Ast.ECast (e, t) -> - let (v, ctx) = lower_expr e ctx in - let (t, ctx) = lower_type t ctx in - ctx |> Ctx.add_expr (Hir.ECast (v, t)) - | Ast.EIf (e, b0, b1) -> - let (v, ctx) = lower_expr e ctx in - let (b0, ctx) = lower_block b0 ctx in - let (b1, ctx) = lower_block_opt b1 ctx in - ctx |> Ctx.add_expr (Hir.EIf (v, b0, b1)) - | Ast.ELit l -> - lower_lit l ctx - | Ast.ELoop b -> - let (b, ctx) = lower_block b ctx in - ctx |> Ctx.add_expr (Hir.ELoop b) - | Ast.ESelect (e0, e1) -> - let (v0, ctx) = lower_expr e0 ctx in - let (v1, ctx) = lower_expr e1 ctx in - ctx |> Ctx.get_array v0 v1 - | Ast.ERecord (fs, _) -> - let (fs, ctx) = fs |> mapm lower_field_expr ctx in - ctx |> Ctx.add_expr (Hir.ERecord fs) - | Ast.EUnOp (op, e) -> - let (v0, ctx) = lower_unop op ctx in - let (v1, ctx) = lower_expr e ctx in - ctx |> Ctx.add_expr (Hir.ECall (v0, [v1])) - | Ast.EReturn e -> - let (v, ctx) = lower_expr_opt e ctx in - ctx |> Ctx.add_expr (Hir.EReturn v) - | Ast.EBreak e -> - let (v, ctx) = lower_expr_opt e ctx in - ctx |> Ctx.add_expr (Hir.EBreak v) - | Ast.EContinue -> - ctx |> Ctx.add_expr Hir.EContinue - (* Desugared expressions *) - | Ast.ETuple es -> - let (vs, ctx) = es |> mapm lower_expr ctx in - let fs = vs |> Hir.indexes_to_fields in - ctx |> Ctx.add_expr (Hir.ERecord fs) - | Ast.EProject (e, i) -> - let (v, ctx) = lower_expr e ctx in - ctx |> Ctx.add_expr (Hir.EAccess (v, Hir.index_to_field i)) - | Ast.EBlock b -> - let ((ss, v), ctx) = lower_block b ctx in - let ctx = ctx |> Ctx.add_stmts (ss |> List.rev) in - (v, ctx) - | Ast.EFunc (ps, e) -> -(* Pretty_ast.pr_expr e Pretty.Ctx.brief; *) -(* Ctx.print_scopes ctx.vstack Pretty.Ctx.brief; *) - lower_closure ps e ctx - | Ast.ETask (_ps, _b) -> - todo () -(* let (x, ctx) = ctx |> Ctx.fresh_x in *) -(* let (xs, ctx) = ctx |> Ctx.push_namespace x in *) -(* *) -(* let (ps, ctx) = ps |> mapm lower_param ctx in *) -(* let ctx = ctx |> Ctx.push_vscope in *) -(* let (v, ctx) = lower_block b ctx in *) -(* let (ss0, ctx) = ctx |> Ctx.pop_vscope in *) -(* let b = (ss0, v) in *) -(* *) -(* let ctx = ctx |> Ctx.pop_namespace in *) -(* let ctx = ctx |> Ctx.add_item xs (Hir.ITask ([], [], [], ps, b)) in *) -(* *) -(* let (v, ctx) = ctx |> Ctx.add_expr (Hir.EItem (xs, [])) in *) -(* ctx |> Ctx.add_expr (Hir.ECall (v, [])) *) - | Ast.EFor (_p, e, b) -> - let _p = todo () in - let (_v, ctx) = lower_expr e ctx in - let (_b, ctx) = lower_block b ctx in - (todo (), ctx) - | Ast.EWhile (e, b) -> - let ctx = ctx |> Ctx.push_vscope in - let (v0, ctx) = lower_expr e ctx in - (* Then-branch *) - let (b0, ctx) = lower_block b ctx in - (* Else-branch *) - let ctx = ctx |> Ctx.push_vscope in - let (v1, ctx) = ctx |> Ctx.add_expr (Hir.ELit Ast.LUnit) in - let (v1, ctx) = ctx |> Ctx.add_expr (Hir.EBreak v1) in - let (ss1, ctx) = ctx |> Ctx.pop_vscope in - let b1 = (ss1, v1) in - (* If-stmt *) - let (v2, ctx) = ctx |> Ctx.add_expr (Hir.EIf (v0, b0, b1)) in - let (ss2, ctx) = ctx |> Ctx.pop_vscope in - let b2 = (ss2, v2) in - ctx |> Ctx.add_expr (Hir.ELoop b2) - | Ast.EWhileVal _ -> - todo () - | Ast.EIfVal (p, e, b0, b1) -> - let (v, ctx) = lower_expr e ctx in - let e0 = Ast.EBlock b0 in - let e1 = match b1 with - | Some b1 -> Ast.EBlock b1 - | None -> Ast.ELit Ast.LUnit - in - let c0 = ([(v, p)], [], e0) in - let c1 = ([], [], e1) in - lower_clauses [c0; c1] ctx - | Ast.EMatch (e, arms) -> - let (v, ctx) = lower_expr e ctx in - let cs = Hir.arms_to_clauses arms v in - lower_clauses cs ctx - | Ast.EReceive e -> - let (v, ctx) = lower_expr e ctx in - ctx |> Ctx.add_expr (Hir.EReceive v) - | Ast.EEmit (e0, e1) -> - let (v0, ctx) = lower_expr e0 ctx in - let (v1, ctx) = lower_expr e1 ctx in - ctx |> Ctx.add_expr (Hir.EEmit (v0, v1)) - | Ast.EOn _ -> - todo () -(* let ctx = ctx |> Ctx.push_vscope in *) -(* let (rs, ctx) = rs |> mapm lower_receiver ctx in *) -(* let (ss, ctx) = ctx |> Ctx.pop_vscope in *) -(* let ctx = ctx |> Ctx.add_stmts (ss |> List.rev) in *) -(* (v2, ctx) *) - | Ast.EPath (xs, ts) -> - let (ts, ctx) = ts |> mapm lower_type ctx in - ctx |> Ctx.resolve_expr_path xs ts - | Ast.ECompr _ -> - todo () - | Ast.EFrom _ -> - todo () - -and lower_receiver (p, e0, e1) ctx = - let (v0, ctx) = lower_expr e0 ctx in - let ctx = ctx |> Ctx.push_vscope in - let (t, ctx) = ctx |> Ctx.fresh_t in - let ctx = lower_irrefutable_pat p t v0 ctx in - let (v1, ctx) = lower_expr e1 ctx in - let (ss, ctx) = ctx |> Ctx.pop_vscope in - (v0, (ss, v1), ctx) - -and lower_unop op ctx = - let x = Ast.unop_name op in - ctx |> Ctx.add_expr (Hir.EItem ([x], [])) - -and lower_compr_clauses cs e0 ctx = - match cs with - | c::cs -> - begin match c with - | Ast.CFor (p, e1) -> - let ctx = ctx |> Ctx.push_vscope in - let (x, ctx) = lower_expr e1 ctx in - let (t, ctx) = ctx |> Ctx.fresh_t in - let ctx = lower_irrefutable_pat p t x ctx in - let ((ss0, v), ctx) = lower_compr_clauses cs e0 ctx in - let (ss1, ctx) = ctx |> Ctx.pop_vscope in - let ss = ss0 @ ss1 in - ((ss, v), ctx) - | Ast.CIf e1 -> - let (v, ctx) = lower_expr e1 ctx in - let ctx = ctx |> Ctx.push_vscope in - let ((ss0, v0), ctx) = lower_compr_clauses cs e0 ctx in - let (ss1, ctx) = ctx |> Ctx.pop_vscope in - let b0 = (ss0 @ ss1, v0) in - let (b1, ctx) = lower_block_opt None ctx in - let (v, ctx) = ctx |> Ctx.add_expr (Hir.EIf (v, b0, b1)) in - (([], v), ctx) - end - | [] -> - let (v, ctx) = lower_expr e0 ctx in - (([], v), ctx) - -and lower_field_expr (x, e) (ctx:Ctx.t) = - match e with - | Some e -> - let (v, ctx) = lower_expr e ctx in - ((x, v), ctx) - | None -> - match ctx |> Ctx.find_vname x with - | Some (v, MVal) -> ((x, v), ctx) - | Some (v, MVar) -> - let (v, ctx) = Ctx.get_cell v ctx in - ((x, v), ctx) - | None -> panic "Name not found" - -and lower_field_type (x, t) (ctx:Ctx.t) = - match t with - | Some t -> - let (t, ctx) = lower_type t ctx in - ((x, t), ctx) - | None -> - let (t, ctx) = ctx |> Ctx.fresh_t in - ((x, t), ctx) - -and lower_type_or_fresh t (ctx:Ctx.t) = - match t with - | Some t -> lower_type t ctx - | None -> ctx |> Ctx.fresh_t - -and unit_type = Hir.TNominal (["unit"], []) - -and lower_type_or_unit t (ctx:Ctx.t) = - match t with - | Some t -> lower_type t ctx - | None -> (unit_type, ctx) - -and lower_type t (ctx:Ctx.t) = - match t with - | Ast.TFunc (ts, t) -> - let (ts, ctx) = ts |> mapm lower_type ctx in - let (t, ctx) = lower_type t ctx in - (Hir.TFunc (ts, t), ctx) - | Ast.TTuple ts -> - let (ts, ctx) = ts |> mapm lower_type ctx in - let fs = ts |> Hir.indexes_to_fields in - let t = fs |> fields_to_rows Hir.TRowEmpty in - (Hir.TRecord t, ctx) - | Ast.TRecord (fs, t) -> - let (fs, ctx) = fs |> mapm lower_field_type ctx in - let (t, ctx) = match t with - | Some t -> lower_type t ctx - | None -> (Hir.TRowEmpty, ctx) - in - let t = fs |> fields_to_rows t in - (Hir.TRecord t, ctx) - | Ast.TPath (xs, ts) -> - let (ts, ctx) = ts |> mapm lower_type ctx in - ctx |> Ctx.resolve_type_path xs ts - | Ast.TArray t -> - let (t, ctx) = lower_type t ctx in - (Hir.TNominal (["Array"], [t]), ctx) - -(* Lowers an irrefutable pattern matching on variable v, e.g., val p = v; *) -and lower_irrefutable_pat p t v ctx = - match p with - | Ast.PIgnore -> ctx - | Ast.POr _ -> panic "Found refutable pattern" - | Ast.PRecord (pfs, _tail) -> - pfs |> List.fold_left (fun ctx (x, p) -> - let (v, ctx) = ctx |> Ctx.add_typed_expr (Hir.EAccess (v, x)) t in - let (t, ctx) = ctx |> Ctx.fresh_t in - match p with - | Some p -> lower_irrefutable_pat p t v ctx - | None -> - let (_, ctx) = ctx |> Ctx.bind_vname x MVal in - ctx - ) ctx - | Ast.PTuple ps -> - let (_, ctx) = ps |> List.fold_left (fun (i, ctx) p -> - let x = Hir.index_to_field i in - let (v, ctx) = ctx |> Ctx.add_typed_expr (Hir.EAccess (v, x)) t in - let (t, ctx) = ctx |> Ctx.fresh_t in - (i+1, lower_irrefutable_pat p t v ctx) - ) (0, ctx) in - ctx - | Ast.PConst _ -> panic "Found refutable pattern" - | Ast.PVar x -> - let (_, ctx) = ctx |> Ctx.bind_vname x MVal in - ctx - | Ast.PUnwrap _ -> panic "Found refutable pattern" (* TODO: Might be irrefutable *) - -and branching_heuristic (eqs, _, _) cs = - eqs - |> List.map (fun (x, _) -> x) - |> max_by (fun x -> cs - |> List.filter (fun (eqs, _, _) -> eqs - |> List.assoc_opt x - |> Option.is_some)) - -and create_fresh_evs ctx l = - let (l, ctx) = l |> List.fold_left (fun (l, ctx) _ -> - let (x, ctx) = ctx |> Ctx.fresh_x in - (x::l, ctx) - ) ([], ctx) in - (l |> List.rev, ctx) - -and compatible fs0 fs1 = - let xs0 = fs0 |> List.map (fun (x, _) -> x) |> List.sort String.compare in - let xs1 = fs1 |> List.map (fun (x, _) -> x) |> List.sort String.compare in - List.combine xs0 xs1 |> List.for_all (fun (x0, x1) -> x0 = x1) - -and fields_to_patterns fs = - fs |> List.map (function - | (_, Some p) -> p - | (x, None) -> Ast.PVar x - ) - -(* Unfold field accesses in the current block *) -and simplify_record (eqs, substs, ctx) v fs = - fs |> List.fold_left (fun (eqs, substs, ctx) (x, p) -> - match p with - | Some p -> - let (v, ctx) = ctx |> Ctx.add_expr (Hir.EAccess (v, x)) in - simplify_eq (eqs, substs, ctx) (v, p) - | None -> - let (v, ctx) = ctx |> Ctx.add_expr (Hir.EAccess (v, x)) in - simplify_eq (eqs, substs, ctx) (v, Ast.PVar x) - ) (eqs, substs, ctx) - -and simplify_tuple (eqs, substs, ctx) v ps = - let fs = ps |> List.map (fun p -> Some p) |> Hir.indexes_to_fields in - simplify_eq (eqs, substs, ctx) (v, Ast.PRecord (fs, None)) - -(* and simplify_or (eqs, substs, ctx) cs p0 p1 = *) -(* let (v0, ctx) = ctx |> Ctx.fresh_x in *) -(* let (v1, ctx) = ctx |> Ctx.fresh_x in *) -(* let eqs0 = (v0, p0)::eqs in *) -(* let eqs1 = (v1, p1)::eqs in *) -(* let cs = (eqs0, substs, e)::(eqs1, substs, e)::(cs |> List.tl) in *) -(* lower_clauses cs ctx *) - -(* Simplifies an equation such that it only contains refutable patterns. *) -and simplify_eq ((eqs, substs, ctx) as acc) (v, p) = - match p with - | Ast.PVar x -> (eqs, (x, v)::substs, ctx) (* Substitute *) - | Ast.PIgnore -> acc (* Ignore completely *) - | Ast.PRecord (fs, _tail) -> simplify_record acc v fs - | Ast.PTuple ps -> simplify_tuple acc v ps - | Ast.POr (_p0, _p1) -> todo () - (* Refutable patterns are not simplified *) - | Ast.PConst _ | Ast.PUnwrap _ -> ((v, p)::eqs, substs, ctx) - -and simplify_clause (eqs, substs, e) ctx = - let (eqs', substs', ctx) = eqs |> List.fold_left simplify_eq ([], [], ctx) in - let eqs' = eqs' |> List.rev in - let substs' = substs' |> List.rev |> List.append substs in - ((eqs', substs', e), ctx) - -and simplify_clauses cs ctx = - cs |> mapm simplify_clause ctx - -(* Returns true if xs0 and xs1 are variants of the same enum *) -and same_enum xs0 xs1 = - match xs0, xs1 with - | [_], [_] -> true - | h0::t0, h1::t1 -> - if h0 = h1 then - same_enum t0 t1 - else - false - | _ -> false - -and branch_variant branching_v xs0 cs ctx : (var * Ctx.t) = - let (xs0, decl) = ctx |> Ctx.resolve_path xs0 in - let (ts0, ctx) = fresh_variant_ts decl ctx in - (* Create fresh variable for the inner pattern *) - let (v, ctx) = ctx |> Ctx.fresh_x in - let (t, ctx) = ctx |> Ctx.fresh_t in - let ctx = cs |> List.fold_left (fun ctx ((eqs, substs, e) as c) -> - match eqs |> List.assoc_opt branching_v with - | Some Ast.PUnwrap (xs1, ps1) -> - let (xs1, _) = ctx |> Ctx.resolve_path xs1 in - if xs0 = xs1 then - (* Push clauses with equivalent pattern matches on the branching - * variable to the then-branch *) - let eqs = eqs |> List.remove_assoc branching_v in - let p = match ps1 with - | [] -> todo () - | [p] -> p - | ps -> Ast.PTuple ps - in - let eqs = (v, p)::eqs in - ctx |> Ctx.add_then_clause (eqs, substs, e) - else - if same_enum xs0 xs1 then - (* Push clauses with other pattern matches on the branching - * variable to the else-branch *) - ctx |> Ctx.add_else_clause c - else - panic "Branching on different enums" - | None -> - (* Clauses which do not match on the branching variable are be - * pushed to both branches *) - ctx |> Ctx.add_then_clause c - |> Ctx.add_else_clause c - | _ -> panic "Branching on different patterns" - ) ctx in - let (then_cs, else_cs, ctx) = ctx |> Ctx.take_clauses in - - (* Create then-branch *) - let ctx = ctx |> Ctx.push_vscope in - let (then_v, ctx) = lower_clauses then_cs ctx in - let (then_ss, ctx) = ctx |> Ctx.pop_vscope in - let then_b = ((v, t, EUnwrap (xs0, ts0, branching_v))::then_ss, then_v) in - - (* Create else-branch *) - let ctx = ctx |> Ctx.push_vscope in - let (else_v, ctx) = lower_clauses else_cs ctx in - let (else_ss, ctx) = ctx |> Ctx.pop_vscope in - let else_b = (else_ss, else_v) in - - let (v, ctx) = ctx |> Ctx.add_expr (Hir.EIs (xs0, ts0, branching_v)) in - let (v, ctx) = ctx |> Ctx.add_expr (Hir.EIf (v, then_b, else_b)) in - (v, ctx) - -and fresh_variant_ts decl ctx = - match decl with - | Table.DVariant n -> Ctx.fresh_ts n ctx - | _ -> unreachable () - -(* Branch clauses on a head clause c *) -and branch_clauses ((eqs, _, _) as c) cs ctx = - (* Get the variable in the first clause which occurs in the most equations *) - let branching_v = branching_heuristic c cs in - (* Find the pattern *) - match eqs |> List.assoc branching_v with - (* Irrefutable top-level patterns are eliminated earlier through simplify_clauses *) - | Ast.PVar _ | Ast.PIgnore | Ast.PRecord _ | Ast.PTuple _ | Ast.POr _ -> unreachable () - | Ast.PConst _l -> todo () - | Ast.PUnwrap (xs, _) -> branch_variant branching_v xs cs ctx - -and lower_clauses cs ctx : (var * Ctx.t) = - if cs = [] then panic "Non-exhaustive match"; - let (cs, ctx) = simplify_clauses cs ctx in - (* First clause has precedence over others *) - let (eqs, substs, e) as c = cs |> List.hd in - if eqs = [] then - (* This pattern equation is now solved *) - let ctx = substs |> List.fold_left (fun ctx (x, v) -> ctx |> Ctx.rename_vname x (v, MVal)) ctx in - (* TODO: Duplication leads to duplicated lowerings, we might need sharing. *) - lower_expr e ctx - else - branch_clauses c cs ctx - -and lower_stmt s (ctx:Ctx.t) = - match s with - | Ast.SNoop -> ctx - | Ast.SVal ((p, t), e) -> - let (v, ctx) = lower_expr e ctx in - let (t, ctx) = lower_type_or_fresh t ctx in - (* One of the few places where we need to type-annotate *) - let ctx = ctx |> Ctx.annotate v t in - begin match p with - | Ast.PVar x -> ctx |> Ctx.rename_vname x (v, MVal) - | _ -> lower_irrefutable_pat p t v ctx - end - | Ast.SVar ((x, t), e) -> - let (v, ctx) = lower_expr e ctx in - let (t, ctx) = lower_type_or_fresh t ctx in - let (v, ctx) = ctx |> Ctx.new_cell v t in - ctx |> Ctx.rename_vname x (v, MVar) - | Ast.SExpr e -> - let (_, ctx) = lower_expr e ctx in - ctx - -and lower_block_opt b (ctx:Ctx.t) = - match b with - | Some b -> - lower_block b ctx - | None -> - ctx |> Ctx.empty_block - -and lower_block (ss, e) (ctx:Ctx.t) = - let ctx = ctx |> Ctx.push_vscope in - let ctx = ss |> List.fold_left (fun ctx s -> lower_stmt s ctx) ctx in - let (v, ctx) = lower_expr_opt e ctx in - let (ss, ctx) = ctx |> Ctx.pop_vscope in - ((ss, v), ctx) - -and lower_binop op (ctx:Ctx.t) = - let x = Ast.binop_name op in - ctx |> Ctx.add_expr (Hir.EItem ([x], [])) - -and splice_regex = (Str.regexp "\\${[^}]+}\\|\\$[a-zA-Z_][a-zA-Z0-9_]*") - -and str_to_string s ctx = - let (v0, ctx) = ctx |> Ctx.add_expr (Hir.ELit (Ast.LString s)) in - let (v1, ctx) = ctx |> Ctx.add_expr (Hir.EItem (["from_str"], [])) in - let (v, ctx) = ctx |> Ctx.add_expr (Hir.ECall (v1, [v0])) in - (v, ctx) - -and lower_lit l (ctx:Ctx.t) = - match l with - (* Lower interpolated string literals *) - | Ast.LString s -> - let (vs, ctx) = s |> Str.full_split splice_regex - |> mapm (fun s ctx -> - match s with - | Str.Text s -> - str_to_string s ctx - | Str.Delim s -> - let s = String.sub s 1 ((String.length s) - 1) in - let e = Parser.expr Lexer.main (Lexing.from_string s) in - let ctx = ctx |> Ctx.push_vscope in - let (v0, ctx) = lower_expr e ctx in - let (ss, ctx) = ctx |> Ctx.pop_vscope in - let ctx = ctx |> Ctx.add_stmts ss in - let (v1, ctx) = ctx |> Ctx.add_expr (Hir.EItem (["to_string"], [])) in - ctx |> Ctx.add_expr (Hir.ECall (v1, [v0])) - ) ctx in - begin match vs with - | v::vs -> - vs |> List.fold_left (fun (v1, ctx) v2 -> - let (v0, ctx) = ctx |> Ctx.add_expr (Hir.EItem (["concat"], [])) in - ctx |> Ctx.add_expr (Hir.ECall (v0, [v1; v2])) - ) (v, ctx) - | [] -> str_to_string s ctx - end - | _ -> ctx |> Ctx.add_expr (Hir.ELit l) - -and lower_closure ps e (ctx:Ctx.t) = - - (* Compile the block body *) - let ctx = ctx |> Ctx.push_vscope in - let (ps, ctx) = ps |> mapm lower_param ctx in - let ((ss0, v0), ctx) = lower_block e ctx in - let (ss1, ctx) = ctx |> Ctx.pop_vscope in - - let fvs = Hir.free_vars ps (ss0, v0) |> Hir.indexes_to_fields in - - (* Create an extra function parameter for the environment *) - let (v, ctx) = ctx |> Ctx.fresh_x in - let (t, ctx) = ctx |> Ctx.fresh_t in - let p = (v, t) in - let ps = ps @ [p] in - - (* Create code for unpacking the closure record and its into parameters inside the function *) - let (ss2, ctx) = lambda_unpack v fvs ctx in - let b1 = (ss2 @ ss1 @ ss0, v0) in - - (* Create the function *) - let (xs, ctx) = ctx |> Ctx.fresh_f in - let (t, ctx) = ctx |> Ctx.fresh_t in - let ctx = ctx |> Ctx.add_item xs (Hir.IDef ([], [], ps, t, b1)) in - - (* Create the function pointer *) - let (v, ctx) = ctx |> Ctx.add_expr (Hir.EItem (xs, [])) in - - (* Create code for packing the function-pointer + free variables into a record outside the function *) - lambda_pack v fvs ctx - -(* Call a closure by getting the function pointer and passing in the record as an extra parameter *) -and lambda_call v0 vs ctx = - let (v1, ctx) = ctx |> Ctx.add_expr (Hir.EAccess (v0, "f")) in - let (v2, ctx) = ctx |> Ctx.add_expr (Hir.EAccess (v0, "r")) in - let (v3, ctx) = ctx |> Ctx.add_expr (Hir.ECall (v1, vs @ [v2])) in - (v3, ctx) - -(* Lift a closure into a top-level function. *) -(* Need to lift all variables inside the closure which are defined outside the closure *) -and lambda_pack v0 fvs ctx = - let (v1, ctx) = ctx |> Ctx.add_expr (Hir.ERecord fvs) in - let (v2, ctx) = ctx |> Ctx.add_expr (Hir.ERecord [("f", v0); ("r", v1)]) in - (v2, ctx) - -and lambda_unpack v0 fvs ctx = - let ctx = ctx |> Ctx.push_vscope in - let ctx = fvs |> foldl (fun ctx (x, v1) -> - ctx |> Ctx.add_named_expr (Hir.EAccess (v0, x)) v1 |> snd - ) ctx in - ctx |> Ctx.pop_vscope diff --git a/arc-lang/src/debug.ml b/arc-lang/src/debug.ml deleted file mode 100644 index 27ee29905..000000000 --- a/arc-lang/src/debug.ml +++ /dev/null @@ -1,4 +0,0 @@ -type t = - | Silent - | Brief - | Verbose diff --git a/arc-lang/src/declare.ml b/arc-lang/src/declare.ml deleted file mode 100644 index 4bf724d1c..000000000 --- a/arc-lang/src/declare.ml +++ /dev/null @@ -1,64 +0,0 @@ -open Table -open Ast -open Utils - -module Ctx = struct - type t = { - table: Table.table - } - let make = { - table = PathMap.empty - } -end - -(* [declare] takes an ast and returns a list of top-level declarations *) -let rec declare ast = - let ctx = Ctx.make in - let (ctx:Ctx.t) = declare_items ast [] ctx in - ctx.table - -(* TODO: Check for duplicate items *) -and add_decl (xs, d0) (ctx:Ctx.t) : Ctx.t = - let table = ctx.table |> PathMap.update (xs |> List.rev) (function - | Some _ -> Some d0 - | None -> Some d0) - in { table } - -and declare_items is xs ctx = - is |> List.fold_left (fun ctx i -> ctx |> declare_item i xs) ctx - -and declare_item i xs ctx = - match i with - | IVal (_, x, _, _) -> - add_decl (x::xs, DItem DGlobal) ctx - | IEnum (_, x, gs, vs) -> - let xs = x::xs in - let arity = (gs |> List.length) in - let ctx = ctx |> add_decl (xs, DItem (DEnum arity)) in - vs |> List.fold_left (fun ctx (x, _) -> ctx |> add_decl (x::xs, DItem (DVariant arity))) ctx - | IExternDef (_, d, gs, _, _) -> - let x = Ast.def_name d in - add_decl (x::xs, DItem (DExternDef (List.length gs))) ctx - | IExternType (_, x, gs) -> - add_decl (x::xs, DItem (DExternType (List.length gs))) ctx - | IDef (_, d, gs, _, _, _) -> - let x = Ast.def_name d in - add_decl (x::xs, DItem (DDef (List.length gs))) ctx - | IClass (_, x, gs, ds) -> - let ctx = ctx |> add_decl (x::xs, DItem (DClass (List.length gs))) in - ds |> foldl (fun ctx (x, gs, _, _) -> add_decl (x::xs, DItem (DDef (List.length gs))) ctx) ctx - | IInstance _ -> ctx - | ITask (_, d, gs, _, _, _) -> - let x = Ast.def_name d in - let xs = x::xs in - let arity = List.length gs in - add_decl (xs, DItem (DTask arity)) ctx - | ITypeAlias (_, x, gs, t) -> - add_decl (x::xs, DItem (DTypeAlias (List.length gs, gs, t))) ctx - | IMod (_, x, is) -> - let ctx = add_decl (x::xs, DItem DMod) ctx in - let xs = x::xs in - is |> List.fold_left (fun ctx i -> declare_item i xs ctx) ctx - | IUse (_, xs, alias) -> match alias with - | Some x -> add_decl (x::xs, DUse xs) ctx - | None -> add_decl ((List.hd xs)::xs, DUse xs) ctx diff --git a/arc-lang/src/dune b/arc-lang/src/dune deleted file mode 100644 index 129e6049f..000000000 --- a/arc-lang/src/dune +++ /dev/null @@ -1,9 +0,0 @@ -(executable - (name main) - (public_name main) - (libraries core str)) -(ocamllex lexer) -(menhir - (merge_into parser) - (modules tokens parser) - (flags --external-tokens Token)) diff --git a/arc-lang/src/gen.ml b/arc-lang/src/gen.ml deleted file mode 100644 index 99a0f6611..000000000 --- a/arc-lang/src/gen.ml +++ /dev/null @@ -1,12 +0,0 @@ -type t = { - next: int; -} - -let make () = { - next = 0; -} - -and fresh (gen:t) = - let i = gen.next in - let gen = { next = i + 1; } in - (i, gen) diff --git a/arc-lang/src/hir.ml b/arc-lang/src/hir.ml deleted file mode 100644 index dbba3b0b2..000000000 --- a/arc-lang/src/hir.ml +++ /dev/null @@ -1,224 +0,0 @@ -open Utils - -type hir = (path * item) list - -and name = string -and paths = path list -and path = name list -and params = param list -and param = name * ty -and 't fields = 't field list -and 't field = name * 't -and ssas = ssa list -and ssa = var * ty * expr -and vars = var list -and var = name -and generics = generic list -and generic = name -and block = ssas * var -and interface = path * tys -and decorator = Ast.decorator -and item = - | IVal of decorator * ty * block - | IEnum of decorator * generics * paths - | IExternDef of decorator * generics * tys * ty - | IExternType of decorator * generics - | IDef of decorator * generics * params * ty * block - | IClassDecl of decorator * path * generics * params * ty - | IInstanceDef of decorator * path * generics * params * ty * block - | IClass of decorator * generics - | IInstance of decorator * generics * path * tys - | ITask of decorator * generics * params * params * block - | ITypeAlias of decorator * generics * ty - | IVariant of ty - -and tys = ty list -and ty = - | TFunc of tys * ty - | TRecord of ty - | TRowEmpty - | TRowExtend of ty field * ty - | TNominal of path * tys - | TGeneric of name - | TVar of name - -and expr = - | EAccess of var * name - | EUpdate of var * name * var - | ECall of var * vars - | ECast of var * ty - | EEnwrap of path * tys * var - | EIf of var * block * block - | EIs of path * tys * var - | ELit of Ast.lit - | ELoop of block - | EEmit of var * var - | EReceive of var - | EOn of receivers - | ERecord of var fields - | EUnwrap of path * tys * var - | EReturn of var - | EBreak of var - | EContinue - | EItem of path * tys - -and receivers = receiver list -and receiver = var * var * block - -let nominal xs gs = TNominal (xs, gs) - -and atom x = TNominal ([x], []) - -and parent xs = xs |> rev |> tl |> rev - -(* Map types *) -let rec tmap_def f (ps, t, b) = - let ps = ps |> tmap_params f in - let t = t |> f in - let b = b |> tmap_block f in - (ps, t, b) - -and tmap_task f (ps0, ps1, b) = - let ps0 = ps0 |> tmap_params f in - let ps1 = ps1 |> tmap_params f in - let b = b |> tmap_block f in - (ps0, ps1, b) - -and tmap_interface f (xs, ts) = - let ts = ts |> map f in - (xs, ts) - -and tmap_block f (ss, v) = - let ss = ss |> map (tmap_ssa f) in - (ss, v) - -and tmap_ssa f (v, t, e) = - let t = t |> f in - let e = e |> tmap_expr f in - (v, t, e) - -and tmap_expr f e = - match e with - | EIf (v, b0, b1) -> EIf (v, b0 |> tmap_block f, b1 |> tmap_block f) - | ELoop b -> ELoop (b |> tmap_block f) - | EEnwrap (xs, ts, v) -> EEnwrap (xs, ts |> map f, v) - | EUnwrap (xs, ts, v) -> EUnwrap (xs, ts |> map f, v) - | EIs (xs, ts, v) -> EIs (xs, ts |> map f, v) - | _ -> e - -and tmap_params f ps = - ps |> map (fun (x, t) -> (x, t |> f)) - -(* Map SSAs *) -let rec smap_item f i = - match i with - | IDef (a, gs, ps, t, b) -> IDef (a, gs, ps, t, b |> smap_block f) - | ITask (a, gs, ps0, ps1, b) -> ITask (a, gs, ps0, ps1, b |> smap_block f) - | _ -> i - -and smap_def f (ps, t, b) = - let b = b |> smap_block f in - (ps, t, b) - -and smap_task f (ps, ts0, ts1, b) = - let b = b |> smap_block f in - (ps, ts0, ts1, b) - -and smap_block f (ss, v) = - let ss = ss |> map f in - (ss, v) - -and smap_expr f e = - match e with - | EIf (v, b0, b1) -> EIf (v, b0 |> smap_block f, b1 |> smap_block f) - | ELoop b -> ELoop (b |> smap_block f) - | _ -> e - -(* Conversions *) - -let index_to_field i = Printf.sprintf "_%d" i - -let indexes_to_fields is = - is |> List.fold_left (fun (l, c) v -> ((index_to_field c, v)::l, c+1)) ([], 0) - |> fst - |> List.rev - -let arms_to_clauses arms v = - arms |> List.map (fun (p, e) -> ([(v, p)], [], e)) - -(* t is the tail, which could either be a Hir.TVar or Hir.TRowEmpty *) -let fields_to_rows t fs = - fs |> List.fold_left (fun t f -> TRowExtend (f, t)) t - -(* Converts a list [v0; v1; ..; vn] into [("_0", v0); ("_1", v1); ...; ("_n", vn)] *) -let indexes_to_rows t is = - is |> indexes_to_fields |> fields_to_rows t - -(* Calculates the free variables of a block `b` parameterized by `ps` *) -and free_vars ps b = - - (* Variables which are not free *) - let vs = ps |> map (fun (v, _) -> v) in - - let is_free v scopes = not (scopes |> exists (mem v)) in - - let fv_var v (scopes, acc) = - if is_free v scopes then - (scopes, v::acc) - else - (scopes, acc) - in - - let fv_vars vs ctx = vs |> foldl (fun ctx v -> fv_var v ctx) ctx in - - let push_scope (scopes, acc) = ([]::scopes, acc) in - let pop_scope (scopes, acc) = (tl scopes, acc) in - - let def_var v (scopes, acc) = - match scopes with - | h::t -> ((v::h)::t, acc) - | _ -> unreachable () - in - - let rec fv_block (ss, v) ctx = - let ctx = ctx |> push_scope in - let ctx = ss |> foldl (fun ctx (v, _, e) -> fv_expr e (def_var v ctx)) ctx in - let ctx = ctx |> fv_var v in - let ctx = ctx |> pop_scope in - ctx - - and fv_receiver ctx (x, v, b) = - let ctx = ctx |> push_scope in - let ctx = ctx |> fv_var v in - let ctx = ctx |> def_var x in - let ctx = fv_block b ctx in - let ctx = ctx |> pop_scope in - ctx - - and fv_expr e ctx = - match e with - | EAccess (v, _) -> ctx |> fv_var v - | EUpdate (v0, _, v1) -> ctx |> fv_var v0 |> fv_var v1 - | ECall (v, vs) -> ctx |> fv_var v |> fv_vars vs - | ECast (v, _) -> ctx |> fv_var v - | EEmit (v0, v1) -> ctx |> fv_var v0 |> fv_var v1 - | EEnwrap (_, _, v) -> ctx |> fv_var v - | EIf (v, b0, b1) -> ctx |> fv_var v |> fv_block b0 |> fv_block b1 - | EIs (_, _, v) -> ctx |> fv_var v - | ELit _ -> ctx - | ELoop b -> ctx |> fv_block b - | EReceive v -> ctx |> fv_var v - | EOn rs -> rs |> foldl fv_receiver ctx - | ERecord vfs -> vfs |> foldl (fun ctx (_, v) -> ctx |> fv_var v) ctx - | EUnwrap (_, _, v) -> ctx |> fv_var v - | EReturn v -> ctx |> fv_var v - | EBreak v -> ctx |> fv_var v - | EContinue -> ctx - | EItem _ -> ctx - in - fv_block b ([vs], []) |> snd |> List.rev - -and get_item xs (hir:hir) = - match hir |> assoc_opt xs with - | Some i -> i - | None -> panic ("get_item: " ^ Pretty.path_to_str xs ^ " not found") diff --git a/arc-lang/src/hir_to_mir.ml b/arc-lang/src/hir_to_mir.ml deleted file mode 100644 index 6e1f3ad50..000000000 --- a/arc-lang/src/hir_to_mir.ml +++ /dev/null @@ -1,205 +0,0 @@ -open Utils - -module Ctx = struct - type t = { - hir: Hir.hir; - mir: Mir.mir; - substs: subst list; - } - and subst = (Mir.name * Mir.ty) list - - let rec make (hir:Hir.hir) = { hir; mir = []; substs = [] } - - and has_instance s ctx = - ctx.mir |> List.assoc_opt s |> Option.is_some - - (* Add a monomorphised instance *) - and add_instance s i ctx = - if not (ctx |> has_instance s) then - { ctx with mir = (s, i)::ctx.mir } - else - ctx - - and push_subst s ctx = - { ctx with substs = (s::ctx.substs) } - - and pop_subst ctx = - { ctx with substs = tl ctx.substs } - - and substitute g ctx = - ctx.substs |> hd |> assoc g - -end - -let rec mir_of_hir hir = - let ctx = Ctx.make hir in - let ctx = hir |> foldl lower_item ctx in - ctx.mir - -and lower_item ctx (xs, i) = - match i with - | Hir.IDef (a, [], ps, t, b) -> - let (ps, ctx) = lower_params ps ctx in - let (t, ctx) = lower_type t ctx in - let (b, ctx) = lower_block b ctx in - ctx |> Ctx.add_instance (xs, []) (Mir.IDef (a, ps, t, b)) - | Hir.ITask (a, [], ps0, ps1, b) -> - let (ps0, ctx) = lower_params ps0 ctx in - let (ps1, ctx) = lower_params ps1 ctx in - let (b, ctx) = lower_block b ctx in - ctx |> Ctx.add_instance (xs, []) (Mir.ITask (a, ps0, ps1, b)) - | Hir.IVal (a, t, b) -> - let (t, ctx) = lower_type t ctx in - let (b, ctx) = lower_block b ctx in - ctx |> Ctx.add_instance (xs, []) (Mir.IVal (a, t, b)) - | _ -> ctx - -and lower_interface (xs, ts) ctx = - let (ts, ctx) = lower_types ts ctx in - ((xs, ts), ctx) - -and lower_block (ss, v) ctx = - let (ss, ctx) = ss |> mapm lower_ssa ctx in - ((ss, v), ctx) - -and lower_ssa (v, t, e) ctx = - let (t, ctx) = lower_type t ctx in - let (e, ctx) = lower_expr e ctx in - ((v, t, e), ctx) - -and lower_expr (e:Hir.expr) (ctx:Ctx.t) = - match e with - | Hir.EAccess (v, x) -> - (Mir.EAccess (v, x), ctx) - | Hir.EUpdate (v0, x, v1) -> - (Mir.EUpdate (v0, x, v1), ctx) - | Hir.ECall (v, vs) -> - (Mir.ECall (v, vs), ctx) - | Hir.ECast (v, t) -> - let (t, ctx) = lower_type t ctx in - (Mir.ECast (v, t), ctx) - | Hir.EEmit (v0, v1) -> - (Mir.EEmit (v0, v1), ctx) - | Hir.EEnwrap (xs, ts, v) -> - let (ts, ctx) = lower_types ts ctx in - (Mir.EEnwrap (xs, ts, v), ctx) - | Hir.EIf (v, b0, b1) -> - let (b0, ctx) = lower_block b0 ctx in - let (b1, ctx) = lower_block b1 ctx in - (Mir.EIf (v, b0, b1), ctx) - | Hir.EIs (xs, ts, v) -> - let (ts, ctx) = lower_types ts ctx in - (Mir.EIs (xs, ts, v), ctx) - | Hir.ELit l -> - (Mir.ELit l, ctx) - | Hir.ELoop b -> - let (b, ctx) = lower_block b ctx in - (Mir.ELoop b, ctx) - | Hir.EReceive v -> (Mir.EReceive v, ctx) - | Hir.EOn _ -> todo () - | Hir.ERecord fvs -> (Mir.ERecord (fvs |> sort_expr_fields), ctx) - | Hir.EUnwrap (xs, ts, v) -> - let (ts, ctx) = lower_types ts ctx in - (Mir.EUnwrap (xs, ts, v), ctx) - | Hir.EReturn v -> (Mir.EReturn v, ctx) - | Hir.EBreak v -> (Mir.EBreak v, ctx) - | Hir.EContinue -> (Mir.EContinue, ctx) - | Hir.EItem (xs, ts) -> - let (ts, ctx) = lower_types ts ctx in - begin match ctx.hir |> assoc xs with - | Hir.IDef (a, gs, ps, t, b) -> - let ctx = ctx |> Ctx.push_subst (zip gs ts) in - let (ps, ctx) = lower_params ps ctx in - let (t, ctx) = lower_type t ctx in - let (b, ctx) = lower_block b ctx in - let ctx = ctx |> Ctx.add_instance (xs, ts) (Mir.IDef (a, ps, t, b)) in - let ctx = ctx |> Ctx.pop_subst in - (Mir.EItem (xs, ts), ctx) - | Hir.IExternDef (a, gs, ts1, t) -> - let ctx = ctx |> Ctx.push_subst (zip gs ts) in - let (ts1, ctx) = lower_types ts1 ctx in - let (t, ctx) = lower_type t ctx in - let ctx = ctx |> Ctx.add_instance (xs, ts) (Mir.IExternDef (a, ts1, t)) in - let ctx = ctx |> Ctx.pop_subst in - (Mir.EItem (xs, ts), ctx) - | Hir.ITask (a, gs, ps0, ps1, b) -> - let ctx = ctx |> Ctx.push_subst (zip gs ts) in - let (ps0, ctx) = lower_params ps0 ctx in - let (ps1, ctx) = lower_params ps1 ctx in - let (b, ctx) = lower_block b ctx in - let ctx = ctx |> Ctx.add_instance (xs, ts) (Mir.ITask (a, ps0, ps1, b)) in - let ctx = ctx |> Ctx.pop_subst in - (Mir.EItem (xs, ts), ctx) - | _ -> unreachable () - end - -and lower_params ps (ctx:Ctx.t) = - ps |> mapm lower_param ctx - -and lower_param ((x, t):Hir.param) (ctx:Ctx.t) = - let (t, ctx) = lower_type t ctx in - ((x, t), ctx) - -and lower_types ts (ctx:Ctx.t) = - ts |> mapm lower_type ctx - -and lower_row r ctx = - let rec lower_row r ctx acc = - match r with - | Hir.TRowExtend ((x, t), r) -> - let (t, ctx) = lower_type t ctx in - lower_row r ctx ((x, t)::acc) - | Hir.TRowEmpty -> (acc, ctx) - | Hir.TGeneric g -> - begin - match ctx |> Ctx.substitute g with - | Mir.TRecord fts -> (acc @ fts, ctx) - | _ -> unreachable () - end - | _ -> unreachable () - in - let (fts, ctx) = lower_row r ctx [] in - (fts |> List.rev |> sort_type_fields, ctx) - -and sort_expr_fields fts = - fts |> List.sort (fun (a, _) (b, _) -> String.compare a b) - -and sort_type_fields fts = - fts |> List.sort (fun (a, _) (b, _) -> String.compare a b) - -and lower_type (t:Hir.ty) (ctx:Ctx.t) : (Mir.ty * Ctx.t) = - match t with - | Hir.TFunc (ts, t) -> - let (ts, ctx) = lower_types ts ctx in - let (t, ctx) = lower_type t ctx in - (Mir.TFunc (ts, t), ctx) - | Hir.TRecord t -> - let (fts, ctx) = lower_row t ctx in - (Mir.TRecord fts, ctx) - | Hir.TRowEmpty | Hir.TRowExtend _ -> - let (fts, ctx) = lower_row t ctx in - (Mir.TRecord fts, ctx) - | Hir.TNominal (xs, ts) -> - let (ts, ctx) = lower_types ts ctx in - begin match ctx.hir |> assoc xs with - | Hir.IExternType (a, _) -> - let ctx = ctx |> Ctx.add_instance (xs, ts) (Mir.IExternType a) in - (Mir.TNominal (xs, ts), ctx) - | Hir.IEnum (a, gs, xss) -> - let ctx = ctx |> Ctx.push_subst (zip gs ts) in - let ctx = xss |> foldl (fun (ctx:Ctx.t) xs -> - match ctx.hir |> assoc xs with - | Hir.IVariant t -> - let (t, ctx) = lower_type t ctx in - ctx |> Ctx.add_instance (xs, ts) (Mir.IVariant t) - | _ -> unreachable () - ) ctx in - let ctx = ctx |> Ctx.pop_subst in - let ctx = ctx |> Ctx.add_instance (xs, ts) (Mir.IEnum (a, xss)) in - (Mir.TNominal (xs, ts), ctx) - | _ -> unreachable () - end - | Hir.TGeneric g -> - let t = ctx |> Ctx.substitute g in - (t, ctx) - | Hir.TVar _ -> panic "Tried to lower a type variable in HIR => MIR" diff --git a/arc-lang/src/infer.ml b/arc-lang/src/infer.ml deleted file mode 100644 index a3d6f3eea..000000000 --- a/arc-lang/src/infer.ml +++ /dev/null @@ -1,640 +0,0 @@ -open Utils -open Hir - -module NameSet = Set.Make(struct type t = name let compare = compare end) -module NameMap = Map.Make(struct type t = name let compare = compare end) -module PathMap = Map.Make(struct type t = path let compare = compare end) - -module Ctx = struct - type t = { - hir: Hir.hir; - schemes: scheme PathMap.t; (* Inferred type schemes of items. *) - definitions: (path * Hir.item) list; - frames: frame list; - next_type_uid: Gen.t; - next_row_uid: Gen.t; - subctx: subctx list; - instances: ty list NameMap.t; (* Fully inferred instantiations *) - debug: Debug.t; - } - (* The frame of a polymorphic item which is currently being inferred *) - and frame = { - tsubst: (name * ty) list; (* Substitutions of type variables to types *) - scopes: scope list; - insts: ty list NameMap.t; (* Partially inferred instantiations *) - } - and scope = { - vsubst: (name * ty) list; (* Substitutions of value variables to types *) - } - (* A scheme is a universally quantified type. Schemes can have both explicit - and implicit type parameters. An explicit type parameter is declared - explicitly while an implicit type parameter is inferred from the context. - Explicit type parameters allow polymorphic recursion, while implicit do not. - - fun id[T](x:T) { x } # Explicit - fun id(x) { x } # Implicit - - 1. To infer the type of a function definition, we: - 1.1. Check if we have already inferred the function type-scheme, if so we just return it. - 1.2. Otherwise, generate a fresh type variable `'a` for the function type. - 1.3. Push `'a` onto a stack of type scheme instantiations. - 1.4. Infer the type `t` of the function signature with respect to the function body. - 1.5. Unify 'a against `t`. - 1.6. Generalize `'a` into a type scheme `sc`. - 1.7. Insert `sc` into a global context of type schemes. - 1.8. Pop `'a` from the stack of type scheme instantiations. - 1.8. Return the type scheme `sc`. - - 2. When encountering a function reference, we look it up and instantiate it. - 2.1. This is needed to ensure that each function reference points to a concrete instance. - - 2. When encountering the left-hand-side of an SSA operation - 2.1. Check if the right-hand-side expression is a value (function reference) - 2.1.1. If so, lookup the type scheme and bind the variable to it - 2.1.1. Else, infer the type of the right-hand-side and bind the variable to it - - 2. When encountering an variable-operand of an SSA operation - 2.1. Check if the variable is bound to a type scheme - 2.1.1. If so, instantiate it - 2.1.2. Else, just use the type as it is - - Limitations: - * Mutual recursion => Whichever function is processed first decides what becomes polymorphic. - * Value restriction => - - Value-level variables are always monomorphised - *) - and scheme = - | SPoly of { t:ty; explicit_gs:name list; implicit_gs:name list; } - | SMono of { t:ty; explicit_gs:name list; } - - and subctx = - | CDef of ty - | CTask of ty * ty - | CLoop of ty - - let rec make hir debug = { - hir = hir; - schemes = PathMap.empty; - definitions = []; - frames = []; - next_type_uid = Gen.make (); - next_row_uid = Gen.make (); - subctx = []; - instances = NameMap.empty; - debug; - } - - and return_ty ctx = - match hd ctx.subctx with - | CDef t -> t - | _ -> panic "Tried to return outside of function" - - and break_ty ctx = - match hd ctx.subctx with - | CLoop t -> t - | _ -> panic "Tried to break outside of loop" - - and push_subctx subctx ctx = { ctx with subctx = subctx::ctx.subctx } - - and pop_subctx ctx = { ctx with subctx = tl ctx.subctx } - - and fresh_t ctx = - let (i, next_type_uid) = ctx.next_type_uid |> Gen.fresh in - let t = Hir.TVar (sprintf "a%d" i) in - let ctx = { ctx with next_type_uid } in - (t, ctx) - - and fresh_r ctx = - let (i, next_row_uid) = ctx.next_row_uid |> Gen.fresh in - let t = Hir.TVar (sprintf "a%d" i) in - let ctx = { ctx with next_row_uid } in - (t, ctx) - - and get_frame ctx = ctx.frames |> hd - and get_scope ctx = (ctx |> get_frame).scopes |> hd - and get_scopes ctx = (ctx |> get_frame).scopes - and get_tsubst ctx = (ctx |> get_frame).tsubst - and get_insts ctx = (ctx |> get_frame).insts - and get_vsubst ctx = (ctx |> get_scope).vsubst - - and update_frame u ctx = match ctx.frames with - | hd::tl -> { ctx with frames = (u hd)::tl } - | [] -> unreachable () - - and update_scope u ctx = - match ctx.frames with - | [] -> unreachable () - | f::frames -> - match f.scopes with - | [] -> unreachable () - | s::scopes -> { ctx with frames = { f with scopes = (u s)::scopes }::frames} - and update_tsubst tsubst ctx = ctx |> update_frame (fun f -> { f with tsubst }) - and update_vsubst vsubst ctx = ctx |> update_scope (fun _ -> { vsubst }) - - and bind_t x t ctx = ctx |> update_frame (fun f -> { f with tsubst = (x, t)::f.tsubst }) - and bind_v x t ctx = -(* print_endline "Binding var"; *) - ctx |> update_scope (fun s -> { vsubst = (x, t)::s.vsubst }) - - and find_t x ctx = ctx |> get_tsubst |> List.assoc_opt x - and find_v x ctx = ctx |> get_scopes |> List.find_map (fun s -> s.vsubst |> List.assoc_opt x) |> Option.get - and find_sc xs ctx = ctx.schemes |> PathMap.find xs - and has_scheme xs ctx = ctx.schemes |> PathMap.exists (fun xs' _ -> xs' = xs) - - and push_frame ctx = { ctx with frames = {tsubst = []; scopes = []; insts = NameMap.empty}::ctx.frames } |> push_scope - and pop_frame ctx = - match ctx.frames with - | hd::tl -> (hd.tsubst, hd.insts, { ctx with frames = tl }) - | _ -> unreachable () - and push_scope ctx = ctx |> update_frame (fun f -> { f with scopes = {vsubst = []}::f.scopes }) - and pop_scope ctx = ctx |> update_frame (fun f -> { f with scopes = tl f.scopes }) - - and typeof x ctx = ctx |> find_v x - - and add_inst v ts ctx = ctx |> update_frame (fun f -> { f with insts = f.insts |> NameMap.add v ts}) - and add_scheme xs sc ctx = { ctx with schemes = ctx.schemes |> PathMap.add xs sc } - and add_item xs i ctx = { ctx with definitions = (xs, i)::ctx.definitions} -end - -let debug_schemes scs = - Printf.printf "\nSchemes:\n"; - let ctx = Pretty.Ctx.brief in - scs |> PathMap.iter (fun xs sc -> - match sc with - | Ctx.SPoly {t; explicit_gs; implicit_gs } -> - Printf.printf "Poly: "; - Pretty.pr_path xs ctx; - Printf.printf " => forall"; - Printf.printf "\n explicit "; - Printf.printf "["; - Pretty.pr_sep ", " Pretty_hir.pr_name explicit_gs ctx; - Printf.printf "]"; - Printf.printf "\n implicit "; - Printf.printf "["; - Pretty.pr_sep ", " Pretty_hir.pr_name implicit_gs ctx; - Printf.printf "]"; - Printf.printf "\n . "; - Pretty_hir.pr_type t ctx; - Printf.printf "\n"; - | Ctx.SMono {t; explicit_gs } -> - Printf.printf "Mono: "; - Pretty.pr_path xs ctx; - Printf.printf " => forall "; - Printf.printf " explicit "; - Printf.printf "["; - Pretty.pr_sep ", " Pretty_hir.pr_name explicit_gs ctx; - Printf.printf "]"; - Printf.printf "\n . "; - Pretty_hir.pr_type t ctx; - Printf.printf "\n"; - ) - -let rec infer_each f l (ctx:Ctx.t) = - l |> foldl f ctx - -and ts_of_ps vs = vs |> map (fun (_, t) -> t) -and ts_of_vs vs ctx = vs |> map (fun v -> ctx |> Ctx.typeof v) -and fts_of_fvs vs ctx = vs |> map (fun (x, v) -> (x, ctx |> Ctx.typeof v)) - -and bind_params ps ctx = - ps |> foldl (fun ctx (v, t) -> ctx |> Ctx.bind_v v t) ctx - -and get_enum (ctx:Ctx.t) xs = - match ctx.hir |> assoc xs with - | Hir.IEnum (_, gs, xss) -> (gs, xss) - | _ -> unreachable () - -and get_variant (ctx:Ctx.t) xs = - match ctx.hir |> assoc xs with - | Hir.IVariant t -> t - | _ -> unreachable () - -(* Instantiate an enum_xs, unify its type parameters, and then unify it with type enum_t. *) -and instantiate_enum enum_xs enum_t ts0 (ctx:Ctx.t) = - let (gs, _) = get_enum ctx enum_xs in - let (ts1, s, ctx) = instantiate_generics gs ctx in - let ctx = ctx |> unify_ts ts0 ts1 in - let ctx = ctx |> unify enum_t (Hir.TNominal (enum_xs, ts1)) in - (s, ctx) - -(* Apply generic substitution to enum variant_xs and unify result with variant_t *) -and instantiate_variant variant_xs variant_t s (ctx:Ctx.t) = - let t = get_variant ctx variant_xs in - ctx |> unify variant_t (t |> instantiate s) - -(* Instantiate generics `gs` into fresh type variables *) -and instantiate_generics gs ctx = - let instantiate_generic g ctx = - let (t, ctx) = ctx |> Ctx.fresh_t in - ((g, t), ctx) - in - let (gts, ctx) = gs |> mapm instantiate_generic ctx in - let ts = gts |> map snd in - (ts, gts, ctx) - -(* Apply type-variable substitution to type *) -and apply s t = - let f t = apply s t in - match t with - | Hir.TFunc (ts, t) -> Hir.TFunc (map f ts, f t) - | Hir.TRecord t -> Hir.TRecord (f t) - | Hir.TRowEmpty -> Hir.TRowEmpty - | Hir.TRowExtend ((x, t), r) -> Hir.TRowExtend ((x, f t), f r) - | Hir.TNominal (xs, ts) -> Hir.TNominal (xs, map f ts) - | Hir.TGeneric x -> Hir.TGeneric x - | Hir.TVar x -> s |> get_or x t - -(* Apply generic substitutions to type *) -and instantiate s t = - let f t = instantiate s t in - match t with - | Hir.TFunc (ts, t) -> Hir.TFunc (map f ts, f t) - | Hir.TRecord t -> Hir.TRecord (f t) - | Hir.TRowEmpty -> Hir.TRowEmpty - | Hir.TRowExtend ((x, t), r) -> Hir.TRowExtend ((x, f t), f r) - | Hir.TNominal (xs, ts) -> Hir.TNominal (xs, map f ts) - | Hir.TGeneric x -> s |> assoc x - | Hir.TVar x -> Hir.TVar x - -(* Generalise a type into a type scheme *) -and generalise s t = - let f t = generalise s t in - match t with - | Hir.TFunc (ts, t) -> Hir.TFunc (map f ts, f t) - | Hir.TRecord t -> Hir.TRecord (f t) - | Hir.TRowEmpty -> Hir.TRowEmpty - | Hir.TRowExtend ((x, t), r) -> Hir.TRowExtend ((x, f t), f r) - | Hir.TNominal (xs, ts) -> Hir.TNominal (xs, map f ts) - | Hir.TGeneric x -> Hir.TGeneric x - | Hir.TVar x -> Hir.TGeneric (s |> assoc x) - -(* Unifies two types *) -and unify t0 t1 (ctx:Ctx.t) = - if ctx.debug = Verbose then - begin - let ctx = Pretty.Ctx.brief in - Printf.printf "Unifying: "; - Pretty_hir.pr_type t0 ctx; - Printf.printf " = "; - Pretty_hir.pr_type t1 ctx; - Printf.printf " \n"; - end; - let s0 = ctx |> Ctx.get_tsubst in - let (s1, ctx) = ctx |> mgu (apply s0 t0) (apply s0 t1) in -(* Debug.debug_substitutions s1; *) - let ctx = ctx |> Ctx.update_tsubst (compose s1 s0) in - ctx - -and unify_ts ts0 ts1 (ctx:Ctx.t) = - if ts0 <> [] && ts1 <> [] then - zip ts0 ts1 |> foldl (fun ctx (t0, t1) -> unify t0 t1 ctx) ctx - else - ctx - -and compose s0 s1 = - (s1 |> map (fun (x, t) -> (x, apply s0 t))) @ s0 - -(* Returns a list of type variables occuring in a type *) -and tvs t = - (* Returns the type variables occuring in t *) - let rec tvs_of_t t acc = - match t with - | Hir.TFunc (ts, t) -> acc |> tvs_of_ts ts |> tvs_of_t t - | Hir.TRecord t -> acc |> tvs_of_t t - | Hir.TRowEmpty -> NameSet.empty - | Hir.TRowExtend ((_, t), _) -> acc |> tvs_of_t t - | Hir.TNominal (_, ts) -> acc |> tvs_of_ts ts - | Hir.TGeneric _ -> NameSet.empty - | Hir.TVar x -> acc |> NameSet.add x - and tvs_of_ts ts acc = ts |> foldl (fun acc t -> (tvs_of_t t acc)) acc in - tvs_of_t t NameSet.empty |> NameSet.elements - -and mgus ts0 ts1 s (ctx:Ctx.t) = -(* Printf.printf "\n["; *) -(* Pretty_hir.pr_types ts0 Pretty.Ctx.brief; *) -(* Printf.printf "] == ["; *) -(* Pretty_hir.pr_types ts1 Pretty.Ctx.brief; *) -(* Printf.printf "]\n"; *) - if ts0 <> [] && ts1 <> [] then - zip ts0 ts1 |> foldl (fun (s0, ctx) (t0, t1) -> - let (s1, ctx) = ctx |> mgu (apply s0 t0) (apply s0 t1) in - (compose s1 s0, ctx) - ) (s, ctx) - else - (s, ctx) - -and mgu t0 t1 ctx : ((Hir.name * Hir.ty) list * Ctx.t) = - match t0, t1 with - | Hir.TFunc (ts0, t0), Hir.TFunc (ts1, t1) -> - ctx |> mgus (t0::ts0) (t1::ts1) [] - | Hir.TRecord t0, Hir.TRecord t1 -> - ctx |> mgu t0 t1 - | Hir.TRowEmpty, Hir.TRowEmpty -> - ([], ctx) - | Hir.TRowExtend ((x0, t0), r0), (Hir.TRowExtend _ as r1) -> - let (t1, r1, s, ctx) = ctx |> rewrite_row x0 r1 in - ctx |> mgus [t0; r0] [t1; r1] s - | Hir.TNominal (xs0, ts0), Hir.TNominal (xs1, ts1) when xs0 = xs1 -> - ctx |> mgus ts0 ts1 [] - | Hir.TGeneric x0, Hir.TGeneric x1 when x0 = x1 -> - ([], ctx) - | Hir.TVar x, t | t, Hir.TVar x -> - if t = Hir.TVar x then - ([], ctx) - else if mem x (tvs t) then - panic "Occurs check failure" - else - ([(x, t)], ctx) - | _ -> - let pr_ctx = Pretty.Ctx.brief in - Printf.printf "Oops... "; - Pretty_hir.pr_type t0 pr_ctx; - Printf.printf " != "; - Pretty_hir.pr_type t1 pr_ctx; - Printf.printf " \n"; - Pretty_hir.pr_hir ctx.hir ctx.debug; - panic "Types do not unify" - -and rewrite_row x0 r0 (ctx:Ctx.t) = - match r0 with - | Hir.TRowEmpty -> - (* We've reached the end of the record, and it's already bound, so the new label cannot be inserted. *) - panic (Printf.sprintf "label %s cannot be inserted" x0) - | Hir.TRowExtend ((x1, t1), r1) when x0 = x1 -> - (* We've found the label, so propagate it upwards *) - (t1, r1, [], ctx) - | Hir.TVar _ as r1 -> - (* We've reached the end of the record, and it's not bound, so extend it and return the new tail *) - let (t2, ctx) = ctx |> Ctx.fresh_t in - let (r2, ctx) = ctx |> Ctx.fresh_r in - let (s, ctx) = ctx |> mgu r1 (Hir.TRowExtend ((x0, t2), r2)) in - (t2, r2, s, ctx) - | Hir.TRowExtend ((x1, t1), r1) -> - (* Otherwise, rewrite the tail *) - let (t2, r2, s, ctx) = ctx |> rewrite_row x0 r1 in - (t2, Hir.TRowExtend ((x1, t1), r2), s, ctx) - | _ -> - panic "Unexpected type" - -let rec infer_hir hir debug = - let (ctx:Ctx.t) = Ctx.make hir debug in - let ctx = hir |> foldl infer_item ctx in - let hir = ctx.definitions |> map (fun (xs, i) -> (xs, Hir.smap_item (inst_ssa ctx.instances) i)) in - hir |> rev - -and inst_ssa s (v, t, e) = - match e with - | Hir.EItem (xs, _) -> - let ts = s |> NameMap.find v in - (v, t, Hir.EItem (xs, ts)) - | _ -> (v, t, Hir.smap_expr (inst_ssa s) e) - -and infer_block (ss, v) (ctx:Ctx.t) = - let ctx = ctx |> Ctx.push_scope in - let ctx = ss |> foldl infer_ssa ctx in - let t = ctx |> Ctx.typeof v in - let ctx = ctx |> Ctx.pop_scope in - (t, ctx) - -and implicit_generics t = - let tvs = tvs t in - let (implicit_gs, _) = tvs |> foldl (fun (gs, i) _ -> ((sprintf "G%d" i)::gs, i+1)) ([], 0) in - let s = zip tvs implicit_gs in - (implicit_gs, s) - -and infer_item (ctx:Ctx.t) (xs, i) : Ctx.t = - if ctx |> Ctx.has_scheme xs then - ctx - else - match i with - | Hir.IClass _ -> todo () - | Hir.IInstance _ -> todo () - | Hir.IClassDecl _ -> todo () - | Hir.IInstanceDef _ -> todo () - | Hir.IVal (_, t0, b) -> - let (t1, ctx) = infer_block b ctx in - let _ctx = ctx |> unify t0 t1 in - todo () - | Hir.IDef (a, explicit_gs, ps, t0, b) -> - let ctx = ctx |> Ctx.push_frame in - let ctx = ctx |> Ctx.push_subctx (Ctx.CDef t0) in - - (* Infer MGU of the function *) - let ctx = ctx |> bind_params ps in - let (t1, ctx) = ctx |> infer_block b in - let ctx = ctx |> unify t0 t1 in - - let ctx = ctx |> Ctx.pop_subctx in - let (s, insts, ctx) = ctx |> Ctx.pop_frame in - - (* Store instances in global context *) - let insts = insts |> NameMap.map (map (apply s)) in - let ctx = { ctx with instances = ctx.instances |> NameMap.add_seq (NameMap.to_seq insts) } in - - (* Apply MGU to all types in the function *) - let (ps, t0, b) = tmap_def (apply s) (ps, t0, b) in - - (* Create the function type *) - let t = Hir.TFunc (ps |> ts_of_ps, t0) in - - (* Get the implicit generics *) - let (implicit_gs, s) = implicit_generics t in - - (* Replace all type variables with generics *) - let t = t |> generalise s in - let (ps, t0, b) = tmap_def (generalise s) (ps, t0, b) in - - (* Store the type scheme / generic item *) - let sc = Ctx.SPoly { t; explicit_gs; implicit_gs } in - let ctx = ctx |> Ctx.add_item xs (Hir.IDef (a, explicit_gs @ implicit_gs, ps, t0, b)) in - let ctx = ctx |> Ctx.add_scheme xs sc in - - ctx - | Hir.ITask (d, explicit_gs, ps0, ps1, b) -> - let ctx = ctx |> Ctx.push_frame in - - (* Infer MGU of the function *) - let ctx = ctx |> bind_params (ps0 @ ps1) in - let (t2, ctx) = infer_block b ctx in - let ctx = ctx |> unify (atom "unit") t2 in - - let ctx = ctx |> Ctx.pop_subctx in - let (s, insts, ctx) = ctx |> Ctx.pop_frame in - - (* Store instances in global context *) - let insts = insts |> NameMap.map (map (apply s)) in - let ctx = { ctx with instances = ctx.instances |> NameMap.add_seq (NameMap.to_seq insts) } in - - (* Apply MGU to all types in the function *) - let (ps0, ps1, b) = tmap_task (apply s) (ps0, ps1, b) in - - (* Create the task type *) - let t = match ps1 with - | [(_, t)] -> - Hir.TFunc (ts_of_ps ps0, t) - | _ -> - let t = ps1 |> ts_of_ps |> Hir.indexes_to_rows Hir.TRowEmpty in - Hir.TFunc (ts_of_ps ps0, Hir.TRecord t) - in - - (* Get the implicit generics *) - let (implicit_gs, s) = implicit_generics t in - - (* Replace all type variables with generics *) - let t = t |> generalise s in - let (ps0, ps1, b) = tmap_task (generalise s) (ps0, ps1, b) in - - (* Store the type scheme / generic item *) - let sc = Ctx.SPoly { t; explicit_gs; implicit_gs } in - let ctx = ctx |> Ctx.add_item xs (Hir.ITask (d, explicit_gs, ps0, ps1, b)) in - let ctx = ctx |> Ctx.add_scheme xs sc in - ctx - | Hir.IExternDef (_, explicit_gs, ts, t) -> - let t = Hir.TFunc (ts, t) in - let ctx = ctx |> Ctx.add_scheme xs (Ctx.SPoly { t; explicit_gs; implicit_gs = [] }) in - let ctx = ctx |> Ctx.add_item xs i in - ctx - | Hir.IEnum _ - | Hir.IExternType _ - | Hir.ITypeAlias _ - | Hir.IVariant _ -> - ctx |> Ctx.add_item xs i - -and infer_lit t l (ctx:Ctx.t) = - match l with - | Ast.LInt (_, None) -> - ctx |> unify t (atom "i32") - | Ast.LInt (_, Some s) -> - ctx |> unify t (atom s) - | Ast.LFloat (_, None) -> - ctx |> unify t (atom "f32") - | Ast.LFloat (_, Some s) -> - ctx |> unify t (atom s) - | Ast.LBool _ -> - ctx |> unify t (atom "bool") - | Ast.LString _ -> - ctx |> unify t (atom "str") - | Ast.LUnit -> - ctx |> unify t (atom "unit") - | Ast.LChar _ -> - ctx |> unify t (atom "char") - -and infer_ssa (ctx:Ctx.t) (v0, t0, e0) = - let ctx = infer_ssa_rhs ctx (v0, t0, e0) in - let ctx = ctx |> Ctx.bind_v v0 t0 in - ctx - -and infer_ssa_rhs ctx (v0, t0, e0) = - let typeof v = ctx |> Ctx.typeof v in - match e0 with - | Hir.EAccess (v1, x) -> - let (t2, ctx) = ctx |> Ctx.fresh_t in - let t3 = Hir.TRowExtend ((x, t0), t2) in - ctx |> unify (Hir.TRecord t3) (typeof v1) - | Hir.EUpdate (v1, x, v2) -> - let (t2, ctx) = ctx |> Ctx.fresh_t in - let t3 = Hir.TRowExtend ((x, (typeof v2)), t2) in - ctx |> unify t0 (atom "unit") - |> unify (Hir.TRecord t3) (typeof v1) - | Hir.ECall (v1, vs) -> - ctx |> unify (typeof v1) (Hir.TFunc (ts_of_vs vs ctx, t0)) - | Hir.ECast (v1, t2) -> - ctx |> unify t0 (typeof v1) - |> unify t0 t2 - | Hir.EEmit (v1, v2) -> - ctx |> unify t0 (atom "unit") - |> unify (typeof v1) (Hir.TNominal (["Stream"], [typeof v2])) - | Hir.EReceive v1 -> - ctx |> unify (Hir.TNominal (["Stream"], [t0])) (typeof v1) - | Hir.EOn _ -> - todo () - | Hir.EIf (v1, b0, b1) -> - let (t2, ctx) = infer_block b0 ctx in - let (t3, ctx) = infer_block b1 ctx in - ctx |> unify t0 t2 - |> unify t0 t3 - |> unify (atom "bool") (typeof v1) - | Hir.ELit l -> - infer_lit t0 l ctx - | Hir.ELoop b -> - let ctx = ctx |> Ctx.push_subctx (Ctx.CLoop t0) in - let (t1, ctx) = infer_block b ctx in - ctx |> unify t0 (atom "unit") - |> unify t1 (atom "unit") - |> Ctx.pop_subctx - | Hir.ERecord fvs -> - let fts = fts_of_fvs fvs ctx in - let t1 = fts |> Hir.fields_to_rows Hir.TRowEmpty in - ctx |> unify t0 (Hir.TRecord t1) - | Hir.EReturn v1 -> - ctx |> unify t0 (atom "unit") - |> unify (typeof v1) (ctx |> Ctx.return_ty) - | Hir.EBreak v1 -> - ctx |> unify t0 (atom "unit") - |> unify (typeof v1) (ctx |> Ctx.break_ty) - | Hir.EContinue -> - ctx |> unify t0 (atom "unit") - | Hir.EEnwrap (xs, ts1, v1) -> - let (s, ctx) = ctx |> instantiate_enum (xs |> parent) t0 ts1 in - instantiate_variant xs (typeof v1) s ctx - | Hir.EUnwrap (xs, ts1, v1) -> - let (s, ctx) = ctx |> instantiate_enum (xs |> parent) (typeof v1) ts1 in - instantiate_variant xs t0 s ctx - | Hir.EIs (xs, ts1, v1) -> - let (_, ctx) = ctx |> instantiate_enum (xs |> parent) (typeof v1) ts1 in - unify t0 (atom "bool") ctx - (* Every item reference must point to a concrete monomorphised instance of - the referenced item. Therefore we must instantiate the item directly when - referencing it. This is similar to how it works in Rust where function - pointers must be monomorphic. - - fun duplicate(x0) { (x0, x0) } - - fun does_not_work() { - val x1 = duplicate; # OK - val x2 = 1; # OK - val x3 = x1(x2, x2); # OK - val x4 = "1"; # OK - val x5 = x1(x4, x4); # Error, type mismatch - } - - It's sensible, function pointers are values. In the general case we cannot - know what a value is unless we evaluate the program. Thus, it would not be - possible to know what a function pointer monomorphises to at compiletime. - The following is possible however. - - fun does_work() { - val x1 = duplicate; # OK - val x2 = 1; # OK - val x3 = x1(x2, x2); # OK - val x4 = duplicate; # OK - val x5 = "1"; # OK - val x6 = x4(x5, x5); # OK - } - *) - | Hir.EItem (xs, ts0) -> -(* debug_schemes ctx.schemes; *) - let i = ctx.hir |> get_item xs in - let ctx = infer_item ctx (xs, i) in - let sc = ctx |> Ctx.find_sc xs in - match sc with - (* If we have already inferenced this item then we can just instantiate - its type scheme *) - | Ctx.SPoly sc -> - let (ts1, s0, ctx) = ctx |> instantiate_generics sc.explicit_gs in - let (ts2, s1, ctx) = ctx |> instantiate_generics sc.implicit_gs in - let ctx = ctx |> unify_ts ts0 ts1 in - let t1 = sc.t |> instantiate (s0 @ s1) in - let ctx = ctx |> unify t0 t1 in - let ctx = ctx |> Ctx.add_inst v0 (ts1 @ ts2) in - ctx - (* If we are currently inferencing this item, then we must reuse its - implicit types to avoid polymorphic infinite recursion. *) - | Ctx.SMono sc -> - let (ts1, s, ctx) = ctx |> instantiate_generics sc.explicit_gs in - let ctx = ctx |> unify_ts ts0 ts1 in - let t1 = sc.t |> instantiate s in - let ctx = ctx |> unify t0 t1 in - let ctx = ctx |> Ctx.add_inst v0 ts1 in - ctx diff --git a/arc-lang/src/lexer.mll b/arc-lang/src/lexer.mll deleted file mode 100644 index 800ebb735..000000000 --- a/arc-lang/src/lexer.mll +++ /dev/null @@ -1,184 +0,0 @@ -{ - open Lexing - open Token - - exception SyntaxError of string - - let suffix_regex = (Str.regexp "[iufb].+") - - let prefix_suffix lexbuf = - let s = Lexing.lexeme lexbuf in - match (Str.full_split suffix_regex s) with - | [Str.Text prefix; Str.Delim suffix] -> (prefix, suffix) - | _ -> raise (SyntaxError "Entered unreachable code") - - let suffix lexbuf = prefix_suffix lexbuf |> snd - - let next_line lexbuf = - let pos = lexbuf.lex_curr_p in - lexbuf.lex_curr_p <- - { pos with pos_bol = pos.pos_cnum; - pos_lnum = pos.pos_lnum + 1 - } -} - -let int = ['0'-'9'] ['0'-'9']* -let digit = ['0'-'9'] -let frac = '.' digit* -let exp = ['e' 'E'] ['-' '+']? digit+ -let float = digit+ frac? exp? -let percentage = digit+ frac? '%' -let char = '\'' [^ '\'' ] '\'' -let whitespace = [' ' '\t']+ -let newline = '\r' | '\n' | "\r\n" -let name = ['a'-'z' 'A'-'Z' '_'] ['a'-'z' 'A'-'Z' '0'-'9' '_']* -let unit = "unit" -let datetime = int '-' int '-' int ('T' int ':' int ':' int)? -let int_suffix = "i8" | "i16" | "i32" | "i64" | "i128" | "u8" | "u16" | "u32" | "u64" | "u128" -let float_suffix = "f32" | "f64" -let bool_suffix = "bool" -let suffix = int_suffix | float_suffix | bool_suffix - -rule main = - parse - | "(" { ParenL } - | ")" { ParenR } - | "[" { BrackL } - | "]" { BrackR } - | "#{" { PoundBraceL } - | "{" { BraceL } - | "}" { BraceR } - | "<" { AngleL } - | ">" { AngleR } -(*= Operators ==============================================================*) - | "!" { Bang } - | "!=" { Neq } - | "%" { Percent } - | "*" { Star } - | "**" { StarStar } - | "+" { Plus } - | "," { Comma } - | "-" { Minus } - | "." { Dot } - | ".." { DotDot } - | "..=" { DotDotEq } - | "/" { Slash } - | ":" { Colon } - | "::" { ColonColon } - | ";" { Semi } - | "<=" { Leq } - | "=" { Eq } - | "==" { EqEq } - | "=>" { Imply } - | ">=" { Geq } - | "_" { Underscore } - | "|" { Bar } - | "@" { AtSign } -(*= Float extensions =======================================================*) - | "!=" suffix { NeqSuffix (suffix lexbuf) } - | "%" suffix { PercentSuffix (suffix lexbuf) } - | "**" suffix { StarStarSuffix (suffix lexbuf) } - | "*" suffix { StarSuffix (suffix lexbuf) } - | "+" suffix { PlusSuffix (suffix lexbuf) } - | "-" suffix { MinusSuffix (suffix lexbuf) } - | "/" suffix { SlashSuffix (suffix lexbuf) } - | "<" suffix { LtSuffix (suffix lexbuf) } - | "<=" suffix { LeqSuffix (suffix lexbuf) } - | "==" suffix { EqEqSuffix (suffix lexbuf) } - | ">" suffix { GtSuffix (suffix lexbuf) } - | ">=" suffix { GeqSuffix (suffix lexbuf) } -(*= Keywords ================================================================*) - | "and" { And } - | "as" { As } - | "break" { Break } - | "band" { Band } - | "bor" { Bor } - | "bxor" { Bxor } - | "class" { Class } - | "continue" { Continue } - | "def" { Def } - | "desc" { Desc } - | "duration" { Duration } - | "else" { Else } - | "enum" { Enum } - | "extern" { Extern } - | "for" { For } - | "from" { From } - | "fun" { Fun } - | "group" { Group } - | "if" { If } - | "in" { In } - | "instance" { Instance } - | "join" { Join } - | "loop" { Loop } - | "match" { Match } - | "mod" { Mod } - | "not" { Not } - | "on" { On } - | "or" { Or } - | "order" { Or } - | "of" { Of } - | "return" { Return } - | "reduce" { Reduce } - | "step" { Step } - | "task" { Task } - | "type" { Type } - | "val" { Val } - | "var" { Var } - | "where" { Where } - | "while" { While } - | "window" { Window } - | "use" { Use } - | "xor" { Xor } - | "yield" { Yield } - | "true" { Bool true } - | "false" { Bool false } -(*= Identifiers and Literals ================================================*) - | int "ns" { Int (int_of_string (Lexing.sub_lexeme lexbuf lexbuf.lex_start_pos (lexbuf.lex_curr_pos-2)) / 1000000000) } - | int "us" { Int (int_of_string (Lexing.sub_lexeme lexbuf lexbuf.lex_start_pos (lexbuf.lex_curr_pos-2)) / 1000000) } - | int "ms" { Int (int_of_string (Lexing.sub_lexeme lexbuf lexbuf.lex_start_pos (lexbuf.lex_curr_pos-2)) / 1000) } - | int 's' { Int (int_of_string (Lexing.sub_lexeme lexbuf lexbuf.lex_start_pos (lexbuf.lex_curr_pos-1))) } - | int 'm' { Int (int_of_string (Lexing.sub_lexeme lexbuf lexbuf.lex_start_pos (lexbuf.lex_curr_pos-1)) / 60) } - | int 'h' { Int (int_of_string (Lexing.sub_lexeme lexbuf lexbuf.lex_start_pos (lexbuf.lex_curr_pos-1)) / 60 / 60) } - | int 'd' { Int (int_of_string (Lexing.sub_lexeme lexbuf lexbuf.lex_start_pos (lexbuf.lex_curr_pos-1)) / 60 / 60 / 24) } - | int 'w' { Int (int_of_string (Lexing.sub_lexeme lexbuf lexbuf.lex_start_pos (lexbuf.lex_curr_pos-1)) / 60 / 60 / 24 / 7) } - | name { Name (Lexing.lexeme lexbuf) } - | int { Int (int_of_string (Lexing.lexeme lexbuf)) } - | float { Float (float_of_string (Lexing.lexeme lexbuf)) } - | percentage { Float (float_of_string (Lexing.sub_lexeme lexbuf lexbuf.lex_start_pos (lexbuf.lex_curr_pos-1)) /. 100.0) } - | int int_suffix { - let (p, s) = prefix_suffix lexbuf in - IntSuffix ((int_of_string p), s) } - | float float_suffix { - let (p, s) = prefix_suffix lexbuf in - FloatSuffix ((float_of_string p), s) } - | char { Char (Lexing.lexeme_char lexbuf 1) } - | '"' { string (Buffer.create 17) lexbuf } - | datetime { String (Lexing.lexeme lexbuf) } - | '#' { line_comment lexbuf; main lexbuf } - | whitespace { main lexbuf } - | newline { next_line lexbuf; main lexbuf } - | _ { raise (SyntaxError ("Unexpected char: '" ^ (Lexing.lexeme lexbuf) ^ "'")) } - | eof { Eof } - -and line_comment = - parse - | newline { () } - | _ { line_comment lexbuf } - -and string buf = - parse - | '"' { String (Buffer.contents buf) } - | '\\' '/' { Buffer.add_char buf '/'; string buf lexbuf } - | '\\' '\\' { Buffer.add_char buf '\\'; string buf lexbuf } - | '\\' 'b' { Buffer.add_char buf '\b'; string buf lexbuf } - | '\\' 'f' { Buffer.add_char buf '\012'; string buf lexbuf } - | '\\' 'n' { Buffer.add_char buf '\n'; string buf lexbuf } - | '\\' 'r' { Buffer.add_char buf '\r'; string buf lexbuf } - | '\\' 't' { Buffer.add_char buf '\t'; string buf lexbuf } - | [^ '"' '\\']+ - { Buffer.add_string buf (Lexing.lexeme lexbuf); - string buf lexbuf - } - | _ { raise (SyntaxError ("Illegal string character: " ^ Lexing.lexeme lexbuf)) } - | eof { raise (SyntaxError ("String is not terminated")) } diff --git a/arc-lang/src/main.ml b/arc-lang/src/main.ml deleted file mode 100644 index efe5eeee3..000000000 --- a/arc-lang/src/main.ml +++ /dev/null @@ -1,106 +0,0 @@ -open Lexer -open Lexing -open Printf -open Utils - -let menu () = - print_endline "Usage:"; - print_endline "$ arc-lang [--debug [verbose]]"; - print_endline "$ cat | arc-lang [--debug [verbose]]" - -let print_position outx lexbuf = - let pos = lexbuf.lex_curr_p in - fprintf outx "%s:%d:%d" pos.pos_fname pos.pos_lnum (pos.pos_cnum - pos.pos_bol + 1) - -let print_debug debug stage f data = - if debug <> Debug.Silent then begin - printf "[:::%s:::]\n" stage; - f data - end - -let lexer inx filename = - let lexbuf = Lexing.from_channel inx in - lexbuf.lex_curr_p <- { lexbuf.lex_curr_p with pos_fname = filename }; - lexbuf - -let get_env key = - match Sys.getenv_opt key with - | Some value -> value - | None -> panic (Printf.sprintf "Environment variable $%s was not set" key) - - -let compile inx filename debug = - - let lexbuf = lexer inx filename in - - try - - let ast = Parser.program Lexer.main lexbuf in - print_debug debug "AST" (Pretty_ast.pr_ast ast) debug; - - let stdlibpath = get_env "ARC_LANG_STDLIB_PATH" in - let inx = Core.In_channel.create stdlibpath in - let lexbuf = lexer inx stdlibpath in - - let stlib = Parser.program Lexer.main lexbuf in - - print_debug debug "AST (Stdlib)" (Pretty_ast.pr_ast stlib) debug; - - let ast = ast @ stlib in - - let table = Declare.declare ast in - - let hir = Ast_to_hir.hir_of_ast table ast in - print_debug debug "HIR" (Pretty_hir.pr_hir hir) debug; - - let hir = Infer.infer_hir hir debug in - print_debug debug "HIR (Inferred)" (Pretty_hir.pr_hir hir) debug; - - let mir = Hir_to_mir.mir_of_hir hir in - print_debug debug "MIR" Pretty_mir.pr_mir mir; - - print_debug debug "Rust" Mir_to_rust.pr_mir mir; - - let mlir = Mir_to_mlir.mlir_of_mir mir in - print_debug debug "MLIR" Pretty_mlir.pr_mlir (mlir, ""); - - let stdlibpath = get_env "ARC_MLIR_STDLIB_PATH" in - let ch = open_in stdlibpath in - let stdlib = really_input_string ch (in_channel_length ch) in - close_in ch; - Pretty_mlir.pr_mlir (mlir, stdlib); - - with - | Utils.Compiler_error msg -> - eprintf "Compiler Error: %s. %s" msg (Printexc.get_backtrace ()); - exit (-1) - | SyntaxError msg -> - eprintf "Syntax Error: %a: %s\n" print_position lexbuf msg; - exit (-1) - | Parser.Error -> - eprintf "Parser Error: %a\n" print_position lexbuf; - exit (-1) - -let main = - let argv = Core.Sys.get_argv () in - match argv with - | [| _ |] -> - compile Core.In_channel.stdin "stdin" Debug.Silent; - | [| _; "--debug" |] -> - compile Core.In_channel.stdin "stdin" Debug.Brief; - | [| _; "--debug"; "verbose" |] -> - compile Core.In_channel.stdin "stdin" Debug.Verbose; - | [| _; filename |] -> - let inx = Core.In_channel.create filename in - compile inx filename Debug.Silent; - Core.In_channel.close inx; - | [| _; filename; "--debug"; "verbose" |] -> - let inx = Core.In_channel.create filename in - compile inx filename Debug.Verbose; - Core.In_channel.close inx; - | [| _; filename; "--debug" |] -> - let inx = Core.In_channel.create filename in - compile inx filename Debug.Brief; - Core.In_channel.close inx; - | _ -> - menu () diff --git a/arc-lang/src/main.rs b/arc-lang/src/main.rs new file mode 100644 index 000000000..0ac6ba0ea --- /dev/null +++ b/arc-lang/src/main.rs @@ -0,0 +1,79 @@ +#![allow(unused)] + +use anyhow::Result; +use clap::Parser; +use compiler::Compiler; +use repl::repl; +use std::io::Read; +use std::path::Path; + +#[tokio::main(flavor = "current_thread")] +async fn main() -> Result<()> { + let mut logger = logging::Logger::stderr(); + let config = config::Config::try_parse()?; + let mut compiler = Compiler::new(config, logger); + + if compiler.config.version { + version::show(); + return Ok(()); + } + + if compiler.config.show.caches { + compiler.show_caches(); + return Ok(()); + } + if compiler.config.clear_caches { + compiler.clear_caches(); + return Ok(()); + } + + compiler.compile_prelude(); + + if compiler.config.file.is_some() { + let path = compiler.config.file.as_ref().unwrap(); + let (name, source) = read_file(path)?; + if compiler.config.interactive { + repl(compiler, Some(source)) + } else { + compile(compiler, name, source) + } + } else { + repl(compiler, None) + } +} + +fn run(compiler: Compiler, name: String, source: String) -> Result<()> { + if compiler.config.interactive { + repl(compiler, Some(source)) + } else { + compile(compiler, name, source) + } +} + +fn read_file(path: &Path) -> Result<(String, String)> { + let name = path.display().to_string(); + let source = std::fs::read_to_string(path)?; + if path.is_absolute() { + std::env::set_current_dir(path.parent().unwrap())?; + } else { + let mut relative_path = std::env::current_dir()?; + relative_path.push(path); + std::env::set_current_dir(relative_path.parent().unwrap())?; + } + tracing::info!("Updated cwd to: {}", std::env::current_dir()?.display()); + Ok((name, source)) +} + +fn compile(mut compiler: Compiler, name: String, source: String) -> Result<()> { + let ss = compiler.parse(name, source); + let ss = compiler.ast_to_hir(ss); + let ss = compiler.infer(ss); + let ss = compiler.patcomp(ss); + let ss = compiler.monomorphise(ss); + if compiler.has_errors() { + compiler.emit_errors(); + std::process::exit(1); + } + compiler.interpret(ss); + Ok(()) +} diff --git a/arc-lang/src/mir.ml b/arc-lang/src/mir.ml deleted file mode 100644 index 337f388a3..000000000 --- a/arc-lang/src/mir.ml +++ /dev/null @@ -1,78 +0,0 @@ - -type mir = ((path * tys) * item) list - -and name = string -and paths = path list -and path = name list -and params = param list -and param = name * ty -and 't fields = 't field list -and 't field = name * 't -and ssas = ssa list -and ssa = var * ty * expr -and vars = var list -and var = name -and block = ssas * var -and interface = path * tys -and decorator = Ast.decorator - -and item = - | IVal of decorator * ty * block - | IEnum of decorator * paths - | IExternDef of decorator * tys * ty - | IExternType of decorator - | IDef of decorator * params * ty * block - | ITask of decorator * params * params * block - | IVariant of ty - -and tys = ty list -and ty = - | TFunc of tys * ty - | TRecord of ty fields - | TNominal of path * tys - -and expr = - | EAccess of var * name - | EUpdate of var * name * var - | ECall of var * vars - | ECast of var * ty - | EEmit of var * var - | EEnwrap of path * tys * var - | EIf of var * block * block - | EIs of path * tys * var - | ELit of Ast.lit - | ELoop of block - | EReceive of var - | ERecord of var fields - | EUnwrap of path * tys * var - | EReturn of var - | EBreak of var - | EContinue - | EItem of path * tys - -let is_int t = - match t with - | TNominal (["i16" | "i32" | "i64" | "i128"], []) -> true - | _ -> false - -let is_float t = - match t with - | TNominal (["f32" | "f64"], []) -> true - | _ -> false - -let is_bool t = - match t with - | TNominal (["bool"], []) -> true - | _ -> false - -let is_unit t = - match t with - | TNominal (["unit"], []) -> true - | _ -> false - -and nominal xs = TNominal (xs, []) -and atom x = TNominal ([x], []) - -and ts_of_vs vs = vs |> List.map (fun (_, t) -> t) -and fts_of_fvs vs = vs |> List.map (fun (x, (_, t)) -> (x, t)) - diff --git a/arc-lang/src/mir_to_mlir.ml b/arc-lang/src/mir_to_mlir.ml deleted file mode 100644 index 4768470ee..000000000 --- a/arc-lang/src/mir_to_mlir.ml +++ /dev/null @@ -1,335 +0,0 @@ -open Utils - -module Ctx = struct - type t = { - mir: Mir.mir; - mlir: Mlir.mlir; - stack: scope list; - } - and scope = { - vsubst: (Mlir.name * Mlir.ty) list; - } - - let add_item xs i ctx = { ctx with mlir = (xs, i)::ctx.mlir } - let make mir = { mir; mlir = []; stack = [] } - - let push_scope ctx = { ctx with stack = { vsubst = [] }::ctx.stack } - let pop_scope ctx = { ctx with stack = ctx.stack |> tl } - - let bind_var x (t:Mlir.ty) ctx = - match ctx.stack with - | hd::tl -> { ctx with stack = { vsubst = (x, t)::hd.vsubst}::tl } - | _ -> unreachable () - - let typeof_opt x ctx = - ctx.stack |> List.find_map (fun scope -> scope.vsubst |> List.assoc_opt x) - - let typeof x ctx = ctx |> typeof_opt x |> Option.get - -end - -let rec mlir_of_mir mir = - let ctx = Ctx.make mir in - let ctx = mir |> foldl (fun ctx a -> lower_item a ctx) ctx in - ctx.mlir - -and none_if_unit t ctx = - if Mir.is_unit t then - (None, ctx) - else - let (t, ctx) = lower_type t ctx in - (Some t, ctx) - -and filter_unit ts = - ts |> filter (fun t -> t |> Mir.is_unit |> not) - -and lower_item ((xs, ts), i) (ctx:Ctx.t) = - match i with - | Mir.IVal (_, t0, b) -> - let (x, ctx) = lower_path (xs, ts) ctx in - let (t0, ctx) = lower_type t0 ctx in - let terminator _ = Mlir.ENoop in - let (b, ctx) = lower_block b terminator ctx in - ctx |> Ctx.add_item x (Mlir.IAssign (t0, b)) - | Mir.IEnum _ -> ctx - | Mir.IExternDef (a, ps, t) -> - if not (is_defined_in_mlir a) then - let (x, ctx) = lower_path (xs, ts) ctx in - let (x_rust, ctx) = lower_extern_def_path x a ctx in - let (ts, ctx) = ps |> filter_unit |> mapm lower_type ctx in - let ps = ts |> Hir.indexes_to_fields in - let (t, ctx) = lower_type t ctx in - ctx |> Ctx.add_item x (Mlir.IExternFunc (x_rust, ps, t)) - else - ctx - | Mir.IExternType _ -> ctx - | Mir.IDef (_, ps, t, b) -> - let ctx = ctx |> Ctx.push_scope in - let (x, ctx) = lower_path (xs, ts) ctx in - let (ps, ctx) = ps |> mapm_filter lower_param ctx in - let terminator (v, t) = Mlir.EReturn (t |> Option.map (fun t -> (v, t))) in - let (t, ctx) = none_if_unit t ctx in - let (b, ctx) = lower_block b terminator ctx in - let ctx = ctx |> Ctx.pop_scope in - ctx |> Ctx.add_item x (Mlir.IFunc (ps, t, b)) - | Mir.ITask (_, ps0, ps1, b) -> - let ctx = ctx |> Ctx.push_scope in - let (x, ctx) = lower_path (xs, ts) ctx in - let (ps0, ctx) = ps0 |> mapm_filter lower_param ctx in - let (ps1, ctx) = ps1 |> mapm_filter lower_param ctx in - let (b, ctx) = lower_block b (fun _ -> Mlir.EReturn None) ctx in - ctx |> Ctx.add_item x (Mlir.ITask (ps0, ps1, b)) - | Mir.IVariant _ -> ctx - -and lower_enum (xs, ts) (ctx:Ctx.t) = - match ctx.mir |> List.assoc (xs, ts) with - | Mir.IEnum (_, xss) -> - let (vs, ctx) = xss |> mapm (fun xs ctx -> lower_variant (xs, ts) ctx) ctx in - (Mlir.TEnum vs, ctx) - | _ -> unreachable () - -and lower_extern_param (t:Mir.ty) (ctx:Ctx.t) = - if Mir.is_unit t then - (None, ctx) - else - let (t, ctx) = lower_type t ctx in - (Some t, ctx) - -and lower_param ((x, t):Mir.param) (ctx:Ctx.t) = - if Mir.is_unit t then - (None, ctx) - else - let (t, ctx) = lower_type t ctx in - let ctx = ctx |> Ctx.bind_var x t in - (Some (x, t), ctx) - -and lower_types ts ctx = - ts |> mapm lower_type ctx - -and lower_type t ctx = - match t with - | Mir.TFunc (ts, t) -> - let (ts, ctx) = ts |> mapm lower_type ctx in - let (t, ctx) = lower_type t ctx in - (Mlir.TFunc (ts, t), ctx) - | Mir.TRecord fts -> - let (fts, ctx) = lower_type_fields fts ctx in - (Mlir.TRecord fts, ctx) - | Mir.TNominal (xs, ts) -> - begin match ctx.mir |> List.assoc (xs, ts) with - | Mir.IEnum (_, xss) -> - let (vs, ctx) = xss |> mapm (fun xs ctx -> lower_variant (xs, ts) ctx) ctx in - (Mlir.TEnum vs, ctx) - | Mir.IExternType a -> - begin - match a |> List.assoc_opt "mlir" with - | Some Some Ast.LString x -> - (Mlir.TNative x, ctx) - | None -> - begin match a |> List.assoc_opt "rust" with - | Some Some Ast.LString x -> - let (ts, ctx) = lower_types ts ctx in - if ts = [] then - (Mlir.TAdt x, ctx) - else - (Mlir.TGAdt (x, ts), ctx) - | _ -> panic "Expected literal string, got something else" - end - | _ -> panic "Expected mlir or rust attribute" - end - | _ -> unreachable () - end - -and lower_type_fields fts ctx = - fts |> mapm lower_type_field ctx - -and lower_type_field (x, t) ctx = - let (t, ctx) = lower_type t ctx in - ((x, t), ctx) - -and lower_block (ss, v) terminator ctx = - let ctx = ctx |> Ctx.push_scope in - let (ss, ctx) = ss |> mapm lower_ssa ctx in - let v = terminator (v, ctx |> Ctx.typeof_opt v) in - let ctx = ctx |> Ctx.pop_scope in - (ss @ [(None, v)], ctx) - -and lower_path (xs, ts) ctx = - (* Mangle path *) - let (ts, ctx) = lower_types ts ctx in - let s0 = xs |> String.concat "" in - let s1 = mangle_types ts in - (s0 ^ s1, ctx) - -and mangle_types ts = - ts |> map mangle_type |> String.concat "" - -and mangle_type t = - let rec mangle_type t acc = - match t with - | Mlir.TAdt x -> - let acc = "Adt"::acc in - let acc = x::acc in - let acc = "End"::acc in - acc - | Mlir.TGAdt (x, ts) -> - let acc = "GAdt"::acc in - let acc = x::acc in - let acc = mangle_types ts acc in - let acc = "End"::acc in - acc - | Mlir.TEnum vts -> - let acc = "Enum"::acc in - let acc = mangle_fields vts acc in - let acc = "End"::acc in - acc - | Mlir.TFunc (ts, t) -> - let acc = "Func"::acc in - let acc = mangle_types ts acc in - let acc = mangle_type t acc in - let acc = "End"::acc in - acc - | Mlir.TNative x -> - x::acc - | Mlir.TRecord fts -> - let acc = "Struct"::acc in - let acc = mangle_fields fts acc in - let acc = "End"::acc in - acc - | Mlir.TStream t -> - let acc = "Stream"::acc in - let acc = mangle_type t acc in - let acc = "End"::acc in - acc - and mangle_types ts acc = - ts |> foldl (fun acc t -> mangle_type t acc) acc - and mangle_field (x, t) acc = - let acc = ((x |> String.length) |> Int.to_string)::acc in - let acc = x::acc in - let acc = mangle_type t acc in - acc - and mangle_fields fts acc = - fts |> foldl (fun acc ft -> mangle_field ft acc) acc - in - mangle_type t [] |> List.rev |> String.concat "" - -and lower_ssa (v, t, e) ctx = - let (v, ctx) = lower_param (v, t) ctx in - let (e, ctx) = lower_expr t e ctx in - ((v, e), ctx) - -and lower_expr t e ctx = - let typeof v = ctx |> Ctx.typeof v in - let arg v = (v, typeof v) in - let arg_opt v = ctx |> Ctx.typeof_opt v |> Option.map (fun t -> (v, t)) in - let args vs = vs |> List.filter_map arg_opt in - match e with - | Mir.EAccess (v0, x0) -> - (Mlir.EAccess (arg v0, x0), ctx) - | Mir.EUpdate (v0, x0, v1) -> - (Mlir.EUpdate (arg v0, x0, arg v1), ctx) - | Mir.ECall (v0, vs) -> - (Mlir.ECall (arg v0, args vs), ctx) - | Mir.ECast _ -> todo () - | Mir.EEmit (v0, v1) -> - (Mlir.EEmit ((arg v0), (arg v1)), ctx) - | Mir.EEnwrap (xs, ts, v0) -> - let (x, ctx) = lower_path (xs, ts) ctx in - (Mlir.EEnwrap (x, arg_opt v0), ctx) - | Mir.EUnwrap (xs, ts, v0) -> - if Mir.is_unit t then - (Mlir.ENoop, ctx) - else - let (x, ctx) = lower_path (xs, ts) ctx in - (Mlir.EUnwrap (x, arg v0), ctx) - | Mir.EIs (xs, ts, v0) -> - let (x, ctx) = lower_path (xs, ts) ctx in - (Mlir.EIs (x, arg v0), ctx) - | Mir.EIf (v0, b0, b1) -> - let terminator (v, t) = Mlir.EResult (t |> Option.map (fun t -> (v, t))) in - let (b0, ctx) = lower_block b0 terminator ctx in - let (b1, ctx) = lower_block b1 terminator ctx in - (Mlir.EIf (arg v0, b0, b1), ctx) - | Mir.ELit l -> - let e = match l with - | Ast.LInt (d, _) -> Mlir.EConst (Mlir.CInt d) - | Ast.LFloat (f, _) -> Mlir.EConst (Mlir.CFloat f) - | Ast.LBool b -> Mlir.EConst (Mlir.CBool b) - | Ast.LString s -> Mlir.EConst (Mlir.CAdt (Printf.sprintf "\\\"%s\\\"" s)) - | Ast.LUnit -> Mlir.ENoop - | Ast.LChar c -> Mlir.EConst (Mlir.CAdt (Printf.sprintf "'%c'" c)) - in - (e, ctx) - | Mir.ELoop b -> - let terminator _ = Mlir.EYield in - let (b, ctx) = lower_block b terminator ctx in - (Mlir.ELoop b, ctx) - | Mir.EReceive v -> - (Mlir.EReceive (arg v), ctx) - | Mir.ERecord fvs -> - let (fvs, ctx) = fvs |> mapm_filter lower_field_expr ctx in - let (xs, ts) = fvs |> map (fun (_, v) -> v) |> Utils.unzip in - (Mlir.ERecord (xs, ts), ctx) - | Mir.EReturn v0 -> - (Mlir.EReturn (arg_opt v0), ctx) - | Mir.EBreak v0 -> - (Mlir.EBreak (arg_opt v0), ctx) - | Mir.EContinue -> - (Mlir.EContinue, ctx) - | Mir.EItem (xs, ts) -> - match ctx.mir |> List.assoc (xs, ts) with - | Mir.IVal _ -> todo () - | Mir.IEnum _ -> unreachable () - | Mir.IExternDef (a, _, _) -> - let (x, ctx) = ctx |> lower_extern_use_path a (xs, ts) in - (Mlir.EConst (Mlir.CFun x), ctx) - | Mir.IExternType _ -> unreachable () - | Mir.IDef _ -> - let (x, ctx) = lower_path (xs, ts) ctx in - (Mlir.EConst (Mlir.CFun x), ctx) - | Mir.ITask _ -> todo () - | Mir.IVariant _ -> unreachable () - -and is_defined_in_mlir d = - d |> assoc_opt "mlir" |> Option.is_some - -and lower_extern_use_path d (xs, ts) ctx = - match d |> List.assoc_opt "mlir" with - | Some Some Ast.LString y -> (y, ctx) - | None -> lower_path (xs, ts) ctx - | _ -> panic "Found non-string as mlir" - -and lower_extern_def_path x d ctx = - match d |> List.assoc_opt "rust" with - | Some Some Ast.LString y -> (y, ctx) - | None -> panic (Printf.sprintf "rust attribute must be specified for %s" x) - | _ -> panic (Printf.sprintf "Found non-string as rust attribute-value for %s" x) - -and lower_field_type (x, t) ctx = - let (t, ctx) = lower_type t ctx in - ((x, t), ctx) - -and lower_field_expr (x, v) ctx = - let fa = ctx |> Ctx.typeof_opt v |> Option.map (fun t -> (x, (v, t))) in - (fa, ctx) - -and lower_variant (xs, ts) ctx = - match ctx.mir |> List.assoc (xs, ts) with - | Mir.IVariant t -> - let (t, ctx) = lower_type t ctx in - let (xs, ctx) = lower_path (xs, ts) ctx in - ((xs, t), ctx) - | _ -> unreachable () - -and int_or_float t = - match t with - | t when Mir.is_int t -> Mlir.NInt - | t when Mir.is_float t -> Mlir.NFlt - | _ -> todo () - -and int_or_float_or_bool t = - match t with - | t when Mir.is_int t -> Mlir.EqInt - | t when Mir.is_float t -> Mlir.EqFlt - | t when Mir.is_bool t -> Mlir.EqBool - | _ -> todo () diff --git a/arc-lang/src/mir_to_rust.ml b/arc-lang/src/mir_to_rust.ml deleted file mode 100644 index 662cb63ce..000000000 --- a/arc-lang/src/mir_to_rust.ml +++ /dev/null @@ -1,221 +0,0 @@ -open Mir -open Pretty -open Utils - -let rec pr_mir (mir:Mir.mir) = - let ctx = Ctx.brief_with_data mir in - mir |> List.iter (fun i -> pr_item i ctx); - pr "\n"; - -and pr_item_path (xs, ts) (ctx:Mir.mir Ctx.t) = - let i = ctx.data |> assoc (xs, ts) in - pr_item ((xs, ts), i) ctx; - -and pr_variants xss ts ctx = - pr_sep "" pr_variant (map (fun xs -> (xs, ts)) xss) (ctx |> Ctx.indent); - -and pr_variant (xs, ts) (ctx:Mir.mir Ctx.t) = - match ctx.data |> assoc (xs, ts) with - | IVariant t -> - pr_path (xs, ts) ctx; - pr_paren (pr_type t) ctx - | _ -> unreachable () - -and pr_item ((xs, ts), i) ctx = - ctx |> pr_indent; - match i with - | IVal _ -> todo() - | IEnum (_, xss) -> - pr "#[arc_codegen::rewrite]"; - ctx |> pr_indent; - pr "enum "; - pr_path (xs, ts) ctx; - pr " {"; - ctx |> Ctx.indent |> pr_indent; - pr_variants xss ts ctx; - ctx |> pr_indent; - pr "}"; - | IExternDef _ -> () - | IExternType _ -> () - | IDef (_, ps, t, b) -> - pr "fn "; - pr_path (xs, ts) ctx; - pr_params ps ctx; - pr " -> "; - pr_type t ctx; - pr " "; - pr_block b ctx; - | ITask (_, _ps0, _ps1, _b) -> - todo () - | IVariant _ -> () - -and pr_path (xs, ts) ctx = - prr (xs |> String.concat ""); - ts |> List.iter (fun t -> pr_mangle_type t ctx) - -and pr_interface (xs, ts) ctx = - pr_path (xs, ts) ctx; - pr_brack (pr_types ts) ctx; - -and pr_params ps ctx = - pr_paren (pr_list pr_param ps) ctx - -and pr_param (x, t) ctx = - pr_name x ctx; - pr ": "; - pr_type t ctx; - -and pr_types ts ctx = - pr_list pr_type ts ctx; - -and pr_type t ctx = - match t with - | TFunc (ts, t) -> - pr "fn"; - pr_paren (pr_list pr_type ts) ctx; - pr " -> "; - pr_type t ctx; - | TRecord _ -> pr_mangle_type t ctx - | TNominal _ -> pr_mangle_type t ctx - -and pr_mangle_type t ctx = - let rec pr_mangle_type t = - match t with - | Mir.TNominal (xs, ts) -> - pr_path (xs, ts) ctx; - | Mir.TFunc (ts, t) -> - pr "Func"; - pr_mangle_types ts; - pr_mangle_type t; - pr "End"; - | Mir.TRecord fts -> - pr "Struct"; - pr_mangle_fields fts; - pr "End"; - and pr_mangle_types ts = - ts |> List.iter pr_mangle_type; - and pr_mangle_field (x, t) = - prr ((x |> String.length) |> Int.to_string); - prr x; - pr_mangle_type t; - and pr_mangle_fields fts = - fts |> List.iter pr_mangle_field - in - pr_mangle_type t - -and pr_block (ss, v) ctx = - let ctx' = ctx |> Ctx.indent in - pr "{"; - if ss != [] then begin - pr_sep ";" pr_ssa ss ctx'; - pr ";"; - end; - ctx' |> pr_indent; - pr_var v ctx'; - ctx |> pr_indent; - pr "}"; - -and pr_ssa (x, t, e) ctx = - ctx |> pr_indent; - pr "val "; - pr_name x ctx; - pr ": "; - pr_type t ctx; - pr " = "; - pr_expr e ctx; - -and pr_name x _ctx = - pr "%s" x; - -and pr_expr e ctx = - match e with - | EAccess (v, x) -> - pr_var v ctx; - pr "."; - pr_name x ctx; - | EUpdate (v0, x, v1) -> - pr_var v0 ctx; - pr "."; - pr_name x ctx; - pr " = "; - pr_var v1 ctx; - | ECall (v, vs) -> - pr_var v ctx; - pr_paren (pr_list pr_var vs) ctx; - | ECast (v, t) -> - pr_var v ctx; - pr " as "; - pr_type t ctx; - | EEmit (v0, v1) -> - pr_var v0 ctx; - pr ".push"; - pr_paren (pr_var v1) ctx; - pr ".await?" - | EReceive v -> - pr_var v ctx; - pr "pull().await?"; - | EEnwrap (xs, ts, v) -> - pr "enwrap["; - pr_path (xs, ts) ctx; - if ts != [] then begin - pr_brack (pr_list pr_type ts) ctx; - end; - pr "]"; - pr_paren (pr_var v) ctx; - | EIf (v, b0, b1) -> - pr "if "; - pr_var v ctx; - pr " "; - pr_block b0 ctx; - pr " else "; - pr_block b1 ctx; - | EIs (xs, ts, v) -> - pr "is!("; - pr_path (xs, ts) ctx; - if ts != [] then begin - pr_brack (pr_list pr_type ts) ctx; - end; - pr ")"; - pr_paren (pr_var v) ctx; - | ELit l -> - pr_lit l ctx; - | ELoop b -> - pr "loop "; - pr_block b ctx; - | ERecord fvs -> - pr "#{"; - pr_list pr_expr_field fvs ctx; - pr "}"; - | EUnwrap (xs, ts, v) -> - pr "unwrap["; - pr_path (xs, ts) ctx; - if ts != [] then begin - pr_brack (pr_list pr_type ts) ctx; - end; - pr "]"; - pr_paren (pr_var v) ctx; - | EReturn v -> - pr "return "; - pr_var v ctx; - | EBreak v -> - pr "break "; - pr_var v ctx; - | EContinue -> - pr "continue" - | EItem (xs, ts) -> - pr_path (xs, ts) ctx; - -and pr_type_field (x, t) ctx = - pr "pub "; - pr_name x ctx; - pr ": "; - pr_type t ctx; - -and pr_expr_field (x, v) ctx = - pr_name x ctx; - pr ": "; - pr_var v ctx; - -and pr_var x ctx = - pr "val!"; - pr_paren (pr_name x) ctx diff --git a/arc-lang/src/mlir.ml b/arc-lang/src/mlir.ml deleted file mode 100644 index a44b857fa..000000000 --- a/arc-lang/src/mlir.ml +++ /dev/null @@ -1,79 +0,0 @@ -type mlir = (path * item) list -and names = name list -and name = string -and path = name -and 't fields = 't field list -and 't field = name * 't -and ops = op list -and op = param option * expr -and args = arg list -and arg = name * ty -and params = param list -and param = name * ty -and block = ops -and item = - | IAssign of ty * block - | IExternFunc of name * params * ty - | IFunc of params * ty option * block - | ITask of params * params * block -and tys = ty list -and ty = - | TFunc of tys * ty - | TRecord of ty fields - | TEnum of ty fields - | TAdt of path - | TGAdt of path * tys - | TStream of ty - | TNative of name -and num = - | NFlt - | NInt -and eq = - | EqFlt - | EqInt - | EqBool -and binop = - | BAdd of num - | BAnd - | BBand - | BBor - | BBxor - | BDiv of num - | BEqu of eq - | BGeq of num - | BGt of num - | BLeq of num - | BLt of num - | BMod of num - | BMul of num - | BMut - | BNeq of eq - | BOr - | BPow of num - | BSub of num - | BXor -and expr = - | EAccess of arg * name - | EUpdate of arg * name * arg - | ECall of arg * args - | EEmit of arg * arg - | EEnwrap of path * arg option - | EIf of arg * block * block - | EIs of path * arg - | EConst of const - | ELoop of block - | ERecord of names * tys - | EReceive of arg - | EUnwrap of path * arg - | EReturn of arg option - | EBreak of arg option - | EContinue - | EYield - | EResult of arg option - | ENoop -and const = - | CBool of bool - | CFun of path - | CInt of int - | CFloat of float - | CAdt of string diff --git a/arc-lang/src/parser.mly b/arc-lang/src/parser.mly deleted file mode 100644 index eee68b28c..000000000 --- a/arc-lang/src/parser.mly +++ /dev/null @@ -1,406 +0,0 @@ -%start program -%start expr -%% - -expr: expr0 Eof { $1 } -program: items Eof { $1 } - -(* Utilities *) -%inline paren(x): "(" x ")" { $2 } -%inline brack(x): "[" x "]" { $2 } -%inline brace(x): "{" x "}" { $2 } -%inline angle(x): "<" x ">" { $2 } - -%inline epsilon: {} - -%inline llist(x): - llist_rev(x) { $1 |> List.rev } - -llist_rev(x): - | epsilon { [] } - | llist_rev(x) x { $2::$1 } - -%inline nonempty_llist(x): - nonempty_llist_rev(x) { $1 |> List.rev } - -nonempty_llist_rev(x): - | x { [$1] } - | nonempty_llist_rev(x) x { $2::$1 } - -%inline separated_nonempty_llist(s, x): - separated_nonempty_llist_rev(s, x) { $1 |> List.rev } - -separated_nonempty_llist_rev(s, x): - | x { [$1] } - | separated_nonempty_llist_rev(s, x) s x { $3::$1 } - -%inline separated_llist(s, x): - | epsilon { [] } - | separated_nonempty_llist(s, x) { $1 } - -%inline separated_llist_trailing(s, x): - | separated_llist(s, x) s? { $1 } - -%inline separated_nonempty_llist_trailing(s, x): - | separated_nonempty_llist(s, x) s? { $1 } - -(* The grammar *) - -%inline decorator: "@" brace(separated_llist_trailing(",", field(lit))) { $2 } - -%inline items: llist(item) { $1 } -%inline item: - | loption(decorator) "extern" "def" defname loption(generics) paren(typarams) annot(ty0)? ";" - { Ast.IExternDef ($1, $4, $5, $6, $7) } - | loption(decorator) "type" name loption(generics) "=" ty0 ";" - { Ast.ITypeAlias ($1, $3, $4, $6) } - | loption(decorator) "extern" "type" name loption(generics) ";" - { Ast.IExternType ($1, $4, $5) } - | loption(decorator) "enum" name loption(generics) brace(variants) - { Ast.IEnum ($1, $3, $4, $5) } - | loption(decorator) "class" name loption(generics) brace(decls) - { Ast.IClass ($1, $3, $4, $5) } - | loption(decorator) "instance" loption(generics) path loption(brack(tys)) brace(defs) - { Ast.IInstance ($1, $3, $4, $5, $6) } - | loption(decorator) "def" defname loption(generics) params annot(ty0)? body? - { Ast.IDef ($1, $3, $4, $5, $6, $7) } - | loption(decorator) "mod" name brace(items) - { Ast.IMod ($1, $3, $4) } - | loption(decorator) "task" defname loption(generics) params ":" params body? - { Ast.ITask ($1, $3, $4, $5, $7, $8) } - | loption(decorator) "use" path alias(name)? ";" - { Ast.IUse ($1, $3, $4) } - | loption(decorator) "val" name annot(ty0)? "=" expr0 ";" - { Ast.IVal ($1, $3, $4, $6) } - -%inline typarams: separated_llist(",", ty0) { $1 } - -%inline decls: llist(decl) { $1 } -%inline decl: "def" name loption(generics) params annot(ty0)? - { ($2, $3, $4, $5) } - -%inline defs: llist(def) { $1 } -%inline def: "def" name loption(generics) params annot(ty0)? block - { ($2, $3, $4, $5, $6) } - -%inline body: - | "=" expr1 { ([], Some $2) } - | block { $1 } - -%inline annot(x): ":" x { $2 } - -%inline params: paren(separated_llist_trailing(",", param)) { $1 } -%inline param: pat0 annot(ty0)? { ($1, $2) } - -%inline generics: brack(separated_llist_trailing(",", generic)) { $1 } -%inline generic: Name { $1 } - -%inline variants: separated_llist_trailing(",", variant) { $1 } -%inline variant: name loption(paren(tys)) { ($1, $2) } - -%inline alias(x): "as" x { $2 } - -%inline name: Name { $1 } - -%inline binop: - | ".." { Ast.BRInc } - | "..=" { Ast.BRExc } - | "bor" { Ast.BBor } - | "band" { Ast.BBand } - | "bxor" { Ast.BBxor } - | "or" { Ast.BOr } - | "xor" { Ast.BXor } - | "and" { Ast.BAnd } - | "==" { Ast.BEq None } | "==." { Ast.BEq (Some $1) } - | "!=" { Ast.BNeq None } | "!=." { Ast.BNeq (Some $1) } - | "<" { Ast.BLt None } | "<." { Ast.BLt (Some $1) } - | ">" { Ast.BGt None } | ">." { Ast.BGt (Some $1) } - | "<=" { Ast.BLeq None } | "<=." { Ast.BLeq (Some $1) } - | ">=" { Ast.BGeq None } | ">=." { Ast.BGeq (Some $1) } - | "+" { Ast.BAdd None } | "+." { Ast.BAdd (Some $1) } - | "-" { Ast.BSub None } | "-." { Ast.BSub (Some $1) } - | "%" { Ast.BMod None } | "%." { Ast.BMod (Some $1) } - | "*" { Ast.BMul None } | "*." { Ast.BMul (Some $1) } - | "/" { Ast.BDiv None } | "/." { Ast.BDiv (Some $1) } - | "**" { Ast.BPow None } | "**." { Ast.BPow (Some $1) } - -%inline unop: - | "not" { Ast.UNot } - -%inline defname: - | name { Ast.DName $1 } - | unop { Ast.DUnOp $1 } - | binop { Ast.DBinOp $1 } - -%inline index: Int { $1 } - -%inline path: separated_nonempty_llist("::", name) { $1 } - -%inline receivers: separated_nonempty_llist(",", receiver) { $1 } -%inline receiver: pat0 "in" expr0 "=>" expr0 { ($1, $3, $5) } - -%inline handler: - | receiver { [$1] } - | brace(receivers) { $1 } - -expr0: - | "on" handler { Ast.EOn $2 } - | "return" expr1? { Ast.EReturn $2 } - | "break" expr1? { Ast.EBreak $2 } - | "continue" { Ast.EContinue } - | expr1 { $1 } - -expr1: - | "fun" params annot(ty0)? body { Ast.EFunc ($2, $4) } - | "task" ":" params body { Ast.ETask ($3, $4) } - | expr2 { $1 } - -%inline op2: - | "=" { Ast.BMut } - | "in" { Ast.BIn } - | "not" "in" { Ast.BNotIn } -expr2: - | expr3 { $1 } - | expr2 "!" expr3 { Ast.EEmit ($1, $3) } - | expr2 op2 expr3 { Ast.EBinOp ($2, $1, $3)} - -%inline op3: - | ".." { Ast.BRInc } - | "..=" { Ast.BRExc } -expr3: - | expr4 { $1 } - | expr4 op3 expr4 { Ast.EBinOp ($2, $1, $3)} - -%inline op4: - | "bor" { Ast.BBor } - | "band" { Ast.BBand } - | "bxor" { Ast.BBxor } - | "or" { Ast.BOr } - | "xor" { Ast.BXor } - | "and" { Ast.BAnd } -expr4: - | expr5 { $1 } - | expr4 op4 expr5 { Ast.EBinOp ($2, $1, $3)} - -%inline op5: - | "==" { Ast.BEq None } | "==." { Ast.BEq (Some $1) } - | "!=" { Ast.BNeq None } | "!=." { Ast.BNeq (Some $1) } -expr5: - | expr6 { $1 } - | expr5 op5 expr6 { Ast.EBinOp ($2, $1, $3)} - -%inline op6: - | "<" { Ast.BLt None } | "<." { Ast.BLt (Some $1) } - | ">" { Ast.BGt None } | ">." { Ast.BGt (Some $1) } - | "<=" { Ast.BLeq None } | "<=." { Ast.BLeq (Some $1) } - | ">=" { Ast.BGeq None } | ">=." { Ast.BGeq (Some $1) } - -expr6: - | expr7 { $1 } - | expr6 op6 expr7 { Ast.EBinOp ($2, $1, $3)} - -%inline op7: - | "+" { Ast.BAdd None } | "+." { Ast.BAdd (Some $1) } - | "-" { Ast.BSub None } | "-." { Ast.BSub (Some $1) } - | "%" { Ast.BMod None } | "%." { Ast.BMod (Some $1) } -expr7: - | expr8 { $1 } - | expr7 op7 expr8 { Ast.EBinOp ($2, $1, $3)} - -%inline op8: - | "*" { Ast.BMul None } | "*." { Ast.BMul (Some $1) } - | "/" { Ast.BDiv None } | "/." { Ast.BDiv (Some $1) } -expr8: - | expr9 { $1 } - | expr8 op8 expr9 { Ast.EBinOp ($2, $1, $3)} - -%inline op9: - | "not" { Ast.UNot } - | "-" { Ast.UNeg None } | "-." { Ast.UNeg (Some $1) } -expr9: - | expr10 { $1 } - | op9 expr9 { Ast.EUnOp ($1, $2)} - -%inline op10: - | "**" { Ast.BPow None } | "**." { Ast.BPow (Some $1) } -expr10: - | expr11 { $1 } - | expr11 op10 expr10 { Ast.EBinOp ($2, $1, $3)} - -expr11: - | expr12 { $1 } - | expr11 alias(ty1) { Ast.ECast ($1, $2) } - -%inline expr12: - | expr13 { $1 } - | expr14 { $1 } - -expr13: - | expr15 { $1 } - | expr15 paren(separated_llist_trailing(",", expr1)) - { Ast.ECall ($1, $2) } - -expr14: - | expr12 "." index - { Ast.EProject ($1, $3) } - | expr12 "." name - { Ast.EAccess ($1, $3) } - | expr12 brack(expr1) - { Ast.ESelect ($1, $2) } - | expr12 "." name paren(separated_llist_trailing(",", expr1)) - { Ast.EInvoke ($1, $3, $4) } - -%inline expr15: - | paren(expr0) - { $1 } - | paren(binop) - { Ast.EBinOpRef ($1) } - | block - { Ast.EBlock $1 } - | lit - { Ast.ELit $1 } - | path loption(qualify(brack(tys))) - { Ast.EPath ($1, $2) } - | "[" separated_llist_trailing(",", expr0) tail(expr0)? "]" - { Ast.EArray ($2, $3) } - | "[" expr0 ";" for_generator ";" separated_llist(";", clause) "]" - { Ast.ECompr ($2, $4, $6) } - | tuple(expr0) - { Ast.ETuple $1 } - | record(expr0) - { Ast.ERecord $1 } - | "if" expr2 block else_block? - { Ast.EIf ($2, $3, $4) } - | "if" "val" pat0 "=" expr1 block else_block? - { Ast.EIfVal ($3, $5, $6, $7) } - | "match" expr1 brace(arms) - { Ast.EMatch ($2, $3) } - | "loop" block - { Ast.ELoop $2 } - | "while" expr1 block - { Ast.EWhile ($2, $3) } - | "while" "val" pat0 "=" expr1 block - { Ast.EWhileVal ($3, $5, $6) } - | "for" pat0 "in" expr1 block - { Ast.EFor ($2, $4, $5) } - | "from" separated_nonempty_llist(",", scan) brace(nonempty_llist(step)) - { Ast.EFrom ($2, $3) } - | "_" - { Ast.EAnon } - -%inline scan: pat0 scankind expr1 { ($1, $2, $3) } -%inline scankind: - | "in" { Ast.ScIn } - | "=" { Ast.ScEq } - -%inline step: - | "where" expr1 - { Ast.SWhere $2 } - | "join" scan join_on? - { Ast.SJoin ($2, $3) } - | "group" separated_nonempty_llist(",", expr1) window? loption(reduce) - { Ast.SGroup ($2, $3, $4) } - | "order" separated_nonempty_llist(",", pair(expr1, order)) - { Ast.SOrder $2 } - | "yield" expr1 - { Ast.SYield $2 } - -%inline window: "window" window_step? window_duration { ($2, $3) } -%inline window_step: "step" expr1 { $2 } -%inline window_duration: "duration" expr1 { $2 } -%inline join_on: "on" expr1 { $2 } -%inline reduce: "reduce" separated_nonempty_llist(",", agg) { $2 } - -%inline order: - | { Ast.OAsc } - | "desc" { Ast.ODesc } - -%inline agg: expr1 aggof? { ($1, $2) } -%inline aggof: "of" expr1 { $2 } - -%inline qualify(x): "::" x { $2 } -%inline tail(x): "|" x { $2 } - -%inline clause: - | for_generator { let (x0, x1) = $1 in Ast.CFor (x0, x1) } - | guard { Ast.CIf ($1) } - -%inline for_generator: "for" pat0 "in" expr0 { ($2, $4) } -%inline guard: "if" expr0 { $2 } - -%inline else_block: "else" block { $2 } - -%inline arms: separated_nonempty_llist_trailing(",", arm) { $1 } -%inline arm: pat0 "=>" expr0 { ($1, $3) } - -%inline block: "{" stmts expr0? "}" { ($2, $3) } - -%inline stmts: llist(stmt) { $1 } -%inline stmt: - | ";" - { Ast.SNoop } - | expr0 ";" - { Ast.SExpr $1 } - | "val" param "=" expr0 ";" - { Ast.SVal ($2, $4) } - | "var" name annot(ty0)? "=" expr0 ";" - { Ast.SVar (($2, $3), $5) } - -%inline pats: separated_nonempty_llist(",", pat0) { $1 } -pat0: - | pat0 "or" pat1 - | pat1 { $1 } - -pat1: - | lit - { Ast.PConst $1 } - | name - { Ast.PVar $1 } - | path paren(pats) - { Ast.PUnwrap ($1, $2) } - | tuple(pat0) - { Ast.PTuple $1 } - | record(pat0) - { Ast.PRecord $1 } - | "_" - { Ast.PIgnore } - -%inline tys: separated_nonempty_llist(",", ty0) { $1 } -ty0: - | ty1 - { $1 } - | "fun" paren(tys) ":" ty0 - { Ast.TFunc ($2, $4) } - -ty1: - | path loption(brack(tys)) - { Ast.TPath ($1, $2) } - | tuple(ty0) - { Ast.TTuple $1 } - | record(ty0) - { Ast.TRecord $1 } - | brack(ty0) - { Ast.TArray $1 } - -%inline tuple(x): "(" x "," separated_llist_trailing(",", x) ")" - { $2::$4 } - -%inline record(x): "#{" fields(x) tail(x)? "}" - { ($2, $3) } - -%inline fields(x): separated_llist_trailing(",", field(x)) { $1 } -%inline field(x): - | name ":" x - { ($1, Some $3) } - | name - { ($1, None) } - -%inline lit: - | Bool { Ast.LBool $1 } - | Char { Ast.LChar $1 } - | Int { Ast.LInt ($1, None) } - | Float { Ast.LFloat ($1, None) } - | IntSuffix { Ast.LInt (fst $1, Some (snd $1)) } - | FloatSuffix { Ast.LFloat (fst $1, Some (snd $1)) } - | "unit" { Ast.LUnit } - | String { Ast.LString $1 } diff --git a/arc-lang/src/pretty.ml b/arc-lang/src/pretty.ml deleted file mode 100644 index 89691ec48..000000000 --- a/arc-lang/src/pretty.ml +++ /dev/null @@ -1,134 +0,0 @@ - -module Ctx = struct - type 'a t = { - indent: int; - show_types: bool; - show_externs: bool; - show_parens: bool; - data: 'a; - } - - let indent ctx = - { ctx with indent = ctx.indent + 1 } - - let make show_types show_externs show_parens data = { - indent = 0; - show_types; - show_externs; - show_parens; - data; - } - - let brief = make false false false () - let typed = make true false false () - let verbose = make true true true () - - let brief_with_data data = make false false false data - let typed_with_data data = make true false false data - let verbose_with_data data = make true true true data - -end - -let pr fmt = Printf.printf fmt -let prr s = Printf.printf "%s" s - -let rec pr_sep sep f l ctx = - match l with - | [x] -> f x ctx - | [] -> () - | h::t -> - f h ctx; - pr sep; - pr_sep sep f t ctx - -let pr_list f l ctx = - pr_sep ", " f l ctx - -let pr_indent (ctx:'a Ctx.t) = - Printf.printf "\n"; - let rec pr_indent i = match i with - | 0 -> () - | i -> - Printf.printf " "; - pr_indent (i - 1) - in - pr_indent ctx.indent - -let pr_delim l r f ctx = - pr l; - f ctx; - pr r - -let pr_paren f ctx = - pr_delim "(" ")" f ctx - -let pr_brack f ctx = - pr_delim "[" "]" f ctx - -let pr_brace f ctx = - pr_delim "{" "}" f ctx - -let pr_angle f ctx = - pr_delim "<" ">" f ctx - -let pr_quote f ctx = - pr_delim "\"" "\"" f ctx - -and pr_name x _ctx = - pr "%s" x - -let pr_field_opt f (x, a) ctx = - pr_name x ctx; - match a with - | Some a -> - pr ": "; - f a ctx; - | None -> () - -let pr_field f (x, a) ctx = - pr_name x ctx; - pr ": "; - f a ctx - -let rec pr_path xs ctx = - match xs with - | [] -> - () - | [h] -> - pr "%s" h; - | h::t -> - pr "%s::" h; - pr_path t ctx; - -and pr_fields_opt f fs ctx = pr_list (pr_field_opt f) fs ctx - -and pr_fields f fs ctx = pr_list (pr_field f) fs ctx - -and pr_var x ctx = - pr_name x ctx - -and path_to_str xs = - match xs with - | [] -> "" - | x::xs -> Printf.sprintf "::%s%s" x (path_to_str xs); - -and pr_decorator d ctx = - pr "@"; - pr_brace (pr_fields_opt pr_lit d) ctx; - ctx |> pr_indent; - -and pr_annot (x, l) ctx = - pr_name x ctx; - pr ":"; - pr_lit l ctx; - -and pr_lit l _ctx = - match l with - | Ast.LInt (c, Some s) -> pr "%d%s" c s; - | Ast.LInt (c, None) -> pr "%d" c - | Ast.LFloat (c, Some s) -> pr "%f%s" c s; - | Ast.LFloat (c, None) -> pr "%f" c; - | Ast.LBool c -> pr "%b" c; - | Ast.LUnit -> pr "unit"; - | Ast.LString c -> pr "\"%s\"" c - | Ast.LChar c -> pr "%c" c diff --git a/arc-lang/src/pretty_ast.ml b/arc-lang/src/pretty_ast.ml deleted file mode 100644 index 89ef04e07..000000000 --- a/arc-lang/src/pretty_ast.ml +++ /dev/null @@ -1,532 +0,0 @@ -open Ast -open Utils -open Pretty - -let pr_tail f a ctx = - begin match a with - | Some a -> - pr "|"; - f a ctx; - | None -> - () - end - -let rec pr_ast (ast:Ast.ast) debug = - let ctx = if debug = Debug.Verbose then - Ctx.verbose - else - Ctx.brief - in - ast |> filter (show_item ctx) |> List.iter (fun i -> pr_item i ctx); - pr "\n"; - -and show_item (ctx:'a Ctx.t) i = - match i with - | IExternType _ | IExternDef _ when not ctx.show_externs -> false - | _ -> true - -and pr_generics gs ctx = - if gs != [] then begin - pr_brack (pr_list pr_generic gs) ctx; - end; - -and pr_generic x ctx = - pr_name x ctx; - -and pr_item i ctx = - ctx |> pr_indent; - match i with - | IVal (d, x, t, e) -> - pr_decorator d ctx; - pr "val "; - pr_name x ctx; - pr_type_annot t ctx; - pr " = "; - pr_expr e ctx; - pr ";"; - | IEnum (d, x, gs, xss) -> - pr_decorator d ctx; - pr "enum "; - pr_name x ctx; - pr_generics gs ctx; - pr " {"; - pr_list pr_variant xss (ctx |> Ctx.indent); - ctx |> pr_indent; - pr "}"; - | IExternDef (d, x, gs, ts, t) -> - pr_decorator d ctx; - pr "extern fun "; - pr_def_name x ctx; - pr_generics gs ctx; - pr_paren (pr_types ts) ctx; - pr ": "; - pr_type_annot t ctx; - pr ";"; - | IExternType (d, x, gs) -> - pr_decorator d ctx; - pr "extern type "; - pr_name x ctx; - pr_generics gs ctx; - pr ";"; - | IDef (d, x, gs, ps, t0, b) -> - pr_decorator d ctx; - pr "fun "; - pr_def_name x ctx; - pr_generics gs ctx; - pr_params ps ctx; - pr_type_annot t0 ctx; - pr_body b ctx; - | ITask (d, x, gs, ps0, ps1, b) -> - pr_decorator d ctx; - pr "task "; - pr_def_name x ctx; - pr_generics gs ctx; - pr_params ps0 ctx; - pr ":"; - pr_params ps1 ctx; - pr_body b ctx; - | ITypeAlias (a, x, gs, t) -> - pr_decorator a ctx; - pr "type "; - pr_name x ctx; - pr_generics gs ctx; - pr " = "; - pr_type t ctx; - pr ";"; - | IMod (a, x, is) -> - pr_decorator a ctx; - pr "mod "; - pr_name x ctx; - pr " {"; - pr_sep "" pr_item is ctx; - pr "}"; - | IUse (a, xs, x) -> - pr_decorator a ctx; - pr "use "; - pr_path xs ctx; - begin match x with - | Some x -> pr_name x ctx; - | None -> () - end; - pr ";"; - | IClass (d, x, gs, ds) -> - pr_decorator d ctx; - pr "class "; - pr_name x ctx; - pr_generics gs ctx; - pr_decls ds ctx; - | IInstance (d, gs, xs, ts, ds) -> - pr_decorator d ctx; - pr "instance "; - pr_generics gs ctx; - pr_path xs ctx; - pr ": "; - pr_type_args ts ctx; - pr_defs ds ctx; - -and pr_def_name d ctx = - match d with - | Ast.DName x -> pr_name x ctx; - | Ast.DUnOp op -> pr_unop op ctx; - | Ast.DBinOp op -> pr_binop op ctx; - -and pr_type_args ts ctx = - if ts != [] then begin - pr "["; - pr_list pr_type ts ctx; - pr "]"; - end - -and pr_decls ds ctx = - pr " {"; - pr_sep "" pr_decl ds ctx; - pr "}"; - -and pr_decl (x, gs, ps, t) ctx = - pr "def "; - pr_name x ctx; - pr_generics gs ctx; - pr_params ps ctx; - pr_type_annot t ctx; - pr ";"; - -and pr_defs ds ctx = - if ds != [] then begin - pr " {"; - pr_sep "" pr_def ds ctx; - pr "}"; - end; - -and pr_def (x, gs, ps, t, b) ctx = - pr "def "; - pr_name x ctx; - pr_generics gs ctx; - pr_params ps ctx; - pr_type_annot t ctx; - pr " "; - pr_block b ctx; - -and pr_body b ctx = - match b with - | Some b -> - pr " "; - pr_block b ctx - | None -> pr ";" - -and pr_variant (x, ts) ctx = - ctx |> pr_indent; - pr_name x ctx; - match ts with - | [] -> () - | ts -> - pr_paren (pr_types ts) ctx - -and pr_port (x, t) ctx = - ctx |> pr_indent; - pr_name x ctx; - pr_paren (pr_type t) ctx; - -and pr_params ps ctx = - pr_paren (pr_list pr_param ps) ctx; - -and pr_param (p, t) ctx = - pr_pat p ctx; - pr_type_annot t ctx; - -and pr_pat p ctx = - match p with - | PIgnore -> pr "_" - | POr (p0, p1) -> - pr_pat p0 ctx; - pr " | "; - pr_pat p1 ctx; - | PRecord (fps, p) -> - pr "#{"; - pr_list (pr_field_opt pr_pat) fps ctx; - pr_tail pr_pat p ctx; - pr "}"; - | PTuple ps -> - pr "("; - pr_list pr_pat ps ctx; - pr ",)"; - | PConst l -> - pr_lit l ctx; - | PVar x -> - pr_name x ctx; - | PUnwrap (xs, ps) -> - pr_path xs ctx; - pr_paren (pr_list pr_pat ps) ctx; - -and pr_type_annot t ctx = - match t with - | Some t -> - pr ": "; - pr_type t ctx - | None -> () - -and pr_types ts ctx = - pr_list pr_type ts ctx; - -and pr_type t ctx = - match t with - | TFunc (ts, t) -> - pr "fun"; - pr_paren (pr_types ts) ctx; - pr ": "; - pr_type t ctx; - | TTuple ts -> - pr "("; - pr_list pr_type ts ctx; - pr ",)"; - | TRecord (fts, t) -> - pr "#{"; - pr_list (pr_field_opt pr_type) fts ctx; - pr_tail pr_type t ctx; - pr "}"; - | TPath (xs, ts) -> - pr_type_path xs ts ctx; - | TArray t -> - pr_delim "[" "]" (pr_type t) ctx; - -and pr_type_path xs ts ctx = - pr_path xs ctx; - if ts != [] then begin - pr_delim "[" "]" (pr_list pr_type ts) ctx; - end - -and pr_block (ss, e) ctx = - let ctx' = ctx |> Ctx.indent in - pr "{"; - begin match (ss, e) with - | ([], None) -> pr " " - | ([], Some e) -> - pr " "; - pr_expr e ctx'; - pr " "; - | (ss, Some e) -> - pr_sep ";" pr_stmt ss ctx'; - pr ";"; - ctx' |> pr_indent; - pr_expr e ctx'; - ctx |> pr_indent; - | (ss, None) -> - pr_sep ";" pr_stmt ss ctx'; - pr ";"; - ctx |> pr_indent - end; - pr "}"; - -and pr_stmt s ctx = - ctx |> pr_indent; - match s with - | SNoop -> (); - | SVal ((p, t), e) -> - pr "val "; - pr_pat p ctx; - pr_type_annot t ctx; - pr " = "; - pr_expr e ctx; - | SVar ((x, t), e) -> - pr "var "; - pr_name x ctx; - pr_type_annot t ctx; - pr " = "; - pr_expr e ctx; - | SExpr e -> - pr_expr e ctx; - -and pr_expr e ctx = - let pr_expr e = - match e with - | EWhile (e, b) -> - pr "while "; - pr_expr e ctx; - pr " "; - pr_block b ctx; - | EWhileVal (p, e, b) -> - pr "while val "; - pr_pat p ctx; - pr " = "; - pr_expr e ctx; - pr " "; - pr_block b ctx; - | EAnon -> - pr "_" - | EBinOpRef op -> - pr_paren (pr_binop op) ctx - | EAccess (e, x) -> - pr_expr e ctx; - pr "."; - pr_name x ctx; - | EArray (vs, v) -> - pr "["; - pr_list pr_expr vs ctx; - pr_tail pr_expr v ctx; - pr "]"; - | EBinOp (op, v0, v1) -> - pr_expr v0 ctx; - pr " "; - pr_binop op ctx; - pr " "; - pr_expr v1 ctx; - | ECall (e, vs) -> - pr_expr e ctx; - pr_paren (pr_list pr_expr vs) ctx; - | EInvoke (e, x, vs) -> - pr_expr e ctx; - pr "."; - pr_name x ctx; - pr_paren (pr_list pr_expr vs) ctx; - | ECast (e, t) -> - pr_expr e ctx; - pr " as "; - pr_type t ctx; - | EIf (e, b0, b1) -> - pr "if "; - pr_expr e ctx; - pr " "; - pr_block b0 ctx; - begin match b1 with - | Some b1 -> - pr " else "; - pr_block b1 ctx; - | None -> () - end - | EIfVal (p, e, b0, b1) -> - pr "if let "; - pr_pat p ctx; - pr " = "; - pr_expr e ctx; - pr " "; - pr_block b0 ctx; - begin match b1 with - | Some b1 -> - pr " else "; - pr_block b1 ctx; - | None -> () - end - | ELit l -> - pr_lit l ctx; - | ELoop b -> - pr "loop "; - pr_block b ctx; - | EOn receivers -> - pr "on "; - pr "{"; - pr_sep "," pr_receiver receivers (ctx |> Ctx.indent); - ctx |> pr_indent; - pr "}"; - | EReceive e -> - pr "receive "; - pr_expr e ctx; - | EEmit (e0, e1) -> - pr_expr e0 ctx; - pr "!"; - pr_expr e1 ctx; - | ESelect (e0, e1) -> - pr_expr e0 ctx; - pr "["; - pr_expr e1 ctx; - pr "]"; - | ERecord (fvs, v) -> - pr "#{"; - pr_list (pr_field_opt pr_expr) fvs ctx; - pr_tail pr_expr v ctx; - pr "}"; - | EUnOp (op, e) -> - pr_unop op ctx; - pr_expr e ctx; - | EReturn e -> - begin match e with - | Some e -> - pr "return "; - pr_expr e ctx; - | None -> - pr "return" - end - | EBreak e -> - begin match e with - | Some e -> - pr "break "; - pr_expr e ctx; - | None -> - pr "break" - end - | EContinue -> - pr "continue" - | ETuple es -> - pr "("; - pr_list pr_expr es ctx; - pr ",)"; - | EProject (e, i) -> - pr_expr e ctx; - pr ".%d" i; - | EBlock (b) -> - pr_block b ctx; - | EFunc (ps, e) -> - pr "fun"; - pr_paren (pr_list pr_param ps) ctx; - pr ": "; - pr_block e ctx; - | ETask (ps, e) -> - pr "task: "; - pr_params ps ctx; - pr_block e ctx; - | EFor (p, e, b) -> - pr "for "; - pr_pat p ctx; - pr " in "; - pr_expr e ctx; - pr_block b ctx; - | EMatch (e, arms) -> - pr "match "; - pr_expr e ctx; - pr " {"; - pr_sep "," pr_arm arms (ctx |> Ctx.indent); - ctx |> pr_indent; - pr "}"; - | ECompr (e0, (p, e), cs) -> - pr "["; - pr_expr e0 ctx; - pr " "; - pr "on "; - pr_pat p ctx; - pr " in "; - pr_expr e ctx; - pr_sep " " pr_clause cs ctx; - pr "]"; - | EPath (xs, ts) -> - pr_path xs ctx; - if ts != [] then begin - pr "::"; - pr_brack (pr_list pr_type ts) ctx - end - | EFrom _ -> todo () - in - if ctx.show_types then begin - pr_paren pr_expr e; - end else - pr_expr e - -and pr_clause c ctx = - match c with - | CFor (p, e) -> - pr " for "; - pr_pat p ctx; - pr " in "; - pr_expr e ctx; - | CIf e -> - pr " if "; - pr_expr e ctx; - -and pr_receiver (p, e0, e1) ctx = - pr_pat p ctx; - pr " in "; - pr_expr e0 ctx; - pr " => "; - pr_expr e1 ctx - -and pr_arm (p, e) ctx = - ctx |> pr_indent; - pr_pat p ctx; - pr " => "; - pr_expr e ctx; - -and pr_suffixed x s _ctx = - match s with - | Some s -> - pr "%s%s" x s - | None -> - pr "%s" x - -and pr_binop op _ctx = - match op with - | BAdd s -> pr_suffixed "+" s _ctx - | BAnd -> pr "and" - | BBand -> pr "band" - | BBor -> pr "bor" - | BBxor -> pr "bxor" - | BDiv s -> pr_suffixed "/" s _ctx - | BEq s -> pr_suffixed "==" s _ctx - | BGeq s -> pr_suffixed ">=" s _ctx - | BGt s -> pr_suffixed ">" s _ctx - | BLeq s -> pr_suffixed "<=" s _ctx - | BLt s -> pr_suffixed "<" s _ctx - | BMod s -> pr_suffixed "%%" s _ctx - | BMul s -> pr_suffixed "*" s _ctx - | BMut -> pr "=" - | BNeq s -> pr_suffixed "!=" s _ctx - | BOr -> pr "|" - | BPow s -> pr_suffixed "**" s _ctx - | BSub s -> pr_suffixed "-" s _ctx - | BXor -> pr "xor" - | BIn -> pr "in" - | BRExc -> pr ".." - | BRInc -> pr "..=" - | BBy -> pr "by" - | BNotIn -> pr "not in" - -and pr_unop op _ctx = - match op with - | UNeg s -> pr_suffixed "-" s _ctx - | UNot -> pr "not" diff --git a/arc-lang/src/pretty_hir.ml b/arc-lang/src/pretty_hir.ml deleted file mode 100644 index 6de6452ad..000000000 --- a/arc-lang/src/pretty_hir.ml +++ /dev/null @@ -1,258 +0,0 @@ -open Hir -open Pretty -open Utils - -let rec pr_hir (hir:Hir.hir) debug = - let ctx = if debug = Debug.Verbose then - Ctx.verbose - else - Ctx.brief - in - hir |> filter (show_item ctx) |> List.iter (fun i -> pr_item i ctx); - pr "\n"; - -and show_item (ctx:'a Ctx.t) (_, i) = - match i with - | IExternType _ | IExternDef _ when not ctx.show_externs -> false - | _ -> true - -and pr_item (xs, i) ctx = - ctx |> pr_indent; - match i with - | IVal (d, t, b) -> - pr_decorator d ctx; - pr "val "; - pr_path xs ctx; - pr ": "; - pr_type t ctx; - pr " = "; - pr_block b (ctx |> Ctx.indent); - | IEnum (d, gs, xss) -> - pr_decorator d ctx; - pr "enum "; - pr_path xs ctx; - pr_generics gs ctx; - pr " {"; - (ctx |> Ctx.indent) |> pr_indent; - pr_list pr_path xss (ctx |> Ctx.indent); - ctx |> pr_indent; - pr "}"; - | IExternDef (d, gs, ts, t) -> - pr_decorator d ctx; - pr "extern def "; - pr_path xs ctx; - pr_generics gs ctx; - pr_paren (pr_types ts) ctx; - pr ": "; - pr_type t ctx; - pr ";"; - | IExternType (d, gs) -> - pr_decorator d ctx; - pr "extern type "; - pr_path xs ctx; - pr_generics gs ctx; - pr ";"; - | IDef (d, gs, ps, t, b) -> - pr_decorator d ctx; - pr "def "; - pr_path xs ctx; - pr_generics gs ctx; - pr_params ps ctx; - pr ": "; - pr_type t ctx; - pr " "; - pr_block b ctx; - | ITask (d, gs, ps0, ps1, b) -> - pr_decorator d ctx; - pr "task "; - pr_path xs ctx; - pr_generics gs ctx; - pr_params ps0 ctx; - pr ": "; - pr_params ps1 ctx; - pr " "; - pr_block b ctx; - | ITypeAlias (d, gs, t) -> - pr_decorator d ctx; - pr "type "; - pr_path xs ctx; - pr_generics gs ctx; - pr " = "; - pr_type t ctx; - pr ";"; - | IVariant t -> - pr "variant "; - pr_path xs ctx; - pr_paren (pr_type t) ctx; - pr ";"; - | IClass _ -> () - | IClassDecl _ -> () - | IInstance _ -> () - | IInstanceDef _ -> () - -and pr_interface (xs, ts) ctx = - pr_path xs ctx; - pr_brack (pr_types ts) ctx; - -and pr_generics gs ctx = - if gs != [] then begin - pr_brack (pr_list pr_generic gs) ctx; - end - -and pr_generic g ctx = - pr_name g ctx; - -and pr_params ps ctx = - pr_paren (pr_list pr_param ps) ctx - -and pr_param (x, t) ctx = - pr_name x ctx; - pr ": "; - pr_type t ctx; - -and pr_types ts ctx = - pr_list pr_type ts ctx; - -and pr_type t ctx = - match t with - | TFunc (ts, t) -> - pr "fun"; - pr_paren (pr_list pr_type ts) ctx; - pr ": "; - pr_type t ctx; - | TRecord t -> - pr "#"; - pr_brace (pr_type t) ctx; - | TRowEmpty -> - pr "∅" - | TRowExtend ((x, t), r) -> - pr_name x ctx; - pr ": "; - pr_type t ctx; - begin match r with - | TRowEmpty | TVar _ | TGeneric _ -> - pr "|"; - pr_type r ctx; - | _ -> - pr ", "; - pr_type r ctx; - end - | TNominal (xs, ts) -> - pr_path xs ctx; - if ts != [] then begin - pr_brack (pr_types ts) ctx; - end - | TVar x -> pr "'%s" x; - | TGeneric x -> pr "%s" x; - -and pr_block (ss, v) ctx = - let ctx' = ctx |> Ctx.indent in - pr "{"; - if ss != [] then begin - pr_sep ";" pr_ssa ss ctx'; - pr ";"; - end; - ctx' |> pr_indent; - pr_var v ctx'; - ctx |> pr_indent; - pr "}"; - -and pr_ssa (x, t, e) ctx = - ctx |> pr_indent; - pr "val "; - pr_name x ctx; - pr ": "; - pr_type t ctx; - pr " = "; - pr_expr e ctx; - -and pr_name x _ctx = - pr "%s" x; - -and pr_expr e ctx = - match e with - | EAccess (v, x) -> - pr_var v ctx; - pr "."; - pr_name x ctx; - | EUpdate (v0, x, v1) -> - pr_var v0 ctx; - pr "."; - pr_name x ctx; - pr " = "; - pr_var v1 ctx; - | ECall (v, vs) -> - pr_var v ctx; - pr_paren (pr_list pr_var vs) ctx; - | ECast (v, t) -> - pr_var v ctx; - pr " as "; - pr_type t ctx; - | EReceive v -> - pr "receive "; - pr_var v ctx; - | EEmit (v0, v1) -> - pr_var v0 ctx; - pr " ! "; - pr_var v1 ctx; - | EEnwrap (xs, ts, v) -> - pr "enwrap["; - pr_path xs ctx; - if ts != [] then begin - pr "["; - pr_list pr_type ts ctx; - pr "]"; - end; - pr "]"; - pr_paren (pr_var v) ctx; - | EIf (v, b0, b1) -> - pr "if "; - pr_var v ctx; - pr " "; - pr_block b0 ctx; - pr " else "; - pr_block b1 ctx; - | EIs (xs, ts, v) -> - pr "is["; - pr_path xs ctx; - if ts != [] then begin - pr "["; - pr_list pr_type ts ctx; - pr "]"; - end; - pr "]"; - pr_paren (pr_var v) ctx; - | ELit l -> - pr_lit l ctx; - | ELoop b -> - pr "loop "; - pr_block b ctx; - | EOn _ -> todo () - | ERecord fvs -> - pr "#"; - pr_brace (pr_list (pr_field pr_var) fvs) ctx; - | EUnwrap (xs, ts, v) -> - pr "unwrap["; - pr_path xs ctx; - if ts != [] then begin - pr "["; - pr_list pr_type ts ctx; - pr "]"; - end; - pr "]"; - pr_paren (pr_var v) ctx; - | EReturn v -> - pr "return "; - pr_var v ctx; - | EBreak v -> - pr "break "; - pr_var v ctx; - | EContinue -> - pr "continue" - | EItem (xs, ts) -> - pr_path xs ctx; - if ts != [] then begin - pr "["; - pr_list pr_type ts ctx; - pr "]"; - end diff --git a/arc-lang/src/pretty_mir.ml b/arc-lang/src/pretty_mir.ml deleted file mode 100644 index 222d00075..000000000 --- a/arc-lang/src/pretty_mir.ml +++ /dev/null @@ -1,216 +0,0 @@ -open Mir -open Pretty -open Utils - -let rec pr_mir (mir:Mir.mir) = - let ctx = Ctx.verbose in - mir |> filter (show_item ctx) |> List.iter (fun i -> pr_item i ctx); - pr "\n"; - -and show_item (ctx:'a Ctx.t) (_, i) = - match i with - | IExternType _ | IExternDef _ when not ctx.show_externs -> false - | _ -> true - -and pr_item ((xs, ts), i) ctx = - ctx |> pr_indent; - pr "for "; - pr_brack (pr_types ts) ctx; - pr " "; - match i with - | IVal (d, t, b) -> - pr_decorator d ctx; - pr "val "; - pr_path xs ctx; - pr ": "; - pr_type t ctx; - pr " = "; - pr_block b (ctx |> Ctx.indent); - | IEnum (d, xss) -> - pr_decorator d ctx; - pr "enum "; - pr_path xs ctx; - pr " {"; - ctx |> Ctx.indent |> pr_indent; - pr_list pr_path xss (ctx |> Ctx.indent); - ctx |> pr_indent; - pr "}"; - | IExternDef (d, ts, t) -> - pr_decorator d ctx; - pr "extern def "; - pr_path xs ctx; - pr_paren (pr_types ts) ctx; - pr ": "; - pr_type t ctx; - pr ";"; - | IExternType d -> - pr_decorator d ctx; - pr "extern type "; - pr_path xs ctx; - pr ";"; - | IDef (d, ps, t, b) -> - pr_decorator d ctx; - pr "def "; - pr_path xs ctx; - pr_params ps ctx; - pr ": "; - pr_type t ctx; - pr " "; - pr_block b ctx; - | ITask (d, ps0, ps1, b) -> - pr_decorator d ctx; - pr "task "; - pr_path xs ctx; - pr_params ps0 ctx; - pr ": "; - pr_params ps1 ctx; - pr " "; - pr_block b ctx; - | IVariant t -> - pr "variant "; - pr_path xs ctx; - pr_paren (pr_type t) ctx; - pr ";"; - -and pr_interface (xs, ts) ctx = - pr_path xs ctx; - pr_brack (pr_types ts) ctx; - -and pr_params ps ctx = - pr_paren (pr_list pr_param ps) ctx - -and pr_param (x, t) ctx = - pr_name x ctx; - pr ": "; - pr_type t ctx; - -and pr_types ts ctx = - pr_list pr_type ts ctx; - -and pr_type t ctx = - match t with - | TFunc (ts, t) -> - pr "fun"; - pr_paren (pr_list pr_type ts) ctx; - pr ": "; - pr_type t ctx; - | TRecord fts -> - pr "#"; - pr_brace (pr_list (pr_field pr_type) fts) ctx; - | TNominal (xs, ts) -> - pr_path xs ctx; - if ts != [] then begin - pr_brack (pr_types ts) ctx; - end - -and pr_block (ss, v) ctx = - let ctx' = ctx |> Ctx.indent in - pr "{"; - if ss != [] then begin - pr_sep ";" pr_ssa ss ctx'; - pr ";"; - end; - ctx' |> pr_indent; - pr_var v ctx'; - ctx |> pr_indent; - pr "}"; - -and pr_ssa (x, t, e) ctx = - ctx |> pr_indent; - pr "val "; - pr_name x ctx; - pr ": "; - pr_type t ctx; - pr " = "; - pr_expr e ctx; - -and pr_name x _ctx = - pr "%s" x; - -and pr_expr e ctx = - match e with - | EAccess (v, x) -> - pr_var v ctx; - pr "."; - pr_name x ctx; - | EUpdate (v0, x, v1) -> - pr_var v0 ctx; - pr "."; - pr_name x ctx; - pr " = "; - pr_var v1 ctx; - | ECall (v, vs) -> - pr_var v ctx; - pr_paren (pr_list pr_var vs) ctx; - | ECast (v, t) -> - pr_var v ctx; - pr " as "; - pr_type t ctx; - | EEmit (v0, v1) -> - pr_var v0 ctx; - pr " ! "; - pr_var v1 ctx; - | EEnwrap (xs, ts, v) -> - pr "enwrap["; - pr_path xs ctx; - if ts != [] then begin - pr "["; - pr_list pr_type ts ctx; - pr "]"; - end; - pr "]"; - pr_paren (pr_var v) ctx; - | EIf (v, b0, b1) -> - pr "if "; - pr_var v ctx; - pr " "; - pr_block b0 ctx; - pr " else "; - pr_block b1 ctx; - | EIs (xs, ts, v) -> - pr "is["; - pr_path xs ctx; - if ts != [] then begin - pr "["; - pr_list pr_type ts ctx; - pr "]"; - end; - pr "]"; - pr_paren (pr_var v) ctx; - | ELit l -> - pr_lit l ctx; - | ELoop b -> - pr "loop "; - pr_block b ctx; - | EReceive v -> - pr "receive "; - pr_var v ctx; - | ERecord fvs -> - pr "%%{"; - pr_list (pr_field pr_var) fvs ctx; - pr "}"; - | EUnwrap (xs, ts, v) -> - pr "unwrap["; - pr_path xs ctx; - if ts != [] then begin - pr "["; - pr_list pr_type ts ctx; - pr "]"; - end; - pr "]"; - pr_paren (pr_var v) ctx; - | EReturn v -> - pr "return "; - pr_var v ctx; - | EBreak v -> - pr "break "; - pr_var v ctx; - | EContinue -> - pr "continue" - | EItem (xs, ts) -> - pr_path xs ctx; - if ts != [] then begin - pr "["; - pr_list pr_type ts ctx; - pr "]"; - end diff --git a/arc-lang/src/pretty_mlir.ml b/arc-lang/src/pretty_mlir.ml deleted file mode 100644 index 8f43dda51..000000000 --- a/arc-lang/src/pretty_mlir.ml +++ /dev/null @@ -1,300 +0,0 @@ -open Utils -open Pretty - -let rec pr_mlir (mlir, stdlib) = - let ctx = Ctx.brief in - ctx |> pr_indent; - pr "module @toplevel {"; - ctx |> pr_indent; - ctx |> pr_indent; - prr stdlib; - let ctx' = ctx |> Ctx.indent in - mlir |> List.iter (fun i -> pr_item i ctx'); - ctx |> pr_indent; - pr "}\n"; - -and pr_item (x, i) ctx = - ctx |> pr_indent; - match i with - | Mlir.IAssign _ -> - todo () - | Mlir.IExternFunc (x_rust, ps, t) -> - pr "func.func private @"; - pr_path x ctx; - pr_params ps ctx; - pr " -> "; - pr_type t ctx; - pr " attributes { rust.declare, rust.annotation=\"#[rewrite(unmangled = \\\"%s\\\")]\"}" x_rust - | Mlir.IFunc (ps, t, b) -> - pr "func.func @"; - pr_path x ctx; - pr_params ps ctx; - begin match t with - | Some t -> pr_return_type t ctx; - | None -> () - end; - pr " attributes { rust.declare"; - begin if x = "main" then - pr ", rust.annotation = \"#[rewrite(main)]\""; - end; - pr " } "; - pr_block b ctx; - | Mlir.ITask (ps0, ps1, b) -> - pr "func.func @"; - pr_path x ctx; - pr_params ps0 ctx; - pr_params ps1 ctx; - pr " "; - pr_block b ctx; - -and pr_params ps ctx = - pr_paren (pr_list pr_param ps) ctx - -and pr_param (x, t) ctx = - prr "%"; - pr_name x ctx; - pr ": "; - pr_type t ctx; - -and pr_path x _ctx = - pr "%s" x; - -and pr_types ts ctx = - pr_list pr_type ts ctx - -and pr_return_type t ctx = - pr " -> "; - begin match t with - | Mlir.TFunc _ -> pr_paren (pr_type t) ctx - | _ -> pr_type t ctx; - end - -and pr_type t ctx = - match t with - | Mlir.TFunc (ts, t) -> - pr_paren (pr_types ts) ctx; - pr_return_type t ctx; - | Mlir.TRecord fts -> - pr "!arc.struct"; - pr_angle (pr_list (pr_field pr_type) fts) ctx; - | Mlir.TEnum vts -> - pr "!arc.enum"; - pr_angle (pr_list (pr_field pr_type) vts) ctx; - | Mlir.TAdt x -> - pr "!arc.adt"; - pr "<"; - pr_quote (pr_path x) ctx; - pr ">"; - | Mlir.TGAdt (x, ts) -> - pr "!arc.generic_adt"; - pr "<"; - pr_quote (pr_path x) ctx; - pr ", "; - pr_types ts ctx; - pr ">"; - | Mlir.TStream t -> - pr "!arc.stream"; - pr_angle (pr_type t) ctx; - | Mlir.TNative x -> - pr "%s" x; - -and pr_block ss ctx = - pr "{"; - pr_sep "" pr_ssa ss (ctx |> Ctx.indent); - ctx |> pr_indent; - pr "}"; - -and pr_lhs lhs ctx = - match lhs with - | Some (v, _) -> - pr_var v ctx; - pr " = "; - | _ -> () - -and pr_ssa (lhs, e) ctx = - ctx |> pr_indent; - pr_lhs lhs ctx; - - match e with - | Mlir.EAccess (a0, x1) -> - pr_quote pr "arc.struct_access"; - pr_paren (pr_arg_var a0) ctx; - pr " { field = "; - pr_quote (pr_name x1) ctx; - pr " } : "; - pr_paren (pr_arg_type a0) ctx; - pr " -> "; - pr_lhs_type lhs ctx; - | Mlir.EUpdate (_a0, _x1, _a1) -> - todo () - | Mlir.ECall (a0, args) -> - pr "call_indirect "; - pr_arg_var a0 ctx; - pr_paren (pr_list pr_arg_var args) ctx; - pr " : "; - pr_arg_type a0 ctx; - | Mlir.EReceive a0 -> - pr "arc.receive"; - pr_paren (pr_arg_var a0) ctx; - pr " : "; - pr_arg_type a0 ctx; - pr " -> "; - pr_paren (pr_lhs_type lhs) ctx; - | Mlir.EEmit (a0, a1) -> - pr "arc.emit"; - pr_paren (fun ctx -> - pr_arg_var a0 ctx; - prr ", "; - pr_arg_var a1 ctx; - ) ctx; - pr " : "; - pr_arg_type a1 ctx; - pr " -> "; - pr_lhs_type lhs ctx; - | Mlir.EEnwrap (x, a0) -> - pr "arc.make_enum"; - begin match a0 with - | None -> pr "()" - | Some a0 -> pr_paren (pr_arg a0) ctx; - end; - pr " as "; - pr_quote (pr_path x) ctx; - pr " : "; - pr_lhs_type lhs ctx; - | Mlir.EIs (x, a0) -> - pr "arc.enum_check"; - pr_paren (pr_arg a0) ctx; - pr " is "; - pr_quote (pr_path x) ctx; - pr " : "; - pr_lhs_type lhs ctx; - | Mlir.EUnwrap (x, a0) -> - pr "arc.enum_access "; - pr_quote (pr_path x) ctx; - pr " in "; - pr_paren (pr_arg a0) ctx; - pr " : "; - begin match lhs with - | Some (_, t) -> pr_type t ctx - | None -> pr "none" - end; - | Mlir.EIf (a0, b0, b1) -> - pr_quote pr "arc.if"; - pr_paren (pr_arg_var a0) ctx; - pr_paren (fun ctx -> - pr_block b0 ctx; - pr ","; - pr_block b1 ctx; - ) ctx; - pr " : (i1) -> "; - pr_lhs_type lhs ctx; - | Mlir.EConst c -> - begin match c with - | Mlir.CInt d -> - pr "arc.constant %d : " d; - pr_lhs_type lhs ctx; - | Mlir.CFloat f -> - pr "arith.constant %f : " f; - pr_lhs_type lhs ctx; - | Mlir.CBool b -> - pr "arith.constant %b" b; - | Mlir.CFun x -> - pr "constant @%s : " x; - pr_lhs_type lhs ctx; - | Mlir.CAdt s -> - pr "arc.adt_constant \"%s\" : " s; - pr_lhs_type lhs ctx; - end; - | Mlir.ELoop b -> - pr "scf.while : () -> () {"; - ctx |> Ctx.indent |> pr_indent; - pr "%%condition = constant 1 : i1"; - ctx |> Ctx.indent |> pr_indent; - pr "scf.condition(%%condition)"; - ctx |> pr_indent; - pr "} do "; - pr_block b ctx; - | Mlir.ERecord (vs0, ts0) -> - pr "arc.make_struct"; - pr_paren (pr_vars_types vs0 ts0) ctx; - pr " : "; - pr_lhs_type lhs ctx; - | Mlir.EReturn a0 -> - begin match a0 with - | Some a0 -> - pr "return "; - pr_arg_var a0 ctx; - pr " : "; - pr_arg_type a0 ctx; - | None -> - pr "return" - end - | Mlir.EResult a0 -> - pr_quote pr "arc.block.result"; - begin match a0 with - | Some a0 -> - pr_paren (pr_arg_var a0) ctx; - pr " : "; - pr_paren (pr_arg_type a0) ctx; - pr " -> "; - pr_lhs_type lhs ctx; - | None -> - pr "() : () -> ()" - end - | Mlir.EBreak a0 -> - pr_quote pr "arc.loop.break"; - begin match a0 with - | Some a0 -> - pr_paren (pr_arg_var a0) ctx; - pr " : "; - pr_paren (pr_arg_type a0) ctx; - pr " -> "; - pr_lhs_type lhs ctx; - | None -> pr ": () -> ()"; - end - | Mlir.EContinue -> - pr_quote pr "arc.loop.continue"; - pr "() : () -> ()" - | Mlir.EYield -> - pr "scf.yield"; - pr " : () -> ()" - | Mlir.ENoop -> - pr "// noop" - -and pr_vars_types vs0 ts0 ctx = - pr_list pr_var vs0 ctx; - pr " : "; - pr_list pr_type ts0 ctx; - -and pr_name x _ctx = - pr "%s" x; - -and pr_arg a ctx = - pr_arg_var a ctx; - pr " : "; - pr_arg_type a ctx - -and pr_arg_var (v, _) ctx = - pr_var v ctx; - -and pr_arg_type (_, t) ctx = - pr_type t ctx; - -and pr_var v _ctx = - prr "%"; - pr "%s" v; - -and pr_lhs_type v ctx = - match v with - | Some (_, t) -> pr_type t ctx - | None -> pr "()" - -and pr_field_type (x, t) ctx = - pr_name x ctx; - pr ": "; - pr_type t ctx; - -and pr_field_expr (x, v) ctx = - pr_name x ctx; - pr ": "; - pr_arg_var v ctx; diff --git a/arc-lang/src/pretty_table.ml b/arc-lang/src/pretty_table.ml deleted file mode 100644 index 90d3f7ffa..000000000 --- a/arc-lang/src/pretty_table.ml +++ /dev/null @@ -1,29 +0,0 @@ - -let rec pr fmt = Printf.printf fmt - -and pr_table t = - pr "Table {\n"; - t |> List.iter (fun (xs, d) -> - pr " "; - Pretty.pr_path xs Pretty.Ctx.brief; - pr " -> "; - pr_decl d; - pr ";\n" - ); - pr "}\n"; - -and pr_decl d = - match d with - | Table.DItem d -> begin match d with - | Table.DEnum -> pr "Enum" - | Table.DExternDef -> pr "Extern Func" - | Table.DExternType -> pr "Extern Type" - | Table.DDef -> pr "Func" - | Table.DTask -> pr "Task" - | Table.DTypeAlias -> pr "Type Alias" - | Table.DVariant -> pr "Variant" - | Table.DGlobal -> pr "Global" - | Table.DClass -> pr "Class" - | Table.DMod -> pr "Module" - end - | Table.DUse xs -> Pretty.pr_path xs Pretty.Ctx.brief; diff --git a/arc-lang/src/table.ml b/arc-lang/src/table.ml deleted file mode 100644 index 9d123b113..000000000 --- a/arc-lang/src/table.ml +++ /dev/null @@ -1,27 +0,0 @@ -open Ast - -module PathMap = Map.Make( - struct - type t = path - let compare = Stdlib.compare - end -) - -type decl = - | DItem of kind - | DUse of path (* An alias *) -and kind = - | DEnum of arity - | DExternDef of arity - | DExternType of arity - | DDef of arity - | DClass of arity - | DTask of arity - | DTypeAlias of arity * generics * ty - | DVariant of arity - | DGlobal - | DMod -and arity = int -and name = string -and path = name list -and table = decl PathMap.t diff --git a/arc-lang/src/token.ml b/arc-lang/src/token.ml deleted file mode 100644 index 44acbdfbf..000000000 --- a/arc-lang/src/token.ml +++ /dev/null @@ -1,115 +0,0 @@ -type token = - | ParenL - | ParenR - | BrackL - | BrackR - | PoundBraceL - | BraceL - | BraceR - | AngleL - | AngleR -(*= Operators ==============================================================*) - | Bang - | Neq - | Percent - | Star - | StarStar - | Plus - | Comma - | Minus - | Dot - | DotDot - | DotDotEq - | Slash - | Colon - | ColonColon - | Semi - | Leq - | Eq - | EqEq - | Imply - | Geq - | AtSign - | Underscore - | Bar -(*= Float extensions =======================================================*) - | EqEqSuffix of string - | GeqSuffix of string - | GtSuffix of string - | LeqSuffix of string - | LtSuffix of string - | MinusSuffix of string - | NeqSuffix of string - | PercentSuffix of string - | PlusSuffix of string - | SlashSuffix of string - | StarSuffix of string - | StarStarSuffix of string -(*= Keywords ================================================================*) - | And - | As - | Break - | Band - | Bor - | Bxor - | Class - | Continue - | Def - | Desc - | Duration - | Else - | Enum - | Extern - | For - | From - | Fun - | Group - | If - | In - | Instance - | Join - | Loop - | Match - | Mod - | Not - | On - | Or - | Of - | Order - | Return - | Reduce - | Step - | Task - | Type - | Val - | Var - | Where - | Window - | While - | Use - | Xor - | Yield -(*= Identifiers and Literals ================================================*) - | Name of string - | Int of int - | IntSuffix of (int * Ast.int_suffix) - | FloatSuffix of (float * Ast.float_suffix) - | Float of float - | Bool of bool - | Char of char - | String of string - | Unit -(* | DurationNs of int *) -(* | DurationUs of int *) -(* | DurationMs of int *) -(* | DurationS of int *) -(* | DurationM of int *) -(* | DurationH of int *) -(* | DurationD of int *) -(* | DurationW of int *) -(* LitDurationMo, *) -(* LitDurationY, *) -(* | Date of string *) -(* | DateTime of string *) -(* | DateTimeZone of string *) - | Eof diff --git a/arc-lang/src/tokens.mly b/arc-lang/src/tokens.mly deleted file mode 100644 index 258821c10..000000000 --- a/arc-lang/src/tokens.mly +++ /dev/null @@ -1,103 +0,0 @@ -%token ParenL "(" -%token ParenR ")" -%token BrackL "[" -%token BrackR "]" -%token PoundBraceL "#{" -%token BraceL "{" -%token BraceR "}" -%token AngleL "<" -%token AngleR ">" -(*= Operators ==============================================================*) -%token Bang "!" -%token Neq "!=" -%token Percent "%" -%token Star "*" -%token StarStar "**" -%token Plus "+" -%token Comma "," -%token Minus "-" -%token Dot "." -%token DotDot ".." -%token DotDotEq "..=" -%token Slash "/" -%token Colon ":" -%token ColonColon "::" -%token Semi ";" -%token Leq "<=" -%token Geq ">=" -%token Eq "=" -%token EqEq "==" -%token Imply "=>" -%token Underscore "_" -%token Bar "|" -%token AtSign "@" -(*= Float extensions ========================================================*) -%token NeqSuffix "!=." -%token PercentSuffix "%." -%token StarStarSuffix "**." -%token StarSuffix "*." -%token PlusSuffix "+." -%token MinusSuffix "-." -%token SlashSuffix "/." -%token LeqSuffix "<=." -%token EqEqSuffix "==." -%token GeqSuffix ">=." -%token LtSuffix "<." -%token GtSuffix ">." -(*= Keywords ================================================================*) -%token And "and" -%token As "as" -%token Break "break" -%token Band "band" -%token Bor "bor" -%token Bxor "bxor" -%token Class "class" -%token Continue "continue" -%token Def "def" -%token Desc "desc" -%token Duration "duration" -%token Else "else" -%token Enum "enum" -%token Extern "extern" -%token For "for" -%token From "from" -%token Fun "fun" -%token Group "group" -%token If "if" -%token In "in" -%token Instance "instance" -%token Join "join" -%token Loop "loop" -%token Match "match" -%token Mod "mod" -%token Not "not" -%token On "on" -%token Of "of" -%token Or "or" -%token Order "order" -%token Return "return" -%token Reduce "reduce" -%token Step "step" -%token Task "task" -%token Type "type" -%token Val "val" -%token Var "var" -%token Where "where" -%token While "while" -%token Window "window" -%token Use "use" -%token Xor "xor" -%token Yield "yield" -(*= Identifiers and Literals ================================================*) -%token Name -%token Int -%token Float -%token IntSuffix -%token FloatSuffix -%token Bool -%token Char -%token Unit "unit" -%token String -(*= Special =================================================================*) -%token Eof -%% diff --git a/arc-lang/src/utils.ml b/arc-lang/src/utils.ml deleted file mode 100644 index f765d3c06..000000000 --- a/arc-lang/src/utils.ml +++ /dev/null @@ -1,104 +0,0 @@ - -exception Compiler_error of string - -let todo () = raise (Compiler_error "Not yet implemented") -and unreachable () = raise (Compiler_error "Entered unreachable code") -and panic msg = raise (Compiler_error (Printf.sprintf "Panic: %s" msg)) - -let max_by f l = - let rec max_by f l mk mv = - match l with - | v::t -> - let k = f v in - if k > mk then - max_by f t k v - else - max_by f t mk mv - | [] -> mv in - match l with - | v::t -> max_by f t (f v) v - | [] -> assert false - -let mapm f ctx l = - let (l, ctx) = List.fold_left ( - fun (l, ctx) e -> - let (e, ctx) = f e ctx in - (e::l, ctx) - ) ([], ctx) l in - (l |> List.rev, ctx) - -let repeat f n ctx = - let rec repeat f n ctx acc = - if n = 0 then - (acc, ctx) - else - let (e, ctx) = f ctx in - repeat f (n-1) ctx (e::acc) - in - let (l, ctx) = repeat f n ctx [] in - (l |> List.rev, ctx) - -let mapm_filter f ctx l = - let (l, ctx) = mapm f ctx l in - (l |> List.filter_map (fun x -> x), ctx) - -let miter f ctx l = List.fold_left (fun ctx e -> f e ctx) ctx l - -let values l = - l |> List.map (fun (_, v) -> v) - -let zip_with_from f l0_init l1_init acc = - let rec zip l0 l1 acc = - match l0, l1 with - | h0::t0, h1::t1 -> - zip t0 t1 ((f h0 h1)::acc) - | [], [] -> - acc - | _, _ -> panic (Printf.sprintf "Zip failed, lists of different length %d and %d" - (l0_init |> List.length) - (l1_init |> List.length) - ) - in - zip l0_init l1_init acc - -let zip_with f l0_init l1_init = - zip_with_from f l0_init l1_init [] - -(* Zip two lists and append them to acc *) -let zip_from l0_init l1_init acc = - zip_with_from (fun a b -> (a, b)) l0_init l1_init acc - -(* Zip two lists and append them to acc *) -let zip l0_init l1_init = - zip_with_from (fun a b -> (a, b)) l0_init l1_init [] - -let unzip l = - let rec unzip l acc0 acc1 = - match l with - | [] -> (acc0, acc1) - | (a, b)::t -> - unzip t (a::acc0) (b::acc1) - in - let (l, r) = unzip l [] [] in - (l |> List.rev, r |> List.rev) - -let get_or x d l = match l |> List.assoc_opt x with - | Some v -> v - | None -> d - -let map = List.map -let filter = List.filter -let foldl = List.fold_left -let find_map = List.find_map -let assoc = List.assoc -let assoc_opt = List.assoc_opt -let mem = List.mem -let rev = List.rev -let tl = List.tl -let hd = List.hd -let elem = List.mem -let diff l0 l1 = l0 |> filter (fun x -> not (l1 |> elem x)) -let dom l = l |> map (fun (a, _) -> a) -let sprintf = Printf.sprintf -let exists = List.exists - diff --git a/arc-lang/stdlib/stdlib.arc b/arc-lang/stdlib/stdlib.arc deleted file mode 100644 index a50bc0f34..000000000 --- a/arc-lang/stdlib/stdlib.arc +++ /dev/null @@ -1,354 +0,0 @@ -# ANCHOR: unit -@{mlir: "none"} -extern type unit; -# ANCHOR_END: unit - -@{mlir: "si8"} -extern type i8; - -@{mlir: "si16"} -extern type i16; - -# ------------------------------------------------------ - -@{mlir: "si32"} -extern type i32; - -@{mlir: "add_i32"} -extern def +(i32, i32): i32; - -@{mlir: "sub_i32"} -extern def -(i32, i32): i32; - -@{mlir: "mul_i32"} -extern def *(i32, i32): i32; - -@{mlir: "div_i32"} -extern def /(i32, i32): i32; - -@{mlir: "pow_i32"} -extern def **(i32, i32): i32; - -@{mlir: "rem_i32"} -extern def %(i32, i32): i32; - -@{mlir: "eq_i32"} -extern def ==(i32, i32): bool; - -@{mlir: "geq_i32"} -extern def >=(i32, i32): bool; - -@{mlir: "leq_i32"} -extern def <=(i32, i32): bool; - -@{mlir: "gt_i32"} -extern def >(i32, i32): bool; - -@{mlir: "lt_i32"} -extern def <(i32, i32): bool; - -@{mlir: "or_i32"} -extern def bor(i32, i32): bool; - -@{mlir: "xor_i32"} -extern def bxor(i32, i32): bool; - -@{mlir: "and_i32"} -extern def band(i32, i32): bool; - -@{mlir: "neg_i32"} -extern def neg(i32): i32; - -@{rust: "String_from_i32"} -extern def i32_to_string(i32): String; - -# ------------------------------------------------------ - -@{mlir: "si64"} -extern type i64; - -@{mlir: "si128"} -extern type i128; - -@{mlir: "ui8"} -extern type u8; - -@{mlir: "ui16"} -extern type u16; - -@{mlir: "ui32"} -extern type u32; - -@{mlir: "add_u32"} -extern def +u32(u32, u32): u32; - -@{mlir: "sub_u32"} -extern def -u32(u32, u32): u32; - -@{mlir: "mul_u32"} -extern def *u32(u32, u32): u32; - -@{mlir: "div_u32"} -extern def /u32(u32, u32): u32; - -@{mlir: "pow_u32"} -extern def **u32(u32, u32): u32; - -@{mlir: "rem_u32"} -extern def %u32(u32, u32): u32; - -@{mlir: "eq_u32"} -extern def ==u32(u32, u32): bool; - -@{mlir: "geq_u32"} -extern def >=u32(u32, u32): bool; - -@{mlir: "leq_u32"} -extern def <=u32(u32, u32): bool; - -@{mlir: "gt_u32"} -extern def >u32(u32, u32): bool; - -@{mlir: "lt_u32"} -extern def =f32(f32, f32): bool; - -@{mlir: "leq_f32"} -extern def <=f32(f32, f32): bool; - -@{mlir: "gt_f32"} -extern def >f32(f32, f32): bool; - -@{mlir: "lt_f32"} -extern def >(); + let defs = hir_interpreter::definitions::Bifs::new(); + + for x in &decls { + assert!(defs.0.contains_key(x.as_str()), "{} is undefined", x); + } + + for x in defs.0.keys() { + assert!(decls.contains(*x), "{} is undeclared", x); + } +} diff --git a/arc-mlir/src/CMakeLists.txt b/arc-mlir/src/CMakeLists.txt index 2e6ebe942..ff99e51d9 100644 --- a/arc-mlir/src/CMakeLists.txt +++ b/arc-mlir/src/CMakeLists.txt @@ -1,4 +1,5 @@ -set(ARC_MLIR_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) +set(ARC_MLIR_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}) + include_directories(../llvm-project/mlir/include/) include_directories(include/) include_directories(${CMAKE_CURRENT_BINARY_DIR}/../mlir/include/) @@ -20,25 +21,21 @@ get_filename_component(ARC_CARGO_BIN "../../bin" get_filename_component(ARC_TOOLS_BIN_DIR "../../bin" REALPATH BASE_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE) -get_filename_component(ARC_LANG_SRC_DIR "../../arc-lang" +get_filename_component(ARC_LANG_DIR "../../arc-lang" REALPATH BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE) -get_filename_component(ARC_LANG_BUILD_DIR "../../arc-lang/build" +get_filename_component(ARC_LANG_TARGET_DIR "../../arc-lang/target" REALPATH BASE_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE) -get_filename_component(ARC_RUNTIME_SRC_DIR "../../arc-runtime" +get_filename_component(ARC_RUNTIME_DIR "../../arc-lang/crates/runtime/" REALPATH BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE) -get_filename_component(ARC_MLIR_SRC_DIR "../" +get_filename_component(ARC_MLIR_DIR "../" REALPATH BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE) -add_custom_target(dune-build ALL - WORKING_DIRECTORY ${ARC_LANG_SRC_DIR} - COMMAND mkdir -p ${ARC_LANG_BUILD_DIR} - COMMAND ${ARC_LANG_SRC_DIR}/dune-wrapper build - --root ${ARC_LANG_SRC_DIR} - --build-dir ${ARC_LANG_BUILD_DIR} src/main.exe - COMMAND mv -f ${ARC_LANG_BUILD_DIR}/default/src/main.exe ${ARC_LANG_EXE} +add_custom_target(arc-lang ALL + COMMAND cargo build --manifest-path=${ARC_LANG_DIR}/Cargo.toml --release --target-dir=${ARC_LANG_TARGET_DIR} + COMMAND mv -f ${ARC_LANG_TARGET_DIR}/release/arc-lang ${ARC_LANG_EXE} ) add_subdirectory(include) @@ -46,11 +43,11 @@ add_subdirectory(lib) add_subdirectory(tests) add_subdirectory(tools) -add_custom_target(arc-runtime-check DEPENDS check-arc-mlir - COMMAND cd ${ARC_SCRIPT_SRC_DIR}; ${ARC_CARGO_BIN}/arc-cargo test --package=arc-runtime +add_custom_target(arc-lang-check DEPENDS check-arc-mlir + COMMAND cd ${ARC_LANG_DIR}; ${ARC_CARGO_BIN}/arc-cargo test ) -install(DIRECTORY ${ARC_LANG_SRC_DIR}/stdlib DESTINATION share/arc/) -install(DIRECTORY ${ARC_RUNTIME_SRC_DIR} DESTINATION share/arc/) +install(DIRECTORY ${ARC_LANG_DIR}/stdlib DESTINATION share/arc/) +install(DIRECTORY ${ARC_RUNTIME_DIR} DESTINATION share/arc/) install(PROGRAMS ${LLVM_TOOLS_BINARY_DIR}/arc DESTINATION bin) install(PROGRAMS ${LLVM_TOOLS_BINARY_DIR}/arc-lang DESTINATION bin) diff --git a/arc-mlir/src/include/Arc/CMakeLists.txt b/arc-mlir/src/include/Arc/CMakeLists.txt index be08d6824..328b44937 100644 --- a/arc-mlir/src/include/Arc/CMakeLists.txt +++ b/arc-mlir/src/include/Arc/CMakeLists.txt @@ -3,7 +3,7 @@ set(MLIR_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../llvm-project/mlir/include/ ) -set(LLVM_TARGET_DEFINITIONS ${ARC_MLIR_SOURCE_DIR}/include/Arc/Arc.td) +set(LLVM_TARGET_DEFINITIONS ${ARC_MLIR_SRC_DIR}/include/Arc/Arc.td) set(TBLGEN_INCDIRS "-I${CMAKE_CURRENT_SOURCE_DIR}/../../../llvm-project/mlir/include/") mlir_tablegen(ArcOps.h.inc -gen-op-decls) @@ -15,7 +15,7 @@ mlir_tablegen(ArcOpsEnums.cpp.inc -gen-enum-defs) add_public_tablegen_target(ArcDialectOpsEnumsIncGen) -set(LLVM_TARGET_DEFINITIONS ${ARC_MLIR_SOURCE_DIR}/include/Arc/Opts.td) +set(LLVM_TARGET_DEFINITIONS ${ARC_MLIR_SRC_DIR}/include/Arc/Opts.td) set(TBLGEN_INCDIRS "-I${CMAKE_CURRENT_SOURCE_DIR}/../../../llvm-project/mlir/include/") mlir_tablegen(ArcOpts.h.inc -gen-rewriters ${TBLGEN_INCDIRS} "-I${CMAKE_CURRENT_SOURCE_DIR}/include") add_public_tablegen_target(ArcDialectOptsIncGen) diff --git a/arc-mlir/src/include/Arc/Types.h b/arc-mlir/src/include/Arc/Types.h index b2a8e71ae..0a91b6bba 100644 --- a/arc-mlir/src/include/Arc/Types.h +++ b/arc-mlir/src/include/Arc/Types.h @@ -134,7 +134,7 @@ class StructType typedef std::pair FieldTy; - static StructType get(mlir::MLIRContext *ctx, bool isCompact, + static StructType get(mlir::MLIRContext *ctx, llvm::ArrayRef elementTypes); /// Returns the fields of this struct type. @@ -143,9 +143,6 @@ class StructType /// Returns the number of fields held by this struct. size_t getNumFields() const; - // Returns true if this struct is compact - bool isCompact() const; - static Type parse(DialectAsmParser &parser); void print(DialectAsmPrinter &os) const; }; diff --git a/arc-mlir/src/include/Rust/Rust.h b/arc-mlir/src/include/Rust/Rust.h index 236deacc8..7d02b6776 100644 --- a/arc-mlir/src/include/Rust/Rust.h +++ b/arc-mlir/src/include/Rust/Rust.h @@ -45,12 +45,6 @@ class RustPrinterStream; LogicalResult writeModuleAsInline(ModuleOp module, llvm::raw_ostream &o); -/// A single place to define the versions for the external crates -/// used by the Rust code generated by the backend. -struct CrateVersions { - static const char *ndarray; -}; - bool isRustFunctionType(Type type); } // namespace rust diff --git a/arc-mlir/src/include/Rust/Rust.td b/arc-mlir/src/include/Rust/Rust.td index 4fcf0f703..ae5785fc4 100644 --- a/arc-mlir/src/include/Rust/Rust.td +++ b/arc-mlir/src/include/Rust/Rust.td @@ -513,27 +513,6 @@ def Rust_RustBinaryOp : Rust_Op<"binaryop", [SameTypeOperands]> { }]; } -def Rust_RustBinaryRcOp : Rust_Op<"binaryrcop", [SameTypeOperands]> { - let summary = "a Rust binary operation operating on a Rc value."; - let description = [{ - A Rust binary operation, the op attribute is the string representation of - the operator in Rust syntax. The operands will be dereferenced and the - result wrapped in a Rc. - }]; - - let arguments = (ins StrAttr : $op, AnyRustType : $LHS, AnyRustType : $RHS); - let results = (outs AnyRustType); - - let extraClassDeclaration = [{ - StringRef getOperator() { - return (*this)->getAttrOfType("op").getValue(); - } - - // Write this operation as Rust code to the stream - void writeRust(RustPrinterStream &); - }]; -} - def Rust_RustCompOp : Rust_Op<"compop", [SameTypeOperands]> { let summary = "a Rust comparison operation."; let description = [{ diff --git a/arc-mlir/src/include/Rust/RustPrinterStream.h b/arc-mlir/src/include/Rust/RustPrinterStream.h index ee16960ca..d1fc6f293 100644 --- a/arc-mlir/src/include/Rust/RustPrinterStream.h +++ b/arc-mlir/src/include/Rust/RustPrinterStream.h @@ -84,60 +84,20 @@ class RustPrinterStream { Includefile(includefile){}; void flush(llvm::raw_ostream &o) { - o << "#![allow(non_snake_case)]\n" - << "#![allow(unused_must_use)]\n" - << "#![allow(non_camel_case_types)]" - << "#![allow(dead_code)]\n" - << "#![allow(unused_variables)]\n" - << "#![allow(unused_imports)]\n" - << "#![allow(unused_braces)]\n" - << "#![allow(non_camel_case_types)]\n"; + o << "#[allow(unused)]\n" + "#[allow(non_snake_case)]\n" + "#[allow(non_camel_case_types)]\n"; o << "pub mod " << ModuleName << "{\n" "use super::*;\n" - "pub use arc_runtime::prelude::*;\n"; - - o << "pub use hexf::*;\n"; - - if (!DeclaredFunctions.empty() || !DeclaredTasks.empty()) { - o << "declare!("; - o << "functions: [ "; - for (Operation *t : DeclaredFunctions) { - if (t->hasAttr("arc.rust_name")) - o << t->getAttrOfType("arc.rust_name").getValue(); - else - o << t->getAttrOfType("sym_name").getValue(); - o << ", "; - } - o << "],"; - o << "tasks: [ "; - for (RustFuncOp &t : DeclaredTasks) { - if (t->hasAttr("arc.rust_name")) - o << t->getAttrOfType("arc.rust_name").getValue(); - else - o << t->getAttrOfType("sym_name").getValue(); - o << "("; - unsigned numFuncArguments = t.getNumArguments(); - for (unsigned i = 0; i < numFuncArguments; i++) { - Value v = t.front().getArgument(i); - if (i != 0) - o << ", "; - o << "v" << std::to_string(Value2ID[v]) << ": "; - printType(o, v.getType()); - } - o << "), "; - } - o << "]"; - o << ");\n"; - } + "pub use runtime::prelude::*;\n"; for (auto i : CrateDirectives) o << i.second << "\n"; o << Constants.str(); o << TypeUses.str(); - std::string types = NamedTypes.str(); - o << types; + o << NamedTypes.str(); o << Body.str(); if (!Includefile.empty()) o << "include!(\"" << Includefile << "\");\n"; @@ -180,7 +140,7 @@ class RustPrinterStream { if (id < 0) return "C" + std::to_string(-id); else - return "val!(v" + std::to_string(id) + ")"; + return "v" + std::to_string(id) + ".clone()"; } std::string getConstant(RustConstantOp v); diff --git a/arc-mlir/src/include/Rust/Types.h b/arc-mlir/src/include/Rust/Types.h index e8a8ca549..eb13f9ba6 100644 --- a/arc-mlir/src/include/Rust/Types.h +++ b/arc-mlir/src/include/Rust/Types.h @@ -133,10 +133,9 @@ class RustStructType unsigned getNumFields() const; StringRef getFieldName(unsigned idx) const; Type getFieldType(unsigned idx) const; - bool isCompact() const; typedef std::pair StructFieldTy; - static RustStructType get(RustDialect *dialect, bool isCompact, + static RustStructType get(RustDialect *dialect, ArrayRef fields); std::string getMangledName(rust::RustPrinterStream &ps); }; diff --git a/arc-mlir/src/lib/Arc/Dialect.cpp b/arc-mlir/src/lib/Arc/Dialect.cpp index ce0dd05c9..84de1cf79 100644 --- a/arc-mlir/src/lib/Arc/Dialect.cpp +++ b/arc-mlir/src/lib/Arc/Dialect.cpp @@ -1122,42 +1122,38 @@ void EnumType::print(DialectAsmPrinter &os) const { // StructType //===----------------------------------------------------------------------===// struct StructTypeStorage : public mlir::TypeStorage { - using KeyTy = std::pair>; + using KeyTy = llvm::ArrayRef; - StructTypeStorage(bool isCompact, - llvm::ArrayRef elementTypes) - : isCompact(isCompact), fields(elementTypes) {} + StructTypeStorage(llvm::ArrayRef elementTypes) + : fields(elementTypes) {} bool operator==(const KeyTy &key) const { - return key.first == isCompact && key.second == fields; + return key == fields; } static llvm::hash_code hashKey(const KeyTy &key) { - return llvm::hash_combine(llvm::hash_value(key.first), - llvm::hash_value(key.second)); + return llvm::hash_combine(key); } - static KeyTy getKey(bool isCompact, - llvm::ArrayRef elementTypes) { - return KeyTy(isCompact, elementTypes); + static KeyTy getKey(llvm::ArrayRef elementTypes) { + return KeyTy(elementTypes); } static StructTypeStorage *construct(mlir::TypeStorageAllocator &allocator, const KeyTy &key) { llvm::ArrayRef elementTypes = - allocator.copyInto(key.second); + allocator.copyInto(key); return new (allocator.allocate()) - StructTypeStorage(key.first, elementTypes); + StructTypeStorage(elementTypes); } - bool isCompact; llvm::ArrayRef fields; }; -StructType StructType::get(mlir::MLIRContext *ctx, bool isCompact, +StructType StructType::get(mlir::MLIRContext *ctx, llvm::ArrayRef elementTypes) { - return Base::get(ctx, isCompact, elementTypes); + return Base::get(ctx, elementTypes); } /// Returns the element types of this struct type. @@ -1168,17 +1164,11 @@ llvm::ArrayRef StructType::getFields() const { size_t StructType::getNumFields() const { return getFields().size(); } -bool StructType::isCompact() const { return getImpl()->isCompact; } - Type StructType::parse(DialectAsmParser &parser) { - bool isCompact = false; if (parser.parseLess()) return nullptr; - if (!parser.parseOptionalLess()) - isCompact = true; - Builder &builder = parser.getBuilder(); SmallVector elementTypes; @@ -1186,11 +1176,7 @@ Type StructType::parse(DialectAsmParser &parser) { StringRef name; if (succeeded(parser.parseOptionalGreater())) { - if (isCompact && parser.parseGreater()) - return nullptr; - - return StructType::get(parser.getBuilder().getContext(), isCompact, - elementTypes); + return StructType::get(parser.getBuilder().getContext(), elementTypes); } if (parser.parseKeyword(&name) || parser.parseColon()) @@ -1209,8 +1195,6 @@ Type StructType::parse(DialectAsmParser &parser) { void StructType::print(DialectAsmPrinter &os) const { // Print the struct type according to the parser format. os << "struct"; - if (isCompact()) - os << "<"; os << "<"; auto fields = getFields(); for (unsigned i = 0; i < getNumFields(); i++) { @@ -1219,8 +1203,6 @@ void StructType::print(DialectAsmPrinter &os) const { os << fields[i].first.getValue() << " : " << fields[i].second; } os << '>'; - if (isCompact()) - os << ">"; } } // namespace types diff --git a/arc-mlir/src/lib/Arc/LowerToRust.cpp b/arc-mlir/src/lib/Arc/LowerToRust.cpp index 7bb971702..fb411413a 100644 --- a/arc-mlir/src/lib/Arc/LowerToRust.cpp +++ b/arc-mlir/src/lib/Arc/LowerToRust.cpp @@ -267,7 +267,7 @@ struct ArithConstantOpLowering : public OpConversionPattern { } } - Twine str = "hexf" + Twine(width) + "!(\"" + hex + "\")"; + Twine str = "hexf::hexf" + Twine(width) + "!(\"" + hex + "\")"; std::string cst = str.str(); return returnResult(op, rustTy, cst, rewriter); @@ -1007,7 +1007,7 @@ Type RustTypeConverter::convertStructType(arc::types::StructType type) { Type t = convertType(f.second); fields.push_back(std::make_pair(f.first, t)); } - return rust::types::RustStructType::get(Dialect, type.isCompact(), fields); + return rust::types::RustStructType::get(Dialect, fields); } FunctionType diff --git a/arc-mlir/src/lib/Arc/ToSCF.cpp b/arc-mlir/src/lib/Arc/ToSCF.cpp index 547e82cac..f06e2ee21 100644 --- a/arc-mlir/src/lib/Arc/ToSCF.cpp +++ b/arc-mlir/src/lib/Arc/ToSCF.cpp @@ -176,8 +176,7 @@ struct FunPattern : public OpRewritePattern { for (auto v : liveOut) LLVM_DEBUG(llvm::dbgs() << " " << v << "\n"); // We need a struct for each block - types::StructType t = - types::StructType::get(getContext(), false, elements); + types::StructType t = types::StructType::get(getContext(), elements); block2variantStruct[b] = t; LLVM_DEBUG(llvm::dbgs() << "Entry struct type " << t << "\n"); StringAttr variantName = getBlockVariantName(i); diff --git a/arc-mlir/src/lib/Rust/Dialect.cpp b/arc-mlir/src/lib/Rust/Dialect.cpp index acd6434a6..27fd803ad 100644 --- a/arc-mlir/src/lib/Rust/Dialect.cpp +++ b/arc-mlir/src/lib/Rust/Dialect.cpp @@ -82,7 +82,7 @@ void RustDialect::initialize() { u16Ty = RustType::get(ctx, "u16"); u32Ty = RustType::get(ctx, "u32"); u64Ty = RustType::get(ctx, "u64"); - noneTy = RustType::get(ctx, "unit"); + noneTy = RustType::get(ctx, "Unit"); } //===----------------------------------------------------------------------===// @@ -274,8 +274,6 @@ static RustPrinterStream &writeRust(Operation &operation, op.writeRust(PS); else if (RustBinaryOp op = dyn_cast(operation)) op.writeRust(PS); - else if (RustBinaryRcOp op = dyn_cast(operation)) - op.writeRust(PS); else if (RustCallOp op = dyn_cast(operation)) op.writeRust(PS); else if (RustCallIndirectOp op = dyn_cast(operation)) @@ -329,8 +327,6 @@ std::string RustPrinterStream::getConstant(RustConstantOp v) { if (Operation *target = SymbolTable::lookupNearestSymbolFrom(v, str)) { if (target->hasAttr("arc.rust_name")) str = target->getAttrOfType("arc.rust_name"); - if (target->hasAttr("rust.declare")) - DeclaredFunctions.insert(target); } auto found = Value2ID.find(v); @@ -339,10 +335,8 @@ std::string RustPrinterStream::getConstant(RustConstantOp v) { id = NextID++; Value2ID[v] = id; // A function constant has uses, or else we would not ouput it. - Body << "let v" << id << " : "; - - Body << ::getMangledName(fType, *this); - Body << " = function!(" << str.getValue() << ");\n"; + Body << "let v" << id << " : " << ::getMangledName(fType, *this) + << " = " << str.getValue() << ";\n"; } else id = found->second; return "v" + std::to_string(id); @@ -373,14 +367,10 @@ void RustCallOp::writeRust(RustPrinterStream &PS) { if (target && target->hasAttr("arc.rust_name")) callee = target->getAttrOfType("arc.rust_name").getValue(); - if (target && target->hasAttr("rust.async")) - PS << "call_async!("; - else - PS << "call!("; PS << callee << "("; for (auto a : getOperands()) PS << a << ", "; - PS << "));\n"; + PS << ");\n"; } void RustCallIndirectOp::writeRust(RustPrinterStream &PS) { @@ -389,29 +379,18 @@ void RustCallIndirectOp::writeRust(RustPrinterStream &PS) { auto r = getResult(0); PS.let(r); } - PS << "call_indirect!((" << getCallee() << ")("; + PS << "(" << getCallee() << ")("; for (auto a : getArgOperands()) PS << a << ", "; - PS << "));\n"; + PS << ");\n"; } // Write this function as Rust code to os void RustFuncOp::writeRust(RustPrinterStream &PS) { - if ((*this)->hasAttr("arc.is_task")) - PS.addTask(*this); - - if ((*this)->hasAttr("rust.declare")) - PS.addDeclaredFunction(getOperation()); - if ((*this)->hasAttr("rust.annotation")) PS << (*this)->getAttrOfType("rust.annotation").getValue() << "\n"; - else - PS << "#[rewrite]\n"; - PS << "pub "; - if ((*this)->hasAttr("rust.async")) - PS << "async "; - PS << "fn "; + PS << "pub fn "; if ((*this)->hasAttr("arc.rust_name")) PS << (*this)->getAttrOfType("arc.rust_name").getValue(); else @@ -422,14 +401,7 @@ void RustFuncOp::writeRust(RustPrinterStream &PS) { unsigned numFuncArguments = getNumArguments(); for (unsigned i = 0; i < numFuncArguments; i++) { Value v = front().getArgument(i); - Type t = v.getType(); - if (i != 0) - PS << ", "; - if ((*this)->hasAttr("arc.is_task")) { - if (RustSinkStreamType st = t.dyn_cast()) - PS << "#[output]"; - } - PS.printAsArg(v) << ": " << v.getType(); + PS.printAsArg(v) << ": " << v.getType() << ", "; } PS << ") "; FunctionType funcTy = getFunctionType(); @@ -458,19 +430,14 @@ void RustExtFuncOp::writeRust(RustPrinterStream &PS) { return; PS << (*this)->getAttrOfType("rust.annotation").getValue() - << "\npub "; - if ((*this)->hasAttr("rust.async")) - PS << "async "; - PS << "fn " << getName() << "("; + << "\npub fn " << getName() << "("; FunctionType fType = getFunctionType(); unsigned numFuncArguments = fType.getNumInputs(); for (unsigned i = 0; i < numFuncArguments; i++) { Type t = fType.getInput(i); - if (i != 0) - PS << ", "; - PS << "arg" << i << " : " << t; + PS << "arg" << i << " : " << t << ", "; } PS << ") "; if (fType.getNumResults()) { // The return type @@ -480,7 +447,7 @@ void RustExtFuncOp::writeRust(RustPrinterStream &PS) { } void RustReturnOp::writeRust(RustPrinterStream &PS) { - if (getNumOperands()) + if (getNumOperands() > 0) PS << "return " << getOperand(0) << ";\n"; else PS << "return;\n"; @@ -624,7 +591,7 @@ void RustLoopYieldOp::writeRust(RustPrinterStream &PS) { void RustMakeEnumOp::writeRust(RustPrinterStream &PS) { auto r = getResult(); RustEnumType et = r.getType().cast(); - PS.let(r) << "enwrap!(" << et << "::" << getVariant() << ", "; + PS.let(r) << et << "::" << getVariant() << "("; if (getValues().size()) PS << getValues()[0]; else @@ -635,15 +602,13 @@ void RustMakeEnumOp::writeRust(RustPrinterStream &PS) { void RustMakeStructOp::writeRust(RustPrinterStream &PS) { auto r = getResult(); RustStructType st = r.getType().cast(); - PS.let(r) << "new!(" << st << " { "; + PS.let(r) << st << " { "; auto args = getOperands(); for (unsigned i = 0; i < args.size(); i++) { - if (i != 0) - PS << ", "; auto v = args[i]; - PS << st.getFieldName(i) << " : " << v; + PS << st.getFieldName(i) << " : " << v << ", "; } - PS << "});\n"; + PS << "};\n"; } void RustMethodCallOp::writeRust(RustPrinterStream &PS) { @@ -653,8 +618,7 @@ void RustMethodCallOp::writeRust(RustPrinterStream &PS) { for (unsigned i = 0; i < args.size(); i++) { if (i != 0) PS << ", "; - auto v = args[i]; - PS << v; + PS << args[i]; } PS << ");\n"; } @@ -664,12 +628,6 @@ void RustBinaryOp::writeRust(RustPrinterStream &PS) { PS.let(r) << getLHS() << " " << getOperator() << " " << getRHS() << ";\n"; } -void RustBinaryRcOp::writeRust(RustPrinterStream &PS) { - auto r = getResult(); - PS.let(r) << "Rc::new(&*" << getLHS() << " " << getOperator() << " &*" - << getRHS() << ");\n"; -} - void RustCompOp::writeRust(RustPrinterStream &PS) { auto r = getResult(); PS.let(r) << getLHS() << " " << getOperator() << " " << getRHS() << ";\n"; @@ -678,20 +636,20 @@ void RustCompOp::writeRust(RustPrinterStream &PS) { void RustEnumAccessOp::writeRust(RustPrinterStream &PS) { auto r = getResult(); RustEnumType et = getTheEnum().getType().cast(); - PS.let(r) << "unwrap!(" << et << "::" << getVariant() << ", " << getTheEnum() + PS.let(r) << "unwrap!(" << getTheEnum() << ", " << et << "::" << getVariant() << ");\n"; } void RustEnumCheckOp::writeRust(RustPrinterStream &PS) { auto r = getResult(); RustEnumType et = getTheEnum().getType().cast(); - PS.let(r) << "is!(" << et << "::" << getVariant() << ", " << getTheEnum() - << ");\n"; + PS.let(r) << "matches!(" << getTheEnum() << ", " << et << "::" << getVariant() + << "(_)" << ");\n"; } void RustFieldAccessOp::writeRust(RustPrinterStream &PS) { auto r = getResult(); - PS.let(r) << "access!(" << getAggregate() << ", " << getField() << ");\n"; + PS.let(r) << getAggregate() << "." << getField() << ";\n"; } void RustIfOp::writeRust(RustPrinterStream &PS) { @@ -753,6 +711,7 @@ void RustPanicOp::writeRust(RustPrinterStream &PS) { PS << ");\n"; } +// TODO: The runtime right now requires code to be synchronous. void RustReceiveOp::writeRust(RustPrinterStream &PS) { auto r = getResult(); PS.let(r) << "pull!(" << getSource(); @@ -764,10 +723,12 @@ void RustReceiveOp::writeRust(RustPrinterStream &PS) { PS << ");\n"; } +// TODO: The runtime right now requires code to be synchronous. void RustSendOp::writeRust(RustPrinterStream &PS) { PS << "push!(" << getValue() << "," << getSink() << ");\n"; } +// TODO: The runtime right now requires code to be synchronous. void RustSpawnOp::writeRust(RustPrinterStream &PS) { StringRef callee = getCallee(); StringAttr calleeName = StringAttr::get(this->getContext(), getCallee()); @@ -781,13 +742,6 @@ void RustSpawnOp::writeRust(RustPrinterStream &PS) { PS << ");\n"; } -//===----------------------------------------------------------------------===// -// Crate versions -//===----------------------------------------------------------------------===// -namespace rust { -const char *CrateVersions::ndarray = "0.13.0"; -} // namespace rust - //===----------------------------------------------------------------------===// // Rust types //===----------------------------------------------------------------------===// @@ -798,6 +752,10 @@ struct RustTypeStorage : public TypeStorage { RustTypeStorage(std::string type) : rustType(type), mangledName(type) { if (rustType[0] == '"') mangledName = rustType.substr(1, rustType.length() - 2); + // TODO: Find a way to handle unit type so we can print "()" syntax and use "unit" for mangled. + // The below does not work since ::printAsRust() prints the mangledName + // if (rustType == "()") + // mangledName = "unit"; } std::string rustType; @@ -933,8 +891,8 @@ void RustEnumTypeStorage::printAsMLIR(DialectAsmPrinter &os) const { for (unsigned i = 0; i < enumVariants.size(); i++) { if (i != 0) os << ", "; - os << enumVariants[i].first.getValue(); - os << " : "; + os << enumVariants[i].first.getValue() + << " : "; ::printAsMLIR(enumVariants[i].second, os); } os << ">"; @@ -994,11 +952,13 @@ std::string RustEnumTypeStorage::getMangledName(rust::RustPrinterStream &ps) { mangledName = mangled.str(); llvm::raw_ostream &tyStream = ps.getNamedTypesStream(); - tyStream << "#[rewrite]\n"; + tyStream << "#[data]\n"; tyStream << "pub enum " << mangledName << " {\n"; for (unsigned i = 0; i < enumVariants.size(); i++) { + if (i != 0) + tyStream << ",\n"; tyStream << " " << enumVariants[i].first.getValue() << "(" - << ::getMangledName(enumVariants[i].second, ps) << "),\n"; + << ::getMangledName(enumVariants[i].second, ps) << ")"; } tyStream << "\n}\n"; @@ -1258,28 +1218,26 @@ Type RustSourceStreamTypeStorage::getType() const { return item; } //===----------------------------------------------------------------------===// struct RustStructTypeStorage : public TypeStorage { - RustStructTypeStorage(bool isCompact, - ArrayRef fields) - : structFields(fields.begin(), fields.end()), compact(isCompact) {} + RustStructTypeStorage(ArrayRef fields) + : structFields(fields.begin(), fields.end()) {} SmallVector structFields; - using KeyTy = std::pair>; + using KeyTy = ArrayRef; bool operator==(const KeyTy &key) const { - KeyTy self(compact, structFields); - return key.first == self.first && key.second == self.second; + KeyTy self(structFields); + return key == self; } static llvm::hash_code hashKey(const KeyTy &key) { - return llvm::hash_combine(llvm::hash_value(key.first), - llvm::hash_value(key.second)); + return llvm::hash_combine(key); } static RustStructTypeStorage *construct(TypeStorageAllocator &allocator, const KeyTy &key) { return new (allocator.allocate()) - RustStructTypeStorage(key.first, key.second); + RustStructTypeStorage(key); } void printAsRust(llvm::raw_ostream &o, rust::RustPrinterStream &ps); @@ -1289,33 +1247,26 @@ struct RustStructTypeStorage : public TypeStorage { unsigned getNumFields() const; StringRef getFieldName(unsigned idx) const; Type getFieldType(unsigned idx) const; - bool isCompact() const { return compact; } std::string getMangledName(rust::RustPrinterStream &ps); private: - bool compact; std::string mangledName; }; -RustStructType RustStructType::get(RustDialect *dialect, bool isCompact, +RustStructType RustStructType::get(RustDialect *dialect, ArrayRef fields) { - return Base::get(dialect->getContext(), isCompact, fields); + return Base::get(dialect->getContext(), fields); } void RustStructTypeStorage::printAsMLIR(DialectAsmPrinter &os) const { os << "struct<"; - if (isCompact()) - os << "<"; for (unsigned i = 0; i < structFields.size(); i++) { if (i != 0) os << ", "; - os << structFields[i].first.getValue(); - os << " : "; + os << structFields[i].first.getValue() << " : "; ::printAsMLIR(structFields[i].second, os); } - if (isCompact()) - os << "<"; os << ">"; } @@ -1352,8 +1303,6 @@ Type RustStructTypeStorage::getFieldType(unsigned idx) const { return structFields[idx].second; } -bool RustStructType::isCompact() const { return getImpl()->isCompact(); } - std::string RustStructType::getMangledName(rust::RustPrinterStream &ps) { return getImpl()->getMangledName(ps); } @@ -1365,8 +1314,6 @@ std::string RustStructTypeStorage::getMangledName(rust::RustPrinterStream &ps) { std::string buffer; llvm::raw_string_ostream mangled(buffer); - if (isCompact()) - mangled << "Compact"; mangled << "Struct"; for (auto &f : structFields) { @@ -1380,17 +1327,14 @@ std::string RustStructTypeStorage::getMangledName(rust::RustPrinterStream &ps) { llvm::raw_ostream &tyStream = ps.getNamedTypesStream(); - if (isCompact()) - tyStream << "#[rewrite(compact)]\n"; - else - tyStream << "#[rewrite]\n"; - tyStream << "pub struct " << mangledName << " {\n "; + tyStream << "#[data]\n"; + tyStream << "pub struct " << mangledName << " {\n"; for (unsigned i = 0; i < structFields.size(); i++) { if (i != 0) - tyStream << ",\n "; + tyStream << ",\n"; - tyStream << " " << structFields[i].first.getValue() << " : "; + tyStream << " pub " << structFields[i].first.getValue() << ": "; tyStream << ::getMangledName(structFields[i].second, ps); } tyStream << "\n}\n"; @@ -1613,13 +1557,13 @@ std::string RustPrinterStream::getMangledName(FunctionType fTy) { FunctionTypes[fTy] = mn; llvm::raw_ostream &tyStream = getNamedTypesStream(); - tyStream << "type " << mn << " = function!(("; + tyStream << "type " << mn << " = fn("; for (Type t : fTy.getInputs()) tyStream << ::getMangledName(t, *this) << ", "; tyStream << ")"; if (fTy.getNumResults()) tyStream << " -> " << ::getMangledName(fTy.getResult(0), *this); - tyStream << ");\n"; + tyStream << ";\n"; return mn; } diff --git a/arc-mlir/src/tests/CMakeLists.txt b/arc-mlir/src/tests/CMakeLists.txt index dd7d70b7c..870f84868 100644 --- a/arc-mlir/src/tests/CMakeLists.txt +++ b/arc-mlir/src/tests/CMakeLists.txt @@ -12,8 +12,11 @@ configure_lit_site_cfg( ) set(ARC_MLIR_TEST_DEPENDS - FileCheck count not - arc-mlir dune-build + FileCheck + count + not + arc-mlir + arc-lang ) add_lit_testsuite(check-arc-mlir "Running the ARC-MLIR regression tests" diff --git a/arc-mlir/src/tests/arc-to-rust/adt.mlir b/arc-mlir/src/tests/arc-to-rust/adt.mlir index dabe19c1a..6116ebd7b 100644 --- a/arc-mlir/src/tests/arc-to-rust/adt.mlir +++ b/arc-mlir/src/tests/arc-to-rust/adt.mlir @@ -3,7 +3,6 @@ // RUN: arc-mlir-rust-test %t-roundtrip-scf %s -rustinclude %s.rust-tests -canonicalize -remove-scf -canonicalize -to-scf -canonicalize module @arctorustadt { - func.func @ok0(%in : !arc.adt<"i32">) -> () { return } @@ -17,23 +16,23 @@ module @arctorustadt { return %out : !arc.adt<"i32"> } - func.func @ok6(%in : !arc.generic_adt<"crate::arctorustadt::tests::sharable_Foo::Foo", ui32>) - -> !arc.generic_adt<"crate::arctorustadt::tests::sharable_Foo::Foo", ui32> { - return %in : !arc.generic_adt<"crate::arctorustadt::tests::sharable_Foo::Foo", ui32> + func.func @ok6(%in : !arc.generic_adt<"crate::arctorustadt::tests::Foo", ui32>) + -> !arc.generic_adt<"crate::arctorustadt::tests::Foo", ui32> { + return %in : !arc.generic_adt<"crate::arctorustadt::tests::Foo", ui32> } - func.func @ok7(%in : !arc.generic_adt<"crate::arctorustadt::tests::sharable_Bar::Bar", ui32, !arc.generic_adt<"crate::arctorustadt::tests::sharable_Foo::Foo", f64>>) - -> !arc.generic_adt<"crate::arctorustadt::tests::sharable_Bar::Bar", ui32, !arc.generic_adt<"crate::arctorustadt::tests::sharable_Foo::Foo", f64>> { - return %in : !arc.generic_adt<"crate::arctorustadt::tests::sharable_Bar::Bar", ui32, !arc.generic_adt<"crate::arctorustadt::tests::sharable_Foo::Foo", f64>> + func.func @ok7(%in : !arc.generic_adt<"crate::arctorustadt::tests::Bar", ui32, !arc.generic_adt<"crate::arctorustadt::tests::Foo", f64>>) + -> !arc.generic_adt<"crate::arctorustadt::tests::Bar", ui32, !arc.generic_adt<"crate::arctorustadt::tests::Foo", f64>> { + return %in : !arc.generic_adt<"crate::arctorustadt::tests::Bar", ui32, !arc.generic_adt<"crate::arctorustadt::tests::Foo", f64>> } - func.func @ok8(%in : !arc.generic_adt<"crate::arctorustadt::tests::sharable_Bar::Bar", ui32, !arc.adt<"i32">>) - -> !arc.generic_adt<"crate::arctorustadt::tests::sharable_Bar::Bar", ui32, !arc.adt<"i32">> { - return %in : !arc.generic_adt<"crate::arctorustadt::tests::sharable_Bar::Bar", ui32, !arc.adt<"i32">> + func.func @ok8(%in : !arc.generic_adt<"crate::arctorustadt::tests::Bar", ui32, !arc.adt<"i32">>) + -> !arc.generic_adt<"crate::arctorustadt::tests::Bar", ui32, !arc.adt<"i32">> { + return %in : !arc.generic_adt<"crate::arctorustadt::tests::Bar", ui32, !arc.adt<"i32">> } - func.func @ok9(%in : !arc.struct>>) - -> !arc.struct>> { - return %in : !arc.struct>> + func.func @ok9(%in : !arc.struct>>) + -> !arc.struct>> { + return %in : !arc.struct>> } } diff --git a/arc-mlir/src/tests/arc-to-rust/adt.mlir.rust-tests b/arc-mlir/src/tests/arc-to-rust/adt.mlir.rust-tests index ef30d7b65..d4b1032ee 100644 --- a/arc-mlir/src/tests/arc-to-rust/adt.mlir.rust-tests +++ b/arc-mlir/src/tests/arc-to-rust/adt.mlir.rust-tests @@ -1,25 +1,21 @@ #[cfg(test)] mod tests { - use crate::arctorustadt::*; + use crate::arctorustadt::*; - #[rewrite] - pub struct Foo
      { - pub a: A, - } + #[data] + pub struct Foo { + pub a: A, + } - #[rewrite] - pub struct Bar { - pub a: A, - pub b: B, - } + #[data] + pub struct Bar { + pub a: A, + pub b: B, + } - #[rewrite(main)] - #[test] - fn test() { - let tmp0 = call!(ok2(4711)); - assert_eq!(tmp0, 4711); - - let tmp2 = call!(ok4()); - assert_eq!(tmp2, 4711); - } + #[test] + fn test() { + assert_eq!(ok2(4711), 4711); + assert_eq!(ok4(), 4711); + } } diff --git a/arc-mlir/src/tests/arc-to-rust/arc-cmpf.mlir b/arc-mlir/src/tests/arc-to-rust/arc-cmpf.mlir index 8971e5625..44dca3755 100644 --- a/arc-mlir/src/tests/arc-to-rust/arc-cmpf.mlir +++ b/arc-mlir/src/tests/arc-to-rust/arc-cmpf.mlir @@ -2,64 +2,63 @@ // RUN: arc-mlir-rust-test %t-roundtrip-scf %s -rustinclude %s.rust-tests -canonicalize -remove-scf -canonicalize -to-scf -canonicalize module @arctorustarcarccmpf { -func.func @oeq_f32(%a : f32, %b : f32) -> i1 { - %r = arith.cmpf "oeq", %a, %b : f32 - return %r : i1 -} + func.func @oeq_f32(%a : f32, %b : f32) -> i1 { + %r = arith.cmpf "oeq", %a, %b : f32 + return %r : i1 + } -func.func @one_f32(%a : f32, %b : f32) -> i1 { - %r = arith.cmpf "one", %a, %b : f32 - return %r : i1 -} + func.func @one_f32(%a : f32, %b : f32) -> i1 { + %r = arith.cmpf "one", %a, %b : f32 + return %r : i1 + } -func.func @olt_f32(%a : f32, %b : f32) -> i1 { - %r = arith.cmpf "olt", %a, %b : f32 - return %r : i1 -} + func.func @olt_f32(%a : f32, %b : f32) -> i1 { + %r = arith.cmpf "olt", %a, %b : f32 + return %r : i1 + } -func.func @ole_f32(%a : f32, %b : f32) -> i1 { - %r = arith.cmpf "ole", %a, %b : f32 - return %r : i1 -} + func.func @ole_f32(%a : f32, %b : f32) -> i1 { + %r = arith.cmpf "ole", %a, %b : f32 + return %r : i1 + } -func.func @ogt_f32(%a : f32, %b : f32) -> i1 { - %r = arith.cmpf "ogt", %a, %b : f32 - return %r : i1 -} + func.func @ogt_f32(%a : f32, %b : f32) -> i1 { + %r = arith.cmpf "ogt", %a, %b : f32 + return %r : i1 + } -func.func @oge_f32(%a : f32, %b : f32) -> i1 { - %r = arith.cmpf "oge", %a, %b : f32 - return %r : i1 -} + func.func @oge_f32(%a : f32, %b : f32) -> i1 { + %r = arith.cmpf "oge", %a, %b : f32 + return %r : i1 + } -func.func @oeq_f64(%a : f64, %b : f64) -> i1 { - %r = arith.cmpf "oeq", %a, %b : f64 - return %r : i1 -} + func.func @oeq_f64(%a : f64, %b : f64) -> i1 { + %r = arith.cmpf "oeq", %a, %b : f64 + return %r : i1 + } -func.func @one_f64(%a : f64, %b : f64) -> i1 { - %r = arith.cmpf "one", %a, %b : f64 - return %r : i1 -} - -func.func @olt_f64(%a : f64, %b : f64) -> i1 { - %r = arith.cmpf "olt", %a, %b : f64 - return %r : i1 -} + func.func @one_f64(%a : f64, %b : f64) -> i1 { + %r = arith.cmpf "one", %a, %b : f64 + return %r : i1 + } -func.func @ole_f64(%a : f64, %b : f64) -> i1 { - %r = arith.cmpf "ole", %a, %b : f64 - return %r : i1 -} + func.func @olt_f64(%a : f64, %b : f64) -> i1 { + %r = arith.cmpf "olt", %a, %b : f64 + return %r : i1 + } -func.func @ogt_f64(%a : f64, %b : f64) -> i1 { - %r = arith.cmpf "ogt", %a, %b : f64 - return %r : i1 -} + func.func @ole_f64(%a : f64, %b : f64) -> i1 { + %r = arith.cmpf "ole", %a, %b : f64 + return %r : i1 + } -func.func @oge_f64(%a : f64, %b : f64) -> i1 { - %r = arith.cmpf "oge", %a, %b : f64 - return %r : i1 -} + func.func @ogt_f64(%a : f64, %b : f64) -> i1 { + %r = arith.cmpf "ogt", %a, %b : f64 + return %r : i1 + } + func.func @oge_f64(%a : f64, %b : f64) -> i1 { + %r = arith.cmpf "oge", %a, %b : f64 + return %r : i1 + } } diff --git a/arc-mlir/src/tests/arc-to-rust/arc-cmpf.mlir.rust-tests b/arc-mlir/src/tests/arc-to-rust/arc-cmpf.mlir.rust-tests index bfd364166..b2afdd259 100644 --- a/arc-mlir/src/tests/arc-to-rust/arc-cmpf.mlir.rust-tests +++ b/arc-mlir/src/tests/arc-to-rust/arc-cmpf.mlir.rust-tests @@ -1,425 +1,1295 @@ #[cfg(test)] mod tests { -use crate::arctorustarcarccmpf::*; + use crate::arctorustarcarccmpf::*; -#[rewrite(main)] -#[test] - fn test_0() { - assert_eq!(call!(oeq_f32(-3.14000000000000012434e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(oeq_f32(-3.14000000000000012434e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(oeq_f32(-3.14000000000000012434e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(oeq_f32(-3.14000000000000012434e+00, 3.14000000000000012434e+00)), false); - assert_eq!(call!(oeq_f32(-1.00000000000000000000e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(oeq_f32(-1.00000000000000000000e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(oeq_f32(-1.00000000000000000000e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(oeq_f32(-1.00000000000000000000e+00, 3.14000000000000012434e+00)), false); - assert_eq!(call!(oeq_f32(0.00000000000000000000e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(oeq_f32(0.00000000000000000000e+00, -1.00000000000000000000e+00)), false); - } - #[rewrite(main)] - #[test] - fn test_1() { - assert_eq!(call!(oeq_f32(0.00000000000000000000e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(oeq_f32(0.00000000000000000000e+00, 3.14000000000000012434e+00)), false); - assert_eq!(call!(oeq_f32(1.00000000000000000000e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(oeq_f32(1.00000000000000000000e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(oeq_f32(1.00000000000000000000e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(oeq_f32(1.00000000000000000000e+00, 3.14000000000000012434e+00)), false); - assert_eq!(call!(oeq_f32(3.14000000000000012434e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(oeq_f32(3.14000000000000012434e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(oeq_f32(3.14000000000000012434e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(oeq_f32(3.14000000000000012434e+00, 1.00000000000000000000e+00)), false); - } - #[rewrite(main)] - #[test] - fn test_2() { - assert_eq!(call!(oeq_f32(-3.14000000000000012434e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(oeq_f32(-1.00000000000000000000e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(oeq_f32(0.00000000000000000000e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(oeq_f32(1.00000000000000000000e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(oeq_f32(3.14000000000000012434e+00, 3.14000000000000012434e+00)), true); - assert_eq!(call!(oeq_f64(-3.14000000000000012434e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(oeq_f64(-3.14000000000000012434e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(oeq_f64(-3.14000000000000012434e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(oeq_f64(-3.14000000000000012434e+00, 3.14000000000000012434e+00)), false); - assert_eq!(call!(oeq_f64(-1.00000000000000000000e+00, -3.14000000000000012434e+00)), false); - } - #[rewrite(main)] - #[test] - fn test_3() { - assert_eq!(call!(oeq_f64(-1.00000000000000000000e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(oeq_f64(-1.00000000000000000000e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(oeq_f64(-1.00000000000000000000e+00, 3.14000000000000012434e+00)), false); - assert_eq!(call!(oeq_f64(0.00000000000000000000e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(oeq_f64(0.00000000000000000000e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(oeq_f64(0.00000000000000000000e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(oeq_f64(0.00000000000000000000e+00, 3.14000000000000012434e+00)), false); - assert_eq!(call!(oeq_f64(1.00000000000000000000e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(oeq_f64(1.00000000000000000000e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(oeq_f64(1.00000000000000000000e+00, 0.00000000000000000000e+00)), false); - } - #[rewrite(main)] - #[test] - fn test_4() { - assert_eq!(call!(oeq_f64(1.00000000000000000000e+00, 3.14000000000000012434e+00)), false); - assert_eq!(call!(oeq_f64(3.14000000000000012434e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(oeq_f64(3.14000000000000012434e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(oeq_f64(3.14000000000000012434e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(oeq_f64(3.14000000000000012434e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(oeq_f64(-3.14000000000000012434e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(oeq_f64(-1.00000000000000000000e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(oeq_f64(0.00000000000000000000e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(oeq_f64(1.00000000000000000000e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(oeq_f64(3.14000000000000012434e+00, 3.14000000000000012434e+00)), true); - } - #[rewrite(main)] - #[test] - fn test_5() { - assert_eq!(call!(oge_f32(-3.14000000000000012434e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(oge_f32(-3.14000000000000012434e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(oge_f32(-3.14000000000000012434e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(oge_f32(-3.14000000000000012434e+00, 3.14000000000000012434e+00)), false); - assert_eq!(call!(oge_f32(-1.00000000000000000000e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(oge_f32(-1.00000000000000000000e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(oge_f32(-1.00000000000000000000e+00, 3.14000000000000012434e+00)), false); - assert_eq!(call!(oge_f32(0.00000000000000000000e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(oge_f32(0.00000000000000000000e+00, 3.14000000000000012434e+00)), false); - assert_eq!(call!(oge_f32(1.00000000000000000000e+00, 3.14000000000000012434e+00)), false); - } - #[rewrite(main)] - #[test] - fn test_6() { - assert_eq!(call!(oge_f32(-3.14000000000000012434e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(oge_f32(-1.00000000000000000000e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(oge_f32(-1.00000000000000000000e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(oge_f32(0.00000000000000000000e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(oge_f32(0.00000000000000000000e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(oge_f32(0.00000000000000000000e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(oge_f32(1.00000000000000000000e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(oge_f32(1.00000000000000000000e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(oge_f32(1.00000000000000000000e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(oge_f32(1.00000000000000000000e+00, 1.00000000000000000000e+00)), true); - } - #[rewrite(main)] - #[test] - fn test_7() { - assert_eq!(call!(oge_f32(3.14000000000000012434e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(oge_f32(3.14000000000000012434e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(oge_f32(3.14000000000000012434e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(oge_f32(3.14000000000000012434e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(oge_f32(3.14000000000000012434e+00, 3.14000000000000012434e+00)), true); - assert_eq!(call!(oge_f64(-3.14000000000000012434e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(oge_f64(-3.14000000000000012434e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(oge_f64(-3.14000000000000012434e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(oge_f64(-3.14000000000000012434e+00, 3.14000000000000012434e+00)), false); - assert_eq!(call!(oge_f64(-1.00000000000000000000e+00, 0.00000000000000000000e+00)), false); - } - #[rewrite(main)] - #[test] - fn test_8() { - assert_eq!(call!(oge_f64(-1.00000000000000000000e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(oge_f64(-1.00000000000000000000e+00, 3.14000000000000012434e+00)), false); - assert_eq!(call!(oge_f64(0.00000000000000000000e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(oge_f64(0.00000000000000000000e+00, 3.14000000000000012434e+00)), false); - assert_eq!(call!(oge_f64(1.00000000000000000000e+00, 3.14000000000000012434e+00)), false); - assert_eq!(call!(oge_f64(-3.14000000000000012434e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(oge_f64(-1.00000000000000000000e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(oge_f64(-1.00000000000000000000e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(oge_f64(0.00000000000000000000e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(oge_f64(0.00000000000000000000e+00, -1.00000000000000000000e+00)), true); - } - #[rewrite(main)] - #[test] - fn test_9() { - assert_eq!(call!(oge_f64(0.00000000000000000000e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(oge_f64(1.00000000000000000000e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(oge_f64(1.00000000000000000000e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(oge_f64(1.00000000000000000000e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(oge_f64(1.00000000000000000000e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(oge_f64(3.14000000000000012434e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(oge_f64(3.14000000000000012434e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(oge_f64(3.14000000000000012434e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(oge_f64(3.14000000000000012434e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(oge_f64(3.14000000000000012434e+00, 3.14000000000000012434e+00)), true); - } - #[rewrite(main)] - #[test] - fn test_10() { - assert_eq!(call!(ogt_f32(-3.14000000000000012434e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(ogt_f32(-3.14000000000000012434e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(ogt_f32(-3.14000000000000012434e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(ogt_f32(-3.14000000000000012434e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(ogt_f32(-3.14000000000000012434e+00, 3.14000000000000012434e+00)), false); - assert_eq!(call!(ogt_f32(-1.00000000000000000000e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(ogt_f32(-1.00000000000000000000e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(ogt_f32(-1.00000000000000000000e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(ogt_f32(-1.00000000000000000000e+00, 3.14000000000000012434e+00)), false); - assert_eq!(call!(ogt_f32(0.00000000000000000000e+00, 0.00000000000000000000e+00)), false); - } - #[rewrite(main)] - #[test] - fn test_11() { - assert_eq!(call!(ogt_f32(0.00000000000000000000e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(ogt_f32(0.00000000000000000000e+00, 3.14000000000000012434e+00)), false); - assert_eq!(call!(ogt_f32(1.00000000000000000000e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(ogt_f32(1.00000000000000000000e+00, 3.14000000000000012434e+00)), false); - assert_eq!(call!(ogt_f32(3.14000000000000012434e+00, 3.14000000000000012434e+00)), false); - assert_eq!(call!(ogt_f32(-1.00000000000000000000e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(ogt_f32(0.00000000000000000000e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(ogt_f32(0.00000000000000000000e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(ogt_f32(1.00000000000000000000e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(ogt_f32(1.00000000000000000000e+00, -1.00000000000000000000e+00)), true); - } - #[rewrite(main)] - #[test] - fn test_12() { - assert_eq!(call!(ogt_f32(1.00000000000000000000e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(ogt_f32(3.14000000000000012434e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(ogt_f32(3.14000000000000012434e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(ogt_f32(3.14000000000000012434e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(ogt_f32(3.14000000000000012434e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(ogt_f64(-3.14000000000000012434e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(ogt_f64(-3.14000000000000012434e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(ogt_f64(-3.14000000000000012434e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(ogt_f64(-3.14000000000000012434e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(ogt_f64(-3.14000000000000012434e+00, 3.14000000000000012434e+00)), false); - } - #[rewrite(main)] - #[test] - fn test_13() { - assert_eq!(call!(ogt_f64(-1.00000000000000000000e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(ogt_f64(-1.00000000000000000000e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(ogt_f64(-1.00000000000000000000e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(ogt_f64(-1.00000000000000000000e+00, 3.14000000000000012434e+00)), false); - assert_eq!(call!(ogt_f64(0.00000000000000000000e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(ogt_f64(0.00000000000000000000e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(ogt_f64(0.00000000000000000000e+00, 3.14000000000000012434e+00)), false); - assert_eq!(call!(ogt_f64(1.00000000000000000000e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(ogt_f64(1.00000000000000000000e+00, 3.14000000000000012434e+00)), false); - assert_eq!(call!(ogt_f64(3.14000000000000012434e+00, 3.14000000000000012434e+00)), false); - } - #[rewrite(main)] - #[test] - fn test_14() { - assert_eq!(call!(ogt_f64(-1.00000000000000000000e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(ogt_f64(0.00000000000000000000e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(ogt_f64(0.00000000000000000000e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(ogt_f64(1.00000000000000000000e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(ogt_f64(1.00000000000000000000e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(ogt_f64(1.00000000000000000000e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(ogt_f64(3.14000000000000012434e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(ogt_f64(3.14000000000000012434e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(ogt_f64(3.14000000000000012434e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(ogt_f64(3.14000000000000012434e+00, 1.00000000000000000000e+00)), true); - } - #[rewrite(main)] - #[test] - fn test_15() { - assert_eq!(call!(ole_f32(-1.00000000000000000000e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(ole_f32(0.00000000000000000000e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(ole_f32(0.00000000000000000000e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(ole_f32(1.00000000000000000000e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(ole_f32(1.00000000000000000000e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(ole_f32(1.00000000000000000000e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(ole_f32(3.14000000000000012434e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(ole_f32(3.14000000000000012434e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(ole_f32(3.14000000000000012434e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(ole_f32(3.14000000000000012434e+00, 1.00000000000000000000e+00)), false); - } - #[rewrite(main)] - #[test] - fn test_16() { - assert_eq!(call!(ole_f32(-3.14000000000000012434e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(ole_f32(-3.14000000000000012434e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(ole_f32(-3.14000000000000012434e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(ole_f32(-3.14000000000000012434e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(ole_f32(-3.14000000000000012434e+00, 3.14000000000000012434e+00)), true); - assert_eq!(call!(ole_f32(-1.00000000000000000000e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(ole_f32(-1.00000000000000000000e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(ole_f32(-1.00000000000000000000e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(ole_f32(-1.00000000000000000000e+00, 3.14000000000000012434e+00)), true); - assert_eq!(call!(ole_f32(0.00000000000000000000e+00, 0.00000000000000000000e+00)), true); - } - #[rewrite(main)] - #[test] - fn test_17() { - assert_eq!(call!(ole_f32(0.00000000000000000000e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(ole_f32(0.00000000000000000000e+00, 3.14000000000000012434e+00)), true); - assert_eq!(call!(ole_f32(1.00000000000000000000e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(ole_f32(1.00000000000000000000e+00, 3.14000000000000012434e+00)), true); - assert_eq!(call!(ole_f32(3.14000000000000012434e+00, 3.14000000000000012434e+00)), true); - assert_eq!(call!(ole_f64(-1.00000000000000000000e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(ole_f64(0.00000000000000000000e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(ole_f64(0.00000000000000000000e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(ole_f64(1.00000000000000000000e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(ole_f64(1.00000000000000000000e+00, -1.00000000000000000000e+00)), false); - } - #[rewrite(main)] - #[test] - fn test_18() { - assert_eq!(call!(ole_f64(1.00000000000000000000e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(ole_f64(3.14000000000000012434e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(ole_f64(3.14000000000000012434e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(ole_f64(3.14000000000000012434e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(ole_f64(3.14000000000000012434e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(ole_f64(-3.14000000000000012434e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(ole_f64(-3.14000000000000012434e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(ole_f64(-3.14000000000000012434e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(ole_f64(-3.14000000000000012434e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(ole_f64(-3.14000000000000012434e+00, 3.14000000000000012434e+00)), true); - } - #[rewrite(main)] - #[test] - fn test_19() { - assert_eq!(call!(ole_f64(-1.00000000000000000000e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(ole_f64(-1.00000000000000000000e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(ole_f64(-1.00000000000000000000e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(ole_f64(-1.00000000000000000000e+00, 3.14000000000000012434e+00)), true); - assert_eq!(call!(ole_f64(0.00000000000000000000e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(ole_f64(0.00000000000000000000e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(ole_f64(0.00000000000000000000e+00, 3.14000000000000012434e+00)), true); - assert_eq!(call!(ole_f64(1.00000000000000000000e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(ole_f64(1.00000000000000000000e+00, 3.14000000000000012434e+00)), true); - assert_eq!(call!(ole_f64(3.14000000000000012434e+00, 3.14000000000000012434e+00)), true); - } - #[rewrite(main)] - #[test] - fn test_20() { - assert_eq!(call!(olt_f32(-3.14000000000000012434e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(olt_f32(-1.00000000000000000000e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(olt_f32(-1.00000000000000000000e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(olt_f32(0.00000000000000000000e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(olt_f32(0.00000000000000000000e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(olt_f32(0.00000000000000000000e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(olt_f32(1.00000000000000000000e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(olt_f32(1.00000000000000000000e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(olt_f32(1.00000000000000000000e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(olt_f32(1.00000000000000000000e+00, 1.00000000000000000000e+00)), false); - } - #[rewrite(main)] - #[test] - fn test_21() { - assert_eq!(call!(olt_f32(3.14000000000000012434e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(olt_f32(3.14000000000000012434e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(olt_f32(3.14000000000000012434e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(olt_f32(3.14000000000000012434e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(olt_f32(3.14000000000000012434e+00, 3.14000000000000012434e+00)), false); - assert_eq!(call!(olt_f32(-3.14000000000000012434e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(olt_f32(-3.14000000000000012434e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(olt_f32(-3.14000000000000012434e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(olt_f32(-3.14000000000000012434e+00, 3.14000000000000012434e+00)), true); - assert_eq!(call!(olt_f32(-1.00000000000000000000e+00, 0.00000000000000000000e+00)), true); - } - #[rewrite(main)] - #[test] - fn test_22() { - assert_eq!(call!(olt_f32(-1.00000000000000000000e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(olt_f32(-1.00000000000000000000e+00, 3.14000000000000012434e+00)), true); - assert_eq!(call!(olt_f32(0.00000000000000000000e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(olt_f32(0.00000000000000000000e+00, 3.14000000000000012434e+00)), true); - assert_eq!(call!(olt_f32(1.00000000000000000000e+00, 3.14000000000000012434e+00)), true); - assert_eq!(call!(olt_f64(-3.14000000000000012434e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(olt_f64(-1.00000000000000000000e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(olt_f64(-1.00000000000000000000e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(olt_f64(0.00000000000000000000e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(olt_f64(0.00000000000000000000e+00, -1.00000000000000000000e+00)), false); - } - #[rewrite(main)] - #[test] - fn test_23() { - assert_eq!(call!(olt_f64(0.00000000000000000000e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(olt_f64(1.00000000000000000000e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(olt_f64(1.00000000000000000000e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(olt_f64(1.00000000000000000000e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(olt_f64(1.00000000000000000000e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(olt_f64(3.14000000000000012434e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(olt_f64(3.14000000000000012434e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(olt_f64(3.14000000000000012434e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(olt_f64(3.14000000000000012434e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(olt_f64(3.14000000000000012434e+00, 3.14000000000000012434e+00)), false); - } - #[rewrite(main)] - #[test] - fn test_24() { - assert_eq!(call!(olt_f64(-3.14000000000000012434e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(olt_f64(-3.14000000000000012434e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(olt_f64(-3.14000000000000012434e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(olt_f64(-3.14000000000000012434e+00, 3.14000000000000012434e+00)), true); - assert_eq!(call!(olt_f64(-1.00000000000000000000e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(olt_f64(-1.00000000000000000000e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(olt_f64(-1.00000000000000000000e+00, 3.14000000000000012434e+00)), true); - assert_eq!(call!(olt_f64(0.00000000000000000000e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(olt_f64(0.00000000000000000000e+00, 3.14000000000000012434e+00)), true); - assert_eq!(call!(olt_f64(1.00000000000000000000e+00, 3.14000000000000012434e+00)), true); - } - #[rewrite(main)] - #[test] - fn test_25() { - assert_eq!(call!(one_f32(-3.14000000000000012434e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(one_f32(-1.00000000000000000000e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(one_f32(0.00000000000000000000e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(one_f32(1.00000000000000000000e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(one_f32(3.14000000000000012434e+00, 3.14000000000000012434e+00)), false); - assert_eq!(call!(one_f32(-3.14000000000000012434e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(one_f32(-3.14000000000000012434e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(one_f32(-3.14000000000000012434e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(one_f32(-3.14000000000000012434e+00, 3.14000000000000012434e+00)), true); - assert_eq!(call!(one_f32(-1.00000000000000000000e+00, -3.14000000000000012434e+00)), true); - } - #[rewrite(main)] - #[test] - fn test_26() { - assert_eq!(call!(one_f32(-1.00000000000000000000e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(one_f32(-1.00000000000000000000e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(one_f32(-1.00000000000000000000e+00, 3.14000000000000012434e+00)), true); - assert_eq!(call!(one_f32(0.00000000000000000000e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(one_f32(0.00000000000000000000e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(one_f32(0.00000000000000000000e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(one_f32(0.00000000000000000000e+00, 3.14000000000000012434e+00)), true); - assert_eq!(call!(one_f32(1.00000000000000000000e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(one_f32(1.00000000000000000000e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(one_f32(1.00000000000000000000e+00, 0.00000000000000000000e+00)), true); - } - #[rewrite(main)] - #[test] - fn test_27() { - assert_eq!(call!(one_f32(1.00000000000000000000e+00, 3.14000000000000012434e+00)), true); - assert_eq!(call!(one_f32(3.14000000000000012434e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(one_f32(3.14000000000000012434e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(one_f32(3.14000000000000012434e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(one_f32(3.14000000000000012434e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(one_f64(-3.14000000000000012434e+00, -3.14000000000000012434e+00)), false); - assert_eq!(call!(one_f64(-1.00000000000000000000e+00, -1.00000000000000000000e+00)), false); - assert_eq!(call!(one_f64(0.00000000000000000000e+00, 0.00000000000000000000e+00)), false); - assert_eq!(call!(one_f64(1.00000000000000000000e+00, 1.00000000000000000000e+00)), false); - assert_eq!(call!(one_f64(3.14000000000000012434e+00, 3.14000000000000012434e+00)), false); - } - #[rewrite(main)] - #[test] - fn test_28() { - assert_eq!(call!(one_f64(-3.14000000000000012434e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(one_f64(-3.14000000000000012434e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(one_f64(-3.14000000000000012434e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(one_f64(-3.14000000000000012434e+00, 3.14000000000000012434e+00)), true); - assert_eq!(call!(one_f64(-1.00000000000000000000e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(one_f64(-1.00000000000000000000e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(one_f64(-1.00000000000000000000e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(one_f64(-1.00000000000000000000e+00, 3.14000000000000012434e+00)), true); - assert_eq!(call!(one_f64(0.00000000000000000000e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(one_f64(0.00000000000000000000e+00, -1.00000000000000000000e+00)), true); - } - #[rewrite(main)] - #[test] - fn test_29() { - assert_eq!(call!(one_f64(0.00000000000000000000e+00, 1.00000000000000000000e+00)), true); - assert_eq!(call!(one_f64(0.00000000000000000000e+00, 3.14000000000000012434e+00)), true); - assert_eq!(call!(one_f64(1.00000000000000000000e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(one_f64(1.00000000000000000000e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(one_f64(1.00000000000000000000e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(one_f64(1.00000000000000000000e+00, 3.14000000000000012434e+00)), true); - assert_eq!(call!(one_f64(3.14000000000000012434e+00, -3.14000000000000012434e+00)), true); - assert_eq!(call!(one_f64(3.14000000000000012434e+00, -1.00000000000000000000e+00)), true); - assert_eq!(call!(one_f64(3.14000000000000012434e+00, 0.00000000000000000000e+00)), true); - assert_eq!(call!(one_f64(3.14000000000000012434e+00, 1.00000000000000000000e+00)), true); - } + #[test] + fn test_0() { + assert_eq!( + oeq_f32(-3.14000000000000012434e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + oeq_f32(-3.14000000000000012434e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + oeq_f32(-3.14000000000000012434e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + oeq_f32(-3.14000000000000012434e+00, 3.14000000000000012434e+00), + false + ); + assert_eq!( + oeq_f32(-1.00000000000000000000e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + oeq_f32(-1.00000000000000000000e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + oeq_f32(-1.00000000000000000000e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + oeq_f32(-1.00000000000000000000e+00, 3.14000000000000012434e+00), + false + ); + assert_eq!( + oeq_f32(0.00000000000000000000e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + oeq_f32(0.00000000000000000000e+00, -1.00000000000000000000e+00), + false + ); + } + #[test] + fn test_1() { + assert_eq!( + oeq_f32(0.00000000000000000000e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + oeq_f32(0.00000000000000000000e+00, 3.14000000000000012434e+00), + false + ); + assert_eq!( + oeq_f32(1.00000000000000000000e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + oeq_f32(1.00000000000000000000e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + oeq_f32(1.00000000000000000000e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + oeq_f32(1.00000000000000000000e+00, 3.14000000000000012434e+00), + false + ); + assert_eq!( + oeq_f32(3.14000000000000012434e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + oeq_f32(3.14000000000000012434e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + oeq_f32(3.14000000000000012434e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + oeq_f32(3.14000000000000012434e+00, 1.00000000000000000000e+00), + false + ); + } + #[test] + fn test_2() { + assert_eq!( + oeq_f32(-3.14000000000000012434e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + oeq_f32(-1.00000000000000000000e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + oeq_f32(0.00000000000000000000e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + oeq_f32(1.00000000000000000000e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + oeq_f32(3.14000000000000012434e+00, 3.14000000000000012434e+00), + true + ); + assert_eq!( + oeq_f64(-3.14000000000000012434e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + oeq_f64(-3.14000000000000012434e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + oeq_f64(-3.14000000000000012434e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + oeq_f64(-3.14000000000000012434e+00, 3.14000000000000012434e+00), + false + ); + assert_eq!( + oeq_f64(-1.00000000000000000000e+00, -3.14000000000000012434e+00), + false + ); + } + #[test] + fn test_3() { + assert_eq!( + oeq_f64(-1.00000000000000000000e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + oeq_f64(-1.00000000000000000000e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + oeq_f64(-1.00000000000000000000e+00, 3.14000000000000012434e+00), + false + ); + assert_eq!( + oeq_f64(0.00000000000000000000e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + oeq_f64(0.00000000000000000000e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + oeq_f64(0.00000000000000000000e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + oeq_f64(0.00000000000000000000e+00, 3.14000000000000012434e+00), + false + ); + assert_eq!( + oeq_f64(1.00000000000000000000e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + oeq_f64(1.00000000000000000000e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + oeq_f64(1.00000000000000000000e+00, 0.00000000000000000000e+00), + false + ); + } + #[test] + fn test_4() { + assert_eq!( + oeq_f64(1.00000000000000000000e+00, 3.14000000000000012434e+00), + false + ); + assert_eq!( + oeq_f64(3.14000000000000012434e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + oeq_f64(3.14000000000000012434e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + oeq_f64(3.14000000000000012434e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + oeq_f64(3.14000000000000012434e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + oeq_f64(-3.14000000000000012434e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + oeq_f64(-1.00000000000000000000e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + oeq_f64(0.00000000000000000000e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + oeq_f64(1.00000000000000000000e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + oeq_f64(3.14000000000000012434e+00, 3.14000000000000012434e+00), + true + ); + } + #[test] + fn test_5() { + assert_eq!( + oge_f32(-3.14000000000000012434e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + oge_f32(-3.14000000000000012434e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + oge_f32(-3.14000000000000012434e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + oge_f32(-3.14000000000000012434e+00, 3.14000000000000012434e+00), + false + ); + assert_eq!( + oge_f32(-1.00000000000000000000e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + oge_f32(-1.00000000000000000000e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + oge_f32(-1.00000000000000000000e+00, 3.14000000000000012434e+00), + false + ); + assert_eq!( + oge_f32(0.00000000000000000000e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + oge_f32(0.00000000000000000000e+00, 3.14000000000000012434e+00), + false + ); + assert_eq!( + oge_f32(1.00000000000000000000e+00, 3.14000000000000012434e+00), + false + ); + } + #[test] + fn test_6() { + assert_eq!( + oge_f32(-3.14000000000000012434e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + oge_f32(-1.00000000000000000000e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + oge_f32(-1.00000000000000000000e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + oge_f32(0.00000000000000000000e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + oge_f32(0.00000000000000000000e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + oge_f32(0.00000000000000000000e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + oge_f32(1.00000000000000000000e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + oge_f32(1.00000000000000000000e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + oge_f32(1.00000000000000000000e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + oge_f32(1.00000000000000000000e+00, 1.00000000000000000000e+00), + true + ); + } + #[test] + fn test_7() { + assert_eq!( + oge_f32(3.14000000000000012434e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + oge_f32(3.14000000000000012434e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + oge_f32(3.14000000000000012434e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + oge_f32(3.14000000000000012434e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + oge_f32(3.14000000000000012434e+00, 3.14000000000000012434e+00), + true + ); + assert_eq!( + oge_f64(-3.14000000000000012434e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + oge_f64(-3.14000000000000012434e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + oge_f64(-3.14000000000000012434e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + oge_f64(-3.14000000000000012434e+00, 3.14000000000000012434e+00), + false + ); + assert_eq!( + oge_f64(-1.00000000000000000000e+00, 0.00000000000000000000e+00), + false + ); + } + #[test] + fn test_8() { + assert_eq!( + oge_f64(-1.00000000000000000000e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + oge_f64(-1.00000000000000000000e+00, 3.14000000000000012434e+00), + false + ); + assert_eq!( + oge_f64(0.00000000000000000000e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + oge_f64(0.00000000000000000000e+00, 3.14000000000000012434e+00), + false + ); + assert_eq!( + oge_f64(1.00000000000000000000e+00, 3.14000000000000012434e+00), + false + ); + assert_eq!( + oge_f64(-3.14000000000000012434e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + oge_f64(-1.00000000000000000000e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + oge_f64(-1.00000000000000000000e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + oge_f64(0.00000000000000000000e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + oge_f64(0.00000000000000000000e+00, -1.00000000000000000000e+00), + true + ); + } + #[test] + fn test_9() { + assert_eq!( + oge_f64(0.00000000000000000000e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + oge_f64(1.00000000000000000000e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + oge_f64(1.00000000000000000000e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + oge_f64(1.00000000000000000000e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + oge_f64(1.00000000000000000000e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + oge_f64(3.14000000000000012434e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + oge_f64(3.14000000000000012434e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + oge_f64(3.14000000000000012434e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + oge_f64(3.14000000000000012434e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + oge_f64(3.14000000000000012434e+00, 3.14000000000000012434e+00), + true + ); + } + #[test] + fn test_10() { + assert_eq!( + ogt_f32(-3.14000000000000012434e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + ogt_f32(-3.14000000000000012434e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + ogt_f32(-3.14000000000000012434e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + ogt_f32(-3.14000000000000012434e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + ogt_f32(-3.14000000000000012434e+00, 3.14000000000000012434e+00), + false + ); + assert_eq!( + ogt_f32(-1.00000000000000000000e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + ogt_f32(-1.00000000000000000000e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + ogt_f32(-1.00000000000000000000e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + ogt_f32(-1.00000000000000000000e+00, 3.14000000000000012434e+00), + false + ); + assert_eq!( + ogt_f32(0.00000000000000000000e+00, 0.00000000000000000000e+00), + false + ); + } + #[test] + fn test_11() { + assert_eq!( + ogt_f32(0.00000000000000000000e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + ogt_f32(0.00000000000000000000e+00, 3.14000000000000012434e+00), + false + ); + assert_eq!( + ogt_f32(1.00000000000000000000e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + ogt_f32(1.00000000000000000000e+00, 3.14000000000000012434e+00), + false + ); + assert_eq!( + ogt_f32(3.14000000000000012434e+00, 3.14000000000000012434e+00), + false + ); + assert_eq!( + ogt_f32(-1.00000000000000000000e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + ogt_f32(0.00000000000000000000e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + ogt_f32(0.00000000000000000000e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + ogt_f32(1.00000000000000000000e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + ogt_f32(1.00000000000000000000e+00, -1.00000000000000000000e+00), + true + ); + } + #[test] + fn test_12() { + assert_eq!( + ogt_f32(1.00000000000000000000e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + ogt_f32(3.14000000000000012434e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + ogt_f32(3.14000000000000012434e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + ogt_f32(3.14000000000000012434e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + ogt_f32(3.14000000000000012434e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + ogt_f64(-3.14000000000000012434e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + ogt_f64(-3.14000000000000012434e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + ogt_f64(-3.14000000000000012434e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + ogt_f64(-3.14000000000000012434e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + ogt_f64(-3.14000000000000012434e+00, 3.14000000000000012434e+00), + false + ); + } + #[test] + fn test_13() { + assert_eq!( + ogt_f64(-1.00000000000000000000e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + ogt_f64(-1.00000000000000000000e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + ogt_f64(-1.00000000000000000000e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + ogt_f64(-1.00000000000000000000e+00, 3.14000000000000012434e+00), + false + ); + assert_eq!( + ogt_f64(0.00000000000000000000e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + ogt_f64(0.00000000000000000000e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + ogt_f64(0.00000000000000000000e+00, 3.14000000000000012434e+00), + false + ); + assert_eq!( + ogt_f64(1.00000000000000000000e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + ogt_f64(1.00000000000000000000e+00, 3.14000000000000012434e+00), + false + ); + assert_eq!( + ogt_f64(3.14000000000000012434e+00, 3.14000000000000012434e+00), + false + ); + } + #[test] + fn test_14() { + assert_eq!( + ogt_f64(-1.00000000000000000000e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + ogt_f64(0.00000000000000000000e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + ogt_f64(0.00000000000000000000e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + ogt_f64(1.00000000000000000000e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + ogt_f64(1.00000000000000000000e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + ogt_f64(1.00000000000000000000e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + ogt_f64(3.14000000000000012434e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + ogt_f64(3.14000000000000012434e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + ogt_f64(3.14000000000000012434e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + ogt_f64(3.14000000000000012434e+00, 1.00000000000000000000e+00), + true + ); + } + #[test] + fn test_15() { + assert_eq!( + ole_f32(-1.00000000000000000000e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + ole_f32(0.00000000000000000000e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + ole_f32(0.00000000000000000000e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + ole_f32(1.00000000000000000000e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + ole_f32(1.00000000000000000000e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + ole_f32(1.00000000000000000000e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + ole_f32(3.14000000000000012434e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + ole_f32(3.14000000000000012434e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + ole_f32(3.14000000000000012434e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + ole_f32(3.14000000000000012434e+00, 1.00000000000000000000e+00), + false + ); + } + #[test] + fn test_16() { + assert_eq!( + ole_f32(-3.14000000000000012434e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + ole_f32(-3.14000000000000012434e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + ole_f32(-3.14000000000000012434e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + ole_f32(-3.14000000000000012434e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + ole_f32(-3.14000000000000012434e+00, 3.14000000000000012434e+00), + true + ); + assert_eq!( + ole_f32(-1.00000000000000000000e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + ole_f32(-1.00000000000000000000e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + ole_f32(-1.00000000000000000000e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + ole_f32(-1.00000000000000000000e+00, 3.14000000000000012434e+00), + true + ); + assert_eq!( + ole_f32(0.00000000000000000000e+00, 0.00000000000000000000e+00), + true + ); + } + #[test] + fn test_17() { + assert_eq!( + ole_f32(0.00000000000000000000e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + ole_f32(0.00000000000000000000e+00, 3.14000000000000012434e+00), + true + ); + assert_eq!( + ole_f32(1.00000000000000000000e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + ole_f32(1.00000000000000000000e+00, 3.14000000000000012434e+00), + true + ); + assert_eq!( + ole_f32(3.14000000000000012434e+00, 3.14000000000000012434e+00), + true + ); + assert_eq!( + ole_f64(-1.00000000000000000000e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + ole_f64(0.00000000000000000000e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + ole_f64(0.00000000000000000000e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + ole_f64(1.00000000000000000000e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + ole_f64(1.00000000000000000000e+00, -1.00000000000000000000e+00), + false + ); + } + #[test] + fn test_18() { + assert_eq!( + ole_f64(1.00000000000000000000e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + ole_f64(3.14000000000000012434e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + ole_f64(3.14000000000000012434e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + ole_f64(3.14000000000000012434e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + ole_f64(3.14000000000000012434e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + ole_f64(-3.14000000000000012434e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + ole_f64(-3.14000000000000012434e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + ole_f64(-3.14000000000000012434e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + ole_f64(-3.14000000000000012434e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + ole_f64(-3.14000000000000012434e+00, 3.14000000000000012434e+00), + true + ); + } + #[test] + fn test_19() { + assert_eq!( + ole_f64(-1.00000000000000000000e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + ole_f64(-1.00000000000000000000e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + ole_f64(-1.00000000000000000000e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + ole_f64(-1.00000000000000000000e+00, 3.14000000000000012434e+00), + true + ); + assert_eq!( + ole_f64(0.00000000000000000000e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + ole_f64(0.00000000000000000000e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + ole_f64(0.00000000000000000000e+00, 3.14000000000000012434e+00), + true + ); + assert_eq!( + ole_f64(1.00000000000000000000e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + ole_f64(1.00000000000000000000e+00, 3.14000000000000012434e+00), + true + ); + assert_eq!( + ole_f64(3.14000000000000012434e+00, 3.14000000000000012434e+00), + true + ); + } + #[test] + fn test_20() { + assert_eq!( + olt_f32(-3.14000000000000012434e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + olt_f32(-1.00000000000000000000e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + olt_f32(-1.00000000000000000000e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + olt_f32(0.00000000000000000000e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + olt_f32(0.00000000000000000000e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + olt_f32(0.00000000000000000000e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + olt_f32(1.00000000000000000000e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + olt_f32(1.00000000000000000000e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + olt_f32(1.00000000000000000000e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + olt_f32(1.00000000000000000000e+00, 1.00000000000000000000e+00), + false + ); + } + #[test] + fn test_21() { + assert_eq!( + olt_f32(3.14000000000000012434e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + olt_f32(3.14000000000000012434e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + olt_f32(3.14000000000000012434e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + olt_f32(3.14000000000000012434e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + olt_f32(3.14000000000000012434e+00, 3.14000000000000012434e+00), + false + ); + assert_eq!( + olt_f32(-3.14000000000000012434e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + olt_f32(-3.14000000000000012434e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + olt_f32(-3.14000000000000012434e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + olt_f32(-3.14000000000000012434e+00, 3.14000000000000012434e+00), + true + ); + assert_eq!( + olt_f32(-1.00000000000000000000e+00, 0.00000000000000000000e+00), + true + ); + } + #[test] + fn test_22() { + assert_eq!( + olt_f32(-1.00000000000000000000e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + olt_f32(-1.00000000000000000000e+00, 3.14000000000000012434e+00), + true + ); + assert_eq!( + olt_f32(0.00000000000000000000e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + olt_f32(0.00000000000000000000e+00, 3.14000000000000012434e+00), + true + ); + assert_eq!( + olt_f32(1.00000000000000000000e+00, 3.14000000000000012434e+00), + true + ); + assert_eq!( + olt_f64(-3.14000000000000012434e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + olt_f64(-1.00000000000000000000e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + olt_f64(-1.00000000000000000000e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + olt_f64(0.00000000000000000000e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + olt_f64(0.00000000000000000000e+00, -1.00000000000000000000e+00), + false + ); + } + #[test] + fn test_23() { + assert_eq!( + olt_f64(0.00000000000000000000e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + olt_f64(1.00000000000000000000e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + olt_f64(1.00000000000000000000e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + olt_f64(1.00000000000000000000e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + olt_f64(1.00000000000000000000e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + olt_f64(3.14000000000000012434e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + olt_f64(3.14000000000000012434e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + olt_f64(3.14000000000000012434e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + olt_f64(3.14000000000000012434e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + olt_f64(3.14000000000000012434e+00, 3.14000000000000012434e+00), + false + ); + } + #[test] + fn test_24() { + assert_eq!( + olt_f64(-3.14000000000000012434e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + olt_f64(-3.14000000000000012434e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + olt_f64(-3.14000000000000012434e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + olt_f64(-3.14000000000000012434e+00, 3.14000000000000012434e+00), + true + ); + assert_eq!( + olt_f64(-1.00000000000000000000e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + olt_f64(-1.00000000000000000000e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + olt_f64(-1.00000000000000000000e+00, 3.14000000000000012434e+00), + true + ); + assert_eq!( + olt_f64(0.00000000000000000000e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + olt_f64(0.00000000000000000000e+00, 3.14000000000000012434e+00), + true + ); + assert_eq!( + olt_f64(1.00000000000000000000e+00, 3.14000000000000012434e+00), + true + ); + } + #[test] + fn test_25() { + assert_eq!( + one_f32(-3.14000000000000012434e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + one_f32(-1.00000000000000000000e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + one_f32(0.00000000000000000000e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + one_f32(1.00000000000000000000e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + one_f32(3.14000000000000012434e+00, 3.14000000000000012434e+00), + false + ); + assert_eq!( + one_f32(-3.14000000000000012434e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + one_f32(-3.14000000000000012434e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + one_f32(-3.14000000000000012434e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + one_f32(-3.14000000000000012434e+00, 3.14000000000000012434e+00), + true + ); + assert_eq!( + one_f32(-1.00000000000000000000e+00, -3.14000000000000012434e+00), + true + ); + } + #[test] + fn test_26() { + assert_eq!( + one_f32(-1.00000000000000000000e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + one_f32(-1.00000000000000000000e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + one_f32(-1.00000000000000000000e+00, 3.14000000000000012434e+00), + true + ); + assert_eq!( + one_f32(0.00000000000000000000e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + one_f32(0.00000000000000000000e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + one_f32(0.00000000000000000000e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + one_f32(0.00000000000000000000e+00, 3.14000000000000012434e+00), + true + ); + assert_eq!( + one_f32(1.00000000000000000000e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + one_f32(1.00000000000000000000e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + one_f32(1.00000000000000000000e+00, 0.00000000000000000000e+00), + true + ); + } + #[test] + fn test_27() { + assert_eq!( + one_f32(1.00000000000000000000e+00, 3.14000000000000012434e+00), + true + ); + assert_eq!( + one_f32(3.14000000000000012434e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + one_f32(3.14000000000000012434e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + one_f32(3.14000000000000012434e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + one_f32(3.14000000000000012434e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + one_f64(-3.14000000000000012434e+00, -3.14000000000000012434e+00), + false + ); + assert_eq!( + one_f64(-1.00000000000000000000e+00, -1.00000000000000000000e+00), + false + ); + assert_eq!( + one_f64(0.00000000000000000000e+00, 0.00000000000000000000e+00), + false + ); + assert_eq!( + one_f64(1.00000000000000000000e+00, 1.00000000000000000000e+00), + false + ); + assert_eq!( + one_f64(3.14000000000000012434e+00, 3.14000000000000012434e+00), + false + ); + } + #[test] + fn test_28() { + assert_eq!( + one_f64(-3.14000000000000012434e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + one_f64(-3.14000000000000012434e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + one_f64(-3.14000000000000012434e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + one_f64(-3.14000000000000012434e+00, 3.14000000000000012434e+00), + true + ); + assert_eq!( + one_f64(-1.00000000000000000000e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + one_f64(-1.00000000000000000000e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + one_f64(-1.00000000000000000000e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + one_f64(-1.00000000000000000000e+00, 3.14000000000000012434e+00), + true + ); + assert_eq!( + one_f64(0.00000000000000000000e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + one_f64(0.00000000000000000000e+00, -1.00000000000000000000e+00), + true + ); + } + #[test] + fn test_29() { + assert_eq!( + one_f64(0.00000000000000000000e+00, 1.00000000000000000000e+00), + true + ); + assert_eq!( + one_f64(0.00000000000000000000e+00, 3.14000000000000012434e+00), + true + ); + assert_eq!( + one_f64(1.00000000000000000000e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + one_f64(1.00000000000000000000e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + one_f64(1.00000000000000000000e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + one_f64(1.00000000000000000000e+00, 3.14000000000000012434e+00), + true + ); + assert_eq!( + one_f64(3.14000000000000012434e+00, -3.14000000000000012434e+00), + true + ); + assert_eq!( + one_f64(3.14000000000000012434e+00, -1.00000000000000000000e+00), + true + ); + assert_eq!( + one_f64(3.14000000000000012434e+00, 0.00000000000000000000e+00), + true + ); + assert_eq!( + one_f64(3.14000000000000012434e+00, 1.00000000000000000000e+00), + true + ); + } } diff --git a/arc-mlir/src/tests/arc-to-rust/arc-cmpi.mlir b/arc-mlir/src/tests/arc-to-rust/arc-cmpi.mlir index 7f1c640c7..27b672c86 100644 --- a/arc-mlir/src/tests/arc-to-rust/arc-cmpi.mlir +++ b/arc-mlir/src/tests/arc-to-rust/arc-cmpi.mlir @@ -2,244 +2,243 @@ // RUN: arc-mlir-rust-test %t-roundtrip-scf %s -rustinclude %s.rust-tests -canonicalize -remove-scf -canonicalize -to-scf -canonicalize module @arctorustcmpi { -func.func @eq_ui8(%a : ui8, %b : ui8) -> i1 { - %r = arc.cmpi "eq", %a, %b : ui8 - return %r : i1 -} - -func.func @ne_ui8(%a : ui8, %b : ui8) -> i1 { - %r = arc.cmpi "ne", %a, %b : ui8 - return %r : i1 -} - -func.func @lt_ui8(%a : ui8, %b : ui8) -> i1 { - %r = arc.cmpi "lt", %a, %b : ui8 - return %r : i1 -} - -func.func @le_ui8(%a : ui8, %b : ui8) -> i1 { - %r = arc.cmpi "le", %a, %b : ui8 - return %r : i1 -} - -func.func @gt_ui8(%a : ui8, %b : ui8) -> i1 { - %r = arc.cmpi "gt", %a, %b : ui8 - return %r : i1 -} - -func.func @ge_ui8(%a : ui8, %b : ui8) -> i1 { - %r = arc.cmpi "ge", %a, %b : ui8 - return %r : i1 -} - -func.func @eq_ui16(%a : ui16, %b : ui16) -> i1 { - %r = arc.cmpi "eq", %a, %b : ui16 - return %r : i1 -} - -func.func @ne_ui16(%a : ui16, %b : ui16) -> i1 { - %r = arc.cmpi "ne", %a, %b : ui16 - return %r : i1 -} - -func.func @lt_ui16(%a : ui16, %b : ui16) -> i1 { - %r = arc.cmpi "lt", %a, %b : ui16 - return %r : i1 -} - -func.func @le_ui16(%a : ui16, %b : ui16) -> i1 { - %r = arc.cmpi "le", %a, %b : ui16 - return %r : i1 -} - -func.func @gt_ui16(%a : ui16, %b : ui16) -> i1 { - %r = arc.cmpi "gt", %a, %b : ui16 - return %r : i1 -} - -func.func @ge_ui16(%a : ui16, %b : ui16) -> i1 { - %r = arc.cmpi "ge", %a, %b : ui16 - return %r : i1 -} - -func.func @eq_ui32(%a : ui32, %b : ui32) -> i1 { - %r = arc.cmpi "eq", %a, %b : ui32 - return %r : i1 -} - -func.func @ne_ui32(%a : ui32, %b : ui32) -> i1 { - %r = arc.cmpi "ne", %a, %b : ui32 - return %r : i1 -} - -func.func @lt_ui32(%a : ui32, %b : ui32) -> i1 { - %r = arc.cmpi "lt", %a, %b : ui32 - return %r : i1 -} - -func.func @le_ui32(%a : ui32, %b : ui32) -> i1 { - %r = arc.cmpi "le", %a, %b : ui32 - return %r : i1 -} - -func.func @gt_ui32(%a : ui32, %b : ui32) -> i1 { - %r = arc.cmpi "gt", %a, %b : ui32 - return %r : i1 -} - -func.func @ge_ui32(%a : ui32, %b : ui32) -> i1 { - %r = arc.cmpi "ge", %a, %b : ui32 - return %r : i1 -} - -func.func @eq_ui64(%a : ui64, %b : ui64) -> i1 { - %r = arc.cmpi "eq", %a, %b : ui64 - return %r : i1 -} - -func.func @ne_ui64(%a : ui64, %b : ui64) -> i1 { - %r = arc.cmpi "ne", %a, %b : ui64 - return %r : i1 -} - -func.func @lt_ui64(%a : ui64, %b : ui64) -> i1 { - %r = arc.cmpi "lt", %a, %b : ui64 - return %r : i1 -} - -func.func @le_ui64(%a : ui64, %b : ui64) -> i1 { - %r = arc.cmpi "le", %a, %b : ui64 - return %r : i1 -} - -func.func @gt_ui64(%a : ui64, %b : ui64) -> i1 { - %r = arc.cmpi "gt", %a, %b : ui64 - return %r : i1 -} - -func.func @ge_ui64(%a : ui64, %b : ui64) -> i1 { - %r = arc.cmpi "ge", %a, %b : ui64 - return %r : i1 -} - -func.func @eq_si8(%a : si8, %b : si8) -> i1 { - %r = arc.cmpi "eq", %a, %b : si8 - return %r : i1 -} - -func.func @ne_si8(%a : si8, %b : si8) -> i1 { - %r = arc.cmpi "ne", %a, %b : si8 - return %r : i1 -} - -func.func @lt_si8(%a : si8, %b : si8) -> i1 { - %r = arc.cmpi "lt", %a, %b : si8 - return %r : i1 -} - -func.func @le_si8(%a : si8, %b : si8) -> i1 { - %r = arc.cmpi "le", %a, %b : si8 - return %r : i1 -} - -func.func @gt_si8(%a : si8, %b : si8) -> i1 { - %r = arc.cmpi "gt", %a, %b : si8 - return %r : i1 -} - -func.func @ge_si8(%a : si8, %b : si8) -> i1 { - %r = arc.cmpi "ge", %a, %b : si8 - return %r : i1 -} - -func.func @eq_si16(%a : si16, %b : si16) -> i1 { - %r = arc.cmpi "eq", %a, %b : si16 - return %r : i1 -} - -func.func @ne_si16(%a : si16, %b : si16) -> i1 { - %r = arc.cmpi "ne", %a, %b : si16 - return %r : i1 -} - -func.func @lt_si16(%a : si16, %b : si16) -> i1 { - %r = arc.cmpi "lt", %a, %b : si16 - return %r : i1 -} - -func.func @le_si16(%a : si16, %b : si16) -> i1 { - %r = arc.cmpi "le", %a, %b : si16 - return %r : i1 -} - -func.func @gt_si16(%a : si16, %b : si16) -> i1 { - %r = arc.cmpi "gt", %a, %b : si16 - return %r : i1 -} - -func.func @ge_si16(%a : si16, %b : si16) -> i1 { - %r = arc.cmpi "ge", %a, %b : si16 - return %r : i1 -} - -func.func @eq_si32(%a : si32, %b : si32) -> i1 { - %r = arc.cmpi "eq", %a, %b : si32 - return %r : i1 -} - -func.func @ne_si32(%a : si32, %b : si32) -> i1 { - %r = arc.cmpi "ne", %a, %b : si32 - return %r : i1 -} - -func.func @lt_si32(%a : si32, %b : si32) -> i1 { - %r = arc.cmpi "lt", %a, %b : si32 - return %r : i1 -} - -func.func @le_si32(%a : si32, %b : si32) -> i1 { - %r = arc.cmpi "le", %a, %b : si32 - return %r : i1 -} - -func.func @gt_si32(%a : si32, %b : si32) -> i1 { - %r = arc.cmpi "gt", %a, %b : si32 - return %r : i1 -} - -func.func @ge_si32(%a : si32, %b : si32) -> i1 { - %r = arc.cmpi "ge", %a, %b : si32 - return %r : i1 -} - -func.func @eq_si64(%a : si64, %b : si64) -> i1 { - %r = arc.cmpi "eq", %a, %b : si64 - return %r : i1 -} - -func.func @ne_si64(%a : si64, %b : si64) -> i1 { - %r = arc.cmpi "ne", %a, %b : si64 - return %r : i1 -} - -func.func @lt_si64(%a : si64, %b : si64) -> i1 { - %r = arc.cmpi "lt", %a, %b : si64 - return %r : i1 -} - -func.func @le_si64(%a : si64, %b : si64) -> i1 { - %r = arc.cmpi "le", %a, %b : si64 - return %r : i1 -} - -func.func @gt_si64(%a : si64, %b : si64) -> i1 { - %r = arc.cmpi "gt", %a, %b : si64 - return %r : i1 -} - -func.func @ge_si64(%a : si64, %b : si64) -> i1 { - %r = arc.cmpi "ge", %a, %b : si64 - return %r : i1 -} - + func.func @eq_ui8(%a : ui8, %b : ui8) -> i1 { + %r = arc.cmpi "eq", %a, %b : ui8 + return %r : i1 + } + + func.func @ne_ui8(%a : ui8, %b : ui8) -> i1 { + %r = arc.cmpi "ne", %a, %b : ui8 + return %r : i1 + } + + func.func @lt_ui8(%a : ui8, %b : ui8) -> i1 { + %r = arc.cmpi "lt", %a, %b : ui8 + return %r : i1 + } + + func.func @le_ui8(%a : ui8, %b : ui8) -> i1 { + %r = arc.cmpi "le", %a, %b : ui8 + return %r : i1 + } + + func.func @gt_ui8(%a : ui8, %b : ui8) -> i1 { + %r = arc.cmpi "gt", %a, %b : ui8 + return %r : i1 + } + + func.func @ge_ui8(%a : ui8, %b : ui8) -> i1 { + %r = arc.cmpi "ge", %a, %b : ui8 + return %r : i1 + } + + func.func @eq_ui16(%a : ui16, %b : ui16) -> i1 { + %r = arc.cmpi "eq", %a, %b : ui16 + return %r : i1 + } + + func.func @ne_ui16(%a : ui16, %b : ui16) -> i1 { + %r = arc.cmpi "ne", %a, %b : ui16 + return %r : i1 + } + + func.func @lt_ui16(%a : ui16, %b : ui16) -> i1 { + %r = arc.cmpi "lt", %a, %b : ui16 + return %r : i1 + } + + func.func @le_ui16(%a : ui16, %b : ui16) -> i1 { + %r = arc.cmpi "le", %a, %b : ui16 + return %r : i1 + } + + func.func @gt_ui16(%a : ui16, %b : ui16) -> i1 { + %r = arc.cmpi "gt", %a, %b : ui16 + return %r : i1 + } + + func.func @ge_ui16(%a : ui16, %b : ui16) -> i1 { + %r = arc.cmpi "ge", %a, %b : ui16 + return %r : i1 + } + + func.func @eq_ui32(%a : ui32, %b : ui32) -> i1 { + %r = arc.cmpi "eq", %a, %b : ui32 + return %r : i1 + } + + func.func @ne_ui32(%a : ui32, %b : ui32) -> i1 { + %r = arc.cmpi "ne", %a, %b : ui32 + return %r : i1 + } + + func.func @lt_ui32(%a : ui32, %b : ui32) -> i1 { + %r = arc.cmpi "lt", %a, %b : ui32 + return %r : i1 + } + + func.func @le_ui32(%a : ui32, %b : ui32) -> i1 { + %r = arc.cmpi "le", %a, %b : ui32 + return %r : i1 + } + + func.func @gt_ui32(%a : ui32, %b : ui32) -> i1 { + %r = arc.cmpi "gt", %a, %b : ui32 + return %r : i1 + } + + func.func @ge_ui32(%a : ui32, %b : ui32) -> i1 { + %r = arc.cmpi "ge", %a, %b : ui32 + return %r : i1 + } + + func.func @eq_ui64(%a : ui64, %b : ui64) -> i1 { + %r = arc.cmpi "eq", %a, %b : ui64 + return %r : i1 + } + + func.func @ne_ui64(%a : ui64, %b : ui64) -> i1 { + %r = arc.cmpi "ne", %a, %b : ui64 + return %r : i1 + } + + func.func @lt_ui64(%a : ui64, %b : ui64) -> i1 { + %r = arc.cmpi "lt", %a, %b : ui64 + return %r : i1 + } + + func.func @le_ui64(%a : ui64, %b : ui64) -> i1 { + %r = arc.cmpi "le", %a, %b : ui64 + return %r : i1 + } + + func.func @gt_ui64(%a : ui64, %b : ui64) -> i1 { + %r = arc.cmpi "gt", %a, %b : ui64 + return %r : i1 + } + + func.func @ge_ui64(%a : ui64, %b : ui64) -> i1 { + %r = arc.cmpi "ge", %a, %b : ui64 + return %r : i1 + } + + func.func @eq_si8(%a : si8, %b : si8) -> i1 { + %r = arc.cmpi "eq", %a, %b : si8 + return %r : i1 + } + + func.func @ne_si8(%a : si8, %b : si8) -> i1 { + %r = arc.cmpi "ne", %a, %b : si8 + return %r : i1 + } + + func.func @lt_si8(%a : si8, %b : si8) -> i1 { + %r = arc.cmpi "lt", %a, %b : si8 + return %r : i1 + } + + func.func @le_si8(%a : si8, %b : si8) -> i1 { + %r = arc.cmpi "le", %a, %b : si8 + return %r : i1 + } + + func.func @gt_si8(%a : si8, %b : si8) -> i1 { + %r = arc.cmpi "gt", %a, %b : si8 + return %r : i1 + } + + func.func @ge_si8(%a : si8, %b : si8) -> i1 { + %r = arc.cmpi "ge", %a, %b : si8 + return %r : i1 + } + + func.func @eq_si16(%a : si16, %b : si16) -> i1 { + %r = arc.cmpi "eq", %a, %b : si16 + return %r : i1 + } + + func.func @ne_si16(%a : si16, %b : si16) -> i1 { + %r = arc.cmpi "ne", %a, %b : si16 + return %r : i1 + } + + func.func @lt_si16(%a : si16, %b : si16) -> i1 { + %r = arc.cmpi "lt", %a, %b : si16 + return %r : i1 + } + + func.func @le_si16(%a : si16, %b : si16) -> i1 { + %r = arc.cmpi "le", %a, %b : si16 + return %r : i1 + } + + func.func @gt_si16(%a : si16, %b : si16) -> i1 { + %r = arc.cmpi "gt", %a, %b : si16 + return %r : i1 + } + + func.func @ge_si16(%a : si16, %b : si16) -> i1 { + %r = arc.cmpi "ge", %a, %b : si16 + return %r : i1 + } + + func.func @eq_si32(%a : si32, %b : si32) -> i1 { + %r = arc.cmpi "eq", %a, %b : si32 + return %r : i1 + } + + func.func @ne_si32(%a : si32, %b : si32) -> i1 { + %r = arc.cmpi "ne", %a, %b : si32 + return %r : i1 + } + + func.func @lt_si32(%a : si32, %b : si32) -> i1 { + %r = arc.cmpi "lt", %a, %b : si32 + return %r : i1 + } + + func.func @le_si32(%a : si32, %b : si32) -> i1 { + %r = arc.cmpi "le", %a, %b : si32 + return %r : i1 + } + + func.func @gt_si32(%a : si32, %b : si32) -> i1 { + %r = arc.cmpi "gt", %a, %b : si32 + return %r : i1 + } + + func.func @ge_si32(%a : si32, %b : si32) -> i1 { + %r = arc.cmpi "ge", %a, %b : si32 + return %r : i1 + } + + func.func @eq_si64(%a : si64, %b : si64) -> i1 { + %r = arc.cmpi "eq", %a, %b : si64 + return %r : i1 + } + + func.func @ne_si64(%a : si64, %b : si64) -> i1 { + %r = arc.cmpi "ne", %a, %b : si64 + return %r : i1 + } + + func.func @lt_si64(%a : si64, %b : si64) -> i1 { + %r = arc.cmpi "lt", %a, %b : si64 + return %r : i1 + } + + func.func @le_si64(%a : si64, %b : si64) -> i1 { + %r = arc.cmpi "le", %a, %b : si64 + return %r : i1 + } + + func.func @gt_si64(%a : si64, %b : si64) -> i1 { + %r = arc.cmpi "gt", %a, %b : si64 + return %r : i1 + } + + func.func @ge_si64(%a : si64, %b : si64) -> i1 { + %r = arc.cmpi "ge", %a, %b : si64 + return %r : i1 + } } diff --git a/arc-mlir/src/tests/arc-to-rust/arc-cmpi.mlir.rust-tests b/arc-mlir/src/tests/arc-to-rust/arc-cmpi.mlir.rust-tests index e43e83358..6b073f8c6 100644 --- a/arc-mlir/src/tests/arc-to-rust/arc-cmpi.mlir.rust-tests +++ b/arc-mlir/src/tests/arc-to-rust/arc-cmpi.mlir.rust-tests @@ -1,7836 +1,7276 @@ #[cfg(test)] mod tests { - use crate::arctorustcmpi::*; - #[rewrite(main)] - #[test] - fn test_0() { - assert_eq!(call!(eq_si16(-32768, -32767)), false); - assert_eq!(call!(eq_si16(-32768, -32547)), false); - assert_eq!(call!(eq_si16(-32768, 0)), false); - assert_eq!(call!(eq_si16(-32768, 1)), false); - assert_eq!(call!(eq_si16(-32768, 2)), false); - assert_eq!(call!(eq_si16(-32768, 3)), false); - assert_eq!(call!(eq_si16(-32768, 4)), false); - assert_eq!(call!(eq_si16(-32768, 10486)), false); - assert_eq!(call!(eq_si16(-32768, 16514)), false); - assert_eq!(call!(eq_si16(-32768, 32766)), false); - } - #[rewrite(main)] - #[test] - fn test_1() { - assert_eq!(call!(eq_si16(-32768, 32767)), false); - assert_eq!(call!(eq_si16(-32767, -32768)), false); - assert_eq!(call!(eq_si16(-32767, -32547)), false); - assert_eq!(call!(eq_si16(-32767, 0)), false); - assert_eq!(call!(eq_si16(-32767, 1)), false); - assert_eq!(call!(eq_si16(-32767, 2)), false); - assert_eq!(call!(eq_si16(-32767, 3)), false); - assert_eq!(call!(eq_si16(-32767, 4)), false); - assert_eq!(call!(eq_si16(-32767, 10486)), false); - assert_eq!(call!(eq_si16(-32767, 16514)), false); - } - #[rewrite(main)] - #[test] - fn test_2() { - assert_eq!(call!(eq_si16(-32767, 32766)), false); - assert_eq!(call!(eq_si16(-32767, 32767)), false); - assert_eq!(call!(eq_si16(-32547, -32768)), false); - assert_eq!(call!(eq_si16(-32547, -32767)), false); - assert_eq!(call!(eq_si16(-32547, 0)), false); - assert_eq!(call!(eq_si16(-32547, 1)), false); - assert_eq!(call!(eq_si16(-32547, 2)), false); - assert_eq!(call!(eq_si16(-32547, 3)), false); - assert_eq!(call!(eq_si16(-32547, 4)), false); - assert_eq!(call!(eq_si16(-32547, 10486)), false); - } - #[rewrite(main)] - #[test] - fn test_3() { - assert_eq!(call!(eq_si16(-32547, 16514)), false); - assert_eq!(call!(eq_si16(-32547, 32766)), false); - assert_eq!(call!(eq_si16(-32547, 32767)), false); - assert_eq!(call!(eq_si16(0, -32768)), false); - assert_eq!(call!(eq_si16(0, -32767)), false); - assert_eq!(call!(eq_si16(0, -32547)), false); - assert_eq!(call!(eq_si16(0, 1)), false); - assert_eq!(call!(eq_si16(0, 2)), false); - assert_eq!(call!(eq_si16(0, 3)), false); - assert_eq!(call!(eq_si16(0, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_4() { - assert_eq!(call!(eq_si16(0, 10486)), false); - assert_eq!(call!(eq_si16(0, 16514)), false); - assert_eq!(call!(eq_si16(0, 32766)), false); - assert_eq!(call!(eq_si16(0, 32767)), false); - assert_eq!(call!(eq_si16(1, -32768)), false); - assert_eq!(call!(eq_si16(1, -32767)), false); - assert_eq!(call!(eq_si16(1, -32547)), false); - assert_eq!(call!(eq_si16(1, 0)), false); - assert_eq!(call!(eq_si16(1, 2)), false); - assert_eq!(call!(eq_si16(1, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_5() { - assert_eq!(call!(eq_si16(1, 4)), false); - assert_eq!(call!(eq_si16(1, 10486)), false); - assert_eq!(call!(eq_si16(1, 16514)), false); - assert_eq!(call!(eq_si16(1, 32766)), false); - assert_eq!(call!(eq_si16(1, 32767)), false); - assert_eq!(call!(eq_si16(2, -32768)), false); - assert_eq!(call!(eq_si16(2, -32767)), false); - assert_eq!(call!(eq_si16(2, -32547)), false); - assert_eq!(call!(eq_si16(2, 0)), false); - assert_eq!(call!(eq_si16(2, 1)), false); - } - #[rewrite(main)] - #[test] - fn test_6() { - assert_eq!(call!(eq_si16(2, 3)), false); - assert_eq!(call!(eq_si16(2, 4)), false); - assert_eq!(call!(eq_si16(2, 10486)), false); - assert_eq!(call!(eq_si16(2, 16514)), false); - assert_eq!(call!(eq_si16(2, 32766)), false); - assert_eq!(call!(eq_si16(2, 32767)), false); - assert_eq!(call!(eq_si16(3, -32768)), false); - assert_eq!(call!(eq_si16(3, -32767)), false); - assert_eq!(call!(eq_si16(3, -32547)), false); - assert_eq!(call!(eq_si16(3, 0)), false); - } - #[rewrite(main)] - #[test] - fn test_7() { - assert_eq!(call!(eq_si16(3, 1)), false); - assert_eq!(call!(eq_si16(3, 2)), false); - assert_eq!(call!(eq_si16(3, 4)), false); - assert_eq!(call!(eq_si16(3, 10486)), false); - assert_eq!(call!(eq_si16(3, 16514)), false); - assert_eq!(call!(eq_si16(3, 32766)), false); - assert_eq!(call!(eq_si16(3, 32767)), false); - assert_eq!(call!(eq_si16(4, -32768)), false); - assert_eq!(call!(eq_si16(4, -32767)), false); - assert_eq!(call!(eq_si16(4, -32547)), false); - } - #[rewrite(main)] - #[test] - fn test_8() { - assert_eq!(call!(eq_si16(4, 0)), false); - assert_eq!(call!(eq_si16(4, 1)), false); - assert_eq!(call!(eq_si16(4, 2)), false); - assert_eq!(call!(eq_si16(4, 3)), false); - assert_eq!(call!(eq_si16(4, 10486)), false); - assert_eq!(call!(eq_si16(4, 16514)), false); - assert_eq!(call!(eq_si16(4, 32766)), false); - assert_eq!(call!(eq_si16(4, 32767)), false); - assert_eq!(call!(eq_si16(10486, -32768)), false); - assert_eq!(call!(eq_si16(10486, -32767)), false); - } - #[rewrite(main)] - #[test] - fn test_9() { - assert_eq!(call!(eq_si16(10486, -32547)), false); - assert_eq!(call!(eq_si16(10486, 0)), false); - assert_eq!(call!(eq_si16(10486, 1)), false); - assert_eq!(call!(eq_si16(10486, 2)), false); - assert_eq!(call!(eq_si16(10486, 3)), false); - assert_eq!(call!(eq_si16(10486, 4)), false); - assert_eq!(call!(eq_si16(10486, 16514)), false); - assert_eq!(call!(eq_si16(10486, 32766)), false); - assert_eq!(call!(eq_si16(10486, 32767)), false); - assert_eq!(call!(eq_si16(16514, -32768)), false); - } - #[rewrite(main)] - #[test] - fn test_10() { - assert_eq!(call!(eq_si16(16514, -32767)), false); - assert_eq!(call!(eq_si16(16514, -32547)), false); - assert_eq!(call!(eq_si16(16514, 0)), false); - assert_eq!(call!(eq_si16(16514, 1)), false); - assert_eq!(call!(eq_si16(16514, 2)), false); - assert_eq!(call!(eq_si16(16514, 3)), false); - assert_eq!(call!(eq_si16(16514, 4)), false); - assert_eq!(call!(eq_si16(16514, 10486)), false); - assert_eq!(call!(eq_si16(16514, 32766)), false); - assert_eq!(call!(eq_si16(16514, 32767)), false); - } - #[rewrite(main)] - #[test] - fn test_11() { - assert_eq!(call!(eq_si16(32766, -32768)), false); - assert_eq!(call!(eq_si16(32766, -32767)), false); - assert_eq!(call!(eq_si16(32766, -32547)), false); - assert_eq!(call!(eq_si16(32766, 0)), false); - assert_eq!(call!(eq_si16(32766, 1)), false); - assert_eq!(call!(eq_si16(32766, 2)), false); - assert_eq!(call!(eq_si16(32766, 3)), false); - assert_eq!(call!(eq_si16(32766, 4)), false); - assert_eq!(call!(eq_si16(32766, 10486)), false); - assert_eq!(call!(eq_si16(32766, 16514)), false); - } - #[rewrite(main)] - #[test] - fn test_12() { - assert_eq!(call!(eq_si16(32766, 32767)), false); - assert_eq!(call!(eq_si16(32767, -32768)), false); - assert_eq!(call!(eq_si16(32767, -32767)), false); - assert_eq!(call!(eq_si16(32767, -32547)), false); - assert_eq!(call!(eq_si16(32767, 0)), false); - assert_eq!(call!(eq_si16(32767, 1)), false); - assert_eq!(call!(eq_si16(32767, 2)), false); - assert_eq!(call!(eq_si16(32767, 3)), false); - assert_eq!(call!(eq_si16(32767, 4)), false); - assert_eq!(call!(eq_si16(32767, 10486)), false); - } - #[rewrite(main)] - #[test] - fn test_13() { - assert_eq!(call!(eq_si16(32767, 16514)), false); - assert_eq!(call!(eq_si16(32767, 32766)), false); - assert_eq!(call!(eq_si16(-32768, -32768)), true); - assert_eq!(call!(eq_si16(-32767, -32767)), true); - assert_eq!(call!(eq_si16(-32547, -32547)), true); - assert_eq!(call!(eq_si16(0, 0)), true); - assert_eq!(call!(eq_si16(1, 1)), true); - assert_eq!(call!(eq_si16(2, 2)), true); - assert_eq!(call!(eq_si16(3, 3)), true); - assert_eq!(call!(eq_si16(4, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_14() { - assert_eq!(call!(eq_si16(10486, 10486)), true); - assert_eq!(call!(eq_si16(16514, 16514)), true); - assert_eq!(call!(eq_si16(32766, 32766)), true); - assert_eq!(call!(eq_si16(32767, 32767)), true); - assert_eq!(call!(eq_si32(-2147483648, -2147483647)), false); - assert_eq!(call!(eq_si32(-2147483648, -1713183800)), false); - assert_eq!(call!(eq_si32(-2147483648, -1252582164)), false); - assert_eq!(call!(eq_si32(-2147483648, -1035405763)), false); - assert_eq!(call!(eq_si32(-2147483648, 0)), false); - assert_eq!(call!(eq_si32(-2147483648, 1)), false); - } - #[rewrite(main)] - #[test] - fn test_15() { - assert_eq!(call!(eq_si32(-2147483648, 2)), false); - assert_eq!(call!(eq_si32(-2147483648, 3)), false); - assert_eq!(call!(eq_si32(-2147483648, 4)), false); - assert_eq!(call!(eq_si32(-2147483648, 2147483646)), false); - assert_eq!(call!(eq_si32(-2147483648, 2147483647)), false); - assert_eq!(call!(eq_si32(-2147483647, -2147483648)), false); - assert_eq!(call!(eq_si32(-2147483647, -1713183800)), false); - assert_eq!(call!(eq_si32(-2147483647, -1252582164)), false); - assert_eq!(call!(eq_si32(-2147483647, -1035405763)), false); - assert_eq!(call!(eq_si32(-2147483647, 0)), false); - } - #[rewrite(main)] - #[test] - fn test_16() { - assert_eq!(call!(eq_si32(-2147483647, 1)), false); - assert_eq!(call!(eq_si32(-2147483647, 2)), false); - assert_eq!(call!(eq_si32(-2147483647, 3)), false); - assert_eq!(call!(eq_si32(-2147483647, 4)), false); - assert_eq!(call!(eq_si32(-2147483647, 2147483646)), false); - assert_eq!(call!(eq_si32(-2147483647, 2147483647)), false); - assert_eq!(call!(eq_si32(-1713183800, -2147483648)), false); - assert_eq!(call!(eq_si32(-1713183800, -2147483647)), false); - assert_eq!(call!(eq_si32(-1713183800, -1252582164)), false); - assert_eq!(call!(eq_si32(-1713183800, -1035405763)), false); - } - #[rewrite(main)] - #[test] - fn test_17() { - assert_eq!(call!(eq_si32(-1713183800, 0)), false); - assert_eq!(call!(eq_si32(-1713183800, 1)), false); - assert_eq!(call!(eq_si32(-1713183800, 2)), false); - assert_eq!(call!(eq_si32(-1713183800, 3)), false); - assert_eq!(call!(eq_si32(-1713183800, 4)), false); - assert_eq!(call!(eq_si32(-1713183800, 2147483646)), false); - assert_eq!(call!(eq_si32(-1713183800, 2147483647)), false); - assert_eq!(call!(eq_si32(-1252582164, -2147483648)), false); - assert_eq!(call!(eq_si32(-1252582164, -2147483647)), false); - assert_eq!(call!(eq_si32(-1252582164, -1713183800)), false); - } - #[rewrite(main)] - #[test] - fn test_18() { - assert_eq!(call!(eq_si32(-1252582164, -1035405763)), false); - assert_eq!(call!(eq_si32(-1252582164, 0)), false); - assert_eq!(call!(eq_si32(-1252582164, 1)), false); - assert_eq!(call!(eq_si32(-1252582164, 2)), false); - assert_eq!(call!(eq_si32(-1252582164, 3)), false); - assert_eq!(call!(eq_si32(-1252582164, 4)), false); - assert_eq!(call!(eq_si32(-1252582164, 2147483646)), false); - assert_eq!(call!(eq_si32(-1252582164, 2147483647)), false); - assert_eq!(call!(eq_si32(-1035405763, -2147483648)), false); - assert_eq!(call!(eq_si32(-1035405763, -2147483647)), false); - } - #[rewrite(main)] - #[test] - fn test_19() { - assert_eq!(call!(eq_si32(-1035405763, -1713183800)), false); - assert_eq!(call!(eq_si32(-1035405763, -1252582164)), false); - assert_eq!(call!(eq_si32(-1035405763, 0)), false); - assert_eq!(call!(eq_si32(-1035405763, 1)), false); - assert_eq!(call!(eq_si32(-1035405763, 2)), false); - assert_eq!(call!(eq_si32(-1035405763, 3)), false); - assert_eq!(call!(eq_si32(-1035405763, 4)), false); - assert_eq!(call!(eq_si32(-1035405763, 2147483646)), false); - assert_eq!(call!(eq_si32(-1035405763, 2147483647)), false); - assert_eq!(call!(eq_si32(0, -2147483648)), false); - } - #[rewrite(main)] - #[test] - fn test_20() { - assert_eq!(call!(eq_si32(0, -2147483647)), false); - assert_eq!(call!(eq_si32(0, -1713183800)), false); - assert_eq!(call!(eq_si32(0, -1252582164)), false); - assert_eq!(call!(eq_si32(0, -1035405763)), false); - assert_eq!(call!(eq_si32(0, 1)), false); - assert_eq!(call!(eq_si32(0, 2)), false); - assert_eq!(call!(eq_si32(0, 3)), false); - assert_eq!(call!(eq_si32(0, 4)), false); - assert_eq!(call!(eq_si32(0, 2147483646)), false); - assert_eq!(call!(eq_si32(0, 2147483647)), false); - } - #[rewrite(main)] - #[test] - fn test_21() { - assert_eq!(call!(eq_si32(1, -2147483648)), false); - assert_eq!(call!(eq_si32(1, -2147483647)), false); - assert_eq!(call!(eq_si32(1, -1713183800)), false); - assert_eq!(call!(eq_si32(1, -1252582164)), false); - assert_eq!(call!(eq_si32(1, -1035405763)), false); - assert_eq!(call!(eq_si32(1, 0)), false); - assert_eq!(call!(eq_si32(1, 2)), false); - assert_eq!(call!(eq_si32(1, 3)), false); - assert_eq!(call!(eq_si32(1, 4)), false); - assert_eq!(call!(eq_si32(1, 2147483646)), false); - } - #[rewrite(main)] - #[test] - fn test_22() { - assert_eq!(call!(eq_si32(1, 2147483647)), false); - assert_eq!(call!(eq_si32(2, -2147483648)), false); - assert_eq!(call!(eq_si32(2, -2147483647)), false); - assert_eq!(call!(eq_si32(2, -1713183800)), false); - assert_eq!(call!(eq_si32(2, -1252582164)), false); - assert_eq!(call!(eq_si32(2, -1035405763)), false); - assert_eq!(call!(eq_si32(2, 0)), false); - assert_eq!(call!(eq_si32(2, 1)), false); - assert_eq!(call!(eq_si32(2, 3)), false); - assert_eq!(call!(eq_si32(2, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_23() { - assert_eq!(call!(eq_si32(2, 2147483646)), false); - assert_eq!(call!(eq_si32(2, 2147483647)), false); - assert_eq!(call!(eq_si32(3, -2147483648)), false); - assert_eq!(call!(eq_si32(3, -2147483647)), false); - assert_eq!(call!(eq_si32(3, -1713183800)), false); - assert_eq!(call!(eq_si32(3, -1252582164)), false); - assert_eq!(call!(eq_si32(3, -1035405763)), false); - assert_eq!(call!(eq_si32(3, 0)), false); - assert_eq!(call!(eq_si32(3, 1)), false); - assert_eq!(call!(eq_si32(3, 2)), false); - } - #[rewrite(main)] - #[test] - fn test_24() { - assert_eq!(call!(eq_si32(3, 4)), false); - assert_eq!(call!(eq_si32(3, 2147483646)), false); - assert_eq!(call!(eq_si32(3, 2147483647)), false); - assert_eq!(call!(eq_si32(4, -2147483648)), false); - assert_eq!(call!(eq_si32(4, -2147483647)), false); - assert_eq!(call!(eq_si32(4, -1713183800)), false); - assert_eq!(call!(eq_si32(4, -1252582164)), false); - assert_eq!(call!(eq_si32(4, -1035405763)), false); - assert_eq!(call!(eq_si32(4, 0)), false); - assert_eq!(call!(eq_si32(4, 1)), false); - } - #[rewrite(main)] - #[test] - fn test_25() { - assert_eq!(call!(eq_si32(4, 2)), false); - assert_eq!(call!(eq_si32(4, 3)), false); - assert_eq!(call!(eq_si32(4, 2147483646)), false); - assert_eq!(call!(eq_si32(4, 2147483647)), false); - assert_eq!(call!(eq_si32(2147483646, -2147483648)), false); - assert_eq!(call!(eq_si32(2147483646, -2147483647)), false); - assert_eq!(call!(eq_si32(2147483646, -1713183800)), false); - assert_eq!(call!(eq_si32(2147483646, -1252582164)), false); - assert_eq!(call!(eq_si32(2147483646, -1035405763)), false); - assert_eq!(call!(eq_si32(2147483646, 0)), false); - } - #[rewrite(main)] - #[test] - fn test_26() { - assert_eq!(call!(eq_si32(2147483646, 1)), false); - assert_eq!(call!(eq_si32(2147483646, 2)), false); - assert_eq!(call!(eq_si32(2147483646, 3)), false); - assert_eq!(call!(eq_si32(2147483646, 4)), false); - assert_eq!(call!(eq_si32(2147483646, 2147483647)), false); - assert_eq!(call!(eq_si32(2147483647, -2147483648)), false); - assert_eq!(call!(eq_si32(2147483647, -2147483647)), false); - assert_eq!(call!(eq_si32(2147483647, -1713183800)), false); - assert_eq!(call!(eq_si32(2147483647, -1252582164)), false); - assert_eq!(call!(eq_si32(2147483647, -1035405763)), false); - } - #[rewrite(main)] - #[test] - fn test_27() { - assert_eq!(call!(eq_si32(2147483647, 0)), false); - assert_eq!(call!(eq_si32(2147483647, 1)), false); - assert_eq!(call!(eq_si32(2147483647, 2)), false); - assert_eq!(call!(eq_si32(2147483647, 3)), false); - assert_eq!(call!(eq_si32(2147483647, 4)), false); - assert_eq!(call!(eq_si32(2147483647, 2147483646)), false); - assert_eq!(call!(eq_si32(-2147483648, -2147483648)), true); - assert_eq!(call!(eq_si32(-2147483647, -2147483647)), true); - assert_eq!(call!(eq_si32(-1713183800, -1713183800)), true); - assert_eq!(call!(eq_si32(-1252582164, -1252582164)), true); - } - #[rewrite(main)] - #[test] - fn test_28() { - assert_eq!(call!(eq_si32(-1035405763, -1035405763)), true); - assert_eq!(call!(eq_si32(0, 0)), true); - assert_eq!(call!(eq_si32(1, 1)), true); - assert_eq!(call!(eq_si32(2, 2)), true); - assert_eq!(call!(eq_si32(3, 3)), true); - assert_eq!(call!(eq_si32(4, 4)), true); - assert_eq!(call!(eq_si32(2147483646, 2147483646)), true); - assert_eq!(call!(eq_si32(2147483647, 2147483647)), true); - assert_eq!(call!(eq_si64(-9223372036854775808, -9223372036854775807)), false); - assert_eq!(call!(eq_si64(-9223372036854775808, -1741927215160008704)), false); - } - #[rewrite(main)] - #[test] - fn test_29() { - assert_eq!(call!(eq_si64(-9223372036854775808, -1328271339354574848)), false); - assert_eq!(call!(eq_si64(-9223372036854775808, 0)), false); - assert_eq!(call!(eq_si64(-9223372036854775808, 1)), false); - assert_eq!(call!(eq_si64(-9223372036854775808, 2)), false); - assert_eq!(call!(eq_si64(-9223372036854775808, 3)), false); - assert_eq!(call!(eq_si64(-9223372036854775808, 4)), false); - assert_eq!(call!(eq_si64(-9223372036854775808, 5577148965131116544)), false); - assert_eq!(call!(eq_si64(-9223372036854775808, 9223372036854775806)), false); - assert_eq!(call!(eq_si64(-9223372036854775808, 9223372036854775807)), false); - assert_eq!(call!(eq_si64(-9223372036854775807, -9223372036854775808)), false); - } - #[rewrite(main)] - #[test] - fn test_30() { - assert_eq!(call!(eq_si64(-9223372036854775807, -1741927215160008704)), false); - assert_eq!(call!(eq_si64(-9223372036854775807, -1328271339354574848)), false); - assert_eq!(call!(eq_si64(-9223372036854775807, 0)), false); - assert_eq!(call!(eq_si64(-9223372036854775807, 1)), false); - assert_eq!(call!(eq_si64(-9223372036854775807, 2)), false); - assert_eq!(call!(eq_si64(-9223372036854775807, 3)), false); - assert_eq!(call!(eq_si64(-9223372036854775807, 4)), false); - assert_eq!(call!(eq_si64(-9223372036854775807, 5577148965131116544)), false); - assert_eq!(call!(eq_si64(-9223372036854775807, 9223372036854775806)), false); - assert_eq!(call!(eq_si64(-9223372036854775807, 9223372036854775807)), false); - } - #[rewrite(main)] - #[test] - fn test_31() { - assert_eq!(call!(eq_si64(-1741927215160008704, -9223372036854775808)), false); - assert_eq!(call!(eq_si64(-1741927215160008704, -9223372036854775807)), false); - assert_eq!(call!(eq_si64(-1741927215160008704, -1328271339354574848)), false); - assert_eq!(call!(eq_si64(-1741927215160008704, 0)), false); - assert_eq!(call!(eq_si64(-1741927215160008704, 1)), false); - assert_eq!(call!(eq_si64(-1741927215160008704, 2)), false); - assert_eq!(call!(eq_si64(-1741927215160008704, 3)), false); - assert_eq!(call!(eq_si64(-1741927215160008704, 4)), false); - assert_eq!(call!(eq_si64(-1741927215160008704, 5577148965131116544)), false); - assert_eq!(call!(eq_si64(-1741927215160008704, 9223372036854775806)), false); - } - #[rewrite(main)] - #[test] - fn test_32() { - assert_eq!(call!(eq_si64(-1741927215160008704, 9223372036854775807)), false); - assert_eq!(call!(eq_si64(-1328271339354574848, -9223372036854775808)), false); - assert_eq!(call!(eq_si64(-1328271339354574848, -9223372036854775807)), false); - assert_eq!(call!(eq_si64(-1328271339354574848, -1741927215160008704)), false); - assert_eq!(call!(eq_si64(-1328271339354574848, 0)), false); - assert_eq!(call!(eq_si64(-1328271339354574848, 1)), false); - assert_eq!(call!(eq_si64(-1328271339354574848, 2)), false); - assert_eq!(call!(eq_si64(-1328271339354574848, 3)), false); - assert_eq!(call!(eq_si64(-1328271339354574848, 4)), false); - assert_eq!(call!(eq_si64(-1328271339354574848, 5577148965131116544)), false); - } - #[rewrite(main)] - #[test] - fn test_33() { - assert_eq!(call!(eq_si64(-1328271339354574848, 9223372036854775806)), false); - assert_eq!(call!(eq_si64(-1328271339354574848, 9223372036854775807)), false); - assert_eq!(call!(eq_si64(0, -9223372036854775808)), false); - assert_eq!(call!(eq_si64(0, -9223372036854775807)), false); - assert_eq!(call!(eq_si64(0, -1741927215160008704)), false); - assert_eq!(call!(eq_si64(0, -1328271339354574848)), false); - assert_eq!(call!(eq_si64(0, 1)), false); - assert_eq!(call!(eq_si64(0, 2)), false); - assert_eq!(call!(eq_si64(0, 3)), false); - assert_eq!(call!(eq_si64(0, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_34() { - assert_eq!(call!(eq_si64(0, 5577148965131116544)), false); - assert_eq!(call!(eq_si64(0, 9223372036854775806)), false); - assert_eq!(call!(eq_si64(0, 9223372036854775807)), false); - assert_eq!(call!(eq_si64(1, -9223372036854775808)), false); - assert_eq!(call!(eq_si64(1, -9223372036854775807)), false); - assert_eq!(call!(eq_si64(1, -1741927215160008704)), false); - assert_eq!(call!(eq_si64(1, -1328271339354574848)), false); - assert_eq!(call!(eq_si64(1, 0)), false); - assert_eq!(call!(eq_si64(1, 2)), false); - assert_eq!(call!(eq_si64(1, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_35() { - assert_eq!(call!(eq_si64(1, 4)), false); - assert_eq!(call!(eq_si64(1, 5577148965131116544)), false); - assert_eq!(call!(eq_si64(1, 9223372036854775806)), false); - assert_eq!(call!(eq_si64(1, 9223372036854775807)), false); - assert_eq!(call!(eq_si64(2, -9223372036854775808)), false); - assert_eq!(call!(eq_si64(2, -9223372036854775807)), false); - assert_eq!(call!(eq_si64(2, -1741927215160008704)), false); - assert_eq!(call!(eq_si64(2, -1328271339354574848)), false); - assert_eq!(call!(eq_si64(2, 0)), false); - assert_eq!(call!(eq_si64(2, 1)), false); - } - #[rewrite(main)] - #[test] - fn test_36() { - assert_eq!(call!(eq_si64(2, 3)), false); - assert_eq!(call!(eq_si64(2, 4)), false); - assert_eq!(call!(eq_si64(2, 5577148965131116544)), false); - assert_eq!(call!(eq_si64(2, 9223372036854775806)), false); - assert_eq!(call!(eq_si64(2, 9223372036854775807)), false); - assert_eq!(call!(eq_si64(3, -9223372036854775808)), false); - assert_eq!(call!(eq_si64(3, -9223372036854775807)), false); - assert_eq!(call!(eq_si64(3, -1741927215160008704)), false); - assert_eq!(call!(eq_si64(3, -1328271339354574848)), false); - assert_eq!(call!(eq_si64(3, 0)), false); - } - #[rewrite(main)] - #[test] - fn test_37() { - assert_eq!(call!(eq_si64(3, 1)), false); - assert_eq!(call!(eq_si64(3, 2)), false); - assert_eq!(call!(eq_si64(3, 4)), false); - assert_eq!(call!(eq_si64(3, 5577148965131116544)), false); - assert_eq!(call!(eq_si64(3, 9223372036854775806)), false); - assert_eq!(call!(eq_si64(3, 9223372036854775807)), false); - assert_eq!(call!(eq_si64(4, -9223372036854775808)), false); - assert_eq!(call!(eq_si64(4, -9223372036854775807)), false); - assert_eq!(call!(eq_si64(4, -1741927215160008704)), false); - assert_eq!(call!(eq_si64(4, -1328271339354574848)), false); - } - #[rewrite(main)] - #[test] - fn test_38() { - assert_eq!(call!(eq_si64(4, 0)), false); - assert_eq!(call!(eq_si64(4, 1)), false); - assert_eq!(call!(eq_si64(4, 2)), false); - assert_eq!(call!(eq_si64(4, 3)), false); - assert_eq!(call!(eq_si64(4, 5577148965131116544)), false); - assert_eq!(call!(eq_si64(4, 9223372036854775806)), false); - assert_eq!(call!(eq_si64(4, 9223372036854775807)), false); - assert_eq!(call!(eq_si64(5577148965131116544, -9223372036854775808)), false); - assert_eq!(call!(eq_si64(5577148965131116544, -9223372036854775807)), false); - assert_eq!(call!(eq_si64(5577148965131116544, -1741927215160008704)), false); - } - #[rewrite(main)] - #[test] - fn test_39() { - assert_eq!(call!(eq_si64(5577148965131116544, -1328271339354574848)), false); - assert_eq!(call!(eq_si64(5577148965131116544, 0)), false); - assert_eq!(call!(eq_si64(5577148965131116544, 1)), false); - assert_eq!(call!(eq_si64(5577148965131116544, 2)), false); - assert_eq!(call!(eq_si64(5577148965131116544, 3)), false); - assert_eq!(call!(eq_si64(5577148965131116544, 4)), false); - assert_eq!(call!(eq_si64(5577148965131116544, 9223372036854775806)), false); - assert_eq!(call!(eq_si64(5577148965131116544, 9223372036854775807)), false); - assert_eq!(call!(eq_si64(9223372036854775806, -9223372036854775808)), false); - assert_eq!(call!(eq_si64(9223372036854775806, -9223372036854775807)), false); - } - #[rewrite(main)] - #[test] - fn test_40() { - assert_eq!(call!(eq_si64(9223372036854775806, -1741927215160008704)), false); - assert_eq!(call!(eq_si64(9223372036854775806, -1328271339354574848)), false); - assert_eq!(call!(eq_si64(9223372036854775806, 0)), false); - assert_eq!(call!(eq_si64(9223372036854775806, 1)), false); - assert_eq!(call!(eq_si64(9223372036854775806, 2)), false); - assert_eq!(call!(eq_si64(9223372036854775806, 3)), false); - assert_eq!(call!(eq_si64(9223372036854775806, 4)), false); - assert_eq!(call!(eq_si64(9223372036854775806, 5577148965131116544)), false); - assert_eq!(call!(eq_si64(9223372036854775806, 9223372036854775807)), false); - assert_eq!(call!(eq_si64(9223372036854775807, -9223372036854775808)), false); - } - #[rewrite(main)] - #[test] - fn test_41() { - assert_eq!(call!(eq_si64(9223372036854775807, -9223372036854775807)), false); - assert_eq!(call!(eq_si64(9223372036854775807, -1741927215160008704)), false); - assert_eq!(call!(eq_si64(9223372036854775807, -1328271339354574848)), false); - assert_eq!(call!(eq_si64(9223372036854775807, 0)), false); - assert_eq!(call!(eq_si64(9223372036854775807, 1)), false); - assert_eq!(call!(eq_si64(9223372036854775807, 2)), false); - assert_eq!(call!(eq_si64(9223372036854775807, 3)), false); - assert_eq!(call!(eq_si64(9223372036854775807, 4)), false); - assert_eq!(call!(eq_si64(9223372036854775807, 5577148965131116544)), false); - assert_eq!(call!(eq_si64(9223372036854775807, 9223372036854775806)), false); - } - #[rewrite(main)] - #[test] - fn test_42() { - assert_eq!(call!(eq_si64(-9223372036854775808, -9223372036854775808)), true); - assert_eq!(call!(eq_si64(-9223372036854775807, -9223372036854775807)), true); - assert_eq!(call!(eq_si64(-1741927215160008704, -1741927215160008704)), true); - assert_eq!(call!(eq_si64(-1328271339354574848, -1328271339354574848)), true); - assert_eq!(call!(eq_si64(0, 0)), true); - assert_eq!(call!(eq_si64(1, 1)), true); - assert_eq!(call!(eq_si64(2, 2)), true); - assert_eq!(call!(eq_si64(3, 3)), true); - assert_eq!(call!(eq_si64(4, 4)), true); - assert_eq!(call!(eq_si64(5577148965131116544, 5577148965131116544)), true); - } - #[rewrite(main)] - #[test] - fn test_43() { - assert_eq!(call!(eq_si64(9223372036854775806, 9223372036854775806)), true); - assert_eq!(call!(eq_si64(9223372036854775807, 9223372036854775807)), true); - assert_eq!(call!(eq_si8(-128, -127)), false); - assert_eq!(call!(eq_si8(-128, 0)), false); - assert_eq!(call!(eq_si8(-128, 1)), false); - assert_eq!(call!(eq_si8(-128, 2)), false); - assert_eq!(call!(eq_si8(-128, 3)), false); - assert_eq!(call!(eq_si8(-128, 4)), false); - assert_eq!(call!(eq_si8(-128, 16)), false); - assert_eq!(call!(eq_si8(-128, 126)), false); - } - #[rewrite(main)] - #[test] - fn test_44() { - assert_eq!(call!(eq_si8(-128, 127)), false); - assert_eq!(call!(eq_si8(-127, -128)), false); - assert_eq!(call!(eq_si8(-127, 0)), false); - assert_eq!(call!(eq_si8(-127, 1)), false); - assert_eq!(call!(eq_si8(-127, 2)), false); - assert_eq!(call!(eq_si8(-127, 3)), false); - assert_eq!(call!(eq_si8(-127, 4)), false); - assert_eq!(call!(eq_si8(-127, 16)), false); - assert_eq!(call!(eq_si8(-127, 126)), false); - assert_eq!(call!(eq_si8(-127, 127)), false); - } - #[rewrite(main)] - #[test] - fn test_45() { - assert_eq!(call!(eq_si8(0, -128)), false); - assert_eq!(call!(eq_si8(0, -127)), false); - assert_eq!(call!(eq_si8(0, 1)), false); - assert_eq!(call!(eq_si8(0, 2)), false); - assert_eq!(call!(eq_si8(0, 3)), false); - assert_eq!(call!(eq_si8(0, 4)), false); - assert_eq!(call!(eq_si8(0, 16)), false); - assert_eq!(call!(eq_si8(0, 126)), false); - assert_eq!(call!(eq_si8(0, 127)), false); - assert_eq!(call!(eq_si8(1, -128)), false); - } - #[rewrite(main)] - #[test] - fn test_46() { - assert_eq!(call!(eq_si8(1, -127)), false); - assert_eq!(call!(eq_si8(1, 0)), false); - assert_eq!(call!(eq_si8(1, 2)), false); - assert_eq!(call!(eq_si8(1, 3)), false); - assert_eq!(call!(eq_si8(1, 4)), false); - assert_eq!(call!(eq_si8(1, 16)), false); - assert_eq!(call!(eq_si8(1, 126)), false); - assert_eq!(call!(eq_si8(1, 127)), false); - assert_eq!(call!(eq_si8(2, -128)), false); - assert_eq!(call!(eq_si8(2, -127)), false); - } - #[rewrite(main)] - #[test] - fn test_47() { - assert_eq!(call!(eq_si8(2, 0)), false); - assert_eq!(call!(eq_si8(2, 1)), false); - assert_eq!(call!(eq_si8(2, 3)), false); - assert_eq!(call!(eq_si8(2, 4)), false); - assert_eq!(call!(eq_si8(2, 16)), false); - assert_eq!(call!(eq_si8(2, 126)), false); - assert_eq!(call!(eq_si8(2, 127)), false); - assert_eq!(call!(eq_si8(3, -128)), false); - assert_eq!(call!(eq_si8(3, -127)), false); - assert_eq!(call!(eq_si8(3, 0)), false); - } - #[rewrite(main)] - #[test] - fn test_48() { - assert_eq!(call!(eq_si8(3, 1)), false); - assert_eq!(call!(eq_si8(3, 2)), false); - assert_eq!(call!(eq_si8(3, 4)), false); - assert_eq!(call!(eq_si8(3, 16)), false); - assert_eq!(call!(eq_si8(3, 126)), false); - assert_eq!(call!(eq_si8(3, 127)), false); - assert_eq!(call!(eq_si8(4, -128)), false); - assert_eq!(call!(eq_si8(4, -127)), false); - assert_eq!(call!(eq_si8(4, 0)), false); - assert_eq!(call!(eq_si8(4, 1)), false); - } - #[rewrite(main)] - #[test] - fn test_49() { - assert_eq!(call!(eq_si8(4, 2)), false); - assert_eq!(call!(eq_si8(4, 3)), false); - assert_eq!(call!(eq_si8(4, 16)), false); - assert_eq!(call!(eq_si8(4, 126)), false); - assert_eq!(call!(eq_si8(4, 127)), false); - assert_eq!(call!(eq_si8(16, -128)), false); - assert_eq!(call!(eq_si8(16, -127)), false); - assert_eq!(call!(eq_si8(16, 0)), false); - assert_eq!(call!(eq_si8(16, 1)), false); - assert_eq!(call!(eq_si8(16, 2)), false); - } - #[rewrite(main)] - #[test] - fn test_50() { - assert_eq!(call!(eq_si8(16, 3)), false); - assert_eq!(call!(eq_si8(16, 4)), false); - assert_eq!(call!(eq_si8(16, 126)), false); - assert_eq!(call!(eq_si8(16, 127)), false); - assert_eq!(call!(eq_si8(126, -128)), false); - assert_eq!(call!(eq_si8(126, -127)), false); - assert_eq!(call!(eq_si8(126, 0)), false); - assert_eq!(call!(eq_si8(126, 1)), false); - assert_eq!(call!(eq_si8(126, 2)), false); - assert_eq!(call!(eq_si8(126, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_51() { - assert_eq!(call!(eq_si8(126, 4)), false); - assert_eq!(call!(eq_si8(126, 16)), false); - assert_eq!(call!(eq_si8(126, 127)), false); - assert_eq!(call!(eq_si8(127, -128)), false); - assert_eq!(call!(eq_si8(127, -127)), false); - assert_eq!(call!(eq_si8(127, 0)), false); - assert_eq!(call!(eq_si8(127, 1)), false); - assert_eq!(call!(eq_si8(127, 2)), false); - assert_eq!(call!(eq_si8(127, 3)), false); - assert_eq!(call!(eq_si8(127, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_52() { - assert_eq!(call!(eq_si8(127, 16)), false); - assert_eq!(call!(eq_si8(127, 126)), false); - assert_eq!(call!(eq_si8(-128, -128)), true); - assert_eq!(call!(eq_si8(-127, -127)), true); - assert_eq!(call!(eq_si8(0, 0)), true); - assert_eq!(call!(eq_si8(1, 1)), true); - assert_eq!(call!(eq_si8(2, 2)), true); - assert_eq!(call!(eq_si8(3, 3)), true); - assert_eq!(call!(eq_si8(4, 4)), true); - assert_eq!(call!(eq_si8(16, 16)), true); - } - #[rewrite(main)] - #[test] - fn test_53() { - assert_eq!(call!(eq_si8(126, 126)), true); - assert_eq!(call!(eq_si8(127, 127)), true); - assert_eq!(call!(eq_ui16(0, 1)), false); - assert_eq!(call!(eq_ui16(0, 2)), false); - assert_eq!(call!(eq_ui16(0, 3)), false); - assert_eq!(call!(eq_ui16(0, 4)), false); - assert_eq!(call!(eq_ui16(0, 1717)), false); - assert_eq!(call!(eq_ui16(0, 17988)), false); - assert_eq!(call!(eq_ui16(0, 65096)), false); - assert_eq!(call!(eq_ui16(0, 65534)), false); - } - #[rewrite(main)] - #[test] - fn test_54() { - assert_eq!(call!(eq_ui16(0, 65535)), false); - assert_eq!(call!(eq_ui16(1, 0)), false); - assert_eq!(call!(eq_ui16(1, 2)), false); - assert_eq!(call!(eq_ui16(1, 3)), false); - assert_eq!(call!(eq_ui16(1, 4)), false); - assert_eq!(call!(eq_ui16(1, 1717)), false); - assert_eq!(call!(eq_ui16(1, 17988)), false); - assert_eq!(call!(eq_ui16(1, 65096)), false); - assert_eq!(call!(eq_ui16(1, 65534)), false); - assert_eq!(call!(eq_ui16(1, 65535)), false); - } - #[rewrite(main)] - #[test] - fn test_55() { - assert_eq!(call!(eq_ui16(2, 0)), false); - assert_eq!(call!(eq_ui16(2, 1)), false); - assert_eq!(call!(eq_ui16(2, 3)), false); - assert_eq!(call!(eq_ui16(2, 4)), false); - assert_eq!(call!(eq_ui16(2, 1717)), false); - assert_eq!(call!(eq_ui16(2, 17988)), false); - assert_eq!(call!(eq_ui16(2, 65096)), false); - assert_eq!(call!(eq_ui16(2, 65534)), false); - assert_eq!(call!(eq_ui16(2, 65535)), false); - assert_eq!(call!(eq_ui16(3, 0)), false); - } - #[rewrite(main)] - #[test] - fn test_56() { - assert_eq!(call!(eq_ui16(3, 1)), false); - assert_eq!(call!(eq_ui16(3, 2)), false); - assert_eq!(call!(eq_ui16(3, 4)), false); - assert_eq!(call!(eq_ui16(3, 1717)), false); - assert_eq!(call!(eq_ui16(3, 17988)), false); - assert_eq!(call!(eq_ui16(3, 65096)), false); - assert_eq!(call!(eq_ui16(3, 65534)), false); - assert_eq!(call!(eq_ui16(3, 65535)), false); - assert_eq!(call!(eq_ui16(4, 0)), false); - assert_eq!(call!(eq_ui16(4, 1)), false); - } - #[rewrite(main)] - #[test] - fn test_57() { - assert_eq!(call!(eq_ui16(4, 2)), false); - assert_eq!(call!(eq_ui16(4, 3)), false); - assert_eq!(call!(eq_ui16(4, 1717)), false); - assert_eq!(call!(eq_ui16(4, 17988)), false); - assert_eq!(call!(eq_ui16(4, 65096)), false); - assert_eq!(call!(eq_ui16(4, 65534)), false); - assert_eq!(call!(eq_ui16(4, 65535)), false); - assert_eq!(call!(eq_ui16(1717, 0)), false); - assert_eq!(call!(eq_ui16(1717, 1)), false); - assert_eq!(call!(eq_ui16(1717, 2)), false); - } - #[rewrite(main)] - #[test] - fn test_58() { - assert_eq!(call!(eq_ui16(1717, 3)), false); - assert_eq!(call!(eq_ui16(1717, 4)), false); - assert_eq!(call!(eq_ui16(1717, 17988)), false); - assert_eq!(call!(eq_ui16(1717, 65096)), false); - assert_eq!(call!(eq_ui16(1717, 65534)), false); - assert_eq!(call!(eq_ui16(1717, 65535)), false); - assert_eq!(call!(eq_ui16(17988, 0)), false); - assert_eq!(call!(eq_ui16(17988, 1)), false); - assert_eq!(call!(eq_ui16(17988, 2)), false); - assert_eq!(call!(eq_ui16(17988, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_59() { - assert_eq!(call!(eq_ui16(17988, 4)), false); - assert_eq!(call!(eq_ui16(17988, 1717)), false); - assert_eq!(call!(eq_ui16(17988, 65096)), false); - assert_eq!(call!(eq_ui16(17988, 65534)), false); - assert_eq!(call!(eq_ui16(17988, 65535)), false); - assert_eq!(call!(eq_ui16(65096, 0)), false); - assert_eq!(call!(eq_ui16(65096, 1)), false); - assert_eq!(call!(eq_ui16(65096, 2)), false); - assert_eq!(call!(eq_ui16(65096, 3)), false); - assert_eq!(call!(eq_ui16(65096, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_60() { - assert_eq!(call!(eq_ui16(65096, 1717)), false); - assert_eq!(call!(eq_ui16(65096, 17988)), false); - assert_eq!(call!(eq_ui16(65096, 65534)), false); - assert_eq!(call!(eq_ui16(65096, 65535)), false); - assert_eq!(call!(eq_ui16(65534, 0)), false); - assert_eq!(call!(eq_ui16(65534, 1)), false); - assert_eq!(call!(eq_ui16(65534, 2)), false); - assert_eq!(call!(eq_ui16(65534, 3)), false); - assert_eq!(call!(eq_ui16(65534, 4)), false); - assert_eq!(call!(eq_ui16(65534, 1717)), false); - } - #[rewrite(main)] - #[test] - fn test_61() { - assert_eq!(call!(eq_ui16(65534, 17988)), false); - assert_eq!(call!(eq_ui16(65534, 65096)), false); - assert_eq!(call!(eq_ui16(65534, 65535)), false); - assert_eq!(call!(eq_ui16(65535, 0)), false); - assert_eq!(call!(eq_ui16(65535, 1)), false); - assert_eq!(call!(eq_ui16(65535, 2)), false); - assert_eq!(call!(eq_ui16(65535, 3)), false); - assert_eq!(call!(eq_ui16(65535, 4)), false); - assert_eq!(call!(eq_ui16(65535, 1717)), false); - assert_eq!(call!(eq_ui16(65535, 17988)), false); - } - #[rewrite(main)] - #[test] - fn test_62() { - assert_eq!(call!(eq_ui16(65535, 65096)), false); - assert_eq!(call!(eq_ui16(65535, 65534)), false); - assert_eq!(call!(eq_ui16(0, 0)), true); - assert_eq!(call!(eq_ui16(1, 1)), true); - assert_eq!(call!(eq_ui16(2, 2)), true); - assert_eq!(call!(eq_ui16(3, 3)), true); - assert_eq!(call!(eq_ui16(4, 4)), true); - assert_eq!(call!(eq_ui16(1717, 1717)), true); - assert_eq!(call!(eq_ui16(17988, 17988)), true); - assert_eq!(call!(eq_ui16(65096, 65096)), true); - } - #[rewrite(main)] - #[test] - fn test_63() { - assert_eq!(call!(eq_ui16(65534, 65534)), true); - assert_eq!(call!(eq_ui16(65535, 65535)), true); - assert_eq!(call!(eq_ui32(0, 1)), false); - assert_eq!(call!(eq_ui32(0, 2)), false); - assert_eq!(call!(eq_ui32(0, 3)), false); - assert_eq!(call!(eq_ui32(0, 4)), false); - assert_eq!(call!(eq_ui32(0, 2119154652)), false); - assert_eq!(call!(eq_ui32(0, 3002788344)), false); - assert_eq!(call!(eq_ui32(0, 3482297128)), false); - assert_eq!(call!(eq_ui32(0, 4294967294)), false); - } - #[rewrite(main)] - #[test] - fn test_64() { - assert_eq!(call!(eq_ui32(0, 4294967295)), false); - assert_eq!(call!(eq_ui32(1, 0)), false); - assert_eq!(call!(eq_ui32(1, 2)), false); - assert_eq!(call!(eq_ui32(1, 3)), false); - assert_eq!(call!(eq_ui32(1, 4)), false); - assert_eq!(call!(eq_ui32(1, 2119154652)), false); - assert_eq!(call!(eq_ui32(1, 3002788344)), false); - assert_eq!(call!(eq_ui32(1, 3482297128)), false); - assert_eq!(call!(eq_ui32(1, 4294967294)), false); - assert_eq!(call!(eq_ui32(1, 4294967295)), false); - } - #[rewrite(main)] - #[test] - fn test_65() { - assert_eq!(call!(eq_ui32(2, 0)), false); - assert_eq!(call!(eq_ui32(2, 1)), false); - assert_eq!(call!(eq_ui32(2, 3)), false); - assert_eq!(call!(eq_ui32(2, 4)), false); - assert_eq!(call!(eq_ui32(2, 2119154652)), false); - assert_eq!(call!(eq_ui32(2, 3002788344)), false); - assert_eq!(call!(eq_ui32(2, 3482297128)), false); - assert_eq!(call!(eq_ui32(2, 4294967294)), false); - assert_eq!(call!(eq_ui32(2, 4294967295)), false); - assert_eq!(call!(eq_ui32(3, 0)), false); - } - #[rewrite(main)] - #[test] - fn test_66() { - assert_eq!(call!(eq_ui32(3, 1)), false); - assert_eq!(call!(eq_ui32(3, 2)), false); - assert_eq!(call!(eq_ui32(3, 4)), false); - assert_eq!(call!(eq_ui32(3, 2119154652)), false); - assert_eq!(call!(eq_ui32(3, 3002788344)), false); - assert_eq!(call!(eq_ui32(3, 3482297128)), false); - assert_eq!(call!(eq_ui32(3, 4294967294)), false); - assert_eq!(call!(eq_ui32(3, 4294967295)), false); - assert_eq!(call!(eq_ui32(4, 0)), false); - assert_eq!(call!(eq_ui32(4, 1)), false); - } - #[rewrite(main)] - #[test] - fn test_67() { - assert_eq!(call!(eq_ui32(4, 2)), false); - assert_eq!(call!(eq_ui32(4, 3)), false); - assert_eq!(call!(eq_ui32(4, 2119154652)), false); - assert_eq!(call!(eq_ui32(4, 3002788344)), false); - assert_eq!(call!(eq_ui32(4, 3482297128)), false); - assert_eq!(call!(eq_ui32(4, 4294967294)), false); - assert_eq!(call!(eq_ui32(4, 4294967295)), false); - assert_eq!(call!(eq_ui32(2119154652, 0)), false); - assert_eq!(call!(eq_ui32(2119154652, 1)), false); - assert_eq!(call!(eq_ui32(2119154652, 2)), false); - } - #[rewrite(main)] - #[test] - fn test_68() { - assert_eq!(call!(eq_ui32(2119154652, 3)), false); - assert_eq!(call!(eq_ui32(2119154652, 4)), false); - assert_eq!(call!(eq_ui32(2119154652, 3002788344)), false); - assert_eq!(call!(eq_ui32(2119154652, 3482297128)), false); - assert_eq!(call!(eq_ui32(2119154652, 4294967294)), false); - assert_eq!(call!(eq_ui32(2119154652, 4294967295)), false); - assert_eq!(call!(eq_ui32(3002788344, 0)), false); - assert_eq!(call!(eq_ui32(3002788344, 1)), false); - assert_eq!(call!(eq_ui32(3002788344, 2)), false); - assert_eq!(call!(eq_ui32(3002788344, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_69() { - assert_eq!(call!(eq_ui32(3002788344, 4)), false); - assert_eq!(call!(eq_ui32(3002788344, 2119154652)), false); - assert_eq!(call!(eq_ui32(3002788344, 3482297128)), false); - assert_eq!(call!(eq_ui32(3002788344, 4294967294)), false); - assert_eq!(call!(eq_ui32(3002788344, 4294967295)), false); - assert_eq!(call!(eq_ui32(3482297128, 0)), false); - assert_eq!(call!(eq_ui32(3482297128, 1)), false); - assert_eq!(call!(eq_ui32(3482297128, 2)), false); - assert_eq!(call!(eq_ui32(3482297128, 3)), false); - assert_eq!(call!(eq_ui32(3482297128, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_70() { - assert_eq!(call!(eq_ui32(3482297128, 2119154652)), false); - assert_eq!(call!(eq_ui32(3482297128, 3002788344)), false); - assert_eq!(call!(eq_ui32(3482297128, 4294967294)), false); - assert_eq!(call!(eq_ui32(3482297128, 4294967295)), false); - assert_eq!(call!(eq_ui32(4294967294, 0)), false); - assert_eq!(call!(eq_ui32(4294967294, 1)), false); - assert_eq!(call!(eq_ui32(4294967294, 2)), false); - assert_eq!(call!(eq_ui32(4294967294, 3)), false); - assert_eq!(call!(eq_ui32(4294967294, 4)), false); - assert_eq!(call!(eq_ui32(4294967294, 2119154652)), false); - } - #[rewrite(main)] - #[test] - fn test_71() { - assert_eq!(call!(eq_ui32(4294967294, 3002788344)), false); - assert_eq!(call!(eq_ui32(4294967294, 3482297128)), false); - assert_eq!(call!(eq_ui32(4294967294, 4294967295)), false); - assert_eq!(call!(eq_ui32(4294967295, 0)), false); - assert_eq!(call!(eq_ui32(4294967295, 1)), false); - assert_eq!(call!(eq_ui32(4294967295, 2)), false); - assert_eq!(call!(eq_ui32(4294967295, 3)), false); - assert_eq!(call!(eq_ui32(4294967295, 4)), false); - assert_eq!(call!(eq_ui32(4294967295, 2119154652)), false); - assert_eq!(call!(eq_ui32(4294967295, 3002788344)), false); - } - #[rewrite(main)] - #[test] - fn test_72() { - assert_eq!(call!(eq_ui32(4294967295, 3482297128)), false); - assert_eq!(call!(eq_ui32(4294967295, 4294967294)), false); - assert_eq!(call!(eq_ui32(0, 0)), true); - assert_eq!(call!(eq_ui32(1, 1)), true); - assert_eq!(call!(eq_ui32(2, 2)), true); - assert_eq!(call!(eq_ui32(3, 3)), true); - assert_eq!(call!(eq_ui32(4, 4)), true); - assert_eq!(call!(eq_ui32(2119154652, 2119154652)), true); - assert_eq!(call!(eq_ui32(3002788344, 3002788344)), true); - assert_eq!(call!(eq_ui32(3482297128, 3482297128)), true); - } - #[rewrite(main)] - #[test] - fn test_73() { - assert_eq!(call!(eq_ui32(4294967294, 4294967294)), true); - assert_eq!(call!(eq_ui32(4294967295, 4294967295)), true); - assert_eq!(call!(eq_ui64(0, 1)), false); - assert_eq!(call!(eq_ui64(0, 2)), false); - assert_eq!(call!(eq_ui64(0, 3)), false); - assert_eq!(call!(eq_ui64(0, 4)), false); - assert_eq!(call!(eq_ui64(0, 191084152064409600)), false); - assert_eq!(call!(eq_ui64(0, 11015955194427482112)), false); - assert_eq!(call!(eq_ui64(0, 16990600415051759616)), false); - assert_eq!(call!(eq_ui64(0, 18446744073709551614)), false); - } - #[rewrite(main)] - #[test] - fn test_74() { - assert_eq!(call!(eq_ui64(0, 18446744073709551615)), false); - assert_eq!(call!(eq_ui64(1, 0)), false); - assert_eq!(call!(eq_ui64(1, 2)), false); - assert_eq!(call!(eq_ui64(1, 3)), false); - assert_eq!(call!(eq_ui64(1, 4)), false); - assert_eq!(call!(eq_ui64(1, 191084152064409600)), false); - assert_eq!(call!(eq_ui64(1, 11015955194427482112)), false); - assert_eq!(call!(eq_ui64(1, 16990600415051759616)), false); - assert_eq!(call!(eq_ui64(1, 18446744073709551614)), false); - assert_eq!(call!(eq_ui64(1, 18446744073709551615)), false); - } - #[rewrite(main)] - #[test] - fn test_75() { - assert_eq!(call!(eq_ui64(2, 0)), false); - assert_eq!(call!(eq_ui64(2, 1)), false); - assert_eq!(call!(eq_ui64(2, 3)), false); - assert_eq!(call!(eq_ui64(2, 4)), false); - assert_eq!(call!(eq_ui64(2, 191084152064409600)), false); - assert_eq!(call!(eq_ui64(2, 11015955194427482112)), false); - assert_eq!(call!(eq_ui64(2, 16990600415051759616)), false); - assert_eq!(call!(eq_ui64(2, 18446744073709551614)), false); - assert_eq!(call!(eq_ui64(2, 18446744073709551615)), false); - assert_eq!(call!(eq_ui64(3, 0)), false); - } - #[rewrite(main)] - #[test] - fn test_76() { - assert_eq!(call!(eq_ui64(3, 1)), false); - assert_eq!(call!(eq_ui64(3, 2)), false); - assert_eq!(call!(eq_ui64(3, 4)), false); - assert_eq!(call!(eq_ui64(3, 191084152064409600)), false); - assert_eq!(call!(eq_ui64(3, 11015955194427482112)), false); - assert_eq!(call!(eq_ui64(3, 16990600415051759616)), false); - assert_eq!(call!(eq_ui64(3, 18446744073709551614)), false); - assert_eq!(call!(eq_ui64(3, 18446744073709551615)), false); - assert_eq!(call!(eq_ui64(4, 0)), false); - assert_eq!(call!(eq_ui64(4, 1)), false); - } - #[rewrite(main)] - #[test] - fn test_77() { - assert_eq!(call!(eq_ui64(4, 2)), false); - assert_eq!(call!(eq_ui64(4, 3)), false); - assert_eq!(call!(eq_ui64(4, 191084152064409600)), false); - assert_eq!(call!(eq_ui64(4, 11015955194427482112)), false); - assert_eq!(call!(eq_ui64(4, 16990600415051759616)), false); - assert_eq!(call!(eq_ui64(4, 18446744073709551614)), false); - assert_eq!(call!(eq_ui64(4, 18446744073709551615)), false); - assert_eq!(call!(eq_ui64(191084152064409600, 0)), false); - assert_eq!(call!(eq_ui64(191084152064409600, 1)), false); - assert_eq!(call!(eq_ui64(191084152064409600, 2)), false); - } - #[rewrite(main)] - #[test] - fn test_78() { - assert_eq!(call!(eq_ui64(191084152064409600, 3)), false); - assert_eq!(call!(eq_ui64(191084152064409600, 4)), false); - assert_eq!(call!(eq_ui64(191084152064409600, 11015955194427482112)), false); - assert_eq!(call!(eq_ui64(191084152064409600, 16990600415051759616)), false); - assert_eq!(call!(eq_ui64(191084152064409600, 18446744073709551614)), false); - assert_eq!(call!(eq_ui64(191084152064409600, 18446744073709551615)), false); - assert_eq!(call!(eq_ui64(11015955194427482112, 0)), false); - assert_eq!(call!(eq_ui64(11015955194427482112, 1)), false); - assert_eq!(call!(eq_ui64(11015955194427482112, 2)), false); - assert_eq!(call!(eq_ui64(11015955194427482112, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_79() { - assert_eq!(call!(eq_ui64(11015955194427482112, 4)), false); - assert_eq!(call!(eq_ui64(11015955194427482112, 191084152064409600)), false); - assert_eq!(call!(eq_ui64(11015955194427482112, 16990600415051759616)), false); - assert_eq!(call!(eq_ui64(11015955194427482112, 18446744073709551614)), false); - assert_eq!(call!(eq_ui64(11015955194427482112, 18446744073709551615)), false); - assert_eq!(call!(eq_ui64(16990600415051759616, 0)), false); - assert_eq!(call!(eq_ui64(16990600415051759616, 1)), false); - assert_eq!(call!(eq_ui64(16990600415051759616, 2)), false); - assert_eq!(call!(eq_ui64(16990600415051759616, 3)), false); - assert_eq!(call!(eq_ui64(16990600415051759616, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_80() { - assert_eq!(call!(eq_ui64(16990600415051759616, 191084152064409600)), false); - assert_eq!(call!(eq_ui64(16990600415051759616, 11015955194427482112)), false); - assert_eq!(call!(eq_ui64(16990600415051759616, 18446744073709551614)), false); - assert_eq!(call!(eq_ui64(16990600415051759616, 18446744073709551615)), false); - assert_eq!(call!(eq_ui64(18446744073709551614, 0)), false); - assert_eq!(call!(eq_ui64(18446744073709551614, 1)), false); - assert_eq!(call!(eq_ui64(18446744073709551614, 2)), false); - assert_eq!(call!(eq_ui64(18446744073709551614, 3)), false); - assert_eq!(call!(eq_ui64(18446744073709551614, 4)), false); - assert_eq!(call!(eq_ui64(18446744073709551614, 191084152064409600)), false); - } - #[rewrite(main)] - #[test] - fn test_81() { - assert_eq!(call!(eq_ui64(18446744073709551614, 11015955194427482112)), false); - assert_eq!(call!(eq_ui64(18446744073709551614, 16990600415051759616)), false); - assert_eq!(call!(eq_ui64(18446744073709551614, 18446744073709551615)), false); - assert_eq!(call!(eq_ui64(18446744073709551615, 0)), false); - assert_eq!(call!(eq_ui64(18446744073709551615, 1)), false); - assert_eq!(call!(eq_ui64(18446744073709551615, 2)), false); - assert_eq!(call!(eq_ui64(18446744073709551615, 3)), false); - assert_eq!(call!(eq_ui64(18446744073709551615, 4)), false); - assert_eq!(call!(eq_ui64(18446744073709551615, 191084152064409600)), false); - assert_eq!(call!(eq_ui64(18446744073709551615, 11015955194427482112)), false); - } - #[rewrite(main)] - #[test] - fn test_82() { - assert_eq!(call!(eq_ui64(18446744073709551615, 16990600415051759616)), false); - assert_eq!(call!(eq_ui64(18446744073709551615, 18446744073709551614)), false); - assert_eq!(call!(eq_ui64(0, 0)), true); - assert_eq!(call!(eq_ui64(1, 1)), true); - assert_eq!(call!(eq_ui64(2, 2)), true); - assert_eq!(call!(eq_ui64(3, 3)), true); - assert_eq!(call!(eq_ui64(4, 4)), true); - assert_eq!(call!(eq_ui64(191084152064409600, 191084152064409600)), true); - assert_eq!(call!(eq_ui64(11015955194427482112, 11015955194427482112)), true); - assert_eq!(call!(eq_ui64(16990600415051759616, 16990600415051759616)), true); - } - #[rewrite(main)] - #[test] - fn test_83() { - assert_eq!(call!(eq_ui64(18446744073709551614, 18446744073709551614)), true); - assert_eq!(call!(eq_ui64(18446744073709551615, 18446744073709551615)), true); - assert_eq!(call!(eq_ui8(0, 1)), false); - assert_eq!(call!(eq_ui8(0, 2)), false); - assert_eq!(call!(eq_ui8(0, 3)), false); - assert_eq!(call!(eq_ui8(0, 4)), false); - assert_eq!(call!(eq_ui8(0, 72)), false); - assert_eq!(call!(eq_ui8(0, 100)), false); - assert_eq!(call!(eq_ui8(0, 162)), false); - assert_eq!(call!(eq_ui8(0, 254)), false); - } - #[rewrite(main)] - #[test] - fn test_84() { - assert_eq!(call!(eq_ui8(0, 255)), false); - assert_eq!(call!(eq_ui8(1, 0)), false); - assert_eq!(call!(eq_ui8(1, 2)), false); - assert_eq!(call!(eq_ui8(1, 3)), false); - assert_eq!(call!(eq_ui8(1, 4)), false); - assert_eq!(call!(eq_ui8(1, 72)), false); - assert_eq!(call!(eq_ui8(1, 100)), false); - assert_eq!(call!(eq_ui8(1, 162)), false); - assert_eq!(call!(eq_ui8(1, 254)), false); - assert_eq!(call!(eq_ui8(1, 255)), false); - } - #[rewrite(main)] - #[test] - fn test_85() { - assert_eq!(call!(eq_ui8(2, 0)), false); - assert_eq!(call!(eq_ui8(2, 1)), false); - assert_eq!(call!(eq_ui8(2, 3)), false); - assert_eq!(call!(eq_ui8(2, 4)), false); - assert_eq!(call!(eq_ui8(2, 72)), false); - assert_eq!(call!(eq_ui8(2, 100)), false); - assert_eq!(call!(eq_ui8(2, 162)), false); - assert_eq!(call!(eq_ui8(2, 254)), false); - assert_eq!(call!(eq_ui8(2, 255)), false); - assert_eq!(call!(eq_ui8(3, 0)), false); - } - #[rewrite(main)] - #[test] - fn test_86() { - assert_eq!(call!(eq_ui8(3, 1)), false); - assert_eq!(call!(eq_ui8(3, 2)), false); - assert_eq!(call!(eq_ui8(3, 4)), false); - assert_eq!(call!(eq_ui8(3, 72)), false); - assert_eq!(call!(eq_ui8(3, 100)), false); - assert_eq!(call!(eq_ui8(3, 162)), false); - assert_eq!(call!(eq_ui8(3, 254)), false); - assert_eq!(call!(eq_ui8(3, 255)), false); - assert_eq!(call!(eq_ui8(4, 0)), false); - assert_eq!(call!(eq_ui8(4, 1)), false); - } - #[rewrite(main)] - #[test] - fn test_87() { - assert_eq!(call!(eq_ui8(4, 2)), false); - assert_eq!(call!(eq_ui8(4, 3)), false); - assert_eq!(call!(eq_ui8(4, 72)), false); - assert_eq!(call!(eq_ui8(4, 100)), false); - assert_eq!(call!(eq_ui8(4, 162)), false); - assert_eq!(call!(eq_ui8(4, 254)), false); - assert_eq!(call!(eq_ui8(4, 255)), false); - assert_eq!(call!(eq_ui8(72, 0)), false); - assert_eq!(call!(eq_ui8(72, 1)), false); - assert_eq!(call!(eq_ui8(72, 2)), false); - } - #[rewrite(main)] - #[test] - fn test_88() { - assert_eq!(call!(eq_ui8(72, 3)), false); - assert_eq!(call!(eq_ui8(72, 4)), false); - assert_eq!(call!(eq_ui8(72, 100)), false); - assert_eq!(call!(eq_ui8(72, 162)), false); - assert_eq!(call!(eq_ui8(72, 254)), false); - assert_eq!(call!(eq_ui8(72, 255)), false); - assert_eq!(call!(eq_ui8(100, 0)), false); - assert_eq!(call!(eq_ui8(100, 1)), false); - assert_eq!(call!(eq_ui8(100, 2)), false); - assert_eq!(call!(eq_ui8(100, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_89() { - assert_eq!(call!(eq_ui8(100, 4)), false); - assert_eq!(call!(eq_ui8(100, 72)), false); - assert_eq!(call!(eq_ui8(100, 162)), false); - assert_eq!(call!(eq_ui8(100, 254)), false); - assert_eq!(call!(eq_ui8(100, 255)), false); - assert_eq!(call!(eq_ui8(162, 0)), false); - assert_eq!(call!(eq_ui8(162, 1)), false); - assert_eq!(call!(eq_ui8(162, 2)), false); - assert_eq!(call!(eq_ui8(162, 3)), false); - assert_eq!(call!(eq_ui8(162, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_90() { - assert_eq!(call!(eq_ui8(162, 72)), false); - assert_eq!(call!(eq_ui8(162, 100)), false); - assert_eq!(call!(eq_ui8(162, 254)), false); - assert_eq!(call!(eq_ui8(162, 255)), false); - assert_eq!(call!(eq_ui8(254, 0)), false); - assert_eq!(call!(eq_ui8(254, 1)), false); - assert_eq!(call!(eq_ui8(254, 2)), false); - assert_eq!(call!(eq_ui8(254, 3)), false); - assert_eq!(call!(eq_ui8(254, 4)), false); - assert_eq!(call!(eq_ui8(254, 72)), false); - } - #[rewrite(main)] - #[test] - fn test_91() { - assert_eq!(call!(eq_ui8(254, 100)), false); - assert_eq!(call!(eq_ui8(254, 162)), false); - assert_eq!(call!(eq_ui8(254, 255)), false); - assert_eq!(call!(eq_ui8(255, 0)), false); - assert_eq!(call!(eq_ui8(255, 1)), false); - assert_eq!(call!(eq_ui8(255, 2)), false); - assert_eq!(call!(eq_ui8(255, 3)), false); - assert_eq!(call!(eq_ui8(255, 4)), false); - assert_eq!(call!(eq_ui8(255, 72)), false); - assert_eq!(call!(eq_ui8(255, 100)), false); - } - #[rewrite(main)] - #[test] - fn test_92() { - assert_eq!(call!(eq_ui8(255, 162)), false); - assert_eq!(call!(eq_ui8(255, 254)), false); - assert_eq!(call!(eq_ui8(0, 0)), true); - assert_eq!(call!(eq_ui8(1, 1)), true); - assert_eq!(call!(eq_ui8(2, 2)), true); - assert_eq!(call!(eq_ui8(3, 3)), true); - assert_eq!(call!(eq_ui8(4, 4)), true); - assert_eq!(call!(eq_ui8(72, 72)), true); - assert_eq!(call!(eq_ui8(100, 100)), true); - assert_eq!(call!(eq_ui8(162, 162)), true); - } - #[rewrite(main)] - #[test] - fn test_93() { - assert_eq!(call!(eq_ui8(254, 254)), true); - assert_eq!(call!(eq_ui8(255, 255)), true); - assert_eq!(call!(ge_si16(-32768, -32767)), false); - assert_eq!(call!(ge_si16(-32768, -32547)), false); - assert_eq!(call!(ge_si16(-32768, 0)), false); - assert_eq!(call!(ge_si16(-32768, 1)), false); - assert_eq!(call!(ge_si16(-32768, 2)), false); - assert_eq!(call!(ge_si16(-32768, 3)), false); - assert_eq!(call!(ge_si16(-32768, 4)), false); - assert_eq!(call!(ge_si16(-32768, 10486)), false); - } - #[rewrite(main)] - #[test] - fn test_94() { - assert_eq!(call!(ge_si16(-32768, 16514)), false); - assert_eq!(call!(ge_si16(-32768, 32766)), false); - assert_eq!(call!(ge_si16(-32768, 32767)), false); - assert_eq!(call!(ge_si16(-32767, -32547)), false); - assert_eq!(call!(ge_si16(-32767, 0)), false); - assert_eq!(call!(ge_si16(-32767, 1)), false); - assert_eq!(call!(ge_si16(-32767, 2)), false); - assert_eq!(call!(ge_si16(-32767, 3)), false); - assert_eq!(call!(ge_si16(-32767, 4)), false); - assert_eq!(call!(ge_si16(-32767, 10486)), false); - } - #[rewrite(main)] - #[test] - fn test_95() { - assert_eq!(call!(ge_si16(-32767, 16514)), false); - assert_eq!(call!(ge_si16(-32767, 32766)), false); - assert_eq!(call!(ge_si16(-32767, 32767)), false); - assert_eq!(call!(ge_si16(-32547, 0)), false); - assert_eq!(call!(ge_si16(-32547, 1)), false); - assert_eq!(call!(ge_si16(-32547, 2)), false); - assert_eq!(call!(ge_si16(-32547, 3)), false); - assert_eq!(call!(ge_si16(-32547, 4)), false); - assert_eq!(call!(ge_si16(-32547, 10486)), false); - assert_eq!(call!(ge_si16(-32547, 16514)), false); - } - #[rewrite(main)] - #[test] - fn test_96() { - assert_eq!(call!(ge_si16(-32547, 32766)), false); - assert_eq!(call!(ge_si16(-32547, 32767)), false); - assert_eq!(call!(ge_si16(0, 1)), false); - assert_eq!(call!(ge_si16(0, 2)), false); - assert_eq!(call!(ge_si16(0, 3)), false); - assert_eq!(call!(ge_si16(0, 4)), false); - assert_eq!(call!(ge_si16(0, 10486)), false); - assert_eq!(call!(ge_si16(0, 16514)), false); - assert_eq!(call!(ge_si16(0, 32766)), false); - assert_eq!(call!(ge_si16(0, 32767)), false); - } - #[rewrite(main)] - #[test] - fn test_97() { - assert_eq!(call!(ge_si16(1, 2)), false); - assert_eq!(call!(ge_si16(1, 3)), false); - assert_eq!(call!(ge_si16(1, 4)), false); - assert_eq!(call!(ge_si16(1, 10486)), false); - assert_eq!(call!(ge_si16(1, 16514)), false); - assert_eq!(call!(ge_si16(1, 32766)), false); - assert_eq!(call!(ge_si16(1, 32767)), false); - assert_eq!(call!(ge_si16(2, 3)), false); - assert_eq!(call!(ge_si16(2, 4)), false); - assert_eq!(call!(ge_si16(2, 10486)), false); - } - #[rewrite(main)] - #[test] - fn test_98() { - assert_eq!(call!(ge_si16(2, 16514)), false); - assert_eq!(call!(ge_si16(2, 32766)), false); - assert_eq!(call!(ge_si16(2, 32767)), false); - assert_eq!(call!(ge_si16(3, 4)), false); - assert_eq!(call!(ge_si16(3, 10486)), false); - assert_eq!(call!(ge_si16(3, 16514)), false); - assert_eq!(call!(ge_si16(3, 32766)), false); - assert_eq!(call!(ge_si16(3, 32767)), false); - assert_eq!(call!(ge_si16(4, 10486)), false); - assert_eq!(call!(ge_si16(4, 16514)), false); - } - #[rewrite(main)] - #[test] - fn test_99() { - assert_eq!(call!(ge_si16(4, 32766)), false); - assert_eq!(call!(ge_si16(4, 32767)), false); - assert_eq!(call!(ge_si16(10486, 16514)), false); - assert_eq!(call!(ge_si16(10486, 32766)), false); - assert_eq!(call!(ge_si16(10486, 32767)), false); - assert_eq!(call!(ge_si16(16514, 32766)), false); - assert_eq!(call!(ge_si16(16514, 32767)), false); - assert_eq!(call!(ge_si16(32766, 32767)), false); - assert_eq!(call!(ge_si16(-32768, -32768)), true); - assert_eq!(call!(ge_si16(-32767, -32768)), true); - } - #[rewrite(main)] - #[test] - fn test_100() { - assert_eq!(call!(ge_si16(-32767, -32767)), true); - assert_eq!(call!(ge_si16(-32547, -32768)), true); - assert_eq!(call!(ge_si16(-32547, -32767)), true); - assert_eq!(call!(ge_si16(-32547, -32547)), true); - assert_eq!(call!(ge_si16(0, -32768)), true); - assert_eq!(call!(ge_si16(0, -32767)), true); - assert_eq!(call!(ge_si16(0, -32547)), true); - assert_eq!(call!(ge_si16(0, 0)), true); - assert_eq!(call!(ge_si16(1, -32768)), true); - assert_eq!(call!(ge_si16(1, -32767)), true); - } - #[rewrite(main)] - #[test] - fn test_101() { - assert_eq!(call!(ge_si16(1, -32547)), true); - assert_eq!(call!(ge_si16(1, 0)), true); - assert_eq!(call!(ge_si16(1, 1)), true); - assert_eq!(call!(ge_si16(2, -32768)), true); - assert_eq!(call!(ge_si16(2, -32767)), true); - assert_eq!(call!(ge_si16(2, -32547)), true); - assert_eq!(call!(ge_si16(2, 0)), true); - assert_eq!(call!(ge_si16(2, 1)), true); - assert_eq!(call!(ge_si16(2, 2)), true); - assert_eq!(call!(ge_si16(3, -32768)), true); - } - #[rewrite(main)] - #[test] - fn test_102() { - assert_eq!(call!(ge_si16(3, -32767)), true); - assert_eq!(call!(ge_si16(3, -32547)), true); - assert_eq!(call!(ge_si16(3, 0)), true); - assert_eq!(call!(ge_si16(3, 1)), true); - assert_eq!(call!(ge_si16(3, 2)), true); - assert_eq!(call!(ge_si16(3, 3)), true); - assert_eq!(call!(ge_si16(4, -32768)), true); - assert_eq!(call!(ge_si16(4, -32767)), true); - assert_eq!(call!(ge_si16(4, -32547)), true); - assert_eq!(call!(ge_si16(4, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_103() { - assert_eq!(call!(ge_si16(4, 1)), true); - assert_eq!(call!(ge_si16(4, 2)), true); - assert_eq!(call!(ge_si16(4, 3)), true); - assert_eq!(call!(ge_si16(4, 4)), true); - assert_eq!(call!(ge_si16(10486, -32768)), true); - assert_eq!(call!(ge_si16(10486, -32767)), true); - assert_eq!(call!(ge_si16(10486, -32547)), true); - assert_eq!(call!(ge_si16(10486, 0)), true); - assert_eq!(call!(ge_si16(10486, 1)), true); - assert_eq!(call!(ge_si16(10486, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_104() { - assert_eq!(call!(ge_si16(10486, 3)), true); - assert_eq!(call!(ge_si16(10486, 4)), true); - assert_eq!(call!(ge_si16(10486, 10486)), true); - assert_eq!(call!(ge_si16(16514, -32768)), true); - assert_eq!(call!(ge_si16(16514, -32767)), true); - assert_eq!(call!(ge_si16(16514, -32547)), true); - assert_eq!(call!(ge_si16(16514, 0)), true); - assert_eq!(call!(ge_si16(16514, 1)), true); - assert_eq!(call!(ge_si16(16514, 2)), true); - assert_eq!(call!(ge_si16(16514, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_105() { - assert_eq!(call!(ge_si16(16514, 4)), true); - assert_eq!(call!(ge_si16(16514, 10486)), true); - assert_eq!(call!(ge_si16(16514, 16514)), true); - assert_eq!(call!(ge_si16(32766, -32768)), true); - assert_eq!(call!(ge_si16(32766, -32767)), true); - assert_eq!(call!(ge_si16(32766, -32547)), true); - assert_eq!(call!(ge_si16(32766, 0)), true); - assert_eq!(call!(ge_si16(32766, 1)), true); - assert_eq!(call!(ge_si16(32766, 2)), true); - assert_eq!(call!(ge_si16(32766, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_106() { - assert_eq!(call!(ge_si16(32766, 4)), true); - assert_eq!(call!(ge_si16(32766, 10486)), true); - assert_eq!(call!(ge_si16(32766, 16514)), true); - assert_eq!(call!(ge_si16(32766, 32766)), true); - assert_eq!(call!(ge_si16(32767, -32768)), true); - assert_eq!(call!(ge_si16(32767, -32767)), true); - assert_eq!(call!(ge_si16(32767, -32547)), true); - assert_eq!(call!(ge_si16(32767, 0)), true); - assert_eq!(call!(ge_si16(32767, 1)), true); - assert_eq!(call!(ge_si16(32767, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_107() { - assert_eq!(call!(ge_si16(32767, 3)), true); - assert_eq!(call!(ge_si16(32767, 4)), true); - assert_eq!(call!(ge_si16(32767, 10486)), true); - assert_eq!(call!(ge_si16(32767, 16514)), true); - assert_eq!(call!(ge_si16(32767, 32766)), true); - assert_eq!(call!(ge_si16(32767, 32767)), true); - assert_eq!(call!(ge_si32(-2147483648, -2147483647)), false); - assert_eq!(call!(ge_si32(-2147483648, -1713183800)), false); - assert_eq!(call!(ge_si32(-2147483648, -1252582164)), false); - assert_eq!(call!(ge_si32(-2147483648, -1035405763)), false); - } - #[rewrite(main)] - #[test] - fn test_108() { - assert_eq!(call!(ge_si32(-2147483648, 0)), false); - assert_eq!(call!(ge_si32(-2147483648, 1)), false); - assert_eq!(call!(ge_si32(-2147483648, 2)), false); - assert_eq!(call!(ge_si32(-2147483648, 3)), false); - assert_eq!(call!(ge_si32(-2147483648, 4)), false); - assert_eq!(call!(ge_si32(-2147483648, 2147483646)), false); - assert_eq!(call!(ge_si32(-2147483648, 2147483647)), false); - assert_eq!(call!(ge_si32(-2147483647, -1713183800)), false); - assert_eq!(call!(ge_si32(-2147483647, -1252582164)), false); - assert_eq!(call!(ge_si32(-2147483647, -1035405763)), false); - } - #[rewrite(main)] - #[test] - fn test_109() { - assert_eq!(call!(ge_si32(-2147483647, 0)), false); - assert_eq!(call!(ge_si32(-2147483647, 1)), false); - assert_eq!(call!(ge_si32(-2147483647, 2)), false); - assert_eq!(call!(ge_si32(-2147483647, 3)), false); - assert_eq!(call!(ge_si32(-2147483647, 4)), false); - assert_eq!(call!(ge_si32(-2147483647, 2147483646)), false); - assert_eq!(call!(ge_si32(-2147483647, 2147483647)), false); - assert_eq!(call!(ge_si32(-1713183800, -1252582164)), false); - assert_eq!(call!(ge_si32(-1713183800, -1035405763)), false); - assert_eq!(call!(ge_si32(-1713183800, 0)), false); - } - #[rewrite(main)] - #[test] - fn test_110() { - assert_eq!(call!(ge_si32(-1713183800, 1)), false); - assert_eq!(call!(ge_si32(-1713183800, 2)), false); - assert_eq!(call!(ge_si32(-1713183800, 3)), false); - assert_eq!(call!(ge_si32(-1713183800, 4)), false); - assert_eq!(call!(ge_si32(-1713183800, 2147483646)), false); - assert_eq!(call!(ge_si32(-1713183800, 2147483647)), false); - assert_eq!(call!(ge_si32(-1252582164, -1035405763)), false); - assert_eq!(call!(ge_si32(-1252582164, 0)), false); - assert_eq!(call!(ge_si32(-1252582164, 1)), false); - assert_eq!(call!(ge_si32(-1252582164, 2)), false); - } - #[rewrite(main)] - #[test] - fn test_111() { - assert_eq!(call!(ge_si32(-1252582164, 3)), false); - assert_eq!(call!(ge_si32(-1252582164, 4)), false); - assert_eq!(call!(ge_si32(-1252582164, 2147483646)), false); - assert_eq!(call!(ge_si32(-1252582164, 2147483647)), false); - assert_eq!(call!(ge_si32(-1035405763, 0)), false); - assert_eq!(call!(ge_si32(-1035405763, 1)), false); - assert_eq!(call!(ge_si32(-1035405763, 2)), false); - assert_eq!(call!(ge_si32(-1035405763, 3)), false); - assert_eq!(call!(ge_si32(-1035405763, 4)), false); - assert_eq!(call!(ge_si32(-1035405763, 2147483646)), false); - } - #[rewrite(main)] - #[test] - fn test_112() { - assert_eq!(call!(ge_si32(-1035405763, 2147483647)), false); - assert_eq!(call!(ge_si32(0, 1)), false); - assert_eq!(call!(ge_si32(0, 2)), false); - assert_eq!(call!(ge_si32(0, 3)), false); - assert_eq!(call!(ge_si32(0, 4)), false); - assert_eq!(call!(ge_si32(0, 2147483646)), false); - assert_eq!(call!(ge_si32(0, 2147483647)), false); - assert_eq!(call!(ge_si32(1, 2)), false); - assert_eq!(call!(ge_si32(1, 3)), false); - assert_eq!(call!(ge_si32(1, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_113() { - assert_eq!(call!(ge_si32(1, 2147483646)), false); - assert_eq!(call!(ge_si32(1, 2147483647)), false); - assert_eq!(call!(ge_si32(2, 3)), false); - assert_eq!(call!(ge_si32(2, 4)), false); - assert_eq!(call!(ge_si32(2, 2147483646)), false); - assert_eq!(call!(ge_si32(2, 2147483647)), false); - assert_eq!(call!(ge_si32(3, 4)), false); - assert_eq!(call!(ge_si32(3, 2147483646)), false); - assert_eq!(call!(ge_si32(3, 2147483647)), false); - assert_eq!(call!(ge_si32(4, 2147483646)), false); - } - #[rewrite(main)] - #[test] - fn test_114() { - assert_eq!(call!(ge_si32(4, 2147483647)), false); - assert_eq!(call!(ge_si32(2147483646, 2147483647)), false); - assert_eq!(call!(ge_si32(-2147483648, -2147483648)), true); - assert_eq!(call!(ge_si32(-2147483647, -2147483648)), true); - assert_eq!(call!(ge_si32(-2147483647, -2147483647)), true); - assert_eq!(call!(ge_si32(-1713183800, -2147483648)), true); - assert_eq!(call!(ge_si32(-1713183800, -2147483647)), true); - assert_eq!(call!(ge_si32(-1713183800, -1713183800)), true); - assert_eq!(call!(ge_si32(-1252582164, -2147483648)), true); - assert_eq!(call!(ge_si32(-1252582164, -2147483647)), true); - } - #[rewrite(main)] - #[test] - fn test_115() { - assert_eq!(call!(ge_si32(-1252582164, -1713183800)), true); - assert_eq!(call!(ge_si32(-1252582164, -1252582164)), true); - assert_eq!(call!(ge_si32(-1035405763, -2147483648)), true); - assert_eq!(call!(ge_si32(-1035405763, -2147483647)), true); - assert_eq!(call!(ge_si32(-1035405763, -1713183800)), true); - assert_eq!(call!(ge_si32(-1035405763, -1252582164)), true); - assert_eq!(call!(ge_si32(-1035405763, -1035405763)), true); - assert_eq!(call!(ge_si32(0, -2147483648)), true); - assert_eq!(call!(ge_si32(0, -2147483647)), true); - assert_eq!(call!(ge_si32(0, -1713183800)), true); - } - #[rewrite(main)] - #[test] - fn test_116() { - assert_eq!(call!(ge_si32(0, -1252582164)), true); - assert_eq!(call!(ge_si32(0, -1035405763)), true); - assert_eq!(call!(ge_si32(0, 0)), true); - assert_eq!(call!(ge_si32(1, -2147483648)), true); - assert_eq!(call!(ge_si32(1, -2147483647)), true); - assert_eq!(call!(ge_si32(1, -1713183800)), true); - assert_eq!(call!(ge_si32(1, -1252582164)), true); - assert_eq!(call!(ge_si32(1, -1035405763)), true); - assert_eq!(call!(ge_si32(1, 0)), true); - assert_eq!(call!(ge_si32(1, 1)), true); - } - #[rewrite(main)] - #[test] - fn test_117() { - assert_eq!(call!(ge_si32(2, -2147483648)), true); - assert_eq!(call!(ge_si32(2, -2147483647)), true); - assert_eq!(call!(ge_si32(2, -1713183800)), true); - assert_eq!(call!(ge_si32(2, -1252582164)), true); - assert_eq!(call!(ge_si32(2, -1035405763)), true); - assert_eq!(call!(ge_si32(2, 0)), true); - assert_eq!(call!(ge_si32(2, 1)), true); - assert_eq!(call!(ge_si32(2, 2)), true); - assert_eq!(call!(ge_si32(3, -2147483648)), true); - assert_eq!(call!(ge_si32(3, -2147483647)), true); - } - #[rewrite(main)] - #[test] - fn test_118() { - assert_eq!(call!(ge_si32(3, -1713183800)), true); - assert_eq!(call!(ge_si32(3, -1252582164)), true); - assert_eq!(call!(ge_si32(3, -1035405763)), true); - assert_eq!(call!(ge_si32(3, 0)), true); - assert_eq!(call!(ge_si32(3, 1)), true); - assert_eq!(call!(ge_si32(3, 2)), true); - assert_eq!(call!(ge_si32(3, 3)), true); - assert_eq!(call!(ge_si32(4, -2147483648)), true); - assert_eq!(call!(ge_si32(4, -2147483647)), true); - assert_eq!(call!(ge_si32(4, -1713183800)), true); - } - #[rewrite(main)] - #[test] - fn test_119() { - assert_eq!(call!(ge_si32(4, -1252582164)), true); - assert_eq!(call!(ge_si32(4, -1035405763)), true); - assert_eq!(call!(ge_si32(4, 0)), true); - assert_eq!(call!(ge_si32(4, 1)), true); - assert_eq!(call!(ge_si32(4, 2)), true); - assert_eq!(call!(ge_si32(4, 3)), true); - assert_eq!(call!(ge_si32(4, 4)), true); - assert_eq!(call!(ge_si32(2147483646, -2147483648)), true); - assert_eq!(call!(ge_si32(2147483646, -2147483647)), true); - assert_eq!(call!(ge_si32(2147483646, -1713183800)), true); - } - #[rewrite(main)] - #[test] - fn test_120() { - assert_eq!(call!(ge_si32(2147483646, -1252582164)), true); - assert_eq!(call!(ge_si32(2147483646, -1035405763)), true); - assert_eq!(call!(ge_si32(2147483646, 0)), true); - assert_eq!(call!(ge_si32(2147483646, 1)), true); - assert_eq!(call!(ge_si32(2147483646, 2)), true); - assert_eq!(call!(ge_si32(2147483646, 3)), true); - assert_eq!(call!(ge_si32(2147483646, 4)), true); - assert_eq!(call!(ge_si32(2147483646, 2147483646)), true); - assert_eq!(call!(ge_si32(2147483647, -2147483648)), true); - assert_eq!(call!(ge_si32(2147483647, -2147483647)), true); - } - #[rewrite(main)] - #[test] - fn test_121() { - assert_eq!(call!(ge_si32(2147483647, -1713183800)), true); - assert_eq!(call!(ge_si32(2147483647, -1252582164)), true); - assert_eq!(call!(ge_si32(2147483647, -1035405763)), true); - assert_eq!(call!(ge_si32(2147483647, 0)), true); - assert_eq!(call!(ge_si32(2147483647, 1)), true); - assert_eq!(call!(ge_si32(2147483647, 2)), true); - assert_eq!(call!(ge_si32(2147483647, 3)), true); - assert_eq!(call!(ge_si32(2147483647, 4)), true); - assert_eq!(call!(ge_si32(2147483647, 2147483646)), true); - assert_eq!(call!(ge_si32(2147483647, 2147483647)), true); - } - #[rewrite(main)] - #[test] - fn test_122() { - assert_eq!(call!(ge_si64(-9223372036854775808, -9223372036854775807)), false); - assert_eq!(call!(ge_si64(-9223372036854775808, -1741927215160008704)), false); - assert_eq!(call!(ge_si64(-9223372036854775808, -1328271339354574848)), false); - assert_eq!(call!(ge_si64(-9223372036854775808, 0)), false); - assert_eq!(call!(ge_si64(-9223372036854775808, 1)), false); - assert_eq!(call!(ge_si64(-9223372036854775808, 2)), false); - assert_eq!(call!(ge_si64(-9223372036854775808, 3)), false); - assert_eq!(call!(ge_si64(-9223372036854775808, 4)), false); - assert_eq!(call!(ge_si64(-9223372036854775808, 5577148965131116544)), false); - assert_eq!(call!(ge_si64(-9223372036854775808, 9223372036854775806)), false); - } - #[rewrite(main)] - #[test] - fn test_123() { - assert_eq!(call!(ge_si64(-9223372036854775808, 9223372036854775807)), false); - assert_eq!(call!(ge_si64(-9223372036854775807, -1741927215160008704)), false); - assert_eq!(call!(ge_si64(-9223372036854775807, -1328271339354574848)), false); - assert_eq!(call!(ge_si64(-9223372036854775807, 0)), false); - assert_eq!(call!(ge_si64(-9223372036854775807, 1)), false); - assert_eq!(call!(ge_si64(-9223372036854775807, 2)), false); - assert_eq!(call!(ge_si64(-9223372036854775807, 3)), false); - assert_eq!(call!(ge_si64(-9223372036854775807, 4)), false); - assert_eq!(call!(ge_si64(-9223372036854775807, 5577148965131116544)), false); - assert_eq!(call!(ge_si64(-9223372036854775807, 9223372036854775806)), false); - } - #[rewrite(main)] - #[test] - fn test_124() { - assert_eq!(call!(ge_si64(-9223372036854775807, 9223372036854775807)), false); - assert_eq!(call!(ge_si64(-1741927215160008704, -1328271339354574848)), false); - assert_eq!(call!(ge_si64(-1741927215160008704, 0)), false); - assert_eq!(call!(ge_si64(-1741927215160008704, 1)), false); - assert_eq!(call!(ge_si64(-1741927215160008704, 2)), false); - assert_eq!(call!(ge_si64(-1741927215160008704, 3)), false); - assert_eq!(call!(ge_si64(-1741927215160008704, 4)), false); - assert_eq!(call!(ge_si64(-1741927215160008704, 5577148965131116544)), false); - assert_eq!(call!(ge_si64(-1741927215160008704, 9223372036854775806)), false); - assert_eq!(call!(ge_si64(-1741927215160008704, 9223372036854775807)), false); - } - #[rewrite(main)] - #[test] - fn test_125() { - assert_eq!(call!(ge_si64(-1328271339354574848, 0)), false); - assert_eq!(call!(ge_si64(-1328271339354574848, 1)), false); - assert_eq!(call!(ge_si64(-1328271339354574848, 2)), false); - assert_eq!(call!(ge_si64(-1328271339354574848, 3)), false); - assert_eq!(call!(ge_si64(-1328271339354574848, 4)), false); - assert_eq!(call!(ge_si64(-1328271339354574848, 5577148965131116544)), false); - assert_eq!(call!(ge_si64(-1328271339354574848, 9223372036854775806)), false); - assert_eq!(call!(ge_si64(-1328271339354574848, 9223372036854775807)), false); - assert_eq!(call!(ge_si64(0, 1)), false); - assert_eq!(call!(ge_si64(0, 2)), false); - } - #[rewrite(main)] - #[test] - fn test_126() { - assert_eq!(call!(ge_si64(0, 3)), false); - assert_eq!(call!(ge_si64(0, 4)), false); - assert_eq!(call!(ge_si64(0, 5577148965131116544)), false); - assert_eq!(call!(ge_si64(0, 9223372036854775806)), false); - assert_eq!(call!(ge_si64(0, 9223372036854775807)), false); - assert_eq!(call!(ge_si64(1, 2)), false); - assert_eq!(call!(ge_si64(1, 3)), false); - assert_eq!(call!(ge_si64(1, 4)), false); - assert_eq!(call!(ge_si64(1, 5577148965131116544)), false); - assert_eq!(call!(ge_si64(1, 9223372036854775806)), false); - } - #[rewrite(main)] - #[test] - fn test_127() { - assert_eq!(call!(ge_si64(1, 9223372036854775807)), false); - assert_eq!(call!(ge_si64(2, 3)), false); - assert_eq!(call!(ge_si64(2, 4)), false); - assert_eq!(call!(ge_si64(2, 5577148965131116544)), false); - assert_eq!(call!(ge_si64(2, 9223372036854775806)), false); - assert_eq!(call!(ge_si64(2, 9223372036854775807)), false); - assert_eq!(call!(ge_si64(3, 4)), false); - assert_eq!(call!(ge_si64(3, 5577148965131116544)), false); - assert_eq!(call!(ge_si64(3, 9223372036854775806)), false); - assert_eq!(call!(ge_si64(3, 9223372036854775807)), false); - } - #[rewrite(main)] - #[test] - fn test_128() { - assert_eq!(call!(ge_si64(4, 5577148965131116544)), false); - assert_eq!(call!(ge_si64(4, 9223372036854775806)), false); - assert_eq!(call!(ge_si64(4, 9223372036854775807)), false); - assert_eq!(call!(ge_si64(5577148965131116544, 9223372036854775806)), false); - assert_eq!(call!(ge_si64(5577148965131116544, 9223372036854775807)), false); - assert_eq!(call!(ge_si64(9223372036854775806, 9223372036854775807)), false); - assert_eq!(call!(ge_si64(-9223372036854775808, -9223372036854775808)), true); - assert_eq!(call!(ge_si64(-9223372036854775807, -9223372036854775808)), true); - assert_eq!(call!(ge_si64(-9223372036854775807, -9223372036854775807)), true); - assert_eq!(call!(ge_si64(-1741927215160008704, -9223372036854775808)), true); - } - #[rewrite(main)] - #[test] - fn test_129() { - assert_eq!(call!(ge_si64(-1741927215160008704, -9223372036854775807)), true); - assert_eq!(call!(ge_si64(-1741927215160008704, -1741927215160008704)), true); - assert_eq!(call!(ge_si64(-1328271339354574848, -9223372036854775808)), true); - assert_eq!(call!(ge_si64(-1328271339354574848, -9223372036854775807)), true); - assert_eq!(call!(ge_si64(-1328271339354574848, -1741927215160008704)), true); - assert_eq!(call!(ge_si64(-1328271339354574848, -1328271339354574848)), true); - assert_eq!(call!(ge_si64(0, -9223372036854775808)), true); - assert_eq!(call!(ge_si64(0, -9223372036854775807)), true); - assert_eq!(call!(ge_si64(0, -1741927215160008704)), true); - assert_eq!(call!(ge_si64(0, -1328271339354574848)), true); - } - #[rewrite(main)] - #[test] - fn test_130() { - assert_eq!(call!(ge_si64(0, 0)), true); - assert_eq!(call!(ge_si64(1, -9223372036854775808)), true); - assert_eq!(call!(ge_si64(1, -9223372036854775807)), true); - assert_eq!(call!(ge_si64(1, -1741927215160008704)), true); - assert_eq!(call!(ge_si64(1, -1328271339354574848)), true); - assert_eq!(call!(ge_si64(1, 0)), true); - assert_eq!(call!(ge_si64(1, 1)), true); - assert_eq!(call!(ge_si64(2, -9223372036854775808)), true); - assert_eq!(call!(ge_si64(2, -9223372036854775807)), true); - assert_eq!(call!(ge_si64(2, -1741927215160008704)), true); - } - #[rewrite(main)] - #[test] - fn test_131() { - assert_eq!(call!(ge_si64(2, -1328271339354574848)), true); - assert_eq!(call!(ge_si64(2, 0)), true); - assert_eq!(call!(ge_si64(2, 1)), true); - assert_eq!(call!(ge_si64(2, 2)), true); - assert_eq!(call!(ge_si64(3, -9223372036854775808)), true); - assert_eq!(call!(ge_si64(3, -9223372036854775807)), true); - assert_eq!(call!(ge_si64(3, -1741927215160008704)), true); - assert_eq!(call!(ge_si64(3, -1328271339354574848)), true); - assert_eq!(call!(ge_si64(3, 0)), true); - assert_eq!(call!(ge_si64(3, 1)), true); - } - #[rewrite(main)] - #[test] - fn test_132() { - assert_eq!(call!(ge_si64(3, 2)), true); - assert_eq!(call!(ge_si64(3, 3)), true); - assert_eq!(call!(ge_si64(4, -9223372036854775808)), true); - assert_eq!(call!(ge_si64(4, -9223372036854775807)), true); - assert_eq!(call!(ge_si64(4, -1741927215160008704)), true); - assert_eq!(call!(ge_si64(4, -1328271339354574848)), true); - assert_eq!(call!(ge_si64(4, 0)), true); - assert_eq!(call!(ge_si64(4, 1)), true); - assert_eq!(call!(ge_si64(4, 2)), true); - assert_eq!(call!(ge_si64(4, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_133() { - assert_eq!(call!(ge_si64(4, 4)), true); - assert_eq!(call!(ge_si64(5577148965131116544, -9223372036854775808)), true); - assert_eq!(call!(ge_si64(5577148965131116544, -9223372036854775807)), true); - assert_eq!(call!(ge_si64(5577148965131116544, -1741927215160008704)), true); - assert_eq!(call!(ge_si64(5577148965131116544, -1328271339354574848)), true); - assert_eq!(call!(ge_si64(5577148965131116544, 0)), true); - assert_eq!(call!(ge_si64(5577148965131116544, 1)), true); - assert_eq!(call!(ge_si64(5577148965131116544, 2)), true); - assert_eq!(call!(ge_si64(5577148965131116544, 3)), true); - assert_eq!(call!(ge_si64(5577148965131116544, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_134() { - assert_eq!(call!(ge_si64(5577148965131116544, 5577148965131116544)), true); - assert_eq!(call!(ge_si64(9223372036854775806, -9223372036854775808)), true); - assert_eq!(call!(ge_si64(9223372036854775806, -9223372036854775807)), true); - assert_eq!(call!(ge_si64(9223372036854775806, -1741927215160008704)), true); - assert_eq!(call!(ge_si64(9223372036854775806, -1328271339354574848)), true); - assert_eq!(call!(ge_si64(9223372036854775806, 0)), true); - assert_eq!(call!(ge_si64(9223372036854775806, 1)), true); - assert_eq!(call!(ge_si64(9223372036854775806, 2)), true); - assert_eq!(call!(ge_si64(9223372036854775806, 3)), true); - assert_eq!(call!(ge_si64(9223372036854775806, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_135() { - assert_eq!(call!(ge_si64(9223372036854775806, 5577148965131116544)), true); - assert_eq!(call!(ge_si64(9223372036854775806, 9223372036854775806)), true); - assert_eq!(call!(ge_si64(9223372036854775807, -9223372036854775808)), true); - assert_eq!(call!(ge_si64(9223372036854775807, -9223372036854775807)), true); - assert_eq!(call!(ge_si64(9223372036854775807, -1741927215160008704)), true); - assert_eq!(call!(ge_si64(9223372036854775807, -1328271339354574848)), true); - assert_eq!(call!(ge_si64(9223372036854775807, 0)), true); - assert_eq!(call!(ge_si64(9223372036854775807, 1)), true); - assert_eq!(call!(ge_si64(9223372036854775807, 2)), true); - assert_eq!(call!(ge_si64(9223372036854775807, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_136() { - assert_eq!(call!(ge_si64(9223372036854775807, 4)), true); - assert_eq!(call!(ge_si64(9223372036854775807, 5577148965131116544)), true); - assert_eq!(call!(ge_si64(9223372036854775807, 9223372036854775806)), true); - assert_eq!(call!(ge_si64(9223372036854775807, 9223372036854775807)), true); - assert_eq!(call!(ge_si8(-128, -127)), false); - assert_eq!(call!(ge_si8(-128, 0)), false); - assert_eq!(call!(ge_si8(-128, 1)), false); - assert_eq!(call!(ge_si8(-128, 2)), false); - assert_eq!(call!(ge_si8(-128, 3)), false); - assert_eq!(call!(ge_si8(-128, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_137() { - assert_eq!(call!(ge_si8(-128, 16)), false); - assert_eq!(call!(ge_si8(-128, 126)), false); - assert_eq!(call!(ge_si8(-128, 127)), false); - assert_eq!(call!(ge_si8(-127, 0)), false); - assert_eq!(call!(ge_si8(-127, 1)), false); - assert_eq!(call!(ge_si8(-127, 2)), false); - assert_eq!(call!(ge_si8(-127, 3)), false); - assert_eq!(call!(ge_si8(-127, 4)), false); - assert_eq!(call!(ge_si8(-127, 16)), false); - assert_eq!(call!(ge_si8(-127, 126)), false); - } - #[rewrite(main)] - #[test] - fn test_138() { - assert_eq!(call!(ge_si8(-127, 127)), false); - assert_eq!(call!(ge_si8(0, 1)), false); - assert_eq!(call!(ge_si8(0, 2)), false); - assert_eq!(call!(ge_si8(0, 3)), false); - assert_eq!(call!(ge_si8(0, 4)), false); - assert_eq!(call!(ge_si8(0, 16)), false); - assert_eq!(call!(ge_si8(0, 126)), false); - assert_eq!(call!(ge_si8(0, 127)), false); - assert_eq!(call!(ge_si8(1, 2)), false); - assert_eq!(call!(ge_si8(1, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_139() { - assert_eq!(call!(ge_si8(1, 4)), false); - assert_eq!(call!(ge_si8(1, 16)), false); - assert_eq!(call!(ge_si8(1, 126)), false); - assert_eq!(call!(ge_si8(1, 127)), false); - assert_eq!(call!(ge_si8(2, 3)), false); - assert_eq!(call!(ge_si8(2, 4)), false); - assert_eq!(call!(ge_si8(2, 16)), false); - assert_eq!(call!(ge_si8(2, 126)), false); - assert_eq!(call!(ge_si8(2, 127)), false); - assert_eq!(call!(ge_si8(3, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_140() { - assert_eq!(call!(ge_si8(3, 16)), false); - assert_eq!(call!(ge_si8(3, 126)), false); - assert_eq!(call!(ge_si8(3, 127)), false); - assert_eq!(call!(ge_si8(4, 16)), false); - assert_eq!(call!(ge_si8(4, 126)), false); - assert_eq!(call!(ge_si8(4, 127)), false); - assert_eq!(call!(ge_si8(16, 126)), false); - assert_eq!(call!(ge_si8(16, 127)), false); - assert_eq!(call!(ge_si8(126, 127)), false); - assert_eq!(call!(ge_si8(-128, -128)), true); - } - #[rewrite(main)] - #[test] - fn test_141() { - assert_eq!(call!(ge_si8(-127, -128)), true); - assert_eq!(call!(ge_si8(-127, -127)), true); - assert_eq!(call!(ge_si8(0, -128)), true); - assert_eq!(call!(ge_si8(0, -127)), true); - assert_eq!(call!(ge_si8(0, 0)), true); - assert_eq!(call!(ge_si8(1, -128)), true); - assert_eq!(call!(ge_si8(1, -127)), true); - assert_eq!(call!(ge_si8(1, 0)), true); - assert_eq!(call!(ge_si8(1, 1)), true); - assert_eq!(call!(ge_si8(2, -128)), true); - } - #[rewrite(main)] - #[test] - fn test_142() { - assert_eq!(call!(ge_si8(2, -127)), true); - assert_eq!(call!(ge_si8(2, 0)), true); - assert_eq!(call!(ge_si8(2, 1)), true); - assert_eq!(call!(ge_si8(2, 2)), true); - assert_eq!(call!(ge_si8(3, -128)), true); - assert_eq!(call!(ge_si8(3, -127)), true); - assert_eq!(call!(ge_si8(3, 0)), true); - assert_eq!(call!(ge_si8(3, 1)), true); - assert_eq!(call!(ge_si8(3, 2)), true); - assert_eq!(call!(ge_si8(3, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_143() { - assert_eq!(call!(ge_si8(4, -128)), true); - assert_eq!(call!(ge_si8(4, -127)), true); - assert_eq!(call!(ge_si8(4, 0)), true); - assert_eq!(call!(ge_si8(4, 1)), true); - assert_eq!(call!(ge_si8(4, 2)), true); - assert_eq!(call!(ge_si8(4, 3)), true); - assert_eq!(call!(ge_si8(4, 4)), true); - assert_eq!(call!(ge_si8(16, -128)), true); - assert_eq!(call!(ge_si8(16, -127)), true); - assert_eq!(call!(ge_si8(16, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_144() { - assert_eq!(call!(ge_si8(16, 1)), true); - assert_eq!(call!(ge_si8(16, 2)), true); - assert_eq!(call!(ge_si8(16, 3)), true); - assert_eq!(call!(ge_si8(16, 4)), true); - assert_eq!(call!(ge_si8(16, 16)), true); - assert_eq!(call!(ge_si8(126, -128)), true); - assert_eq!(call!(ge_si8(126, -127)), true); - assert_eq!(call!(ge_si8(126, 0)), true); - assert_eq!(call!(ge_si8(126, 1)), true); - assert_eq!(call!(ge_si8(126, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_145() { - assert_eq!(call!(ge_si8(126, 3)), true); - assert_eq!(call!(ge_si8(126, 4)), true); - assert_eq!(call!(ge_si8(126, 16)), true); - assert_eq!(call!(ge_si8(126, 126)), true); - assert_eq!(call!(ge_si8(127, -128)), true); - assert_eq!(call!(ge_si8(127, -127)), true); - assert_eq!(call!(ge_si8(127, 0)), true); - assert_eq!(call!(ge_si8(127, 1)), true); - assert_eq!(call!(ge_si8(127, 2)), true); - assert_eq!(call!(ge_si8(127, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_146() { - assert_eq!(call!(ge_si8(127, 4)), true); - assert_eq!(call!(ge_si8(127, 16)), true); - assert_eq!(call!(ge_si8(127, 126)), true); - assert_eq!(call!(ge_si8(127, 127)), true); - assert_eq!(call!(ge_ui16(0, 1)), false); - assert_eq!(call!(ge_ui16(0, 2)), false); - assert_eq!(call!(ge_ui16(0, 3)), false); - assert_eq!(call!(ge_ui16(0, 4)), false); - assert_eq!(call!(ge_ui16(0, 1717)), false); - assert_eq!(call!(ge_ui16(0, 17988)), false); - } - #[rewrite(main)] - #[test] - fn test_147() { - assert_eq!(call!(ge_ui16(0, 65096)), false); - assert_eq!(call!(ge_ui16(0, 65534)), false); - assert_eq!(call!(ge_ui16(0, 65535)), false); - assert_eq!(call!(ge_ui16(1, 2)), false); - assert_eq!(call!(ge_ui16(1, 3)), false); - assert_eq!(call!(ge_ui16(1, 4)), false); - assert_eq!(call!(ge_ui16(1, 1717)), false); - assert_eq!(call!(ge_ui16(1, 17988)), false); - assert_eq!(call!(ge_ui16(1, 65096)), false); - assert_eq!(call!(ge_ui16(1, 65534)), false); - } - #[rewrite(main)] - #[test] - fn test_148() { - assert_eq!(call!(ge_ui16(1, 65535)), false); - assert_eq!(call!(ge_ui16(2, 3)), false); - assert_eq!(call!(ge_ui16(2, 4)), false); - assert_eq!(call!(ge_ui16(2, 1717)), false); - assert_eq!(call!(ge_ui16(2, 17988)), false); - assert_eq!(call!(ge_ui16(2, 65096)), false); - assert_eq!(call!(ge_ui16(2, 65534)), false); - assert_eq!(call!(ge_ui16(2, 65535)), false); - assert_eq!(call!(ge_ui16(3, 4)), false); - assert_eq!(call!(ge_ui16(3, 1717)), false); - } - #[rewrite(main)] - #[test] - fn test_149() { - assert_eq!(call!(ge_ui16(3, 17988)), false); - assert_eq!(call!(ge_ui16(3, 65096)), false); - assert_eq!(call!(ge_ui16(3, 65534)), false); - assert_eq!(call!(ge_ui16(3, 65535)), false); - assert_eq!(call!(ge_ui16(4, 1717)), false); - assert_eq!(call!(ge_ui16(4, 17988)), false); - assert_eq!(call!(ge_ui16(4, 65096)), false); - assert_eq!(call!(ge_ui16(4, 65534)), false); - assert_eq!(call!(ge_ui16(4, 65535)), false); - assert_eq!(call!(ge_ui16(1717, 17988)), false); - } - #[rewrite(main)] - #[test] - fn test_150() { - assert_eq!(call!(ge_ui16(1717, 65096)), false); - assert_eq!(call!(ge_ui16(1717, 65534)), false); - assert_eq!(call!(ge_ui16(1717, 65535)), false); - assert_eq!(call!(ge_ui16(17988, 65096)), false); - assert_eq!(call!(ge_ui16(17988, 65534)), false); - assert_eq!(call!(ge_ui16(17988, 65535)), false); - assert_eq!(call!(ge_ui16(65096, 65534)), false); - assert_eq!(call!(ge_ui16(65096, 65535)), false); - assert_eq!(call!(ge_ui16(65534, 65535)), false); - assert_eq!(call!(ge_ui16(0, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_151() { - assert_eq!(call!(ge_ui16(1, 0)), true); - assert_eq!(call!(ge_ui16(1, 1)), true); - assert_eq!(call!(ge_ui16(2, 0)), true); - assert_eq!(call!(ge_ui16(2, 1)), true); - assert_eq!(call!(ge_ui16(2, 2)), true); - assert_eq!(call!(ge_ui16(3, 0)), true); - assert_eq!(call!(ge_ui16(3, 1)), true); - assert_eq!(call!(ge_ui16(3, 2)), true); - assert_eq!(call!(ge_ui16(3, 3)), true); - assert_eq!(call!(ge_ui16(4, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_152() { - assert_eq!(call!(ge_ui16(4, 1)), true); - assert_eq!(call!(ge_ui16(4, 2)), true); - assert_eq!(call!(ge_ui16(4, 3)), true); - assert_eq!(call!(ge_ui16(4, 4)), true); - assert_eq!(call!(ge_ui16(1717, 0)), true); - assert_eq!(call!(ge_ui16(1717, 1)), true); - assert_eq!(call!(ge_ui16(1717, 2)), true); - assert_eq!(call!(ge_ui16(1717, 3)), true); - assert_eq!(call!(ge_ui16(1717, 4)), true); - assert_eq!(call!(ge_ui16(1717, 1717)), true); - } - #[rewrite(main)] - #[test] - fn test_153() { - assert_eq!(call!(ge_ui16(17988, 0)), true); - assert_eq!(call!(ge_ui16(17988, 1)), true); - assert_eq!(call!(ge_ui16(17988, 2)), true); - assert_eq!(call!(ge_ui16(17988, 3)), true); - assert_eq!(call!(ge_ui16(17988, 4)), true); - assert_eq!(call!(ge_ui16(17988, 1717)), true); - assert_eq!(call!(ge_ui16(17988, 17988)), true); - assert_eq!(call!(ge_ui16(65096, 0)), true); - assert_eq!(call!(ge_ui16(65096, 1)), true); - assert_eq!(call!(ge_ui16(65096, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_154() { - assert_eq!(call!(ge_ui16(65096, 3)), true); - assert_eq!(call!(ge_ui16(65096, 4)), true); - assert_eq!(call!(ge_ui16(65096, 1717)), true); - assert_eq!(call!(ge_ui16(65096, 17988)), true); - assert_eq!(call!(ge_ui16(65096, 65096)), true); - assert_eq!(call!(ge_ui16(65534, 0)), true); - assert_eq!(call!(ge_ui16(65534, 1)), true); - assert_eq!(call!(ge_ui16(65534, 2)), true); - assert_eq!(call!(ge_ui16(65534, 3)), true); - assert_eq!(call!(ge_ui16(65534, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_155() { - assert_eq!(call!(ge_ui16(65534, 1717)), true); - assert_eq!(call!(ge_ui16(65534, 17988)), true); - assert_eq!(call!(ge_ui16(65534, 65096)), true); - assert_eq!(call!(ge_ui16(65534, 65534)), true); - assert_eq!(call!(ge_ui16(65535, 0)), true); - assert_eq!(call!(ge_ui16(65535, 1)), true); - assert_eq!(call!(ge_ui16(65535, 2)), true); - assert_eq!(call!(ge_ui16(65535, 3)), true); - assert_eq!(call!(ge_ui16(65535, 4)), true); - assert_eq!(call!(ge_ui16(65535, 1717)), true); - } - #[rewrite(main)] - #[test] - fn test_156() { - assert_eq!(call!(ge_ui16(65535, 17988)), true); - assert_eq!(call!(ge_ui16(65535, 65096)), true); - assert_eq!(call!(ge_ui16(65535, 65534)), true); - assert_eq!(call!(ge_ui16(65535, 65535)), true); - assert_eq!(call!(ge_ui32(0, 1)), false); - assert_eq!(call!(ge_ui32(0, 2)), false); - assert_eq!(call!(ge_ui32(0, 3)), false); - assert_eq!(call!(ge_ui32(0, 4)), false); - assert_eq!(call!(ge_ui32(0, 2119154652)), false); - assert_eq!(call!(ge_ui32(0, 3002788344)), false); - } - #[rewrite(main)] - #[test] - fn test_157() { - assert_eq!(call!(ge_ui32(0, 3482297128)), false); - assert_eq!(call!(ge_ui32(0, 4294967294)), false); - assert_eq!(call!(ge_ui32(0, 4294967295)), false); - assert_eq!(call!(ge_ui32(1, 2)), false); - assert_eq!(call!(ge_ui32(1, 3)), false); - assert_eq!(call!(ge_ui32(1, 4)), false); - assert_eq!(call!(ge_ui32(1, 2119154652)), false); - assert_eq!(call!(ge_ui32(1, 3002788344)), false); - assert_eq!(call!(ge_ui32(1, 3482297128)), false); - assert_eq!(call!(ge_ui32(1, 4294967294)), false); - } - #[rewrite(main)] - #[test] - fn test_158() { - assert_eq!(call!(ge_ui32(1, 4294967295)), false); - assert_eq!(call!(ge_ui32(2, 3)), false); - assert_eq!(call!(ge_ui32(2, 4)), false); - assert_eq!(call!(ge_ui32(2, 2119154652)), false); - assert_eq!(call!(ge_ui32(2, 3002788344)), false); - assert_eq!(call!(ge_ui32(2, 3482297128)), false); - assert_eq!(call!(ge_ui32(2, 4294967294)), false); - assert_eq!(call!(ge_ui32(2, 4294967295)), false); - assert_eq!(call!(ge_ui32(3, 4)), false); - assert_eq!(call!(ge_ui32(3, 2119154652)), false); - } - #[rewrite(main)] - #[test] - fn test_159() { - assert_eq!(call!(ge_ui32(3, 3002788344)), false); - assert_eq!(call!(ge_ui32(3, 3482297128)), false); - assert_eq!(call!(ge_ui32(3, 4294967294)), false); - assert_eq!(call!(ge_ui32(3, 4294967295)), false); - assert_eq!(call!(ge_ui32(4, 2119154652)), false); - assert_eq!(call!(ge_ui32(4, 3002788344)), false); - assert_eq!(call!(ge_ui32(4, 3482297128)), false); - assert_eq!(call!(ge_ui32(4, 4294967294)), false); - assert_eq!(call!(ge_ui32(4, 4294967295)), false); - assert_eq!(call!(ge_ui32(2119154652, 3002788344)), false); - } - #[rewrite(main)] - #[test] - fn test_160() { - assert_eq!(call!(ge_ui32(2119154652, 3482297128)), false); - assert_eq!(call!(ge_ui32(2119154652, 4294967294)), false); - assert_eq!(call!(ge_ui32(2119154652, 4294967295)), false); - assert_eq!(call!(ge_ui32(3002788344, 3482297128)), false); - assert_eq!(call!(ge_ui32(3002788344, 4294967294)), false); - assert_eq!(call!(ge_ui32(3002788344, 4294967295)), false); - assert_eq!(call!(ge_ui32(3482297128, 4294967294)), false); - assert_eq!(call!(ge_ui32(3482297128, 4294967295)), false); - assert_eq!(call!(ge_ui32(4294967294, 4294967295)), false); - assert_eq!(call!(ge_ui32(0, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_161() { - assert_eq!(call!(ge_ui32(1, 0)), true); - assert_eq!(call!(ge_ui32(1, 1)), true); - assert_eq!(call!(ge_ui32(2, 0)), true); - assert_eq!(call!(ge_ui32(2, 1)), true); - assert_eq!(call!(ge_ui32(2, 2)), true); - assert_eq!(call!(ge_ui32(3, 0)), true); - assert_eq!(call!(ge_ui32(3, 1)), true); - assert_eq!(call!(ge_ui32(3, 2)), true); - assert_eq!(call!(ge_ui32(3, 3)), true); - assert_eq!(call!(ge_ui32(4, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_162() { - assert_eq!(call!(ge_ui32(4, 1)), true); - assert_eq!(call!(ge_ui32(4, 2)), true); - assert_eq!(call!(ge_ui32(4, 3)), true); - assert_eq!(call!(ge_ui32(4, 4)), true); - assert_eq!(call!(ge_ui32(2119154652, 0)), true); - assert_eq!(call!(ge_ui32(2119154652, 1)), true); - assert_eq!(call!(ge_ui32(2119154652, 2)), true); - assert_eq!(call!(ge_ui32(2119154652, 3)), true); - assert_eq!(call!(ge_ui32(2119154652, 4)), true); - assert_eq!(call!(ge_ui32(2119154652, 2119154652)), true); - } - #[rewrite(main)] - #[test] - fn test_163() { - assert_eq!(call!(ge_ui32(3002788344, 0)), true); - assert_eq!(call!(ge_ui32(3002788344, 1)), true); - assert_eq!(call!(ge_ui32(3002788344, 2)), true); - assert_eq!(call!(ge_ui32(3002788344, 3)), true); - assert_eq!(call!(ge_ui32(3002788344, 4)), true); - assert_eq!(call!(ge_ui32(3002788344, 2119154652)), true); - assert_eq!(call!(ge_ui32(3002788344, 3002788344)), true); - assert_eq!(call!(ge_ui32(3482297128, 0)), true); - assert_eq!(call!(ge_ui32(3482297128, 1)), true); - assert_eq!(call!(ge_ui32(3482297128, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_164() { - assert_eq!(call!(ge_ui32(3482297128, 3)), true); - assert_eq!(call!(ge_ui32(3482297128, 4)), true); - assert_eq!(call!(ge_ui32(3482297128, 2119154652)), true); - assert_eq!(call!(ge_ui32(3482297128, 3002788344)), true); - assert_eq!(call!(ge_ui32(3482297128, 3482297128)), true); - assert_eq!(call!(ge_ui32(4294967294, 0)), true); - assert_eq!(call!(ge_ui32(4294967294, 1)), true); - assert_eq!(call!(ge_ui32(4294967294, 2)), true); - assert_eq!(call!(ge_ui32(4294967294, 3)), true); - assert_eq!(call!(ge_ui32(4294967294, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_165() { - assert_eq!(call!(ge_ui32(4294967294, 2119154652)), true); - assert_eq!(call!(ge_ui32(4294967294, 3002788344)), true); - assert_eq!(call!(ge_ui32(4294967294, 3482297128)), true); - assert_eq!(call!(ge_ui32(4294967294, 4294967294)), true); - assert_eq!(call!(ge_ui32(4294967295, 0)), true); - assert_eq!(call!(ge_ui32(4294967295, 1)), true); - assert_eq!(call!(ge_ui32(4294967295, 2)), true); - assert_eq!(call!(ge_ui32(4294967295, 3)), true); - assert_eq!(call!(ge_ui32(4294967295, 4)), true); - assert_eq!(call!(ge_ui32(4294967295, 2119154652)), true); - } - #[rewrite(main)] - #[test] - fn test_166() { - assert_eq!(call!(ge_ui32(4294967295, 3002788344)), true); - assert_eq!(call!(ge_ui32(4294967295, 3482297128)), true); - assert_eq!(call!(ge_ui32(4294967295, 4294967294)), true); - assert_eq!(call!(ge_ui32(4294967295, 4294967295)), true); - assert_eq!(call!(ge_ui64(0, 1)), false); - assert_eq!(call!(ge_ui64(0, 2)), false); - assert_eq!(call!(ge_ui64(0, 3)), false); - assert_eq!(call!(ge_ui64(0, 4)), false); - assert_eq!(call!(ge_ui64(0, 191084152064409600)), false); - assert_eq!(call!(ge_ui64(0, 11015955194427482112)), false); - } - #[rewrite(main)] - #[test] - fn test_167() { - assert_eq!(call!(ge_ui64(0, 16990600415051759616)), false); - assert_eq!(call!(ge_ui64(0, 18446744073709551614)), false); - assert_eq!(call!(ge_ui64(0, 18446744073709551615)), false); - assert_eq!(call!(ge_ui64(1, 2)), false); - assert_eq!(call!(ge_ui64(1, 3)), false); - assert_eq!(call!(ge_ui64(1, 4)), false); - assert_eq!(call!(ge_ui64(1, 191084152064409600)), false); - assert_eq!(call!(ge_ui64(1, 11015955194427482112)), false); - assert_eq!(call!(ge_ui64(1, 16990600415051759616)), false); - assert_eq!(call!(ge_ui64(1, 18446744073709551614)), false); - } - #[rewrite(main)] - #[test] - fn test_168() { - assert_eq!(call!(ge_ui64(1, 18446744073709551615)), false); - assert_eq!(call!(ge_ui64(2, 3)), false); - assert_eq!(call!(ge_ui64(2, 4)), false); - assert_eq!(call!(ge_ui64(2, 191084152064409600)), false); - assert_eq!(call!(ge_ui64(2, 11015955194427482112)), false); - assert_eq!(call!(ge_ui64(2, 16990600415051759616)), false); - assert_eq!(call!(ge_ui64(2, 18446744073709551614)), false); - assert_eq!(call!(ge_ui64(2, 18446744073709551615)), false); - assert_eq!(call!(ge_ui64(3, 4)), false); - assert_eq!(call!(ge_ui64(3, 191084152064409600)), false); - } - #[rewrite(main)] - #[test] - fn test_169() { - assert_eq!(call!(ge_ui64(3, 11015955194427482112)), false); - assert_eq!(call!(ge_ui64(3, 16990600415051759616)), false); - assert_eq!(call!(ge_ui64(3, 18446744073709551614)), false); - assert_eq!(call!(ge_ui64(3, 18446744073709551615)), false); - assert_eq!(call!(ge_ui64(4, 191084152064409600)), false); - assert_eq!(call!(ge_ui64(4, 11015955194427482112)), false); - assert_eq!(call!(ge_ui64(4, 16990600415051759616)), false); - assert_eq!(call!(ge_ui64(4, 18446744073709551614)), false); - assert_eq!(call!(ge_ui64(4, 18446744073709551615)), false); - assert_eq!(call!(ge_ui64(191084152064409600, 11015955194427482112)), false); - } - #[rewrite(main)] - #[test] - fn test_170() { - assert_eq!(call!(ge_ui64(191084152064409600, 16990600415051759616)), false); - assert_eq!(call!(ge_ui64(191084152064409600, 18446744073709551614)), false); - assert_eq!(call!(ge_ui64(191084152064409600, 18446744073709551615)), false); - assert_eq!(call!(ge_ui64(11015955194427482112, 16990600415051759616)), false); - assert_eq!(call!(ge_ui64(11015955194427482112, 18446744073709551614)), false); - assert_eq!(call!(ge_ui64(11015955194427482112, 18446744073709551615)), false); - assert_eq!(call!(ge_ui64(16990600415051759616, 18446744073709551614)), false); - assert_eq!(call!(ge_ui64(16990600415051759616, 18446744073709551615)), false); - assert_eq!(call!(ge_ui64(18446744073709551614, 18446744073709551615)), false); - assert_eq!(call!(ge_ui64(0, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_171() { - assert_eq!(call!(ge_ui64(1, 0)), true); - assert_eq!(call!(ge_ui64(1, 1)), true); - assert_eq!(call!(ge_ui64(2, 0)), true); - assert_eq!(call!(ge_ui64(2, 1)), true); - assert_eq!(call!(ge_ui64(2, 2)), true); - assert_eq!(call!(ge_ui64(3, 0)), true); - assert_eq!(call!(ge_ui64(3, 1)), true); - assert_eq!(call!(ge_ui64(3, 2)), true); - assert_eq!(call!(ge_ui64(3, 3)), true); - assert_eq!(call!(ge_ui64(4, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_172() { - assert_eq!(call!(ge_ui64(4, 1)), true); - assert_eq!(call!(ge_ui64(4, 2)), true); - assert_eq!(call!(ge_ui64(4, 3)), true); - assert_eq!(call!(ge_ui64(4, 4)), true); - assert_eq!(call!(ge_ui64(191084152064409600, 0)), true); - assert_eq!(call!(ge_ui64(191084152064409600, 1)), true); - assert_eq!(call!(ge_ui64(191084152064409600, 2)), true); - assert_eq!(call!(ge_ui64(191084152064409600, 3)), true); - assert_eq!(call!(ge_ui64(191084152064409600, 4)), true); - assert_eq!(call!(ge_ui64(191084152064409600, 191084152064409600)), true); - } - #[rewrite(main)] - #[test] - fn test_173() { - assert_eq!(call!(ge_ui64(11015955194427482112, 0)), true); - assert_eq!(call!(ge_ui64(11015955194427482112, 1)), true); - assert_eq!(call!(ge_ui64(11015955194427482112, 2)), true); - assert_eq!(call!(ge_ui64(11015955194427482112, 3)), true); - assert_eq!(call!(ge_ui64(11015955194427482112, 4)), true); - assert_eq!(call!(ge_ui64(11015955194427482112, 191084152064409600)), true); - assert_eq!(call!(ge_ui64(11015955194427482112, 11015955194427482112)), true); - assert_eq!(call!(ge_ui64(16990600415051759616, 0)), true); - assert_eq!(call!(ge_ui64(16990600415051759616, 1)), true); - assert_eq!(call!(ge_ui64(16990600415051759616, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_174() { - assert_eq!(call!(ge_ui64(16990600415051759616, 3)), true); - assert_eq!(call!(ge_ui64(16990600415051759616, 4)), true); - assert_eq!(call!(ge_ui64(16990600415051759616, 191084152064409600)), true); - assert_eq!(call!(ge_ui64(16990600415051759616, 11015955194427482112)), true); - assert_eq!(call!(ge_ui64(16990600415051759616, 16990600415051759616)), true); - assert_eq!(call!(ge_ui64(18446744073709551614, 0)), true); - assert_eq!(call!(ge_ui64(18446744073709551614, 1)), true); - assert_eq!(call!(ge_ui64(18446744073709551614, 2)), true); - assert_eq!(call!(ge_ui64(18446744073709551614, 3)), true); - assert_eq!(call!(ge_ui64(18446744073709551614, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_175() { - assert_eq!(call!(ge_ui64(18446744073709551614, 191084152064409600)), true); - assert_eq!(call!(ge_ui64(18446744073709551614, 11015955194427482112)), true); - assert_eq!(call!(ge_ui64(18446744073709551614, 16990600415051759616)), true); - assert_eq!(call!(ge_ui64(18446744073709551614, 18446744073709551614)), true); - assert_eq!(call!(ge_ui64(18446744073709551615, 0)), true); - assert_eq!(call!(ge_ui64(18446744073709551615, 1)), true); - assert_eq!(call!(ge_ui64(18446744073709551615, 2)), true); - assert_eq!(call!(ge_ui64(18446744073709551615, 3)), true); - assert_eq!(call!(ge_ui64(18446744073709551615, 4)), true); - assert_eq!(call!(ge_ui64(18446744073709551615, 191084152064409600)), true); - } - #[rewrite(main)] - #[test] - fn test_176() { - assert_eq!(call!(ge_ui64(18446744073709551615, 11015955194427482112)), true); - assert_eq!(call!(ge_ui64(18446744073709551615, 16990600415051759616)), true); - assert_eq!(call!(ge_ui64(18446744073709551615, 18446744073709551614)), true); - assert_eq!(call!(ge_ui64(18446744073709551615, 18446744073709551615)), true); - assert_eq!(call!(ge_ui8(0, 1)), false); - assert_eq!(call!(ge_ui8(0, 2)), false); - assert_eq!(call!(ge_ui8(0, 3)), false); - assert_eq!(call!(ge_ui8(0, 4)), false); - assert_eq!(call!(ge_ui8(0, 72)), false); - assert_eq!(call!(ge_ui8(0, 100)), false); - } - #[rewrite(main)] - #[test] - fn test_177() { - assert_eq!(call!(ge_ui8(0, 162)), false); - assert_eq!(call!(ge_ui8(0, 254)), false); - assert_eq!(call!(ge_ui8(0, 255)), false); - assert_eq!(call!(ge_ui8(1, 2)), false); - assert_eq!(call!(ge_ui8(1, 3)), false); - assert_eq!(call!(ge_ui8(1, 4)), false); - assert_eq!(call!(ge_ui8(1, 72)), false); - assert_eq!(call!(ge_ui8(1, 100)), false); - assert_eq!(call!(ge_ui8(1, 162)), false); - assert_eq!(call!(ge_ui8(1, 254)), false); - } - #[rewrite(main)] - #[test] - fn test_178() { - assert_eq!(call!(ge_ui8(1, 255)), false); - assert_eq!(call!(ge_ui8(2, 3)), false); - assert_eq!(call!(ge_ui8(2, 4)), false); - assert_eq!(call!(ge_ui8(2, 72)), false); - assert_eq!(call!(ge_ui8(2, 100)), false); - assert_eq!(call!(ge_ui8(2, 162)), false); - assert_eq!(call!(ge_ui8(2, 254)), false); - assert_eq!(call!(ge_ui8(2, 255)), false); - assert_eq!(call!(ge_ui8(3, 4)), false); - assert_eq!(call!(ge_ui8(3, 72)), false); - } - #[rewrite(main)] - #[test] - fn test_179() { - assert_eq!(call!(ge_ui8(3, 100)), false); - assert_eq!(call!(ge_ui8(3, 162)), false); - assert_eq!(call!(ge_ui8(3, 254)), false); - assert_eq!(call!(ge_ui8(3, 255)), false); - assert_eq!(call!(ge_ui8(4, 72)), false); - assert_eq!(call!(ge_ui8(4, 100)), false); - assert_eq!(call!(ge_ui8(4, 162)), false); - assert_eq!(call!(ge_ui8(4, 254)), false); - assert_eq!(call!(ge_ui8(4, 255)), false); - assert_eq!(call!(ge_ui8(72, 100)), false); - } - #[rewrite(main)] - #[test] - fn test_180() { - assert_eq!(call!(ge_ui8(72, 162)), false); - assert_eq!(call!(ge_ui8(72, 254)), false); - assert_eq!(call!(ge_ui8(72, 255)), false); - assert_eq!(call!(ge_ui8(100, 162)), false); - assert_eq!(call!(ge_ui8(100, 254)), false); - assert_eq!(call!(ge_ui8(100, 255)), false); - assert_eq!(call!(ge_ui8(162, 254)), false); - assert_eq!(call!(ge_ui8(162, 255)), false); - assert_eq!(call!(ge_ui8(254, 255)), false); - assert_eq!(call!(ge_ui8(0, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_181() { - assert_eq!(call!(ge_ui8(1, 0)), true); - assert_eq!(call!(ge_ui8(1, 1)), true); - assert_eq!(call!(ge_ui8(2, 0)), true); - assert_eq!(call!(ge_ui8(2, 1)), true); - assert_eq!(call!(ge_ui8(2, 2)), true); - assert_eq!(call!(ge_ui8(3, 0)), true); - assert_eq!(call!(ge_ui8(3, 1)), true); - assert_eq!(call!(ge_ui8(3, 2)), true); - assert_eq!(call!(ge_ui8(3, 3)), true); - assert_eq!(call!(ge_ui8(4, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_182() { - assert_eq!(call!(ge_ui8(4, 1)), true); - assert_eq!(call!(ge_ui8(4, 2)), true); - assert_eq!(call!(ge_ui8(4, 3)), true); - assert_eq!(call!(ge_ui8(4, 4)), true); - assert_eq!(call!(ge_ui8(72, 0)), true); - assert_eq!(call!(ge_ui8(72, 1)), true); - assert_eq!(call!(ge_ui8(72, 2)), true); - assert_eq!(call!(ge_ui8(72, 3)), true); - assert_eq!(call!(ge_ui8(72, 4)), true); - assert_eq!(call!(ge_ui8(72, 72)), true); - } - #[rewrite(main)] - #[test] - fn test_183() { - assert_eq!(call!(ge_ui8(100, 0)), true); - assert_eq!(call!(ge_ui8(100, 1)), true); - assert_eq!(call!(ge_ui8(100, 2)), true); - assert_eq!(call!(ge_ui8(100, 3)), true); - assert_eq!(call!(ge_ui8(100, 4)), true); - assert_eq!(call!(ge_ui8(100, 72)), true); - assert_eq!(call!(ge_ui8(100, 100)), true); - assert_eq!(call!(ge_ui8(162, 0)), true); - assert_eq!(call!(ge_ui8(162, 1)), true); - assert_eq!(call!(ge_ui8(162, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_184() { - assert_eq!(call!(ge_ui8(162, 3)), true); - assert_eq!(call!(ge_ui8(162, 4)), true); - assert_eq!(call!(ge_ui8(162, 72)), true); - assert_eq!(call!(ge_ui8(162, 100)), true); - assert_eq!(call!(ge_ui8(162, 162)), true); - assert_eq!(call!(ge_ui8(254, 0)), true); - assert_eq!(call!(ge_ui8(254, 1)), true); - assert_eq!(call!(ge_ui8(254, 2)), true); - assert_eq!(call!(ge_ui8(254, 3)), true); - assert_eq!(call!(ge_ui8(254, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_185() { - assert_eq!(call!(ge_ui8(254, 72)), true); - assert_eq!(call!(ge_ui8(254, 100)), true); - assert_eq!(call!(ge_ui8(254, 162)), true); - assert_eq!(call!(ge_ui8(254, 254)), true); - assert_eq!(call!(ge_ui8(255, 0)), true); - assert_eq!(call!(ge_ui8(255, 1)), true); - assert_eq!(call!(ge_ui8(255, 2)), true); - assert_eq!(call!(ge_ui8(255, 3)), true); - assert_eq!(call!(ge_ui8(255, 4)), true); - assert_eq!(call!(ge_ui8(255, 72)), true); - } - #[rewrite(main)] - #[test] - fn test_186() { - assert_eq!(call!(ge_ui8(255, 100)), true); - assert_eq!(call!(ge_ui8(255, 162)), true); - assert_eq!(call!(ge_ui8(255, 254)), true); - assert_eq!(call!(ge_ui8(255, 255)), true); - assert_eq!(call!(gt_si16(-32768, -32768)), false); - assert_eq!(call!(gt_si16(-32768, -32767)), false); - assert_eq!(call!(gt_si16(-32768, -32547)), false); - assert_eq!(call!(gt_si16(-32768, 0)), false); - assert_eq!(call!(gt_si16(-32768, 1)), false); - assert_eq!(call!(gt_si16(-32768, 2)), false); - } - #[rewrite(main)] - #[test] - fn test_187() { - assert_eq!(call!(gt_si16(-32768, 3)), false); - assert_eq!(call!(gt_si16(-32768, 4)), false); - assert_eq!(call!(gt_si16(-32768, 10486)), false); - assert_eq!(call!(gt_si16(-32768, 16514)), false); - assert_eq!(call!(gt_si16(-32768, 32766)), false); - assert_eq!(call!(gt_si16(-32768, 32767)), false); - assert_eq!(call!(gt_si16(-32767, -32767)), false); - assert_eq!(call!(gt_si16(-32767, -32547)), false); - assert_eq!(call!(gt_si16(-32767, 0)), false); - assert_eq!(call!(gt_si16(-32767, 1)), false); - } - #[rewrite(main)] - #[test] - fn test_188() { - assert_eq!(call!(gt_si16(-32767, 2)), false); - assert_eq!(call!(gt_si16(-32767, 3)), false); - assert_eq!(call!(gt_si16(-32767, 4)), false); - assert_eq!(call!(gt_si16(-32767, 10486)), false); - assert_eq!(call!(gt_si16(-32767, 16514)), false); - assert_eq!(call!(gt_si16(-32767, 32766)), false); - assert_eq!(call!(gt_si16(-32767, 32767)), false); - assert_eq!(call!(gt_si16(-32547, -32547)), false); - assert_eq!(call!(gt_si16(-32547, 0)), false); - assert_eq!(call!(gt_si16(-32547, 1)), false); - } - #[rewrite(main)] - #[test] - fn test_189() { - assert_eq!(call!(gt_si16(-32547, 2)), false); - assert_eq!(call!(gt_si16(-32547, 3)), false); - assert_eq!(call!(gt_si16(-32547, 4)), false); - assert_eq!(call!(gt_si16(-32547, 10486)), false); - assert_eq!(call!(gt_si16(-32547, 16514)), false); - assert_eq!(call!(gt_si16(-32547, 32766)), false); - assert_eq!(call!(gt_si16(-32547, 32767)), false); - assert_eq!(call!(gt_si16(0, 0)), false); - assert_eq!(call!(gt_si16(0, 1)), false); - assert_eq!(call!(gt_si16(0, 2)), false); - } - #[rewrite(main)] - #[test] - fn test_190() { - assert_eq!(call!(gt_si16(0, 3)), false); - assert_eq!(call!(gt_si16(0, 4)), false); - assert_eq!(call!(gt_si16(0, 10486)), false); - assert_eq!(call!(gt_si16(0, 16514)), false); - assert_eq!(call!(gt_si16(0, 32766)), false); - assert_eq!(call!(gt_si16(0, 32767)), false); - assert_eq!(call!(gt_si16(1, 1)), false); - assert_eq!(call!(gt_si16(1, 2)), false); - assert_eq!(call!(gt_si16(1, 3)), false); - assert_eq!(call!(gt_si16(1, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_191() { - assert_eq!(call!(gt_si16(1, 10486)), false); - assert_eq!(call!(gt_si16(1, 16514)), false); - assert_eq!(call!(gt_si16(1, 32766)), false); - assert_eq!(call!(gt_si16(1, 32767)), false); - assert_eq!(call!(gt_si16(2, 2)), false); - assert_eq!(call!(gt_si16(2, 3)), false); - assert_eq!(call!(gt_si16(2, 4)), false); - assert_eq!(call!(gt_si16(2, 10486)), false); - assert_eq!(call!(gt_si16(2, 16514)), false); - assert_eq!(call!(gt_si16(2, 32766)), false); - } - #[rewrite(main)] - #[test] - fn test_192() { - assert_eq!(call!(gt_si16(2, 32767)), false); - assert_eq!(call!(gt_si16(3, 3)), false); - assert_eq!(call!(gt_si16(3, 4)), false); - assert_eq!(call!(gt_si16(3, 10486)), false); - assert_eq!(call!(gt_si16(3, 16514)), false); - assert_eq!(call!(gt_si16(3, 32766)), false); - assert_eq!(call!(gt_si16(3, 32767)), false); - assert_eq!(call!(gt_si16(4, 4)), false); - assert_eq!(call!(gt_si16(4, 10486)), false); - assert_eq!(call!(gt_si16(4, 16514)), false); - } - #[rewrite(main)] - #[test] - fn test_193() { - assert_eq!(call!(gt_si16(4, 32766)), false); - assert_eq!(call!(gt_si16(4, 32767)), false); - assert_eq!(call!(gt_si16(10486, 10486)), false); - assert_eq!(call!(gt_si16(10486, 16514)), false); - assert_eq!(call!(gt_si16(10486, 32766)), false); - assert_eq!(call!(gt_si16(10486, 32767)), false); - assert_eq!(call!(gt_si16(16514, 16514)), false); - assert_eq!(call!(gt_si16(16514, 32766)), false); - assert_eq!(call!(gt_si16(16514, 32767)), false); - assert_eq!(call!(gt_si16(32766, 32766)), false); - } - #[rewrite(main)] - #[test] - fn test_194() { - assert_eq!(call!(gt_si16(32766, 32767)), false); - assert_eq!(call!(gt_si16(32767, 32767)), false); - assert_eq!(call!(gt_si16(-32767, -32768)), true); - assert_eq!(call!(gt_si16(-32547, -32768)), true); - assert_eq!(call!(gt_si16(-32547, -32767)), true); - assert_eq!(call!(gt_si16(0, -32768)), true); - assert_eq!(call!(gt_si16(0, -32767)), true); - assert_eq!(call!(gt_si16(0, -32547)), true); - assert_eq!(call!(gt_si16(1, -32768)), true); - assert_eq!(call!(gt_si16(1, -32767)), true); - } - #[rewrite(main)] - #[test] - fn test_195() { - assert_eq!(call!(gt_si16(1, -32547)), true); - assert_eq!(call!(gt_si16(1, 0)), true); - assert_eq!(call!(gt_si16(2, -32768)), true); - assert_eq!(call!(gt_si16(2, -32767)), true); - assert_eq!(call!(gt_si16(2, -32547)), true); - assert_eq!(call!(gt_si16(2, 0)), true); - assert_eq!(call!(gt_si16(2, 1)), true); - assert_eq!(call!(gt_si16(3, -32768)), true); - assert_eq!(call!(gt_si16(3, -32767)), true); - assert_eq!(call!(gt_si16(3, -32547)), true); - } - #[rewrite(main)] - #[test] - fn test_196() { - assert_eq!(call!(gt_si16(3, 0)), true); - assert_eq!(call!(gt_si16(3, 1)), true); - assert_eq!(call!(gt_si16(3, 2)), true); - assert_eq!(call!(gt_si16(4, -32768)), true); - assert_eq!(call!(gt_si16(4, -32767)), true); - assert_eq!(call!(gt_si16(4, -32547)), true); - assert_eq!(call!(gt_si16(4, 0)), true); - assert_eq!(call!(gt_si16(4, 1)), true); - assert_eq!(call!(gt_si16(4, 2)), true); - assert_eq!(call!(gt_si16(4, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_197() { - assert_eq!(call!(gt_si16(10486, -32768)), true); - assert_eq!(call!(gt_si16(10486, -32767)), true); - assert_eq!(call!(gt_si16(10486, -32547)), true); - assert_eq!(call!(gt_si16(10486, 0)), true); - assert_eq!(call!(gt_si16(10486, 1)), true); - assert_eq!(call!(gt_si16(10486, 2)), true); - assert_eq!(call!(gt_si16(10486, 3)), true); - assert_eq!(call!(gt_si16(10486, 4)), true); - assert_eq!(call!(gt_si16(16514, -32768)), true); - assert_eq!(call!(gt_si16(16514, -32767)), true); - } - #[rewrite(main)] - #[test] - fn test_198() { - assert_eq!(call!(gt_si16(16514, -32547)), true); - assert_eq!(call!(gt_si16(16514, 0)), true); - assert_eq!(call!(gt_si16(16514, 1)), true); - assert_eq!(call!(gt_si16(16514, 2)), true); - assert_eq!(call!(gt_si16(16514, 3)), true); - assert_eq!(call!(gt_si16(16514, 4)), true); - assert_eq!(call!(gt_si16(16514, 10486)), true); - assert_eq!(call!(gt_si16(32766, -32768)), true); - assert_eq!(call!(gt_si16(32766, -32767)), true); - assert_eq!(call!(gt_si16(32766, -32547)), true); - } - #[rewrite(main)] - #[test] - fn test_199() { - assert_eq!(call!(gt_si16(32766, 0)), true); - assert_eq!(call!(gt_si16(32766, 1)), true); - assert_eq!(call!(gt_si16(32766, 2)), true); - assert_eq!(call!(gt_si16(32766, 3)), true); - assert_eq!(call!(gt_si16(32766, 4)), true); - assert_eq!(call!(gt_si16(32766, 10486)), true); - assert_eq!(call!(gt_si16(32766, 16514)), true); - assert_eq!(call!(gt_si16(32767, -32768)), true); - assert_eq!(call!(gt_si16(32767, -32767)), true); - assert_eq!(call!(gt_si16(32767, -32547)), true); - } - #[rewrite(main)] - #[test] - fn test_200() { - assert_eq!(call!(gt_si16(32767, 0)), true); - assert_eq!(call!(gt_si16(32767, 1)), true); - assert_eq!(call!(gt_si16(32767, 2)), true); - assert_eq!(call!(gt_si16(32767, 3)), true); - assert_eq!(call!(gt_si16(32767, 4)), true); - assert_eq!(call!(gt_si16(32767, 10486)), true); - assert_eq!(call!(gt_si16(32767, 16514)), true); - assert_eq!(call!(gt_si16(32767, 32766)), true); - assert_eq!(call!(gt_si32(-2147483648, -2147483648)), false); - assert_eq!(call!(gt_si32(-2147483648, -2147483647)), false); - } - #[rewrite(main)] - #[test] - fn test_201() { - assert_eq!(call!(gt_si32(-2147483648, -1713183800)), false); - assert_eq!(call!(gt_si32(-2147483648, -1252582164)), false); - assert_eq!(call!(gt_si32(-2147483648, -1035405763)), false); - assert_eq!(call!(gt_si32(-2147483648, 0)), false); - assert_eq!(call!(gt_si32(-2147483648, 1)), false); - assert_eq!(call!(gt_si32(-2147483648, 2)), false); - assert_eq!(call!(gt_si32(-2147483648, 3)), false); - assert_eq!(call!(gt_si32(-2147483648, 4)), false); - assert_eq!(call!(gt_si32(-2147483648, 2147483646)), false); - assert_eq!(call!(gt_si32(-2147483648, 2147483647)), false); - } - #[rewrite(main)] - #[test] - fn test_202() { - assert_eq!(call!(gt_si32(-2147483647, -2147483647)), false); - assert_eq!(call!(gt_si32(-2147483647, -1713183800)), false); - assert_eq!(call!(gt_si32(-2147483647, -1252582164)), false); - assert_eq!(call!(gt_si32(-2147483647, -1035405763)), false); - assert_eq!(call!(gt_si32(-2147483647, 0)), false); - assert_eq!(call!(gt_si32(-2147483647, 1)), false); - assert_eq!(call!(gt_si32(-2147483647, 2)), false); - assert_eq!(call!(gt_si32(-2147483647, 3)), false); - assert_eq!(call!(gt_si32(-2147483647, 4)), false); - assert_eq!(call!(gt_si32(-2147483647, 2147483646)), false); - } - #[rewrite(main)] - #[test] - fn test_203() { - assert_eq!(call!(gt_si32(-2147483647, 2147483647)), false); - assert_eq!(call!(gt_si32(-1713183800, -1713183800)), false); - assert_eq!(call!(gt_si32(-1713183800, -1252582164)), false); - assert_eq!(call!(gt_si32(-1713183800, -1035405763)), false); - assert_eq!(call!(gt_si32(-1713183800, 0)), false); - assert_eq!(call!(gt_si32(-1713183800, 1)), false); - assert_eq!(call!(gt_si32(-1713183800, 2)), false); - assert_eq!(call!(gt_si32(-1713183800, 3)), false); - assert_eq!(call!(gt_si32(-1713183800, 4)), false); - assert_eq!(call!(gt_si32(-1713183800, 2147483646)), false); - } - #[rewrite(main)] - #[test] - fn test_204() { - assert_eq!(call!(gt_si32(-1713183800, 2147483647)), false); - assert_eq!(call!(gt_si32(-1252582164, -1252582164)), false); - assert_eq!(call!(gt_si32(-1252582164, -1035405763)), false); - assert_eq!(call!(gt_si32(-1252582164, 0)), false); - assert_eq!(call!(gt_si32(-1252582164, 1)), false); - assert_eq!(call!(gt_si32(-1252582164, 2)), false); - assert_eq!(call!(gt_si32(-1252582164, 3)), false); - assert_eq!(call!(gt_si32(-1252582164, 4)), false); - assert_eq!(call!(gt_si32(-1252582164, 2147483646)), false); - assert_eq!(call!(gt_si32(-1252582164, 2147483647)), false); - } - #[rewrite(main)] - #[test] - fn test_205() { - assert_eq!(call!(gt_si32(-1035405763, -1035405763)), false); - assert_eq!(call!(gt_si32(-1035405763, 0)), false); - assert_eq!(call!(gt_si32(-1035405763, 1)), false); - assert_eq!(call!(gt_si32(-1035405763, 2)), false); - assert_eq!(call!(gt_si32(-1035405763, 3)), false); - assert_eq!(call!(gt_si32(-1035405763, 4)), false); - assert_eq!(call!(gt_si32(-1035405763, 2147483646)), false); - assert_eq!(call!(gt_si32(-1035405763, 2147483647)), false); - assert_eq!(call!(gt_si32(0, 0)), false); - assert_eq!(call!(gt_si32(0, 1)), false); - } - #[rewrite(main)] - #[test] - fn test_206() { - assert_eq!(call!(gt_si32(0, 2)), false); - assert_eq!(call!(gt_si32(0, 3)), false); - assert_eq!(call!(gt_si32(0, 4)), false); - assert_eq!(call!(gt_si32(0, 2147483646)), false); - assert_eq!(call!(gt_si32(0, 2147483647)), false); - assert_eq!(call!(gt_si32(1, 1)), false); - assert_eq!(call!(gt_si32(1, 2)), false); - assert_eq!(call!(gt_si32(1, 3)), false); - assert_eq!(call!(gt_si32(1, 4)), false); - assert_eq!(call!(gt_si32(1, 2147483646)), false); - } - #[rewrite(main)] - #[test] - fn test_207() { - assert_eq!(call!(gt_si32(1, 2147483647)), false); - assert_eq!(call!(gt_si32(2, 2)), false); - assert_eq!(call!(gt_si32(2, 3)), false); - assert_eq!(call!(gt_si32(2, 4)), false); - assert_eq!(call!(gt_si32(2, 2147483646)), false); - assert_eq!(call!(gt_si32(2, 2147483647)), false); - assert_eq!(call!(gt_si32(3, 3)), false); - assert_eq!(call!(gt_si32(3, 4)), false); - assert_eq!(call!(gt_si32(3, 2147483646)), false); - assert_eq!(call!(gt_si32(3, 2147483647)), false); - } - #[rewrite(main)] - #[test] - fn test_208() { - assert_eq!(call!(gt_si32(4, 4)), false); - assert_eq!(call!(gt_si32(4, 2147483646)), false); - assert_eq!(call!(gt_si32(4, 2147483647)), false); - assert_eq!(call!(gt_si32(2147483646, 2147483646)), false); - assert_eq!(call!(gt_si32(2147483646, 2147483647)), false); - assert_eq!(call!(gt_si32(2147483647, 2147483647)), false); - assert_eq!(call!(gt_si32(-2147483647, -2147483648)), true); - assert_eq!(call!(gt_si32(-1713183800, -2147483648)), true); - assert_eq!(call!(gt_si32(-1713183800, -2147483647)), true); - assert_eq!(call!(gt_si32(-1252582164, -2147483648)), true); - } - #[rewrite(main)] - #[test] - fn test_209() { - assert_eq!(call!(gt_si32(-1252582164, -2147483647)), true); - assert_eq!(call!(gt_si32(-1252582164, -1713183800)), true); - assert_eq!(call!(gt_si32(-1035405763, -2147483648)), true); - assert_eq!(call!(gt_si32(-1035405763, -2147483647)), true); - assert_eq!(call!(gt_si32(-1035405763, -1713183800)), true); - assert_eq!(call!(gt_si32(-1035405763, -1252582164)), true); - assert_eq!(call!(gt_si32(0, -2147483648)), true); - assert_eq!(call!(gt_si32(0, -2147483647)), true); - assert_eq!(call!(gt_si32(0, -1713183800)), true); - assert_eq!(call!(gt_si32(0, -1252582164)), true); - } - #[rewrite(main)] - #[test] - fn test_210() { - assert_eq!(call!(gt_si32(0, -1035405763)), true); - assert_eq!(call!(gt_si32(1, -2147483648)), true); - assert_eq!(call!(gt_si32(1, -2147483647)), true); - assert_eq!(call!(gt_si32(1, -1713183800)), true); - assert_eq!(call!(gt_si32(1, -1252582164)), true); - assert_eq!(call!(gt_si32(1, -1035405763)), true); - assert_eq!(call!(gt_si32(1, 0)), true); - assert_eq!(call!(gt_si32(2, -2147483648)), true); - assert_eq!(call!(gt_si32(2, -2147483647)), true); - assert_eq!(call!(gt_si32(2, -1713183800)), true); - } - #[rewrite(main)] - #[test] - fn test_211() { - assert_eq!(call!(gt_si32(2, -1252582164)), true); - assert_eq!(call!(gt_si32(2, -1035405763)), true); - assert_eq!(call!(gt_si32(2, 0)), true); - assert_eq!(call!(gt_si32(2, 1)), true); - assert_eq!(call!(gt_si32(3, -2147483648)), true); - assert_eq!(call!(gt_si32(3, -2147483647)), true); - assert_eq!(call!(gt_si32(3, -1713183800)), true); - assert_eq!(call!(gt_si32(3, -1252582164)), true); - assert_eq!(call!(gt_si32(3, -1035405763)), true); - assert_eq!(call!(gt_si32(3, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_212() { - assert_eq!(call!(gt_si32(3, 1)), true); - assert_eq!(call!(gt_si32(3, 2)), true); - assert_eq!(call!(gt_si32(4, -2147483648)), true); - assert_eq!(call!(gt_si32(4, -2147483647)), true); - assert_eq!(call!(gt_si32(4, -1713183800)), true); - assert_eq!(call!(gt_si32(4, -1252582164)), true); - assert_eq!(call!(gt_si32(4, -1035405763)), true); - assert_eq!(call!(gt_si32(4, 0)), true); - assert_eq!(call!(gt_si32(4, 1)), true); - assert_eq!(call!(gt_si32(4, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_213() { - assert_eq!(call!(gt_si32(4, 3)), true); - assert_eq!(call!(gt_si32(2147483646, -2147483648)), true); - assert_eq!(call!(gt_si32(2147483646, -2147483647)), true); - assert_eq!(call!(gt_si32(2147483646, -1713183800)), true); - assert_eq!(call!(gt_si32(2147483646, -1252582164)), true); - assert_eq!(call!(gt_si32(2147483646, -1035405763)), true); - assert_eq!(call!(gt_si32(2147483646, 0)), true); - assert_eq!(call!(gt_si32(2147483646, 1)), true); - assert_eq!(call!(gt_si32(2147483646, 2)), true); - assert_eq!(call!(gt_si32(2147483646, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_214() { - assert_eq!(call!(gt_si32(2147483646, 4)), true); - assert_eq!(call!(gt_si32(2147483647, -2147483648)), true); - assert_eq!(call!(gt_si32(2147483647, -2147483647)), true); - assert_eq!(call!(gt_si32(2147483647, -1713183800)), true); - assert_eq!(call!(gt_si32(2147483647, -1252582164)), true); - assert_eq!(call!(gt_si32(2147483647, -1035405763)), true); - assert_eq!(call!(gt_si32(2147483647, 0)), true); - assert_eq!(call!(gt_si32(2147483647, 1)), true); - assert_eq!(call!(gt_si32(2147483647, 2)), true); - assert_eq!(call!(gt_si32(2147483647, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_215() { - assert_eq!(call!(gt_si32(2147483647, 4)), true); - assert_eq!(call!(gt_si32(2147483647, 2147483646)), true); - assert_eq!(call!(gt_si64(-9223372036854775808, -9223372036854775808)), false); - assert_eq!(call!(gt_si64(-9223372036854775808, -9223372036854775807)), false); - assert_eq!(call!(gt_si64(-9223372036854775808, -1741927215160008704)), false); - assert_eq!(call!(gt_si64(-9223372036854775808, -1328271339354574848)), false); - assert_eq!(call!(gt_si64(-9223372036854775808, 0)), false); - assert_eq!(call!(gt_si64(-9223372036854775808, 1)), false); - assert_eq!(call!(gt_si64(-9223372036854775808, 2)), false); - assert_eq!(call!(gt_si64(-9223372036854775808, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_216() { - assert_eq!(call!(gt_si64(-9223372036854775808, 4)), false); - assert_eq!(call!(gt_si64(-9223372036854775808, 5577148965131116544)), false); - assert_eq!(call!(gt_si64(-9223372036854775808, 9223372036854775806)), false); - assert_eq!(call!(gt_si64(-9223372036854775808, 9223372036854775807)), false); - assert_eq!(call!(gt_si64(-9223372036854775807, -9223372036854775807)), false); - assert_eq!(call!(gt_si64(-9223372036854775807, -1741927215160008704)), false); - assert_eq!(call!(gt_si64(-9223372036854775807, -1328271339354574848)), false); - assert_eq!(call!(gt_si64(-9223372036854775807, 0)), false); - assert_eq!(call!(gt_si64(-9223372036854775807, 1)), false); - assert_eq!(call!(gt_si64(-9223372036854775807, 2)), false); - } - #[rewrite(main)] - #[test] - fn test_217() { - assert_eq!(call!(gt_si64(-9223372036854775807, 3)), false); - assert_eq!(call!(gt_si64(-9223372036854775807, 4)), false); - assert_eq!(call!(gt_si64(-9223372036854775807, 5577148965131116544)), false); - assert_eq!(call!(gt_si64(-9223372036854775807, 9223372036854775806)), false); - assert_eq!(call!(gt_si64(-9223372036854775807, 9223372036854775807)), false); - assert_eq!(call!(gt_si64(-1741927215160008704, -1741927215160008704)), false); - assert_eq!(call!(gt_si64(-1741927215160008704, -1328271339354574848)), false); - assert_eq!(call!(gt_si64(-1741927215160008704, 0)), false); - assert_eq!(call!(gt_si64(-1741927215160008704, 1)), false); - assert_eq!(call!(gt_si64(-1741927215160008704, 2)), false); - } - #[rewrite(main)] - #[test] - fn test_218() { - assert_eq!(call!(gt_si64(-1741927215160008704, 3)), false); - assert_eq!(call!(gt_si64(-1741927215160008704, 4)), false); - assert_eq!(call!(gt_si64(-1741927215160008704, 5577148965131116544)), false); - assert_eq!(call!(gt_si64(-1741927215160008704, 9223372036854775806)), false); - assert_eq!(call!(gt_si64(-1741927215160008704, 9223372036854775807)), false); - assert_eq!(call!(gt_si64(-1328271339354574848, -1328271339354574848)), false); - assert_eq!(call!(gt_si64(-1328271339354574848, 0)), false); - assert_eq!(call!(gt_si64(-1328271339354574848, 1)), false); - assert_eq!(call!(gt_si64(-1328271339354574848, 2)), false); - assert_eq!(call!(gt_si64(-1328271339354574848, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_219() { - assert_eq!(call!(gt_si64(-1328271339354574848, 4)), false); - assert_eq!(call!(gt_si64(-1328271339354574848, 5577148965131116544)), false); - assert_eq!(call!(gt_si64(-1328271339354574848, 9223372036854775806)), false); - assert_eq!(call!(gt_si64(-1328271339354574848, 9223372036854775807)), false); - assert_eq!(call!(gt_si64(0, 0)), false); - assert_eq!(call!(gt_si64(0, 1)), false); - assert_eq!(call!(gt_si64(0, 2)), false); - assert_eq!(call!(gt_si64(0, 3)), false); - assert_eq!(call!(gt_si64(0, 4)), false); - assert_eq!(call!(gt_si64(0, 5577148965131116544)), false); - } - #[rewrite(main)] - #[test] - fn test_220() { - assert_eq!(call!(gt_si64(0, 9223372036854775806)), false); - assert_eq!(call!(gt_si64(0, 9223372036854775807)), false); - assert_eq!(call!(gt_si64(1, 1)), false); - assert_eq!(call!(gt_si64(1, 2)), false); - assert_eq!(call!(gt_si64(1, 3)), false); - assert_eq!(call!(gt_si64(1, 4)), false); - assert_eq!(call!(gt_si64(1, 5577148965131116544)), false); - assert_eq!(call!(gt_si64(1, 9223372036854775806)), false); - assert_eq!(call!(gt_si64(1, 9223372036854775807)), false); - assert_eq!(call!(gt_si64(2, 2)), false); - } - #[rewrite(main)] - #[test] - fn test_221() { - assert_eq!(call!(gt_si64(2, 3)), false); - assert_eq!(call!(gt_si64(2, 4)), false); - assert_eq!(call!(gt_si64(2, 5577148965131116544)), false); - assert_eq!(call!(gt_si64(2, 9223372036854775806)), false); - assert_eq!(call!(gt_si64(2, 9223372036854775807)), false); - assert_eq!(call!(gt_si64(3, 3)), false); - assert_eq!(call!(gt_si64(3, 4)), false); - assert_eq!(call!(gt_si64(3, 5577148965131116544)), false); - assert_eq!(call!(gt_si64(3, 9223372036854775806)), false); - assert_eq!(call!(gt_si64(3, 9223372036854775807)), false); - } - #[rewrite(main)] - #[test] - fn test_222() { - assert_eq!(call!(gt_si64(4, 4)), false); - assert_eq!(call!(gt_si64(4, 5577148965131116544)), false); - assert_eq!(call!(gt_si64(4, 9223372036854775806)), false); - assert_eq!(call!(gt_si64(4, 9223372036854775807)), false); - assert_eq!(call!(gt_si64(5577148965131116544, 5577148965131116544)), false); - assert_eq!(call!(gt_si64(5577148965131116544, 9223372036854775806)), false); - assert_eq!(call!(gt_si64(5577148965131116544, 9223372036854775807)), false); - assert_eq!(call!(gt_si64(9223372036854775806, 9223372036854775806)), false); - assert_eq!(call!(gt_si64(9223372036854775806, 9223372036854775807)), false); - assert_eq!(call!(gt_si64(9223372036854775807, 9223372036854775807)), false); - } - #[rewrite(main)] - #[test] - fn test_223() { - assert_eq!(call!(gt_si64(-9223372036854775807, -9223372036854775808)), true); - assert_eq!(call!(gt_si64(-1741927215160008704, -9223372036854775808)), true); - assert_eq!(call!(gt_si64(-1741927215160008704, -9223372036854775807)), true); - assert_eq!(call!(gt_si64(-1328271339354574848, -9223372036854775808)), true); - assert_eq!(call!(gt_si64(-1328271339354574848, -9223372036854775807)), true); - assert_eq!(call!(gt_si64(-1328271339354574848, -1741927215160008704)), true); - assert_eq!(call!(gt_si64(0, -9223372036854775808)), true); - assert_eq!(call!(gt_si64(0, -9223372036854775807)), true); - assert_eq!(call!(gt_si64(0, -1741927215160008704)), true); - assert_eq!(call!(gt_si64(0, -1328271339354574848)), true); - } - #[rewrite(main)] - #[test] - fn test_224() { - assert_eq!(call!(gt_si64(1, -9223372036854775808)), true); - assert_eq!(call!(gt_si64(1, -9223372036854775807)), true); - assert_eq!(call!(gt_si64(1, -1741927215160008704)), true); - assert_eq!(call!(gt_si64(1, -1328271339354574848)), true); - assert_eq!(call!(gt_si64(1, 0)), true); - assert_eq!(call!(gt_si64(2, -9223372036854775808)), true); - assert_eq!(call!(gt_si64(2, -9223372036854775807)), true); - assert_eq!(call!(gt_si64(2, -1741927215160008704)), true); - assert_eq!(call!(gt_si64(2, -1328271339354574848)), true); - assert_eq!(call!(gt_si64(2, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_225() { - assert_eq!(call!(gt_si64(2, 1)), true); - assert_eq!(call!(gt_si64(3, -9223372036854775808)), true); - assert_eq!(call!(gt_si64(3, -9223372036854775807)), true); - assert_eq!(call!(gt_si64(3, -1741927215160008704)), true); - assert_eq!(call!(gt_si64(3, -1328271339354574848)), true); - assert_eq!(call!(gt_si64(3, 0)), true); - assert_eq!(call!(gt_si64(3, 1)), true); - assert_eq!(call!(gt_si64(3, 2)), true); - assert_eq!(call!(gt_si64(4, -9223372036854775808)), true); - assert_eq!(call!(gt_si64(4, -9223372036854775807)), true); - } - #[rewrite(main)] - #[test] - fn test_226() { - assert_eq!(call!(gt_si64(4, -1741927215160008704)), true); - assert_eq!(call!(gt_si64(4, -1328271339354574848)), true); - assert_eq!(call!(gt_si64(4, 0)), true); - assert_eq!(call!(gt_si64(4, 1)), true); - assert_eq!(call!(gt_si64(4, 2)), true); - assert_eq!(call!(gt_si64(4, 3)), true); - assert_eq!(call!(gt_si64(5577148965131116544, -9223372036854775808)), true); - assert_eq!(call!(gt_si64(5577148965131116544, -9223372036854775807)), true); - assert_eq!(call!(gt_si64(5577148965131116544, -1741927215160008704)), true); - assert_eq!(call!(gt_si64(5577148965131116544, -1328271339354574848)), true); - } - #[rewrite(main)] - #[test] - fn test_227() { - assert_eq!(call!(gt_si64(5577148965131116544, 0)), true); - assert_eq!(call!(gt_si64(5577148965131116544, 1)), true); - assert_eq!(call!(gt_si64(5577148965131116544, 2)), true); - assert_eq!(call!(gt_si64(5577148965131116544, 3)), true); - assert_eq!(call!(gt_si64(5577148965131116544, 4)), true); - assert_eq!(call!(gt_si64(9223372036854775806, -9223372036854775808)), true); - assert_eq!(call!(gt_si64(9223372036854775806, -9223372036854775807)), true); - assert_eq!(call!(gt_si64(9223372036854775806, -1741927215160008704)), true); - assert_eq!(call!(gt_si64(9223372036854775806, -1328271339354574848)), true); - assert_eq!(call!(gt_si64(9223372036854775806, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_228() { - assert_eq!(call!(gt_si64(9223372036854775806, 1)), true); - assert_eq!(call!(gt_si64(9223372036854775806, 2)), true); - assert_eq!(call!(gt_si64(9223372036854775806, 3)), true); - assert_eq!(call!(gt_si64(9223372036854775806, 4)), true); - assert_eq!(call!(gt_si64(9223372036854775806, 5577148965131116544)), true); - assert_eq!(call!(gt_si64(9223372036854775807, -9223372036854775808)), true); - assert_eq!(call!(gt_si64(9223372036854775807, -9223372036854775807)), true); - assert_eq!(call!(gt_si64(9223372036854775807, -1741927215160008704)), true); - assert_eq!(call!(gt_si64(9223372036854775807, -1328271339354574848)), true); - assert_eq!(call!(gt_si64(9223372036854775807, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_229() { - assert_eq!(call!(gt_si64(9223372036854775807, 1)), true); - assert_eq!(call!(gt_si64(9223372036854775807, 2)), true); - assert_eq!(call!(gt_si64(9223372036854775807, 3)), true); - assert_eq!(call!(gt_si64(9223372036854775807, 4)), true); - assert_eq!(call!(gt_si64(9223372036854775807, 5577148965131116544)), true); - assert_eq!(call!(gt_si64(9223372036854775807, 9223372036854775806)), true); - assert_eq!(call!(gt_si8(-128, -128)), false); - assert_eq!(call!(gt_si8(-128, -127)), false); - assert_eq!(call!(gt_si8(-128, 0)), false); - assert_eq!(call!(gt_si8(-128, 1)), false); - } - #[rewrite(main)] - #[test] - fn test_230() { - assert_eq!(call!(gt_si8(-128, 2)), false); - assert_eq!(call!(gt_si8(-128, 3)), false); - assert_eq!(call!(gt_si8(-128, 4)), false); - assert_eq!(call!(gt_si8(-128, 16)), false); - assert_eq!(call!(gt_si8(-128, 126)), false); - assert_eq!(call!(gt_si8(-128, 127)), false); - assert_eq!(call!(gt_si8(-127, -127)), false); - assert_eq!(call!(gt_si8(-127, 0)), false); - assert_eq!(call!(gt_si8(-127, 1)), false); - assert_eq!(call!(gt_si8(-127, 2)), false); - } - #[rewrite(main)] - #[test] - fn test_231() { - assert_eq!(call!(gt_si8(-127, 3)), false); - assert_eq!(call!(gt_si8(-127, 4)), false); - assert_eq!(call!(gt_si8(-127, 16)), false); - assert_eq!(call!(gt_si8(-127, 126)), false); - assert_eq!(call!(gt_si8(-127, 127)), false); - assert_eq!(call!(gt_si8(0, 0)), false); - assert_eq!(call!(gt_si8(0, 1)), false); - assert_eq!(call!(gt_si8(0, 2)), false); - assert_eq!(call!(gt_si8(0, 3)), false); - assert_eq!(call!(gt_si8(0, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_232() { - assert_eq!(call!(gt_si8(0, 16)), false); - assert_eq!(call!(gt_si8(0, 126)), false); - assert_eq!(call!(gt_si8(0, 127)), false); - assert_eq!(call!(gt_si8(1, 1)), false); - assert_eq!(call!(gt_si8(1, 2)), false); - assert_eq!(call!(gt_si8(1, 3)), false); - assert_eq!(call!(gt_si8(1, 4)), false); - assert_eq!(call!(gt_si8(1, 16)), false); - assert_eq!(call!(gt_si8(1, 126)), false); - assert_eq!(call!(gt_si8(1, 127)), false); - } - #[rewrite(main)] - #[test] - fn test_233() { - assert_eq!(call!(gt_si8(2, 2)), false); - assert_eq!(call!(gt_si8(2, 3)), false); - assert_eq!(call!(gt_si8(2, 4)), false); - assert_eq!(call!(gt_si8(2, 16)), false); - assert_eq!(call!(gt_si8(2, 126)), false); - assert_eq!(call!(gt_si8(2, 127)), false); - assert_eq!(call!(gt_si8(3, 3)), false); - assert_eq!(call!(gt_si8(3, 4)), false); - assert_eq!(call!(gt_si8(3, 16)), false); - assert_eq!(call!(gt_si8(3, 126)), false); - } - #[rewrite(main)] - #[test] - fn test_234() { - assert_eq!(call!(gt_si8(3, 127)), false); - assert_eq!(call!(gt_si8(4, 4)), false); - assert_eq!(call!(gt_si8(4, 16)), false); - assert_eq!(call!(gt_si8(4, 126)), false); - assert_eq!(call!(gt_si8(4, 127)), false); - assert_eq!(call!(gt_si8(16, 16)), false); - assert_eq!(call!(gt_si8(16, 126)), false); - assert_eq!(call!(gt_si8(16, 127)), false); - assert_eq!(call!(gt_si8(126, 126)), false); - assert_eq!(call!(gt_si8(126, 127)), false); - } - #[rewrite(main)] - #[test] - fn test_235() { - assert_eq!(call!(gt_si8(127, 127)), false); - assert_eq!(call!(gt_si8(-127, -128)), true); - assert_eq!(call!(gt_si8(0, -128)), true); - assert_eq!(call!(gt_si8(0, -127)), true); - assert_eq!(call!(gt_si8(1, -128)), true); - assert_eq!(call!(gt_si8(1, -127)), true); - assert_eq!(call!(gt_si8(1, 0)), true); - assert_eq!(call!(gt_si8(2, -128)), true); - assert_eq!(call!(gt_si8(2, -127)), true); - assert_eq!(call!(gt_si8(2, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_236() { - assert_eq!(call!(gt_si8(2, 1)), true); - assert_eq!(call!(gt_si8(3, -128)), true); - assert_eq!(call!(gt_si8(3, -127)), true); - assert_eq!(call!(gt_si8(3, 0)), true); - assert_eq!(call!(gt_si8(3, 1)), true); - assert_eq!(call!(gt_si8(3, 2)), true); - assert_eq!(call!(gt_si8(4, -128)), true); - assert_eq!(call!(gt_si8(4, -127)), true); - assert_eq!(call!(gt_si8(4, 0)), true); - assert_eq!(call!(gt_si8(4, 1)), true); - } - #[rewrite(main)] - #[test] - fn test_237() { - assert_eq!(call!(gt_si8(4, 2)), true); - assert_eq!(call!(gt_si8(4, 3)), true); - assert_eq!(call!(gt_si8(16, -128)), true); - assert_eq!(call!(gt_si8(16, -127)), true); - assert_eq!(call!(gt_si8(16, 0)), true); - assert_eq!(call!(gt_si8(16, 1)), true); - assert_eq!(call!(gt_si8(16, 2)), true); - assert_eq!(call!(gt_si8(16, 3)), true); - assert_eq!(call!(gt_si8(16, 4)), true); - assert_eq!(call!(gt_si8(126, -128)), true); - } - #[rewrite(main)] - #[test] - fn test_238() { - assert_eq!(call!(gt_si8(126, -127)), true); - assert_eq!(call!(gt_si8(126, 0)), true); - assert_eq!(call!(gt_si8(126, 1)), true); - assert_eq!(call!(gt_si8(126, 2)), true); - assert_eq!(call!(gt_si8(126, 3)), true); - assert_eq!(call!(gt_si8(126, 4)), true); - assert_eq!(call!(gt_si8(126, 16)), true); - assert_eq!(call!(gt_si8(127, -128)), true); - assert_eq!(call!(gt_si8(127, -127)), true); - assert_eq!(call!(gt_si8(127, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_239() { - assert_eq!(call!(gt_si8(127, 1)), true); - assert_eq!(call!(gt_si8(127, 2)), true); - assert_eq!(call!(gt_si8(127, 3)), true); - assert_eq!(call!(gt_si8(127, 4)), true); - assert_eq!(call!(gt_si8(127, 16)), true); - assert_eq!(call!(gt_si8(127, 126)), true); - assert_eq!(call!(gt_ui16(0, 0)), false); - assert_eq!(call!(gt_ui16(0, 1)), false); - assert_eq!(call!(gt_ui16(0, 2)), false); - assert_eq!(call!(gt_ui16(0, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_240() { - assert_eq!(call!(gt_ui16(0, 4)), false); - assert_eq!(call!(gt_ui16(0, 1717)), false); - assert_eq!(call!(gt_ui16(0, 17988)), false); - assert_eq!(call!(gt_ui16(0, 65096)), false); - assert_eq!(call!(gt_ui16(0, 65534)), false); - assert_eq!(call!(gt_ui16(0, 65535)), false); - assert_eq!(call!(gt_ui16(1, 1)), false); - assert_eq!(call!(gt_ui16(1, 2)), false); - assert_eq!(call!(gt_ui16(1, 3)), false); - assert_eq!(call!(gt_ui16(1, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_241() { - assert_eq!(call!(gt_ui16(1, 1717)), false); - assert_eq!(call!(gt_ui16(1, 17988)), false); - assert_eq!(call!(gt_ui16(1, 65096)), false); - assert_eq!(call!(gt_ui16(1, 65534)), false); - assert_eq!(call!(gt_ui16(1, 65535)), false); - assert_eq!(call!(gt_ui16(2, 2)), false); - assert_eq!(call!(gt_ui16(2, 3)), false); - assert_eq!(call!(gt_ui16(2, 4)), false); - assert_eq!(call!(gt_ui16(2, 1717)), false); - assert_eq!(call!(gt_ui16(2, 17988)), false); - } - #[rewrite(main)] - #[test] - fn test_242() { - assert_eq!(call!(gt_ui16(2, 65096)), false); - assert_eq!(call!(gt_ui16(2, 65534)), false); - assert_eq!(call!(gt_ui16(2, 65535)), false); - assert_eq!(call!(gt_ui16(3, 3)), false); - assert_eq!(call!(gt_ui16(3, 4)), false); - assert_eq!(call!(gt_ui16(3, 1717)), false); - assert_eq!(call!(gt_ui16(3, 17988)), false); - assert_eq!(call!(gt_ui16(3, 65096)), false); - assert_eq!(call!(gt_ui16(3, 65534)), false); - assert_eq!(call!(gt_ui16(3, 65535)), false); - } - #[rewrite(main)] - #[test] - fn test_243() { - assert_eq!(call!(gt_ui16(4, 4)), false); - assert_eq!(call!(gt_ui16(4, 1717)), false); - assert_eq!(call!(gt_ui16(4, 17988)), false); - assert_eq!(call!(gt_ui16(4, 65096)), false); - assert_eq!(call!(gt_ui16(4, 65534)), false); - assert_eq!(call!(gt_ui16(4, 65535)), false); - assert_eq!(call!(gt_ui16(1717, 1717)), false); - assert_eq!(call!(gt_ui16(1717, 17988)), false); - assert_eq!(call!(gt_ui16(1717, 65096)), false); - assert_eq!(call!(gt_ui16(1717, 65534)), false); - } - #[rewrite(main)] - #[test] - fn test_244() { - assert_eq!(call!(gt_ui16(1717, 65535)), false); - assert_eq!(call!(gt_ui16(17988, 17988)), false); - assert_eq!(call!(gt_ui16(17988, 65096)), false); - assert_eq!(call!(gt_ui16(17988, 65534)), false); - assert_eq!(call!(gt_ui16(17988, 65535)), false); - assert_eq!(call!(gt_ui16(65096, 65096)), false); - assert_eq!(call!(gt_ui16(65096, 65534)), false); - assert_eq!(call!(gt_ui16(65096, 65535)), false); - assert_eq!(call!(gt_ui16(65534, 65534)), false); - assert_eq!(call!(gt_ui16(65534, 65535)), false); - } - #[rewrite(main)] - #[test] - fn test_245() { - assert_eq!(call!(gt_ui16(65535, 65535)), false); - assert_eq!(call!(gt_ui16(1, 0)), true); - assert_eq!(call!(gt_ui16(2, 0)), true); - assert_eq!(call!(gt_ui16(2, 1)), true); - assert_eq!(call!(gt_ui16(3, 0)), true); - assert_eq!(call!(gt_ui16(3, 1)), true); - assert_eq!(call!(gt_ui16(3, 2)), true); - assert_eq!(call!(gt_ui16(4, 0)), true); - assert_eq!(call!(gt_ui16(4, 1)), true); - assert_eq!(call!(gt_ui16(4, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_246() { - assert_eq!(call!(gt_ui16(4, 3)), true); - assert_eq!(call!(gt_ui16(1717, 0)), true); - assert_eq!(call!(gt_ui16(1717, 1)), true); - assert_eq!(call!(gt_ui16(1717, 2)), true); - assert_eq!(call!(gt_ui16(1717, 3)), true); - assert_eq!(call!(gt_ui16(1717, 4)), true); - assert_eq!(call!(gt_ui16(17988, 0)), true); - assert_eq!(call!(gt_ui16(17988, 1)), true); - assert_eq!(call!(gt_ui16(17988, 2)), true); - assert_eq!(call!(gt_ui16(17988, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_247() { - assert_eq!(call!(gt_ui16(17988, 4)), true); - assert_eq!(call!(gt_ui16(17988, 1717)), true); - assert_eq!(call!(gt_ui16(65096, 0)), true); - assert_eq!(call!(gt_ui16(65096, 1)), true); - assert_eq!(call!(gt_ui16(65096, 2)), true); - assert_eq!(call!(gt_ui16(65096, 3)), true); - assert_eq!(call!(gt_ui16(65096, 4)), true); - assert_eq!(call!(gt_ui16(65096, 1717)), true); - assert_eq!(call!(gt_ui16(65096, 17988)), true); - assert_eq!(call!(gt_ui16(65534, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_248() { - assert_eq!(call!(gt_ui16(65534, 1)), true); - assert_eq!(call!(gt_ui16(65534, 2)), true); - assert_eq!(call!(gt_ui16(65534, 3)), true); - assert_eq!(call!(gt_ui16(65534, 4)), true); - assert_eq!(call!(gt_ui16(65534, 1717)), true); - assert_eq!(call!(gt_ui16(65534, 17988)), true); - assert_eq!(call!(gt_ui16(65534, 65096)), true); - assert_eq!(call!(gt_ui16(65535, 0)), true); - assert_eq!(call!(gt_ui16(65535, 1)), true); - assert_eq!(call!(gt_ui16(65535, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_249() { - assert_eq!(call!(gt_ui16(65535, 3)), true); - assert_eq!(call!(gt_ui16(65535, 4)), true); - assert_eq!(call!(gt_ui16(65535, 1717)), true); - assert_eq!(call!(gt_ui16(65535, 17988)), true); - assert_eq!(call!(gt_ui16(65535, 65096)), true); - assert_eq!(call!(gt_ui16(65535, 65534)), true); - assert_eq!(call!(gt_ui32(0, 0)), false); - assert_eq!(call!(gt_ui32(0, 1)), false); - assert_eq!(call!(gt_ui32(0, 2)), false); - assert_eq!(call!(gt_ui32(0, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_250() { - assert_eq!(call!(gt_ui32(0, 4)), false); - assert_eq!(call!(gt_ui32(0, 2119154652)), false); - assert_eq!(call!(gt_ui32(0, 3002788344)), false); - assert_eq!(call!(gt_ui32(0, 3482297128)), false); - assert_eq!(call!(gt_ui32(0, 4294967294)), false); - assert_eq!(call!(gt_ui32(0, 4294967295)), false); - assert_eq!(call!(gt_ui32(1, 1)), false); - assert_eq!(call!(gt_ui32(1, 2)), false); - assert_eq!(call!(gt_ui32(1, 3)), false); - assert_eq!(call!(gt_ui32(1, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_251() { - assert_eq!(call!(gt_ui32(1, 2119154652)), false); - assert_eq!(call!(gt_ui32(1, 3002788344)), false); - assert_eq!(call!(gt_ui32(1, 3482297128)), false); - assert_eq!(call!(gt_ui32(1, 4294967294)), false); - assert_eq!(call!(gt_ui32(1, 4294967295)), false); - assert_eq!(call!(gt_ui32(2, 2)), false); - assert_eq!(call!(gt_ui32(2, 3)), false); - assert_eq!(call!(gt_ui32(2, 4)), false); - assert_eq!(call!(gt_ui32(2, 2119154652)), false); - assert_eq!(call!(gt_ui32(2, 3002788344)), false); - } - #[rewrite(main)] - #[test] - fn test_252() { - assert_eq!(call!(gt_ui32(2, 3482297128)), false); - assert_eq!(call!(gt_ui32(2, 4294967294)), false); - assert_eq!(call!(gt_ui32(2, 4294967295)), false); - assert_eq!(call!(gt_ui32(3, 3)), false); - assert_eq!(call!(gt_ui32(3, 4)), false); - assert_eq!(call!(gt_ui32(3, 2119154652)), false); - assert_eq!(call!(gt_ui32(3, 3002788344)), false); - assert_eq!(call!(gt_ui32(3, 3482297128)), false); - assert_eq!(call!(gt_ui32(3, 4294967294)), false); - assert_eq!(call!(gt_ui32(3, 4294967295)), false); - } - #[rewrite(main)] - #[test] - fn test_253() { - assert_eq!(call!(gt_ui32(4, 4)), false); - assert_eq!(call!(gt_ui32(4, 2119154652)), false); - assert_eq!(call!(gt_ui32(4, 3002788344)), false); - assert_eq!(call!(gt_ui32(4, 3482297128)), false); - assert_eq!(call!(gt_ui32(4, 4294967294)), false); - assert_eq!(call!(gt_ui32(4, 4294967295)), false); - assert_eq!(call!(gt_ui32(2119154652, 2119154652)), false); - assert_eq!(call!(gt_ui32(2119154652, 3002788344)), false); - assert_eq!(call!(gt_ui32(2119154652, 3482297128)), false); - assert_eq!(call!(gt_ui32(2119154652, 4294967294)), false); - } - #[rewrite(main)] - #[test] - fn test_254() { - assert_eq!(call!(gt_ui32(2119154652, 4294967295)), false); - assert_eq!(call!(gt_ui32(3002788344, 3002788344)), false); - assert_eq!(call!(gt_ui32(3002788344, 3482297128)), false); - assert_eq!(call!(gt_ui32(3002788344, 4294967294)), false); - assert_eq!(call!(gt_ui32(3002788344, 4294967295)), false); - assert_eq!(call!(gt_ui32(3482297128, 3482297128)), false); - assert_eq!(call!(gt_ui32(3482297128, 4294967294)), false); - assert_eq!(call!(gt_ui32(3482297128, 4294967295)), false); - assert_eq!(call!(gt_ui32(4294967294, 4294967294)), false); - assert_eq!(call!(gt_ui32(4294967294, 4294967295)), false); - } - #[rewrite(main)] - #[test] - fn test_255() { - assert_eq!(call!(gt_ui32(4294967295, 4294967295)), false); - assert_eq!(call!(gt_ui32(1, 0)), true); - assert_eq!(call!(gt_ui32(2, 0)), true); - assert_eq!(call!(gt_ui32(2, 1)), true); - assert_eq!(call!(gt_ui32(3, 0)), true); - assert_eq!(call!(gt_ui32(3, 1)), true); - assert_eq!(call!(gt_ui32(3, 2)), true); - assert_eq!(call!(gt_ui32(4, 0)), true); - assert_eq!(call!(gt_ui32(4, 1)), true); - assert_eq!(call!(gt_ui32(4, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_256() { - assert_eq!(call!(gt_ui32(4, 3)), true); - assert_eq!(call!(gt_ui32(2119154652, 0)), true); - assert_eq!(call!(gt_ui32(2119154652, 1)), true); - assert_eq!(call!(gt_ui32(2119154652, 2)), true); - assert_eq!(call!(gt_ui32(2119154652, 3)), true); - assert_eq!(call!(gt_ui32(2119154652, 4)), true); - assert_eq!(call!(gt_ui32(3002788344, 0)), true); - assert_eq!(call!(gt_ui32(3002788344, 1)), true); - assert_eq!(call!(gt_ui32(3002788344, 2)), true); - assert_eq!(call!(gt_ui32(3002788344, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_257() { - assert_eq!(call!(gt_ui32(3002788344, 4)), true); - assert_eq!(call!(gt_ui32(3002788344, 2119154652)), true); - assert_eq!(call!(gt_ui32(3482297128, 0)), true); - assert_eq!(call!(gt_ui32(3482297128, 1)), true); - assert_eq!(call!(gt_ui32(3482297128, 2)), true); - assert_eq!(call!(gt_ui32(3482297128, 3)), true); - assert_eq!(call!(gt_ui32(3482297128, 4)), true); - assert_eq!(call!(gt_ui32(3482297128, 2119154652)), true); - assert_eq!(call!(gt_ui32(3482297128, 3002788344)), true); - assert_eq!(call!(gt_ui32(4294967294, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_258() { - assert_eq!(call!(gt_ui32(4294967294, 1)), true); - assert_eq!(call!(gt_ui32(4294967294, 2)), true); - assert_eq!(call!(gt_ui32(4294967294, 3)), true); - assert_eq!(call!(gt_ui32(4294967294, 4)), true); - assert_eq!(call!(gt_ui32(4294967294, 2119154652)), true); - assert_eq!(call!(gt_ui32(4294967294, 3002788344)), true); - assert_eq!(call!(gt_ui32(4294967294, 3482297128)), true); - assert_eq!(call!(gt_ui32(4294967295, 0)), true); - assert_eq!(call!(gt_ui32(4294967295, 1)), true); - assert_eq!(call!(gt_ui32(4294967295, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_259() { - assert_eq!(call!(gt_ui32(4294967295, 3)), true); - assert_eq!(call!(gt_ui32(4294967295, 4)), true); - assert_eq!(call!(gt_ui32(4294967295, 2119154652)), true); - assert_eq!(call!(gt_ui32(4294967295, 3002788344)), true); - assert_eq!(call!(gt_ui32(4294967295, 3482297128)), true); - assert_eq!(call!(gt_ui32(4294967295, 4294967294)), true); - assert_eq!(call!(gt_ui64(0, 0)), false); - assert_eq!(call!(gt_ui64(0, 1)), false); - assert_eq!(call!(gt_ui64(0, 2)), false); - assert_eq!(call!(gt_ui64(0, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_260() { - assert_eq!(call!(gt_ui64(0, 4)), false); - assert_eq!(call!(gt_ui64(0, 191084152064409600)), false); - assert_eq!(call!(gt_ui64(0, 11015955194427482112)), false); - assert_eq!(call!(gt_ui64(0, 16990600415051759616)), false); - assert_eq!(call!(gt_ui64(0, 18446744073709551614)), false); - assert_eq!(call!(gt_ui64(0, 18446744073709551615)), false); - assert_eq!(call!(gt_ui64(1, 1)), false); - assert_eq!(call!(gt_ui64(1, 2)), false); - assert_eq!(call!(gt_ui64(1, 3)), false); - assert_eq!(call!(gt_ui64(1, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_261() { - assert_eq!(call!(gt_ui64(1, 191084152064409600)), false); - assert_eq!(call!(gt_ui64(1, 11015955194427482112)), false); - assert_eq!(call!(gt_ui64(1, 16990600415051759616)), false); - assert_eq!(call!(gt_ui64(1, 18446744073709551614)), false); - assert_eq!(call!(gt_ui64(1, 18446744073709551615)), false); - assert_eq!(call!(gt_ui64(2, 2)), false); - assert_eq!(call!(gt_ui64(2, 3)), false); - assert_eq!(call!(gt_ui64(2, 4)), false); - assert_eq!(call!(gt_ui64(2, 191084152064409600)), false); - assert_eq!(call!(gt_ui64(2, 11015955194427482112)), false); - } - #[rewrite(main)] - #[test] - fn test_262() { - assert_eq!(call!(gt_ui64(2, 16990600415051759616)), false); - assert_eq!(call!(gt_ui64(2, 18446744073709551614)), false); - assert_eq!(call!(gt_ui64(2, 18446744073709551615)), false); - assert_eq!(call!(gt_ui64(3, 3)), false); - assert_eq!(call!(gt_ui64(3, 4)), false); - assert_eq!(call!(gt_ui64(3, 191084152064409600)), false); - assert_eq!(call!(gt_ui64(3, 11015955194427482112)), false); - assert_eq!(call!(gt_ui64(3, 16990600415051759616)), false); - assert_eq!(call!(gt_ui64(3, 18446744073709551614)), false); - assert_eq!(call!(gt_ui64(3, 18446744073709551615)), false); - } - #[rewrite(main)] - #[test] - fn test_263() { - assert_eq!(call!(gt_ui64(4, 4)), false); - assert_eq!(call!(gt_ui64(4, 191084152064409600)), false); - assert_eq!(call!(gt_ui64(4, 11015955194427482112)), false); - assert_eq!(call!(gt_ui64(4, 16990600415051759616)), false); - assert_eq!(call!(gt_ui64(4, 18446744073709551614)), false); - assert_eq!(call!(gt_ui64(4, 18446744073709551615)), false); - assert_eq!(call!(gt_ui64(191084152064409600, 191084152064409600)), false); - assert_eq!(call!(gt_ui64(191084152064409600, 11015955194427482112)), false); - assert_eq!(call!(gt_ui64(191084152064409600, 16990600415051759616)), false); - assert_eq!(call!(gt_ui64(191084152064409600, 18446744073709551614)), false); - } - #[rewrite(main)] - #[test] - fn test_264() { - assert_eq!(call!(gt_ui64(191084152064409600, 18446744073709551615)), false); - assert_eq!(call!(gt_ui64(11015955194427482112, 11015955194427482112)), false); - assert_eq!(call!(gt_ui64(11015955194427482112, 16990600415051759616)), false); - assert_eq!(call!(gt_ui64(11015955194427482112, 18446744073709551614)), false); - assert_eq!(call!(gt_ui64(11015955194427482112, 18446744073709551615)), false); - assert_eq!(call!(gt_ui64(16990600415051759616, 16990600415051759616)), false); - assert_eq!(call!(gt_ui64(16990600415051759616, 18446744073709551614)), false); - assert_eq!(call!(gt_ui64(16990600415051759616, 18446744073709551615)), false); - assert_eq!(call!(gt_ui64(18446744073709551614, 18446744073709551614)), false); - assert_eq!(call!(gt_ui64(18446744073709551614, 18446744073709551615)), false); - } - #[rewrite(main)] - #[test] - fn test_265() { - assert_eq!(call!(gt_ui64(18446744073709551615, 18446744073709551615)), false); - assert_eq!(call!(gt_ui64(1, 0)), true); - assert_eq!(call!(gt_ui64(2, 0)), true); - assert_eq!(call!(gt_ui64(2, 1)), true); - assert_eq!(call!(gt_ui64(3, 0)), true); - assert_eq!(call!(gt_ui64(3, 1)), true); - assert_eq!(call!(gt_ui64(3, 2)), true); - assert_eq!(call!(gt_ui64(4, 0)), true); - assert_eq!(call!(gt_ui64(4, 1)), true); - assert_eq!(call!(gt_ui64(4, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_266() { - assert_eq!(call!(gt_ui64(4, 3)), true); - assert_eq!(call!(gt_ui64(191084152064409600, 0)), true); - assert_eq!(call!(gt_ui64(191084152064409600, 1)), true); - assert_eq!(call!(gt_ui64(191084152064409600, 2)), true); - assert_eq!(call!(gt_ui64(191084152064409600, 3)), true); - assert_eq!(call!(gt_ui64(191084152064409600, 4)), true); - assert_eq!(call!(gt_ui64(11015955194427482112, 0)), true); - assert_eq!(call!(gt_ui64(11015955194427482112, 1)), true); - assert_eq!(call!(gt_ui64(11015955194427482112, 2)), true); - assert_eq!(call!(gt_ui64(11015955194427482112, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_267() { - assert_eq!(call!(gt_ui64(11015955194427482112, 4)), true); - assert_eq!(call!(gt_ui64(11015955194427482112, 191084152064409600)), true); - assert_eq!(call!(gt_ui64(16990600415051759616, 0)), true); - assert_eq!(call!(gt_ui64(16990600415051759616, 1)), true); - assert_eq!(call!(gt_ui64(16990600415051759616, 2)), true); - assert_eq!(call!(gt_ui64(16990600415051759616, 3)), true); - assert_eq!(call!(gt_ui64(16990600415051759616, 4)), true); - assert_eq!(call!(gt_ui64(16990600415051759616, 191084152064409600)), true); - assert_eq!(call!(gt_ui64(16990600415051759616, 11015955194427482112)), true); - assert_eq!(call!(gt_ui64(18446744073709551614, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_268() { - assert_eq!(call!(gt_ui64(18446744073709551614, 1)), true); - assert_eq!(call!(gt_ui64(18446744073709551614, 2)), true); - assert_eq!(call!(gt_ui64(18446744073709551614, 3)), true); - assert_eq!(call!(gt_ui64(18446744073709551614, 4)), true); - assert_eq!(call!(gt_ui64(18446744073709551614, 191084152064409600)), true); - assert_eq!(call!(gt_ui64(18446744073709551614, 11015955194427482112)), true); - assert_eq!(call!(gt_ui64(18446744073709551614, 16990600415051759616)), true); - assert_eq!(call!(gt_ui64(18446744073709551615, 0)), true); - assert_eq!(call!(gt_ui64(18446744073709551615, 1)), true); - assert_eq!(call!(gt_ui64(18446744073709551615, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_269() { - assert_eq!(call!(gt_ui64(18446744073709551615, 3)), true); - assert_eq!(call!(gt_ui64(18446744073709551615, 4)), true); - assert_eq!(call!(gt_ui64(18446744073709551615, 191084152064409600)), true); - assert_eq!(call!(gt_ui64(18446744073709551615, 11015955194427482112)), true); - assert_eq!(call!(gt_ui64(18446744073709551615, 16990600415051759616)), true); - assert_eq!(call!(gt_ui64(18446744073709551615, 18446744073709551614)), true); - assert_eq!(call!(gt_ui8(0, 0)), false); - assert_eq!(call!(gt_ui8(0, 1)), false); - assert_eq!(call!(gt_ui8(0, 2)), false); - assert_eq!(call!(gt_ui8(0, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_270() { - assert_eq!(call!(gt_ui8(0, 4)), false); - assert_eq!(call!(gt_ui8(0, 72)), false); - assert_eq!(call!(gt_ui8(0, 100)), false); - assert_eq!(call!(gt_ui8(0, 162)), false); - assert_eq!(call!(gt_ui8(0, 254)), false); - assert_eq!(call!(gt_ui8(0, 255)), false); - assert_eq!(call!(gt_ui8(1, 1)), false); - assert_eq!(call!(gt_ui8(1, 2)), false); - assert_eq!(call!(gt_ui8(1, 3)), false); - assert_eq!(call!(gt_ui8(1, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_271() { - assert_eq!(call!(gt_ui8(1, 72)), false); - assert_eq!(call!(gt_ui8(1, 100)), false); - assert_eq!(call!(gt_ui8(1, 162)), false); - assert_eq!(call!(gt_ui8(1, 254)), false); - assert_eq!(call!(gt_ui8(1, 255)), false); - assert_eq!(call!(gt_ui8(2, 2)), false); - assert_eq!(call!(gt_ui8(2, 3)), false); - assert_eq!(call!(gt_ui8(2, 4)), false); - assert_eq!(call!(gt_ui8(2, 72)), false); - assert_eq!(call!(gt_ui8(2, 100)), false); - } - #[rewrite(main)] - #[test] - fn test_272() { - assert_eq!(call!(gt_ui8(2, 162)), false); - assert_eq!(call!(gt_ui8(2, 254)), false); - assert_eq!(call!(gt_ui8(2, 255)), false); - assert_eq!(call!(gt_ui8(3, 3)), false); - assert_eq!(call!(gt_ui8(3, 4)), false); - assert_eq!(call!(gt_ui8(3, 72)), false); - assert_eq!(call!(gt_ui8(3, 100)), false); - assert_eq!(call!(gt_ui8(3, 162)), false); - assert_eq!(call!(gt_ui8(3, 254)), false); - assert_eq!(call!(gt_ui8(3, 255)), false); - } - #[rewrite(main)] - #[test] - fn test_273() { - assert_eq!(call!(gt_ui8(4, 4)), false); - assert_eq!(call!(gt_ui8(4, 72)), false); - assert_eq!(call!(gt_ui8(4, 100)), false); - assert_eq!(call!(gt_ui8(4, 162)), false); - assert_eq!(call!(gt_ui8(4, 254)), false); - assert_eq!(call!(gt_ui8(4, 255)), false); - assert_eq!(call!(gt_ui8(72, 72)), false); - assert_eq!(call!(gt_ui8(72, 100)), false); - assert_eq!(call!(gt_ui8(72, 162)), false); - assert_eq!(call!(gt_ui8(72, 254)), false); - } - #[rewrite(main)] - #[test] - fn test_274() { - assert_eq!(call!(gt_ui8(72, 255)), false); - assert_eq!(call!(gt_ui8(100, 100)), false); - assert_eq!(call!(gt_ui8(100, 162)), false); - assert_eq!(call!(gt_ui8(100, 254)), false); - assert_eq!(call!(gt_ui8(100, 255)), false); - assert_eq!(call!(gt_ui8(162, 162)), false); - assert_eq!(call!(gt_ui8(162, 254)), false); - assert_eq!(call!(gt_ui8(162, 255)), false); - assert_eq!(call!(gt_ui8(254, 254)), false); - assert_eq!(call!(gt_ui8(254, 255)), false); - } - #[rewrite(main)] - #[test] - fn test_275() { - assert_eq!(call!(gt_ui8(255, 255)), false); - assert_eq!(call!(gt_ui8(1, 0)), true); - assert_eq!(call!(gt_ui8(2, 0)), true); - assert_eq!(call!(gt_ui8(2, 1)), true); - assert_eq!(call!(gt_ui8(3, 0)), true); - assert_eq!(call!(gt_ui8(3, 1)), true); - assert_eq!(call!(gt_ui8(3, 2)), true); - assert_eq!(call!(gt_ui8(4, 0)), true); - assert_eq!(call!(gt_ui8(4, 1)), true); - assert_eq!(call!(gt_ui8(4, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_276() { - assert_eq!(call!(gt_ui8(4, 3)), true); - assert_eq!(call!(gt_ui8(72, 0)), true); - assert_eq!(call!(gt_ui8(72, 1)), true); - assert_eq!(call!(gt_ui8(72, 2)), true); - assert_eq!(call!(gt_ui8(72, 3)), true); - assert_eq!(call!(gt_ui8(72, 4)), true); - assert_eq!(call!(gt_ui8(100, 0)), true); - assert_eq!(call!(gt_ui8(100, 1)), true); - assert_eq!(call!(gt_ui8(100, 2)), true); - assert_eq!(call!(gt_ui8(100, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_277() { - assert_eq!(call!(gt_ui8(100, 4)), true); - assert_eq!(call!(gt_ui8(100, 72)), true); - assert_eq!(call!(gt_ui8(162, 0)), true); - assert_eq!(call!(gt_ui8(162, 1)), true); - assert_eq!(call!(gt_ui8(162, 2)), true); - assert_eq!(call!(gt_ui8(162, 3)), true); - assert_eq!(call!(gt_ui8(162, 4)), true); - assert_eq!(call!(gt_ui8(162, 72)), true); - assert_eq!(call!(gt_ui8(162, 100)), true); - assert_eq!(call!(gt_ui8(254, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_278() { - assert_eq!(call!(gt_ui8(254, 1)), true); - assert_eq!(call!(gt_ui8(254, 2)), true); - assert_eq!(call!(gt_ui8(254, 3)), true); - assert_eq!(call!(gt_ui8(254, 4)), true); - assert_eq!(call!(gt_ui8(254, 72)), true); - assert_eq!(call!(gt_ui8(254, 100)), true); - assert_eq!(call!(gt_ui8(254, 162)), true); - assert_eq!(call!(gt_ui8(255, 0)), true); - assert_eq!(call!(gt_ui8(255, 1)), true); - assert_eq!(call!(gt_ui8(255, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_279() { - assert_eq!(call!(gt_ui8(255, 3)), true); - assert_eq!(call!(gt_ui8(255, 4)), true); - assert_eq!(call!(gt_ui8(255, 72)), true); - assert_eq!(call!(gt_ui8(255, 100)), true); - assert_eq!(call!(gt_ui8(255, 162)), true); - assert_eq!(call!(gt_ui8(255, 254)), true); - assert_eq!(call!(le_si16(-32767, -32768)), false); - assert_eq!(call!(le_si16(-32547, -32768)), false); - assert_eq!(call!(le_si16(-32547, -32767)), false); - assert_eq!(call!(le_si16(0, -32768)), false); - } - #[rewrite(main)] - #[test] - fn test_280() { - assert_eq!(call!(le_si16(0, -32767)), false); - assert_eq!(call!(le_si16(0, -32547)), false); - assert_eq!(call!(le_si16(1, -32768)), false); - assert_eq!(call!(le_si16(1, -32767)), false); - assert_eq!(call!(le_si16(1, -32547)), false); - assert_eq!(call!(le_si16(1, 0)), false); - assert_eq!(call!(le_si16(2, -32768)), false); - assert_eq!(call!(le_si16(2, -32767)), false); - assert_eq!(call!(le_si16(2, -32547)), false); - assert_eq!(call!(le_si16(2, 0)), false); - } - #[rewrite(main)] - #[test] - fn test_281() { - assert_eq!(call!(le_si16(2, 1)), false); - assert_eq!(call!(le_si16(3, -32768)), false); - assert_eq!(call!(le_si16(3, -32767)), false); - assert_eq!(call!(le_si16(3, -32547)), false); - assert_eq!(call!(le_si16(3, 0)), false); - assert_eq!(call!(le_si16(3, 1)), false); - assert_eq!(call!(le_si16(3, 2)), false); - assert_eq!(call!(le_si16(4, -32768)), false); - assert_eq!(call!(le_si16(4, -32767)), false); - assert_eq!(call!(le_si16(4, -32547)), false); - } - #[rewrite(main)] - #[test] - fn test_282() { - assert_eq!(call!(le_si16(4, 0)), false); - assert_eq!(call!(le_si16(4, 1)), false); - assert_eq!(call!(le_si16(4, 2)), false); - assert_eq!(call!(le_si16(4, 3)), false); - assert_eq!(call!(le_si16(10486, -32768)), false); - assert_eq!(call!(le_si16(10486, -32767)), false); - assert_eq!(call!(le_si16(10486, -32547)), false); - assert_eq!(call!(le_si16(10486, 0)), false); - assert_eq!(call!(le_si16(10486, 1)), false); - assert_eq!(call!(le_si16(10486, 2)), false); - } - #[rewrite(main)] - #[test] - fn test_283() { - assert_eq!(call!(le_si16(10486, 3)), false); - assert_eq!(call!(le_si16(10486, 4)), false); - assert_eq!(call!(le_si16(16514, -32768)), false); - assert_eq!(call!(le_si16(16514, -32767)), false); - assert_eq!(call!(le_si16(16514, -32547)), false); - assert_eq!(call!(le_si16(16514, 0)), false); - assert_eq!(call!(le_si16(16514, 1)), false); - assert_eq!(call!(le_si16(16514, 2)), false); - assert_eq!(call!(le_si16(16514, 3)), false); - assert_eq!(call!(le_si16(16514, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_284() { - assert_eq!(call!(le_si16(16514, 10486)), false); - assert_eq!(call!(le_si16(32766, -32768)), false); - assert_eq!(call!(le_si16(32766, -32767)), false); - assert_eq!(call!(le_si16(32766, -32547)), false); - assert_eq!(call!(le_si16(32766, 0)), false); - assert_eq!(call!(le_si16(32766, 1)), false); - assert_eq!(call!(le_si16(32766, 2)), false); - assert_eq!(call!(le_si16(32766, 3)), false); - assert_eq!(call!(le_si16(32766, 4)), false); - assert_eq!(call!(le_si16(32766, 10486)), false); - } - #[rewrite(main)] - #[test] - fn test_285() { - assert_eq!(call!(le_si16(32766, 16514)), false); - assert_eq!(call!(le_si16(32767, -32768)), false); - assert_eq!(call!(le_si16(32767, -32767)), false); - assert_eq!(call!(le_si16(32767, -32547)), false); - assert_eq!(call!(le_si16(32767, 0)), false); - assert_eq!(call!(le_si16(32767, 1)), false); - assert_eq!(call!(le_si16(32767, 2)), false); - assert_eq!(call!(le_si16(32767, 3)), false); - assert_eq!(call!(le_si16(32767, 4)), false); - assert_eq!(call!(le_si16(32767, 10486)), false); - } - #[rewrite(main)] - #[test] - fn test_286() { - assert_eq!(call!(le_si16(32767, 16514)), false); - assert_eq!(call!(le_si16(32767, 32766)), false); - assert_eq!(call!(le_si16(-32768, -32768)), true); - assert_eq!(call!(le_si16(-32768, -32767)), true); - assert_eq!(call!(le_si16(-32768, -32547)), true); - assert_eq!(call!(le_si16(-32768, 0)), true); - assert_eq!(call!(le_si16(-32768, 1)), true); - assert_eq!(call!(le_si16(-32768, 2)), true); - assert_eq!(call!(le_si16(-32768, 3)), true); - assert_eq!(call!(le_si16(-32768, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_287() { - assert_eq!(call!(le_si16(-32768, 10486)), true); - assert_eq!(call!(le_si16(-32768, 16514)), true); - assert_eq!(call!(le_si16(-32768, 32766)), true); - assert_eq!(call!(le_si16(-32768, 32767)), true); - assert_eq!(call!(le_si16(-32767, -32767)), true); - assert_eq!(call!(le_si16(-32767, -32547)), true); - assert_eq!(call!(le_si16(-32767, 0)), true); - assert_eq!(call!(le_si16(-32767, 1)), true); - assert_eq!(call!(le_si16(-32767, 2)), true); - assert_eq!(call!(le_si16(-32767, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_288() { - assert_eq!(call!(le_si16(-32767, 4)), true); - assert_eq!(call!(le_si16(-32767, 10486)), true); - assert_eq!(call!(le_si16(-32767, 16514)), true); - assert_eq!(call!(le_si16(-32767, 32766)), true); - assert_eq!(call!(le_si16(-32767, 32767)), true); - assert_eq!(call!(le_si16(-32547, -32547)), true); - assert_eq!(call!(le_si16(-32547, 0)), true); - assert_eq!(call!(le_si16(-32547, 1)), true); - assert_eq!(call!(le_si16(-32547, 2)), true); - assert_eq!(call!(le_si16(-32547, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_289() { - assert_eq!(call!(le_si16(-32547, 4)), true); - assert_eq!(call!(le_si16(-32547, 10486)), true); - assert_eq!(call!(le_si16(-32547, 16514)), true); - assert_eq!(call!(le_si16(-32547, 32766)), true); - assert_eq!(call!(le_si16(-32547, 32767)), true); - assert_eq!(call!(le_si16(0, 0)), true); - assert_eq!(call!(le_si16(0, 1)), true); - assert_eq!(call!(le_si16(0, 2)), true); - assert_eq!(call!(le_si16(0, 3)), true); - assert_eq!(call!(le_si16(0, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_290() { - assert_eq!(call!(le_si16(0, 10486)), true); - assert_eq!(call!(le_si16(0, 16514)), true); - assert_eq!(call!(le_si16(0, 32766)), true); - assert_eq!(call!(le_si16(0, 32767)), true); - assert_eq!(call!(le_si16(1, 1)), true); - assert_eq!(call!(le_si16(1, 2)), true); - assert_eq!(call!(le_si16(1, 3)), true); - assert_eq!(call!(le_si16(1, 4)), true); - assert_eq!(call!(le_si16(1, 10486)), true); - assert_eq!(call!(le_si16(1, 16514)), true); - } - #[rewrite(main)] - #[test] - fn test_291() { - assert_eq!(call!(le_si16(1, 32766)), true); - assert_eq!(call!(le_si16(1, 32767)), true); - assert_eq!(call!(le_si16(2, 2)), true); - assert_eq!(call!(le_si16(2, 3)), true); - assert_eq!(call!(le_si16(2, 4)), true); - assert_eq!(call!(le_si16(2, 10486)), true); - assert_eq!(call!(le_si16(2, 16514)), true); - assert_eq!(call!(le_si16(2, 32766)), true); - assert_eq!(call!(le_si16(2, 32767)), true); - assert_eq!(call!(le_si16(3, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_292() { - assert_eq!(call!(le_si16(3, 4)), true); - assert_eq!(call!(le_si16(3, 10486)), true); - assert_eq!(call!(le_si16(3, 16514)), true); - assert_eq!(call!(le_si16(3, 32766)), true); - assert_eq!(call!(le_si16(3, 32767)), true); - assert_eq!(call!(le_si16(4, 4)), true); - assert_eq!(call!(le_si16(4, 10486)), true); - assert_eq!(call!(le_si16(4, 16514)), true); - assert_eq!(call!(le_si16(4, 32766)), true); - assert_eq!(call!(le_si16(4, 32767)), true); - } - #[rewrite(main)] - #[test] - fn test_293() { - assert_eq!(call!(le_si16(10486, 10486)), true); - assert_eq!(call!(le_si16(10486, 16514)), true); - assert_eq!(call!(le_si16(10486, 32766)), true); - assert_eq!(call!(le_si16(10486, 32767)), true); - assert_eq!(call!(le_si16(16514, 16514)), true); - assert_eq!(call!(le_si16(16514, 32766)), true); - assert_eq!(call!(le_si16(16514, 32767)), true); - assert_eq!(call!(le_si16(32766, 32766)), true); - assert_eq!(call!(le_si16(32766, 32767)), true); - assert_eq!(call!(le_si16(32767, 32767)), true); - } - #[rewrite(main)] - #[test] - fn test_294() { - assert_eq!(call!(le_si32(-2147483647, -2147483648)), false); - assert_eq!(call!(le_si32(-1713183800, -2147483648)), false); - assert_eq!(call!(le_si32(-1713183800, -2147483647)), false); - assert_eq!(call!(le_si32(-1252582164, -2147483648)), false); - assert_eq!(call!(le_si32(-1252582164, -2147483647)), false); - assert_eq!(call!(le_si32(-1252582164, -1713183800)), false); - assert_eq!(call!(le_si32(-1035405763, -2147483648)), false); - assert_eq!(call!(le_si32(-1035405763, -2147483647)), false); - assert_eq!(call!(le_si32(-1035405763, -1713183800)), false); - assert_eq!(call!(le_si32(-1035405763, -1252582164)), false); - } - #[rewrite(main)] - #[test] - fn test_295() { - assert_eq!(call!(le_si32(0, -2147483648)), false); - assert_eq!(call!(le_si32(0, -2147483647)), false); - assert_eq!(call!(le_si32(0, -1713183800)), false); - assert_eq!(call!(le_si32(0, -1252582164)), false); - assert_eq!(call!(le_si32(0, -1035405763)), false); - assert_eq!(call!(le_si32(1, -2147483648)), false); - assert_eq!(call!(le_si32(1, -2147483647)), false); - assert_eq!(call!(le_si32(1, -1713183800)), false); - assert_eq!(call!(le_si32(1, -1252582164)), false); - assert_eq!(call!(le_si32(1, -1035405763)), false); - } - #[rewrite(main)] - #[test] - fn test_296() { - assert_eq!(call!(le_si32(1, 0)), false); - assert_eq!(call!(le_si32(2, -2147483648)), false); - assert_eq!(call!(le_si32(2, -2147483647)), false); - assert_eq!(call!(le_si32(2, -1713183800)), false); - assert_eq!(call!(le_si32(2, -1252582164)), false); - assert_eq!(call!(le_si32(2, -1035405763)), false); - assert_eq!(call!(le_si32(2, 0)), false); - assert_eq!(call!(le_si32(2, 1)), false); - assert_eq!(call!(le_si32(3, -2147483648)), false); - assert_eq!(call!(le_si32(3, -2147483647)), false); - } - #[rewrite(main)] - #[test] - fn test_297() { - assert_eq!(call!(le_si32(3, -1713183800)), false); - assert_eq!(call!(le_si32(3, -1252582164)), false); - assert_eq!(call!(le_si32(3, -1035405763)), false); - assert_eq!(call!(le_si32(3, 0)), false); - assert_eq!(call!(le_si32(3, 1)), false); - assert_eq!(call!(le_si32(3, 2)), false); - assert_eq!(call!(le_si32(4, -2147483648)), false); - assert_eq!(call!(le_si32(4, -2147483647)), false); - assert_eq!(call!(le_si32(4, -1713183800)), false); - assert_eq!(call!(le_si32(4, -1252582164)), false); - } - #[rewrite(main)] - #[test] - fn test_298() { - assert_eq!(call!(le_si32(4, -1035405763)), false); - assert_eq!(call!(le_si32(4, 0)), false); - assert_eq!(call!(le_si32(4, 1)), false); - assert_eq!(call!(le_si32(4, 2)), false); - assert_eq!(call!(le_si32(4, 3)), false); - assert_eq!(call!(le_si32(2147483646, -2147483648)), false); - assert_eq!(call!(le_si32(2147483646, -2147483647)), false); - assert_eq!(call!(le_si32(2147483646, -1713183800)), false); - assert_eq!(call!(le_si32(2147483646, -1252582164)), false); - assert_eq!(call!(le_si32(2147483646, -1035405763)), false); - } - #[rewrite(main)] - #[test] - fn test_299() { - assert_eq!(call!(le_si32(2147483646, 0)), false); - assert_eq!(call!(le_si32(2147483646, 1)), false); - assert_eq!(call!(le_si32(2147483646, 2)), false); - assert_eq!(call!(le_si32(2147483646, 3)), false); - assert_eq!(call!(le_si32(2147483646, 4)), false); - assert_eq!(call!(le_si32(2147483647, -2147483648)), false); - assert_eq!(call!(le_si32(2147483647, -2147483647)), false); - assert_eq!(call!(le_si32(2147483647, -1713183800)), false); - assert_eq!(call!(le_si32(2147483647, -1252582164)), false); - assert_eq!(call!(le_si32(2147483647, -1035405763)), false); - } - #[rewrite(main)] - #[test] - fn test_300() { - assert_eq!(call!(le_si32(2147483647, 0)), false); - assert_eq!(call!(le_si32(2147483647, 1)), false); - assert_eq!(call!(le_si32(2147483647, 2)), false); - assert_eq!(call!(le_si32(2147483647, 3)), false); - assert_eq!(call!(le_si32(2147483647, 4)), false); - assert_eq!(call!(le_si32(2147483647, 2147483646)), false); - assert_eq!(call!(le_si32(-2147483648, -2147483648)), true); - assert_eq!(call!(le_si32(-2147483648, -2147483647)), true); - assert_eq!(call!(le_si32(-2147483648, -1713183800)), true); - assert_eq!(call!(le_si32(-2147483648, -1252582164)), true); - } - #[rewrite(main)] - #[test] - fn test_301() { - assert_eq!(call!(le_si32(-2147483648, -1035405763)), true); - assert_eq!(call!(le_si32(-2147483648, 0)), true); - assert_eq!(call!(le_si32(-2147483648, 1)), true); - assert_eq!(call!(le_si32(-2147483648, 2)), true); - assert_eq!(call!(le_si32(-2147483648, 3)), true); - assert_eq!(call!(le_si32(-2147483648, 4)), true); - assert_eq!(call!(le_si32(-2147483648, 2147483646)), true); - assert_eq!(call!(le_si32(-2147483648, 2147483647)), true); - assert_eq!(call!(le_si32(-2147483647, -2147483647)), true); - assert_eq!(call!(le_si32(-2147483647, -1713183800)), true); - } - #[rewrite(main)] - #[test] - fn test_302() { - assert_eq!(call!(le_si32(-2147483647, -1252582164)), true); - assert_eq!(call!(le_si32(-2147483647, -1035405763)), true); - assert_eq!(call!(le_si32(-2147483647, 0)), true); - assert_eq!(call!(le_si32(-2147483647, 1)), true); - assert_eq!(call!(le_si32(-2147483647, 2)), true); - assert_eq!(call!(le_si32(-2147483647, 3)), true); - assert_eq!(call!(le_si32(-2147483647, 4)), true); - assert_eq!(call!(le_si32(-2147483647, 2147483646)), true); - assert_eq!(call!(le_si32(-2147483647, 2147483647)), true); - assert_eq!(call!(le_si32(-1713183800, -1713183800)), true); - } - #[rewrite(main)] - #[test] - fn test_303() { - assert_eq!(call!(le_si32(-1713183800, -1252582164)), true); - assert_eq!(call!(le_si32(-1713183800, -1035405763)), true); - assert_eq!(call!(le_si32(-1713183800, 0)), true); - assert_eq!(call!(le_si32(-1713183800, 1)), true); - assert_eq!(call!(le_si32(-1713183800, 2)), true); - assert_eq!(call!(le_si32(-1713183800, 3)), true); - assert_eq!(call!(le_si32(-1713183800, 4)), true); - assert_eq!(call!(le_si32(-1713183800, 2147483646)), true); - assert_eq!(call!(le_si32(-1713183800, 2147483647)), true); - assert_eq!(call!(le_si32(-1252582164, -1252582164)), true); - } - #[rewrite(main)] - #[test] - fn test_304() { - assert_eq!(call!(le_si32(-1252582164, -1035405763)), true); - assert_eq!(call!(le_si32(-1252582164, 0)), true); - assert_eq!(call!(le_si32(-1252582164, 1)), true); - assert_eq!(call!(le_si32(-1252582164, 2)), true); - assert_eq!(call!(le_si32(-1252582164, 3)), true); - assert_eq!(call!(le_si32(-1252582164, 4)), true); - assert_eq!(call!(le_si32(-1252582164, 2147483646)), true); - assert_eq!(call!(le_si32(-1252582164, 2147483647)), true); - assert_eq!(call!(le_si32(-1035405763, -1035405763)), true); - assert_eq!(call!(le_si32(-1035405763, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_305() { - assert_eq!(call!(le_si32(-1035405763, 1)), true); - assert_eq!(call!(le_si32(-1035405763, 2)), true); - assert_eq!(call!(le_si32(-1035405763, 3)), true); - assert_eq!(call!(le_si32(-1035405763, 4)), true); - assert_eq!(call!(le_si32(-1035405763, 2147483646)), true); - assert_eq!(call!(le_si32(-1035405763, 2147483647)), true); - assert_eq!(call!(le_si32(0, 0)), true); - assert_eq!(call!(le_si32(0, 1)), true); - assert_eq!(call!(le_si32(0, 2)), true); - assert_eq!(call!(le_si32(0, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_306() { - assert_eq!(call!(le_si32(0, 4)), true); - assert_eq!(call!(le_si32(0, 2147483646)), true); - assert_eq!(call!(le_si32(0, 2147483647)), true); - assert_eq!(call!(le_si32(1, 1)), true); - assert_eq!(call!(le_si32(1, 2)), true); - assert_eq!(call!(le_si32(1, 3)), true); - assert_eq!(call!(le_si32(1, 4)), true); - assert_eq!(call!(le_si32(1, 2147483646)), true); - assert_eq!(call!(le_si32(1, 2147483647)), true); - assert_eq!(call!(le_si32(2, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_307() { - assert_eq!(call!(le_si32(2, 3)), true); - assert_eq!(call!(le_si32(2, 4)), true); - assert_eq!(call!(le_si32(2, 2147483646)), true); - assert_eq!(call!(le_si32(2, 2147483647)), true); - assert_eq!(call!(le_si32(3, 3)), true); - assert_eq!(call!(le_si32(3, 4)), true); - assert_eq!(call!(le_si32(3, 2147483646)), true); - assert_eq!(call!(le_si32(3, 2147483647)), true); - assert_eq!(call!(le_si32(4, 4)), true); - assert_eq!(call!(le_si32(4, 2147483646)), true); - } - #[rewrite(main)] - #[test] - fn test_308() { - assert_eq!(call!(le_si32(4, 2147483647)), true); - assert_eq!(call!(le_si32(2147483646, 2147483646)), true); - assert_eq!(call!(le_si32(2147483646, 2147483647)), true); - assert_eq!(call!(le_si32(2147483647, 2147483647)), true); - assert_eq!(call!(le_si64(-9223372036854775807, -9223372036854775808)), false); - assert_eq!(call!(le_si64(-1741927215160008704, -9223372036854775808)), false); - assert_eq!(call!(le_si64(-1741927215160008704, -9223372036854775807)), false); - assert_eq!(call!(le_si64(-1328271339354574848, -9223372036854775808)), false); - assert_eq!(call!(le_si64(-1328271339354574848, -9223372036854775807)), false); - assert_eq!(call!(le_si64(-1328271339354574848, -1741927215160008704)), false); - } - #[rewrite(main)] - #[test] - fn test_309() { - assert_eq!(call!(le_si64(0, -9223372036854775808)), false); - assert_eq!(call!(le_si64(0, -9223372036854775807)), false); - assert_eq!(call!(le_si64(0, -1741927215160008704)), false); - assert_eq!(call!(le_si64(0, -1328271339354574848)), false); - assert_eq!(call!(le_si64(1, -9223372036854775808)), false); - assert_eq!(call!(le_si64(1, -9223372036854775807)), false); - assert_eq!(call!(le_si64(1, -1741927215160008704)), false); - assert_eq!(call!(le_si64(1, -1328271339354574848)), false); - assert_eq!(call!(le_si64(1, 0)), false); - assert_eq!(call!(le_si64(2, -9223372036854775808)), false); - } - #[rewrite(main)] - #[test] - fn test_310() { - assert_eq!(call!(le_si64(2, -9223372036854775807)), false); - assert_eq!(call!(le_si64(2, -1741927215160008704)), false); - assert_eq!(call!(le_si64(2, -1328271339354574848)), false); - assert_eq!(call!(le_si64(2, 0)), false); - assert_eq!(call!(le_si64(2, 1)), false); - assert_eq!(call!(le_si64(3, -9223372036854775808)), false); - assert_eq!(call!(le_si64(3, -9223372036854775807)), false); - assert_eq!(call!(le_si64(3, -1741927215160008704)), false); - assert_eq!(call!(le_si64(3, -1328271339354574848)), false); - assert_eq!(call!(le_si64(3, 0)), false); - } - #[rewrite(main)] - #[test] - fn test_311() { - assert_eq!(call!(le_si64(3, 1)), false); - assert_eq!(call!(le_si64(3, 2)), false); - assert_eq!(call!(le_si64(4, -9223372036854775808)), false); - assert_eq!(call!(le_si64(4, -9223372036854775807)), false); - assert_eq!(call!(le_si64(4, -1741927215160008704)), false); - assert_eq!(call!(le_si64(4, -1328271339354574848)), false); - assert_eq!(call!(le_si64(4, 0)), false); - assert_eq!(call!(le_si64(4, 1)), false); - assert_eq!(call!(le_si64(4, 2)), false); - assert_eq!(call!(le_si64(4, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_312() { - assert_eq!(call!(le_si64(5577148965131116544, -9223372036854775808)), false); - assert_eq!(call!(le_si64(5577148965131116544, -9223372036854775807)), false); - assert_eq!(call!(le_si64(5577148965131116544, -1741927215160008704)), false); - assert_eq!(call!(le_si64(5577148965131116544, -1328271339354574848)), false); - assert_eq!(call!(le_si64(5577148965131116544, 0)), false); - assert_eq!(call!(le_si64(5577148965131116544, 1)), false); - assert_eq!(call!(le_si64(5577148965131116544, 2)), false); - assert_eq!(call!(le_si64(5577148965131116544, 3)), false); - assert_eq!(call!(le_si64(5577148965131116544, 4)), false); - assert_eq!(call!(le_si64(9223372036854775806, -9223372036854775808)), false); - } - #[rewrite(main)] - #[test] - fn test_313() { - assert_eq!(call!(le_si64(9223372036854775806, -9223372036854775807)), false); - assert_eq!(call!(le_si64(9223372036854775806, -1741927215160008704)), false); - assert_eq!(call!(le_si64(9223372036854775806, -1328271339354574848)), false); - assert_eq!(call!(le_si64(9223372036854775806, 0)), false); - assert_eq!(call!(le_si64(9223372036854775806, 1)), false); - assert_eq!(call!(le_si64(9223372036854775806, 2)), false); - assert_eq!(call!(le_si64(9223372036854775806, 3)), false); - assert_eq!(call!(le_si64(9223372036854775806, 4)), false); - assert_eq!(call!(le_si64(9223372036854775806, 5577148965131116544)), false); - assert_eq!(call!(le_si64(9223372036854775807, -9223372036854775808)), false); - } - #[rewrite(main)] - #[test] - fn test_314() { - assert_eq!(call!(le_si64(9223372036854775807, -9223372036854775807)), false); - assert_eq!(call!(le_si64(9223372036854775807, -1741927215160008704)), false); - assert_eq!(call!(le_si64(9223372036854775807, -1328271339354574848)), false); - assert_eq!(call!(le_si64(9223372036854775807, 0)), false); - assert_eq!(call!(le_si64(9223372036854775807, 1)), false); - assert_eq!(call!(le_si64(9223372036854775807, 2)), false); - assert_eq!(call!(le_si64(9223372036854775807, 3)), false); - assert_eq!(call!(le_si64(9223372036854775807, 4)), false); - assert_eq!(call!(le_si64(9223372036854775807, 5577148965131116544)), false); - assert_eq!(call!(le_si64(9223372036854775807, 9223372036854775806)), false); - } - #[rewrite(main)] - #[test] - fn test_315() { - assert_eq!(call!(le_si64(-9223372036854775808, -9223372036854775808)), true); - assert_eq!(call!(le_si64(-9223372036854775808, -9223372036854775807)), true); - assert_eq!(call!(le_si64(-9223372036854775808, -1741927215160008704)), true); - assert_eq!(call!(le_si64(-9223372036854775808, -1328271339354574848)), true); - assert_eq!(call!(le_si64(-9223372036854775808, 0)), true); - assert_eq!(call!(le_si64(-9223372036854775808, 1)), true); - assert_eq!(call!(le_si64(-9223372036854775808, 2)), true); - assert_eq!(call!(le_si64(-9223372036854775808, 3)), true); - assert_eq!(call!(le_si64(-9223372036854775808, 4)), true); - assert_eq!(call!(le_si64(-9223372036854775808, 5577148965131116544)), true); - } - #[rewrite(main)] - #[test] - fn test_316() { - assert_eq!(call!(le_si64(-9223372036854775808, 9223372036854775806)), true); - assert_eq!(call!(le_si64(-9223372036854775808, 9223372036854775807)), true); - assert_eq!(call!(le_si64(-9223372036854775807, -9223372036854775807)), true); - assert_eq!(call!(le_si64(-9223372036854775807, -1741927215160008704)), true); - assert_eq!(call!(le_si64(-9223372036854775807, -1328271339354574848)), true); - assert_eq!(call!(le_si64(-9223372036854775807, 0)), true); - assert_eq!(call!(le_si64(-9223372036854775807, 1)), true); - assert_eq!(call!(le_si64(-9223372036854775807, 2)), true); - assert_eq!(call!(le_si64(-9223372036854775807, 3)), true); - assert_eq!(call!(le_si64(-9223372036854775807, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_317() { - assert_eq!(call!(le_si64(-9223372036854775807, 5577148965131116544)), true); - assert_eq!(call!(le_si64(-9223372036854775807, 9223372036854775806)), true); - assert_eq!(call!(le_si64(-9223372036854775807, 9223372036854775807)), true); - assert_eq!(call!(le_si64(-1741927215160008704, -1741927215160008704)), true); - assert_eq!(call!(le_si64(-1741927215160008704, -1328271339354574848)), true); - assert_eq!(call!(le_si64(-1741927215160008704, 0)), true); - assert_eq!(call!(le_si64(-1741927215160008704, 1)), true); - assert_eq!(call!(le_si64(-1741927215160008704, 2)), true); - assert_eq!(call!(le_si64(-1741927215160008704, 3)), true); - assert_eq!(call!(le_si64(-1741927215160008704, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_318() { - assert_eq!(call!(le_si64(-1741927215160008704, 5577148965131116544)), true); - assert_eq!(call!(le_si64(-1741927215160008704, 9223372036854775806)), true); - assert_eq!(call!(le_si64(-1741927215160008704, 9223372036854775807)), true); - assert_eq!(call!(le_si64(-1328271339354574848, -1328271339354574848)), true); - assert_eq!(call!(le_si64(-1328271339354574848, 0)), true); - assert_eq!(call!(le_si64(-1328271339354574848, 1)), true); - assert_eq!(call!(le_si64(-1328271339354574848, 2)), true); - assert_eq!(call!(le_si64(-1328271339354574848, 3)), true); - assert_eq!(call!(le_si64(-1328271339354574848, 4)), true); - assert_eq!(call!(le_si64(-1328271339354574848, 5577148965131116544)), true); - } - #[rewrite(main)] - #[test] - fn test_319() { - assert_eq!(call!(le_si64(-1328271339354574848, 9223372036854775806)), true); - assert_eq!(call!(le_si64(-1328271339354574848, 9223372036854775807)), true); - assert_eq!(call!(le_si64(0, 0)), true); - assert_eq!(call!(le_si64(0, 1)), true); - assert_eq!(call!(le_si64(0, 2)), true); - assert_eq!(call!(le_si64(0, 3)), true); - assert_eq!(call!(le_si64(0, 4)), true); - assert_eq!(call!(le_si64(0, 5577148965131116544)), true); - assert_eq!(call!(le_si64(0, 9223372036854775806)), true); - assert_eq!(call!(le_si64(0, 9223372036854775807)), true); - } - #[rewrite(main)] - #[test] - fn test_320() { - assert_eq!(call!(le_si64(1, 1)), true); - assert_eq!(call!(le_si64(1, 2)), true); - assert_eq!(call!(le_si64(1, 3)), true); - assert_eq!(call!(le_si64(1, 4)), true); - assert_eq!(call!(le_si64(1, 5577148965131116544)), true); - assert_eq!(call!(le_si64(1, 9223372036854775806)), true); - assert_eq!(call!(le_si64(1, 9223372036854775807)), true); - assert_eq!(call!(le_si64(2, 2)), true); - assert_eq!(call!(le_si64(2, 3)), true); - assert_eq!(call!(le_si64(2, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_321() { - assert_eq!(call!(le_si64(2, 5577148965131116544)), true); - assert_eq!(call!(le_si64(2, 9223372036854775806)), true); - assert_eq!(call!(le_si64(2, 9223372036854775807)), true); - assert_eq!(call!(le_si64(3, 3)), true); - assert_eq!(call!(le_si64(3, 4)), true); - assert_eq!(call!(le_si64(3, 5577148965131116544)), true); - assert_eq!(call!(le_si64(3, 9223372036854775806)), true); - assert_eq!(call!(le_si64(3, 9223372036854775807)), true); - assert_eq!(call!(le_si64(4, 4)), true); - assert_eq!(call!(le_si64(4, 5577148965131116544)), true); - } - #[rewrite(main)] - #[test] - fn test_322() { - assert_eq!(call!(le_si64(4, 9223372036854775806)), true); - assert_eq!(call!(le_si64(4, 9223372036854775807)), true); - assert_eq!(call!(le_si64(5577148965131116544, 5577148965131116544)), true); - assert_eq!(call!(le_si64(5577148965131116544, 9223372036854775806)), true); - assert_eq!(call!(le_si64(5577148965131116544, 9223372036854775807)), true); - assert_eq!(call!(le_si64(9223372036854775806, 9223372036854775806)), true); - assert_eq!(call!(le_si64(9223372036854775806, 9223372036854775807)), true); - assert_eq!(call!(le_si64(9223372036854775807, 9223372036854775807)), true); - assert_eq!(call!(le_si8(-127, -128)), false); - assert_eq!(call!(le_si8(0, -128)), false); - } - #[rewrite(main)] - #[test] - fn test_323() { - assert_eq!(call!(le_si8(0, -127)), false); - assert_eq!(call!(le_si8(1, -128)), false); - assert_eq!(call!(le_si8(1, -127)), false); - assert_eq!(call!(le_si8(1, 0)), false); - assert_eq!(call!(le_si8(2, -128)), false); - assert_eq!(call!(le_si8(2, -127)), false); - assert_eq!(call!(le_si8(2, 0)), false); - assert_eq!(call!(le_si8(2, 1)), false); - assert_eq!(call!(le_si8(3, -128)), false); - assert_eq!(call!(le_si8(3, -127)), false); - } - #[rewrite(main)] - #[test] - fn test_324() { - assert_eq!(call!(le_si8(3, 0)), false); - assert_eq!(call!(le_si8(3, 1)), false); - assert_eq!(call!(le_si8(3, 2)), false); - assert_eq!(call!(le_si8(4, -128)), false); - assert_eq!(call!(le_si8(4, -127)), false); - assert_eq!(call!(le_si8(4, 0)), false); - assert_eq!(call!(le_si8(4, 1)), false); - assert_eq!(call!(le_si8(4, 2)), false); - assert_eq!(call!(le_si8(4, 3)), false); - assert_eq!(call!(le_si8(16, -128)), false); - } - #[rewrite(main)] - #[test] - fn test_325() { - assert_eq!(call!(le_si8(16, -127)), false); - assert_eq!(call!(le_si8(16, 0)), false); - assert_eq!(call!(le_si8(16, 1)), false); - assert_eq!(call!(le_si8(16, 2)), false); - assert_eq!(call!(le_si8(16, 3)), false); - assert_eq!(call!(le_si8(16, 4)), false); - assert_eq!(call!(le_si8(126, -128)), false); - assert_eq!(call!(le_si8(126, -127)), false); - assert_eq!(call!(le_si8(126, 0)), false); - assert_eq!(call!(le_si8(126, 1)), false); - } - #[rewrite(main)] - #[test] - fn test_326() { - assert_eq!(call!(le_si8(126, 2)), false); - assert_eq!(call!(le_si8(126, 3)), false); - assert_eq!(call!(le_si8(126, 4)), false); - assert_eq!(call!(le_si8(126, 16)), false); - assert_eq!(call!(le_si8(127, -128)), false); - assert_eq!(call!(le_si8(127, -127)), false); - assert_eq!(call!(le_si8(127, 0)), false); - assert_eq!(call!(le_si8(127, 1)), false); - assert_eq!(call!(le_si8(127, 2)), false); - assert_eq!(call!(le_si8(127, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_327() { - assert_eq!(call!(le_si8(127, 4)), false); - assert_eq!(call!(le_si8(127, 16)), false); - assert_eq!(call!(le_si8(127, 126)), false); - assert_eq!(call!(le_si8(-128, -128)), true); - assert_eq!(call!(le_si8(-128, -127)), true); - assert_eq!(call!(le_si8(-128, 0)), true); - assert_eq!(call!(le_si8(-128, 1)), true); - assert_eq!(call!(le_si8(-128, 2)), true); - assert_eq!(call!(le_si8(-128, 3)), true); - assert_eq!(call!(le_si8(-128, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_328() { - assert_eq!(call!(le_si8(-128, 16)), true); - assert_eq!(call!(le_si8(-128, 126)), true); - assert_eq!(call!(le_si8(-128, 127)), true); - assert_eq!(call!(le_si8(-127, -127)), true); - assert_eq!(call!(le_si8(-127, 0)), true); - assert_eq!(call!(le_si8(-127, 1)), true); - assert_eq!(call!(le_si8(-127, 2)), true); - assert_eq!(call!(le_si8(-127, 3)), true); - assert_eq!(call!(le_si8(-127, 4)), true); - assert_eq!(call!(le_si8(-127, 16)), true); - } - #[rewrite(main)] - #[test] - fn test_329() { - assert_eq!(call!(le_si8(-127, 126)), true); - assert_eq!(call!(le_si8(-127, 127)), true); - assert_eq!(call!(le_si8(0, 0)), true); - assert_eq!(call!(le_si8(0, 1)), true); - assert_eq!(call!(le_si8(0, 2)), true); - assert_eq!(call!(le_si8(0, 3)), true); - assert_eq!(call!(le_si8(0, 4)), true); - assert_eq!(call!(le_si8(0, 16)), true); - assert_eq!(call!(le_si8(0, 126)), true); - assert_eq!(call!(le_si8(0, 127)), true); - } - #[rewrite(main)] - #[test] - fn test_330() { - assert_eq!(call!(le_si8(1, 1)), true); - assert_eq!(call!(le_si8(1, 2)), true); - assert_eq!(call!(le_si8(1, 3)), true); - assert_eq!(call!(le_si8(1, 4)), true); - assert_eq!(call!(le_si8(1, 16)), true); - assert_eq!(call!(le_si8(1, 126)), true); - assert_eq!(call!(le_si8(1, 127)), true); - assert_eq!(call!(le_si8(2, 2)), true); - assert_eq!(call!(le_si8(2, 3)), true); - assert_eq!(call!(le_si8(2, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_331() { - assert_eq!(call!(le_si8(2, 16)), true); - assert_eq!(call!(le_si8(2, 126)), true); - assert_eq!(call!(le_si8(2, 127)), true); - assert_eq!(call!(le_si8(3, 3)), true); - assert_eq!(call!(le_si8(3, 4)), true); - assert_eq!(call!(le_si8(3, 16)), true); - assert_eq!(call!(le_si8(3, 126)), true); - assert_eq!(call!(le_si8(3, 127)), true); - assert_eq!(call!(le_si8(4, 4)), true); - assert_eq!(call!(le_si8(4, 16)), true); - } - #[rewrite(main)] - #[test] - fn test_332() { - assert_eq!(call!(le_si8(4, 126)), true); - assert_eq!(call!(le_si8(4, 127)), true); - assert_eq!(call!(le_si8(16, 16)), true); - assert_eq!(call!(le_si8(16, 126)), true); - assert_eq!(call!(le_si8(16, 127)), true); - assert_eq!(call!(le_si8(126, 126)), true); - assert_eq!(call!(le_si8(126, 127)), true); - assert_eq!(call!(le_si8(127, 127)), true); - assert_eq!(call!(le_ui16(1, 0)), false); - assert_eq!(call!(le_ui16(2, 0)), false); - } - #[rewrite(main)] - #[test] - fn test_333() { - assert_eq!(call!(le_ui16(2, 1)), false); - assert_eq!(call!(le_ui16(3, 0)), false); - assert_eq!(call!(le_ui16(3, 1)), false); - assert_eq!(call!(le_ui16(3, 2)), false); - assert_eq!(call!(le_ui16(4, 0)), false); - assert_eq!(call!(le_ui16(4, 1)), false); - assert_eq!(call!(le_ui16(4, 2)), false); - assert_eq!(call!(le_ui16(4, 3)), false); - assert_eq!(call!(le_ui16(1717, 0)), false); - assert_eq!(call!(le_ui16(1717, 1)), false); - } - #[rewrite(main)] - #[test] - fn test_334() { - assert_eq!(call!(le_ui16(1717, 2)), false); - assert_eq!(call!(le_ui16(1717, 3)), false); - assert_eq!(call!(le_ui16(1717, 4)), false); - assert_eq!(call!(le_ui16(17988, 0)), false); - assert_eq!(call!(le_ui16(17988, 1)), false); - assert_eq!(call!(le_ui16(17988, 2)), false); - assert_eq!(call!(le_ui16(17988, 3)), false); - assert_eq!(call!(le_ui16(17988, 4)), false); - assert_eq!(call!(le_ui16(17988, 1717)), false); - assert_eq!(call!(le_ui16(65096, 0)), false); - } - #[rewrite(main)] - #[test] - fn test_335() { - assert_eq!(call!(le_ui16(65096, 1)), false); - assert_eq!(call!(le_ui16(65096, 2)), false); - assert_eq!(call!(le_ui16(65096, 3)), false); - assert_eq!(call!(le_ui16(65096, 4)), false); - assert_eq!(call!(le_ui16(65096, 1717)), false); - assert_eq!(call!(le_ui16(65096, 17988)), false); - assert_eq!(call!(le_ui16(65534, 0)), false); - assert_eq!(call!(le_ui16(65534, 1)), false); - assert_eq!(call!(le_ui16(65534, 2)), false); - assert_eq!(call!(le_ui16(65534, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_336() { - assert_eq!(call!(le_ui16(65534, 4)), false); - assert_eq!(call!(le_ui16(65534, 1717)), false); - assert_eq!(call!(le_ui16(65534, 17988)), false); - assert_eq!(call!(le_ui16(65534, 65096)), false); - assert_eq!(call!(le_ui16(65535, 0)), false); - assert_eq!(call!(le_ui16(65535, 1)), false); - assert_eq!(call!(le_ui16(65535, 2)), false); - assert_eq!(call!(le_ui16(65535, 3)), false); - assert_eq!(call!(le_ui16(65535, 4)), false); - assert_eq!(call!(le_ui16(65535, 1717)), false); - } - #[rewrite(main)] - #[test] - fn test_337() { - assert_eq!(call!(le_ui16(65535, 17988)), false); - assert_eq!(call!(le_ui16(65535, 65096)), false); - assert_eq!(call!(le_ui16(65535, 65534)), false); - assert_eq!(call!(le_ui16(0, 0)), true); - assert_eq!(call!(le_ui16(0, 1)), true); - assert_eq!(call!(le_ui16(0, 2)), true); - assert_eq!(call!(le_ui16(0, 3)), true); - assert_eq!(call!(le_ui16(0, 4)), true); - assert_eq!(call!(le_ui16(0, 1717)), true); - assert_eq!(call!(le_ui16(0, 17988)), true); - } - #[rewrite(main)] - #[test] - fn test_338() { - assert_eq!(call!(le_ui16(0, 65096)), true); - assert_eq!(call!(le_ui16(0, 65534)), true); - assert_eq!(call!(le_ui16(0, 65535)), true); - assert_eq!(call!(le_ui16(1, 1)), true); - assert_eq!(call!(le_ui16(1, 2)), true); - assert_eq!(call!(le_ui16(1, 3)), true); - assert_eq!(call!(le_ui16(1, 4)), true); - assert_eq!(call!(le_ui16(1, 1717)), true); - assert_eq!(call!(le_ui16(1, 17988)), true); - assert_eq!(call!(le_ui16(1, 65096)), true); - } - #[rewrite(main)] - #[test] - fn test_339() { - assert_eq!(call!(le_ui16(1, 65534)), true); - assert_eq!(call!(le_ui16(1, 65535)), true); - assert_eq!(call!(le_ui16(2, 2)), true); - assert_eq!(call!(le_ui16(2, 3)), true); - assert_eq!(call!(le_ui16(2, 4)), true); - assert_eq!(call!(le_ui16(2, 1717)), true); - assert_eq!(call!(le_ui16(2, 17988)), true); - assert_eq!(call!(le_ui16(2, 65096)), true); - assert_eq!(call!(le_ui16(2, 65534)), true); - assert_eq!(call!(le_ui16(2, 65535)), true); - } - #[rewrite(main)] - #[test] - fn test_340() { - assert_eq!(call!(le_ui16(3, 3)), true); - assert_eq!(call!(le_ui16(3, 4)), true); - assert_eq!(call!(le_ui16(3, 1717)), true); - assert_eq!(call!(le_ui16(3, 17988)), true); - assert_eq!(call!(le_ui16(3, 65096)), true); - assert_eq!(call!(le_ui16(3, 65534)), true); - assert_eq!(call!(le_ui16(3, 65535)), true); - assert_eq!(call!(le_ui16(4, 4)), true); - assert_eq!(call!(le_ui16(4, 1717)), true); - assert_eq!(call!(le_ui16(4, 17988)), true); - } - #[rewrite(main)] - #[test] - fn test_341() { - assert_eq!(call!(le_ui16(4, 65096)), true); - assert_eq!(call!(le_ui16(4, 65534)), true); - assert_eq!(call!(le_ui16(4, 65535)), true); - assert_eq!(call!(le_ui16(1717, 1717)), true); - assert_eq!(call!(le_ui16(1717, 17988)), true); - assert_eq!(call!(le_ui16(1717, 65096)), true); - assert_eq!(call!(le_ui16(1717, 65534)), true); - assert_eq!(call!(le_ui16(1717, 65535)), true); - assert_eq!(call!(le_ui16(17988, 17988)), true); - assert_eq!(call!(le_ui16(17988, 65096)), true); - } - #[rewrite(main)] - #[test] - fn test_342() { - assert_eq!(call!(le_ui16(17988, 65534)), true); - assert_eq!(call!(le_ui16(17988, 65535)), true); - assert_eq!(call!(le_ui16(65096, 65096)), true); - assert_eq!(call!(le_ui16(65096, 65534)), true); - assert_eq!(call!(le_ui16(65096, 65535)), true); - assert_eq!(call!(le_ui16(65534, 65534)), true); - assert_eq!(call!(le_ui16(65534, 65535)), true); - assert_eq!(call!(le_ui16(65535, 65535)), true); - assert_eq!(call!(le_ui32(1, 0)), false); - assert_eq!(call!(le_ui32(2, 0)), false); - } - #[rewrite(main)] - #[test] - fn test_343() { - assert_eq!(call!(le_ui32(2, 1)), false); - assert_eq!(call!(le_ui32(3, 0)), false); - assert_eq!(call!(le_ui32(3, 1)), false); - assert_eq!(call!(le_ui32(3, 2)), false); - assert_eq!(call!(le_ui32(4, 0)), false); - assert_eq!(call!(le_ui32(4, 1)), false); - assert_eq!(call!(le_ui32(4, 2)), false); - assert_eq!(call!(le_ui32(4, 3)), false); - assert_eq!(call!(le_ui32(2119154652, 0)), false); - assert_eq!(call!(le_ui32(2119154652, 1)), false); - } - #[rewrite(main)] - #[test] - fn test_344() { - assert_eq!(call!(le_ui32(2119154652, 2)), false); - assert_eq!(call!(le_ui32(2119154652, 3)), false); - assert_eq!(call!(le_ui32(2119154652, 4)), false); - assert_eq!(call!(le_ui32(3002788344, 0)), false); - assert_eq!(call!(le_ui32(3002788344, 1)), false); - assert_eq!(call!(le_ui32(3002788344, 2)), false); - assert_eq!(call!(le_ui32(3002788344, 3)), false); - assert_eq!(call!(le_ui32(3002788344, 4)), false); - assert_eq!(call!(le_ui32(3002788344, 2119154652)), false); - assert_eq!(call!(le_ui32(3482297128, 0)), false); - } - #[rewrite(main)] - #[test] - fn test_345() { - assert_eq!(call!(le_ui32(3482297128, 1)), false); - assert_eq!(call!(le_ui32(3482297128, 2)), false); - assert_eq!(call!(le_ui32(3482297128, 3)), false); - assert_eq!(call!(le_ui32(3482297128, 4)), false); - assert_eq!(call!(le_ui32(3482297128, 2119154652)), false); - assert_eq!(call!(le_ui32(3482297128, 3002788344)), false); - assert_eq!(call!(le_ui32(4294967294, 0)), false); - assert_eq!(call!(le_ui32(4294967294, 1)), false); - assert_eq!(call!(le_ui32(4294967294, 2)), false); - assert_eq!(call!(le_ui32(4294967294, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_346() { - assert_eq!(call!(le_ui32(4294967294, 4)), false); - assert_eq!(call!(le_ui32(4294967294, 2119154652)), false); - assert_eq!(call!(le_ui32(4294967294, 3002788344)), false); - assert_eq!(call!(le_ui32(4294967294, 3482297128)), false); - assert_eq!(call!(le_ui32(4294967295, 0)), false); - assert_eq!(call!(le_ui32(4294967295, 1)), false); - assert_eq!(call!(le_ui32(4294967295, 2)), false); - assert_eq!(call!(le_ui32(4294967295, 3)), false); - assert_eq!(call!(le_ui32(4294967295, 4)), false); - assert_eq!(call!(le_ui32(4294967295, 2119154652)), false); - } - #[rewrite(main)] - #[test] - fn test_347() { - assert_eq!(call!(le_ui32(4294967295, 3002788344)), false); - assert_eq!(call!(le_ui32(4294967295, 3482297128)), false); - assert_eq!(call!(le_ui32(4294967295, 4294967294)), false); - assert_eq!(call!(le_ui32(0, 0)), true); - assert_eq!(call!(le_ui32(0, 1)), true); - assert_eq!(call!(le_ui32(0, 2)), true); - assert_eq!(call!(le_ui32(0, 3)), true); - assert_eq!(call!(le_ui32(0, 4)), true); - assert_eq!(call!(le_ui32(0, 2119154652)), true); - assert_eq!(call!(le_ui32(0, 3002788344)), true); - } - #[rewrite(main)] - #[test] - fn test_348() { - assert_eq!(call!(le_ui32(0, 3482297128)), true); - assert_eq!(call!(le_ui32(0, 4294967294)), true); - assert_eq!(call!(le_ui32(0, 4294967295)), true); - assert_eq!(call!(le_ui32(1, 1)), true); - assert_eq!(call!(le_ui32(1, 2)), true); - assert_eq!(call!(le_ui32(1, 3)), true); - assert_eq!(call!(le_ui32(1, 4)), true); - assert_eq!(call!(le_ui32(1, 2119154652)), true); - assert_eq!(call!(le_ui32(1, 3002788344)), true); - assert_eq!(call!(le_ui32(1, 3482297128)), true); - } - #[rewrite(main)] - #[test] - fn test_349() { - assert_eq!(call!(le_ui32(1, 4294967294)), true); - assert_eq!(call!(le_ui32(1, 4294967295)), true); - assert_eq!(call!(le_ui32(2, 2)), true); - assert_eq!(call!(le_ui32(2, 3)), true); - assert_eq!(call!(le_ui32(2, 4)), true); - assert_eq!(call!(le_ui32(2, 2119154652)), true); - assert_eq!(call!(le_ui32(2, 3002788344)), true); - assert_eq!(call!(le_ui32(2, 3482297128)), true); - assert_eq!(call!(le_ui32(2, 4294967294)), true); - assert_eq!(call!(le_ui32(2, 4294967295)), true); - } - #[rewrite(main)] - #[test] - fn test_350() { - assert_eq!(call!(le_ui32(3, 3)), true); - assert_eq!(call!(le_ui32(3, 4)), true); - assert_eq!(call!(le_ui32(3, 2119154652)), true); - assert_eq!(call!(le_ui32(3, 3002788344)), true); - assert_eq!(call!(le_ui32(3, 3482297128)), true); - assert_eq!(call!(le_ui32(3, 4294967294)), true); - assert_eq!(call!(le_ui32(3, 4294967295)), true); - assert_eq!(call!(le_ui32(4, 4)), true); - assert_eq!(call!(le_ui32(4, 2119154652)), true); - assert_eq!(call!(le_ui32(4, 3002788344)), true); - } - #[rewrite(main)] - #[test] - fn test_351() { - assert_eq!(call!(le_ui32(4, 3482297128)), true); - assert_eq!(call!(le_ui32(4, 4294967294)), true); - assert_eq!(call!(le_ui32(4, 4294967295)), true); - assert_eq!(call!(le_ui32(2119154652, 2119154652)), true); - assert_eq!(call!(le_ui32(2119154652, 3002788344)), true); - assert_eq!(call!(le_ui32(2119154652, 3482297128)), true); - assert_eq!(call!(le_ui32(2119154652, 4294967294)), true); - assert_eq!(call!(le_ui32(2119154652, 4294967295)), true); - assert_eq!(call!(le_ui32(3002788344, 3002788344)), true); - assert_eq!(call!(le_ui32(3002788344, 3482297128)), true); - } - #[rewrite(main)] - #[test] - fn test_352() { - assert_eq!(call!(le_ui32(3002788344, 4294967294)), true); - assert_eq!(call!(le_ui32(3002788344, 4294967295)), true); - assert_eq!(call!(le_ui32(3482297128, 3482297128)), true); - assert_eq!(call!(le_ui32(3482297128, 4294967294)), true); - assert_eq!(call!(le_ui32(3482297128, 4294967295)), true); - assert_eq!(call!(le_ui32(4294967294, 4294967294)), true); - assert_eq!(call!(le_ui32(4294967294, 4294967295)), true); - assert_eq!(call!(le_ui32(4294967295, 4294967295)), true); - assert_eq!(call!(le_ui64(1, 0)), false); - assert_eq!(call!(le_ui64(2, 0)), false); - } - #[rewrite(main)] - #[test] - fn test_353() { - assert_eq!(call!(le_ui64(2, 1)), false); - assert_eq!(call!(le_ui64(3, 0)), false); - assert_eq!(call!(le_ui64(3, 1)), false); - assert_eq!(call!(le_ui64(3, 2)), false); - assert_eq!(call!(le_ui64(4, 0)), false); - assert_eq!(call!(le_ui64(4, 1)), false); - assert_eq!(call!(le_ui64(4, 2)), false); - assert_eq!(call!(le_ui64(4, 3)), false); - assert_eq!(call!(le_ui64(191084152064409600, 0)), false); - assert_eq!(call!(le_ui64(191084152064409600, 1)), false); - } - #[rewrite(main)] - #[test] - fn test_354() { - assert_eq!(call!(le_ui64(191084152064409600, 2)), false); - assert_eq!(call!(le_ui64(191084152064409600, 3)), false); - assert_eq!(call!(le_ui64(191084152064409600, 4)), false); - assert_eq!(call!(le_ui64(11015955194427482112, 0)), false); - assert_eq!(call!(le_ui64(11015955194427482112, 1)), false); - assert_eq!(call!(le_ui64(11015955194427482112, 2)), false); - assert_eq!(call!(le_ui64(11015955194427482112, 3)), false); - assert_eq!(call!(le_ui64(11015955194427482112, 4)), false); - assert_eq!(call!(le_ui64(11015955194427482112, 191084152064409600)), false); - assert_eq!(call!(le_ui64(16990600415051759616, 0)), false); - } - #[rewrite(main)] - #[test] - fn test_355() { - assert_eq!(call!(le_ui64(16990600415051759616, 1)), false); - assert_eq!(call!(le_ui64(16990600415051759616, 2)), false); - assert_eq!(call!(le_ui64(16990600415051759616, 3)), false); - assert_eq!(call!(le_ui64(16990600415051759616, 4)), false); - assert_eq!(call!(le_ui64(16990600415051759616, 191084152064409600)), false); - assert_eq!(call!(le_ui64(16990600415051759616, 11015955194427482112)), false); - assert_eq!(call!(le_ui64(18446744073709551614, 0)), false); - assert_eq!(call!(le_ui64(18446744073709551614, 1)), false); - assert_eq!(call!(le_ui64(18446744073709551614, 2)), false); - assert_eq!(call!(le_ui64(18446744073709551614, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_356() { - assert_eq!(call!(le_ui64(18446744073709551614, 4)), false); - assert_eq!(call!(le_ui64(18446744073709551614, 191084152064409600)), false); - assert_eq!(call!(le_ui64(18446744073709551614, 11015955194427482112)), false); - assert_eq!(call!(le_ui64(18446744073709551614, 16990600415051759616)), false); - assert_eq!(call!(le_ui64(18446744073709551615, 0)), false); - assert_eq!(call!(le_ui64(18446744073709551615, 1)), false); - assert_eq!(call!(le_ui64(18446744073709551615, 2)), false); - assert_eq!(call!(le_ui64(18446744073709551615, 3)), false); - assert_eq!(call!(le_ui64(18446744073709551615, 4)), false); - assert_eq!(call!(le_ui64(18446744073709551615, 191084152064409600)), false); - } - #[rewrite(main)] - #[test] - fn test_357() { - assert_eq!(call!(le_ui64(18446744073709551615, 11015955194427482112)), false); - assert_eq!(call!(le_ui64(18446744073709551615, 16990600415051759616)), false); - assert_eq!(call!(le_ui64(18446744073709551615, 18446744073709551614)), false); - assert_eq!(call!(le_ui64(0, 0)), true); - assert_eq!(call!(le_ui64(0, 1)), true); - assert_eq!(call!(le_ui64(0, 2)), true); - assert_eq!(call!(le_ui64(0, 3)), true); - assert_eq!(call!(le_ui64(0, 4)), true); - assert_eq!(call!(le_ui64(0, 191084152064409600)), true); - assert_eq!(call!(le_ui64(0, 11015955194427482112)), true); - } - #[rewrite(main)] - #[test] - fn test_358() { - assert_eq!(call!(le_ui64(0, 16990600415051759616)), true); - assert_eq!(call!(le_ui64(0, 18446744073709551614)), true); - assert_eq!(call!(le_ui64(0, 18446744073709551615)), true); - assert_eq!(call!(le_ui64(1, 1)), true); - assert_eq!(call!(le_ui64(1, 2)), true); - assert_eq!(call!(le_ui64(1, 3)), true); - assert_eq!(call!(le_ui64(1, 4)), true); - assert_eq!(call!(le_ui64(1, 191084152064409600)), true); - assert_eq!(call!(le_ui64(1, 11015955194427482112)), true); - assert_eq!(call!(le_ui64(1, 16990600415051759616)), true); - } - #[rewrite(main)] - #[test] - fn test_359() { - assert_eq!(call!(le_ui64(1, 18446744073709551614)), true); - assert_eq!(call!(le_ui64(1, 18446744073709551615)), true); - assert_eq!(call!(le_ui64(2, 2)), true); - assert_eq!(call!(le_ui64(2, 3)), true); - assert_eq!(call!(le_ui64(2, 4)), true); - assert_eq!(call!(le_ui64(2, 191084152064409600)), true); - assert_eq!(call!(le_ui64(2, 11015955194427482112)), true); - assert_eq!(call!(le_ui64(2, 16990600415051759616)), true); - assert_eq!(call!(le_ui64(2, 18446744073709551614)), true); - assert_eq!(call!(le_ui64(2, 18446744073709551615)), true); - } - #[rewrite(main)] - #[test] - fn test_360() { - assert_eq!(call!(le_ui64(3, 3)), true); - assert_eq!(call!(le_ui64(3, 4)), true); - assert_eq!(call!(le_ui64(3, 191084152064409600)), true); - assert_eq!(call!(le_ui64(3, 11015955194427482112)), true); - assert_eq!(call!(le_ui64(3, 16990600415051759616)), true); - assert_eq!(call!(le_ui64(3, 18446744073709551614)), true); - assert_eq!(call!(le_ui64(3, 18446744073709551615)), true); - assert_eq!(call!(le_ui64(4, 4)), true); - assert_eq!(call!(le_ui64(4, 191084152064409600)), true); - assert_eq!(call!(le_ui64(4, 11015955194427482112)), true); - } - #[rewrite(main)] - #[test] - fn test_361() { - assert_eq!(call!(le_ui64(4, 16990600415051759616)), true); - assert_eq!(call!(le_ui64(4, 18446744073709551614)), true); - assert_eq!(call!(le_ui64(4, 18446744073709551615)), true); - assert_eq!(call!(le_ui64(191084152064409600, 191084152064409600)), true); - assert_eq!(call!(le_ui64(191084152064409600, 11015955194427482112)), true); - assert_eq!(call!(le_ui64(191084152064409600, 16990600415051759616)), true); - assert_eq!(call!(le_ui64(191084152064409600, 18446744073709551614)), true); - assert_eq!(call!(le_ui64(191084152064409600, 18446744073709551615)), true); - assert_eq!(call!(le_ui64(11015955194427482112, 11015955194427482112)), true); - assert_eq!(call!(le_ui64(11015955194427482112, 16990600415051759616)), true); - } - #[rewrite(main)] - #[test] - fn test_362() { - assert_eq!(call!(le_ui64(11015955194427482112, 18446744073709551614)), true); - assert_eq!(call!(le_ui64(11015955194427482112, 18446744073709551615)), true); - assert_eq!(call!(le_ui64(16990600415051759616, 16990600415051759616)), true); - assert_eq!(call!(le_ui64(16990600415051759616, 18446744073709551614)), true); - assert_eq!(call!(le_ui64(16990600415051759616, 18446744073709551615)), true); - assert_eq!(call!(le_ui64(18446744073709551614, 18446744073709551614)), true); - assert_eq!(call!(le_ui64(18446744073709551614, 18446744073709551615)), true); - assert_eq!(call!(le_ui64(18446744073709551615, 18446744073709551615)), true); - assert_eq!(call!(le_ui8(1, 0)), false); - assert_eq!(call!(le_ui8(2, 0)), false); - } - #[rewrite(main)] - #[test] - fn test_363() { - assert_eq!(call!(le_ui8(2, 1)), false); - assert_eq!(call!(le_ui8(3, 0)), false); - assert_eq!(call!(le_ui8(3, 1)), false); - assert_eq!(call!(le_ui8(3, 2)), false); - assert_eq!(call!(le_ui8(4, 0)), false); - assert_eq!(call!(le_ui8(4, 1)), false); - assert_eq!(call!(le_ui8(4, 2)), false); - assert_eq!(call!(le_ui8(4, 3)), false); - assert_eq!(call!(le_ui8(72, 0)), false); - assert_eq!(call!(le_ui8(72, 1)), false); - } - #[rewrite(main)] - #[test] - fn test_364() { - assert_eq!(call!(le_ui8(72, 2)), false); - assert_eq!(call!(le_ui8(72, 3)), false); - assert_eq!(call!(le_ui8(72, 4)), false); - assert_eq!(call!(le_ui8(100, 0)), false); - assert_eq!(call!(le_ui8(100, 1)), false); - assert_eq!(call!(le_ui8(100, 2)), false); - assert_eq!(call!(le_ui8(100, 3)), false); - assert_eq!(call!(le_ui8(100, 4)), false); - assert_eq!(call!(le_ui8(100, 72)), false); - assert_eq!(call!(le_ui8(162, 0)), false); - } - #[rewrite(main)] - #[test] - fn test_365() { - assert_eq!(call!(le_ui8(162, 1)), false); - assert_eq!(call!(le_ui8(162, 2)), false); - assert_eq!(call!(le_ui8(162, 3)), false); - assert_eq!(call!(le_ui8(162, 4)), false); - assert_eq!(call!(le_ui8(162, 72)), false); - assert_eq!(call!(le_ui8(162, 100)), false); - assert_eq!(call!(le_ui8(254, 0)), false); - assert_eq!(call!(le_ui8(254, 1)), false); - assert_eq!(call!(le_ui8(254, 2)), false); - assert_eq!(call!(le_ui8(254, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_366() { - assert_eq!(call!(le_ui8(254, 4)), false); - assert_eq!(call!(le_ui8(254, 72)), false); - assert_eq!(call!(le_ui8(254, 100)), false); - assert_eq!(call!(le_ui8(254, 162)), false); - assert_eq!(call!(le_ui8(255, 0)), false); - assert_eq!(call!(le_ui8(255, 1)), false); - assert_eq!(call!(le_ui8(255, 2)), false); - assert_eq!(call!(le_ui8(255, 3)), false); - assert_eq!(call!(le_ui8(255, 4)), false); - assert_eq!(call!(le_ui8(255, 72)), false); - } - #[rewrite(main)] - #[test] - fn test_367() { - assert_eq!(call!(le_ui8(255, 100)), false); - assert_eq!(call!(le_ui8(255, 162)), false); - assert_eq!(call!(le_ui8(255, 254)), false); - assert_eq!(call!(le_ui8(0, 0)), true); - assert_eq!(call!(le_ui8(0, 1)), true); - assert_eq!(call!(le_ui8(0, 2)), true); - assert_eq!(call!(le_ui8(0, 3)), true); - assert_eq!(call!(le_ui8(0, 4)), true); - assert_eq!(call!(le_ui8(0, 72)), true); - assert_eq!(call!(le_ui8(0, 100)), true); - } - #[rewrite(main)] - #[test] - fn test_368() { - assert_eq!(call!(le_ui8(0, 162)), true); - assert_eq!(call!(le_ui8(0, 254)), true); - assert_eq!(call!(le_ui8(0, 255)), true); - assert_eq!(call!(le_ui8(1, 1)), true); - assert_eq!(call!(le_ui8(1, 2)), true); - assert_eq!(call!(le_ui8(1, 3)), true); - assert_eq!(call!(le_ui8(1, 4)), true); - assert_eq!(call!(le_ui8(1, 72)), true); - assert_eq!(call!(le_ui8(1, 100)), true); - assert_eq!(call!(le_ui8(1, 162)), true); - } - #[rewrite(main)] - #[test] - fn test_369() { - assert_eq!(call!(le_ui8(1, 254)), true); - assert_eq!(call!(le_ui8(1, 255)), true); - assert_eq!(call!(le_ui8(2, 2)), true); - assert_eq!(call!(le_ui8(2, 3)), true); - assert_eq!(call!(le_ui8(2, 4)), true); - assert_eq!(call!(le_ui8(2, 72)), true); - assert_eq!(call!(le_ui8(2, 100)), true); - assert_eq!(call!(le_ui8(2, 162)), true); - assert_eq!(call!(le_ui8(2, 254)), true); - assert_eq!(call!(le_ui8(2, 255)), true); - } - #[rewrite(main)] - #[test] - fn test_370() { - assert_eq!(call!(le_ui8(3, 3)), true); - assert_eq!(call!(le_ui8(3, 4)), true); - assert_eq!(call!(le_ui8(3, 72)), true); - assert_eq!(call!(le_ui8(3, 100)), true); - assert_eq!(call!(le_ui8(3, 162)), true); - assert_eq!(call!(le_ui8(3, 254)), true); - assert_eq!(call!(le_ui8(3, 255)), true); - assert_eq!(call!(le_ui8(4, 4)), true); - assert_eq!(call!(le_ui8(4, 72)), true); - assert_eq!(call!(le_ui8(4, 100)), true); - } - #[rewrite(main)] - #[test] - fn test_371() { - assert_eq!(call!(le_ui8(4, 162)), true); - assert_eq!(call!(le_ui8(4, 254)), true); - assert_eq!(call!(le_ui8(4, 255)), true); - assert_eq!(call!(le_ui8(72, 72)), true); - assert_eq!(call!(le_ui8(72, 100)), true); - assert_eq!(call!(le_ui8(72, 162)), true); - assert_eq!(call!(le_ui8(72, 254)), true); - assert_eq!(call!(le_ui8(72, 255)), true); - assert_eq!(call!(le_ui8(100, 100)), true); - assert_eq!(call!(le_ui8(100, 162)), true); - } - #[rewrite(main)] - #[test] - fn test_372() { - assert_eq!(call!(le_ui8(100, 254)), true); - assert_eq!(call!(le_ui8(100, 255)), true); - assert_eq!(call!(le_ui8(162, 162)), true); - assert_eq!(call!(le_ui8(162, 254)), true); - assert_eq!(call!(le_ui8(162, 255)), true); - assert_eq!(call!(le_ui8(254, 254)), true); - assert_eq!(call!(le_ui8(254, 255)), true); - assert_eq!(call!(le_ui8(255, 255)), true); - assert_eq!(call!(lt_si16(-32768, -32768)), false); - assert_eq!(call!(lt_si16(-32767, -32768)), false); - } - #[rewrite(main)] - #[test] - fn test_373() { - assert_eq!(call!(lt_si16(-32767, -32767)), false); - assert_eq!(call!(lt_si16(-32547, -32768)), false); - assert_eq!(call!(lt_si16(-32547, -32767)), false); - assert_eq!(call!(lt_si16(-32547, -32547)), false); - assert_eq!(call!(lt_si16(0, -32768)), false); - assert_eq!(call!(lt_si16(0, -32767)), false); - assert_eq!(call!(lt_si16(0, -32547)), false); - assert_eq!(call!(lt_si16(0, 0)), false); - assert_eq!(call!(lt_si16(1, -32768)), false); - assert_eq!(call!(lt_si16(1, -32767)), false); - } - #[rewrite(main)] - #[test] - fn test_374() { - assert_eq!(call!(lt_si16(1, -32547)), false); - assert_eq!(call!(lt_si16(1, 0)), false); - assert_eq!(call!(lt_si16(1, 1)), false); - assert_eq!(call!(lt_si16(2, -32768)), false); - assert_eq!(call!(lt_si16(2, -32767)), false); - assert_eq!(call!(lt_si16(2, -32547)), false); - assert_eq!(call!(lt_si16(2, 0)), false); - assert_eq!(call!(lt_si16(2, 1)), false); - assert_eq!(call!(lt_si16(2, 2)), false); - assert_eq!(call!(lt_si16(3, -32768)), false); - } - #[rewrite(main)] - #[test] - fn test_375() { - assert_eq!(call!(lt_si16(3, -32767)), false); - assert_eq!(call!(lt_si16(3, -32547)), false); - assert_eq!(call!(lt_si16(3, 0)), false); - assert_eq!(call!(lt_si16(3, 1)), false); - assert_eq!(call!(lt_si16(3, 2)), false); - assert_eq!(call!(lt_si16(3, 3)), false); - assert_eq!(call!(lt_si16(4, -32768)), false); - assert_eq!(call!(lt_si16(4, -32767)), false); - assert_eq!(call!(lt_si16(4, -32547)), false); - assert_eq!(call!(lt_si16(4, 0)), false); - } - #[rewrite(main)] - #[test] - fn test_376() { - assert_eq!(call!(lt_si16(4, 1)), false); - assert_eq!(call!(lt_si16(4, 2)), false); - assert_eq!(call!(lt_si16(4, 3)), false); - assert_eq!(call!(lt_si16(4, 4)), false); - assert_eq!(call!(lt_si16(10486, -32768)), false); - assert_eq!(call!(lt_si16(10486, -32767)), false); - assert_eq!(call!(lt_si16(10486, -32547)), false); - assert_eq!(call!(lt_si16(10486, 0)), false); - assert_eq!(call!(lt_si16(10486, 1)), false); - assert_eq!(call!(lt_si16(10486, 2)), false); - } - #[rewrite(main)] - #[test] - fn test_377() { - assert_eq!(call!(lt_si16(10486, 3)), false); - assert_eq!(call!(lt_si16(10486, 4)), false); - assert_eq!(call!(lt_si16(10486, 10486)), false); - assert_eq!(call!(lt_si16(16514, -32768)), false); - assert_eq!(call!(lt_si16(16514, -32767)), false); - assert_eq!(call!(lt_si16(16514, -32547)), false); - assert_eq!(call!(lt_si16(16514, 0)), false); - assert_eq!(call!(lt_si16(16514, 1)), false); - assert_eq!(call!(lt_si16(16514, 2)), false); - assert_eq!(call!(lt_si16(16514, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_378() { - assert_eq!(call!(lt_si16(16514, 4)), false); - assert_eq!(call!(lt_si16(16514, 10486)), false); - assert_eq!(call!(lt_si16(16514, 16514)), false); - assert_eq!(call!(lt_si16(32766, -32768)), false); - assert_eq!(call!(lt_si16(32766, -32767)), false); - assert_eq!(call!(lt_si16(32766, -32547)), false); - assert_eq!(call!(lt_si16(32766, 0)), false); - assert_eq!(call!(lt_si16(32766, 1)), false); - assert_eq!(call!(lt_si16(32766, 2)), false); - assert_eq!(call!(lt_si16(32766, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_379() { - assert_eq!(call!(lt_si16(32766, 4)), false); - assert_eq!(call!(lt_si16(32766, 10486)), false); - assert_eq!(call!(lt_si16(32766, 16514)), false); - assert_eq!(call!(lt_si16(32766, 32766)), false); - assert_eq!(call!(lt_si16(32767, -32768)), false); - assert_eq!(call!(lt_si16(32767, -32767)), false); - assert_eq!(call!(lt_si16(32767, -32547)), false); - assert_eq!(call!(lt_si16(32767, 0)), false); - assert_eq!(call!(lt_si16(32767, 1)), false); - assert_eq!(call!(lt_si16(32767, 2)), false); - } - #[rewrite(main)] - #[test] - fn test_380() { - assert_eq!(call!(lt_si16(32767, 3)), false); - assert_eq!(call!(lt_si16(32767, 4)), false); - assert_eq!(call!(lt_si16(32767, 10486)), false); - assert_eq!(call!(lt_si16(32767, 16514)), false); - assert_eq!(call!(lt_si16(32767, 32766)), false); - assert_eq!(call!(lt_si16(32767, 32767)), false); - assert_eq!(call!(lt_si16(-32768, -32767)), true); - assert_eq!(call!(lt_si16(-32768, -32547)), true); - assert_eq!(call!(lt_si16(-32768, 0)), true); - assert_eq!(call!(lt_si16(-32768, 1)), true); - } - #[rewrite(main)] - #[test] - fn test_381() { - assert_eq!(call!(lt_si16(-32768, 2)), true); - assert_eq!(call!(lt_si16(-32768, 3)), true); - assert_eq!(call!(lt_si16(-32768, 4)), true); - assert_eq!(call!(lt_si16(-32768, 10486)), true); - assert_eq!(call!(lt_si16(-32768, 16514)), true); - assert_eq!(call!(lt_si16(-32768, 32766)), true); - assert_eq!(call!(lt_si16(-32768, 32767)), true); - assert_eq!(call!(lt_si16(-32767, -32547)), true); - assert_eq!(call!(lt_si16(-32767, 0)), true); - assert_eq!(call!(lt_si16(-32767, 1)), true); - } - #[rewrite(main)] - #[test] - fn test_382() { - assert_eq!(call!(lt_si16(-32767, 2)), true); - assert_eq!(call!(lt_si16(-32767, 3)), true); - assert_eq!(call!(lt_si16(-32767, 4)), true); - assert_eq!(call!(lt_si16(-32767, 10486)), true); - assert_eq!(call!(lt_si16(-32767, 16514)), true); - assert_eq!(call!(lt_si16(-32767, 32766)), true); - assert_eq!(call!(lt_si16(-32767, 32767)), true); - assert_eq!(call!(lt_si16(-32547, 0)), true); - assert_eq!(call!(lt_si16(-32547, 1)), true); - assert_eq!(call!(lt_si16(-32547, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_383() { - assert_eq!(call!(lt_si16(-32547, 3)), true); - assert_eq!(call!(lt_si16(-32547, 4)), true); - assert_eq!(call!(lt_si16(-32547, 10486)), true); - assert_eq!(call!(lt_si16(-32547, 16514)), true); - assert_eq!(call!(lt_si16(-32547, 32766)), true); - assert_eq!(call!(lt_si16(-32547, 32767)), true); - assert_eq!(call!(lt_si16(0, 1)), true); - assert_eq!(call!(lt_si16(0, 2)), true); - assert_eq!(call!(lt_si16(0, 3)), true); - assert_eq!(call!(lt_si16(0, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_384() { - assert_eq!(call!(lt_si16(0, 10486)), true); - assert_eq!(call!(lt_si16(0, 16514)), true); - assert_eq!(call!(lt_si16(0, 32766)), true); - assert_eq!(call!(lt_si16(0, 32767)), true); - assert_eq!(call!(lt_si16(1, 2)), true); - assert_eq!(call!(lt_si16(1, 3)), true); - assert_eq!(call!(lt_si16(1, 4)), true); - assert_eq!(call!(lt_si16(1, 10486)), true); - assert_eq!(call!(lt_si16(1, 16514)), true); - assert_eq!(call!(lt_si16(1, 32766)), true); - } - #[rewrite(main)] - #[test] - fn test_385() { - assert_eq!(call!(lt_si16(1, 32767)), true); - assert_eq!(call!(lt_si16(2, 3)), true); - assert_eq!(call!(lt_si16(2, 4)), true); - assert_eq!(call!(lt_si16(2, 10486)), true); - assert_eq!(call!(lt_si16(2, 16514)), true); - assert_eq!(call!(lt_si16(2, 32766)), true); - assert_eq!(call!(lt_si16(2, 32767)), true); - assert_eq!(call!(lt_si16(3, 4)), true); - assert_eq!(call!(lt_si16(3, 10486)), true); - assert_eq!(call!(lt_si16(3, 16514)), true); - } - #[rewrite(main)] - #[test] - fn test_386() { - assert_eq!(call!(lt_si16(3, 32766)), true); - assert_eq!(call!(lt_si16(3, 32767)), true); - assert_eq!(call!(lt_si16(4, 10486)), true); - assert_eq!(call!(lt_si16(4, 16514)), true); - assert_eq!(call!(lt_si16(4, 32766)), true); - assert_eq!(call!(lt_si16(4, 32767)), true); - assert_eq!(call!(lt_si16(10486, 16514)), true); - assert_eq!(call!(lt_si16(10486, 32766)), true); - assert_eq!(call!(lt_si16(10486, 32767)), true); - assert_eq!(call!(lt_si16(16514, 32766)), true); - } - #[rewrite(main)] - #[test] - fn test_387() { - assert_eq!(call!(lt_si16(16514, 32767)), true); - assert_eq!(call!(lt_si16(32766, 32767)), true); - assert_eq!(call!(lt_si32(-2147483648, -2147483648)), false); - assert_eq!(call!(lt_si32(-2147483647, -2147483648)), false); - assert_eq!(call!(lt_si32(-2147483647, -2147483647)), false); - assert_eq!(call!(lt_si32(-1713183800, -2147483648)), false); - assert_eq!(call!(lt_si32(-1713183800, -2147483647)), false); - assert_eq!(call!(lt_si32(-1713183800, -1713183800)), false); - assert_eq!(call!(lt_si32(-1252582164, -2147483648)), false); - assert_eq!(call!(lt_si32(-1252582164, -2147483647)), false); - } - #[rewrite(main)] - #[test] - fn test_388() { - assert_eq!(call!(lt_si32(-1252582164, -1713183800)), false); - assert_eq!(call!(lt_si32(-1252582164, -1252582164)), false); - assert_eq!(call!(lt_si32(-1035405763, -2147483648)), false); - assert_eq!(call!(lt_si32(-1035405763, -2147483647)), false); - assert_eq!(call!(lt_si32(-1035405763, -1713183800)), false); - assert_eq!(call!(lt_si32(-1035405763, -1252582164)), false); - assert_eq!(call!(lt_si32(-1035405763, -1035405763)), false); - assert_eq!(call!(lt_si32(0, -2147483648)), false); - assert_eq!(call!(lt_si32(0, -2147483647)), false); - assert_eq!(call!(lt_si32(0, -1713183800)), false); - } - #[rewrite(main)] - #[test] - fn test_389() { - assert_eq!(call!(lt_si32(0, -1252582164)), false); - assert_eq!(call!(lt_si32(0, -1035405763)), false); - assert_eq!(call!(lt_si32(0, 0)), false); - assert_eq!(call!(lt_si32(1, -2147483648)), false); - assert_eq!(call!(lt_si32(1, -2147483647)), false); - assert_eq!(call!(lt_si32(1, -1713183800)), false); - assert_eq!(call!(lt_si32(1, -1252582164)), false); - assert_eq!(call!(lt_si32(1, -1035405763)), false); - assert_eq!(call!(lt_si32(1, 0)), false); - assert_eq!(call!(lt_si32(1, 1)), false); - } - #[rewrite(main)] - #[test] - fn test_390() { - assert_eq!(call!(lt_si32(2, -2147483648)), false); - assert_eq!(call!(lt_si32(2, -2147483647)), false); - assert_eq!(call!(lt_si32(2, -1713183800)), false); - assert_eq!(call!(lt_si32(2, -1252582164)), false); - assert_eq!(call!(lt_si32(2, -1035405763)), false); - assert_eq!(call!(lt_si32(2, 0)), false); - assert_eq!(call!(lt_si32(2, 1)), false); - assert_eq!(call!(lt_si32(2, 2)), false); - assert_eq!(call!(lt_si32(3, -2147483648)), false); - assert_eq!(call!(lt_si32(3, -2147483647)), false); - } - #[rewrite(main)] - #[test] - fn test_391() { - assert_eq!(call!(lt_si32(3, -1713183800)), false); - assert_eq!(call!(lt_si32(3, -1252582164)), false); - assert_eq!(call!(lt_si32(3, -1035405763)), false); - assert_eq!(call!(lt_si32(3, 0)), false); - assert_eq!(call!(lt_si32(3, 1)), false); - assert_eq!(call!(lt_si32(3, 2)), false); - assert_eq!(call!(lt_si32(3, 3)), false); - assert_eq!(call!(lt_si32(4, -2147483648)), false); - assert_eq!(call!(lt_si32(4, -2147483647)), false); - assert_eq!(call!(lt_si32(4, -1713183800)), false); - } - #[rewrite(main)] - #[test] - fn test_392() { - assert_eq!(call!(lt_si32(4, -1252582164)), false); - assert_eq!(call!(lt_si32(4, -1035405763)), false); - assert_eq!(call!(lt_si32(4, 0)), false); - assert_eq!(call!(lt_si32(4, 1)), false); - assert_eq!(call!(lt_si32(4, 2)), false); - assert_eq!(call!(lt_si32(4, 3)), false); - assert_eq!(call!(lt_si32(4, 4)), false); - assert_eq!(call!(lt_si32(2147483646, -2147483648)), false); - assert_eq!(call!(lt_si32(2147483646, -2147483647)), false); - assert_eq!(call!(lt_si32(2147483646, -1713183800)), false); - } - #[rewrite(main)] - #[test] - fn test_393() { - assert_eq!(call!(lt_si32(2147483646, -1252582164)), false); - assert_eq!(call!(lt_si32(2147483646, -1035405763)), false); - assert_eq!(call!(lt_si32(2147483646, 0)), false); - assert_eq!(call!(lt_si32(2147483646, 1)), false); - assert_eq!(call!(lt_si32(2147483646, 2)), false); - assert_eq!(call!(lt_si32(2147483646, 3)), false); - assert_eq!(call!(lt_si32(2147483646, 4)), false); - assert_eq!(call!(lt_si32(2147483646, 2147483646)), false); - assert_eq!(call!(lt_si32(2147483647, -2147483648)), false); - assert_eq!(call!(lt_si32(2147483647, -2147483647)), false); - } - #[rewrite(main)] - #[test] - fn test_394() { - assert_eq!(call!(lt_si32(2147483647, -1713183800)), false); - assert_eq!(call!(lt_si32(2147483647, -1252582164)), false); - assert_eq!(call!(lt_si32(2147483647, -1035405763)), false); - assert_eq!(call!(lt_si32(2147483647, 0)), false); - assert_eq!(call!(lt_si32(2147483647, 1)), false); - assert_eq!(call!(lt_si32(2147483647, 2)), false); - assert_eq!(call!(lt_si32(2147483647, 3)), false); - assert_eq!(call!(lt_si32(2147483647, 4)), false); - assert_eq!(call!(lt_si32(2147483647, 2147483646)), false); - assert_eq!(call!(lt_si32(2147483647, 2147483647)), false); - } - #[rewrite(main)] - #[test] - fn test_395() { - assert_eq!(call!(lt_si32(-2147483648, -2147483647)), true); - assert_eq!(call!(lt_si32(-2147483648, -1713183800)), true); - assert_eq!(call!(lt_si32(-2147483648, -1252582164)), true); - assert_eq!(call!(lt_si32(-2147483648, -1035405763)), true); - assert_eq!(call!(lt_si32(-2147483648, 0)), true); - assert_eq!(call!(lt_si32(-2147483648, 1)), true); - assert_eq!(call!(lt_si32(-2147483648, 2)), true); - assert_eq!(call!(lt_si32(-2147483648, 3)), true); - assert_eq!(call!(lt_si32(-2147483648, 4)), true); - assert_eq!(call!(lt_si32(-2147483648, 2147483646)), true); - } - #[rewrite(main)] - #[test] - fn test_396() { - assert_eq!(call!(lt_si32(-2147483648, 2147483647)), true); - assert_eq!(call!(lt_si32(-2147483647, -1713183800)), true); - assert_eq!(call!(lt_si32(-2147483647, -1252582164)), true); - assert_eq!(call!(lt_si32(-2147483647, -1035405763)), true); - assert_eq!(call!(lt_si32(-2147483647, 0)), true); - assert_eq!(call!(lt_si32(-2147483647, 1)), true); - assert_eq!(call!(lt_si32(-2147483647, 2)), true); - assert_eq!(call!(lt_si32(-2147483647, 3)), true); - assert_eq!(call!(lt_si32(-2147483647, 4)), true); - assert_eq!(call!(lt_si32(-2147483647, 2147483646)), true); - } - #[rewrite(main)] - #[test] - fn test_397() { - assert_eq!(call!(lt_si32(-2147483647, 2147483647)), true); - assert_eq!(call!(lt_si32(-1713183800, -1252582164)), true); - assert_eq!(call!(lt_si32(-1713183800, -1035405763)), true); - assert_eq!(call!(lt_si32(-1713183800, 0)), true); - assert_eq!(call!(lt_si32(-1713183800, 1)), true); - assert_eq!(call!(lt_si32(-1713183800, 2)), true); - assert_eq!(call!(lt_si32(-1713183800, 3)), true); - assert_eq!(call!(lt_si32(-1713183800, 4)), true); - assert_eq!(call!(lt_si32(-1713183800, 2147483646)), true); - assert_eq!(call!(lt_si32(-1713183800, 2147483647)), true); - } - #[rewrite(main)] - #[test] - fn test_398() { - assert_eq!(call!(lt_si32(-1252582164, -1035405763)), true); - assert_eq!(call!(lt_si32(-1252582164, 0)), true); - assert_eq!(call!(lt_si32(-1252582164, 1)), true); - assert_eq!(call!(lt_si32(-1252582164, 2)), true); - assert_eq!(call!(lt_si32(-1252582164, 3)), true); - assert_eq!(call!(lt_si32(-1252582164, 4)), true); - assert_eq!(call!(lt_si32(-1252582164, 2147483646)), true); - assert_eq!(call!(lt_si32(-1252582164, 2147483647)), true); - assert_eq!(call!(lt_si32(-1035405763, 0)), true); - assert_eq!(call!(lt_si32(-1035405763, 1)), true); - } - #[rewrite(main)] - #[test] - fn test_399() { - assert_eq!(call!(lt_si32(-1035405763, 2)), true); - assert_eq!(call!(lt_si32(-1035405763, 3)), true); - assert_eq!(call!(lt_si32(-1035405763, 4)), true); - assert_eq!(call!(lt_si32(-1035405763, 2147483646)), true); - assert_eq!(call!(lt_si32(-1035405763, 2147483647)), true); - assert_eq!(call!(lt_si32(0, 1)), true); - assert_eq!(call!(lt_si32(0, 2)), true); - assert_eq!(call!(lt_si32(0, 3)), true); - assert_eq!(call!(lt_si32(0, 4)), true); - assert_eq!(call!(lt_si32(0, 2147483646)), true); - } - #[rewrite(main)] - #[test] - fn test_400() { - assert_eq!(call!(lt_si32(0, 2147483647)), true); - assert_eq!(call!(lt_si32(1, 2)), true); - assert_eq!(call!(lt_si32(1, 3)), true); - assert_eq!(call!(lt_si32(1, 4)), true); - assert_eq!(call!(lt_si32(1, 2147483646)), true); - assert_eq!(call!(lt_si32(1, 2147483647)), true); - assert_eq!(call!(lt_si32(2, 3)), true); - assert_eq!(call!(lt_si32(2, 4)), true); - assert_eq!(call!(lt_si32(2, 2147483646)), true); - assert_eq!(call!(lt_si32(2, 2147483647)), true); - } - #[rewrite(main)] - #[test] - fn test_401() { - assert_eq!(call!(lt_si32(3, 4)), true); - assert_eq!(call!(lt_si32(3, 2147483646)), true); - assert_eq!(call!(lt_si32(3, 2147483647)), true); - assert_eq!(call!(lt_si32(4, 2147483646)), true); - assert_eq!(call!(lt_si32(4, 2147483647)), true); - assert_eq!(call!(lt_si32(2147483646, 2147483647)), true); - assert_eq!(call!(lt_si64(-9223372036854775808, -9223372036854775808)), false); - assert_eq!(call!(lt_si64(-9223372036854775807, -9223372036854775808)), false); - assert_eq!(call!(lt_si64(-9223372036854775807, -9223372036854775807)), false); - assert_eq!(call!(lt_si64(-1741927215160008704, -9223372036854775808)), false); - } - #[rewrite(main)] - #[test] - fn test_402() { - assert_eq!(call!(lt_si64(-1741927215160008704, -9223372036854775807)), false); - assert_eq!(call!(lt_si64(-1741927215160008704, -1741927215160008704)), false); - assert_eq!(call!(lt_si64(-1328271339354574848, -9223372036854775808)), false); - assert_eq!(call!(lt_si64(-1328271339354574848, -9223372036854775807)), false); - assert_eq!(call!(lt_si64(-1328271339354574848, -1741927215160008704)), false); - assert_eq!(call!(lt_si64(-1328271339354574848, -1328271339354574848)), false); - assert_eq!(call!(lt_si64(0, -9223372036854775808)), false); - assert_eq!(call!(lt_si64(0, -9223372036854775807)), false); - assert_eq!(call!(lt_si64(0, -1741927215160008704)), false); - assert_eq!(call!(lt_si64(0, -1328271339354574848)), false); - } - #[rewrite(main)] - #[test] - fn test_403() { - assert_eq!(call!(lt_si64(0, 0)), false); - assert_eq!(call!(lt_si64(1, -9223372036854775808)), false); - assert_eq!(call!(lt_si64(1, -9223372036854775807)), false); - assert_eq!(call!(lt_si64(1, -1741927215160008704)), false); - assert_eq!(call!(lt_si64(1, -1328271339354574848)), false); - assert_eq!(call!(lt_si64(1, 0)), false); - assert_eq!(call!(lt_si64(1, 1)), false); - assert_eq!(call!(lt_si64(2, -9223372036854775808)), false); - assert_eq!(call!(lt_si64(2, -9223372036854775807)), false); - assert_eq!(call!(lt_si64(2, -1741927215160008704)), false); - } - #[rewrite(main)] - #[test] - fn test_404() { - assert_eq!(call!(lt_si64(2, -1328271339354574848)), false); - assert_eq!(call!(lt_si64(2, 0)), false); - assert_eq!(call!(lt_si64(2, 1)), false); - assert_eq!(call!(lt_si64(2, 2)), false); - assert_eq!(call!(lt_si64(3, -9223372036854775808)), false); - assert_eq!(call!(lt_si64(3, -9223372036854775807)), false); - assert_eq!(call!(lt_si64(3, -1741927215160008704)), false); - assert_eq!(call!(lt_si64(3, -1328271339354574848)), false); - assert_eq!(call!(lt_si64(3, 0)), false); - assert_eq!(call!(lt_si64(3, 1)), false); - } - #[rewrite(main)] - #[test] - fn test_405() { - assert_eq!(call!(lt_si64(3, 2)), false); - assert_eq!(call!(lt_si64(3, 3)), false); - assert_eq!(call!(lt_si64(4, -9223372036854775808)), false); - assert_eq!(call!(lt_si64(4, -9223372036854775807)), false); - assert_eq!(call!(lt_si64(4, -1741927215160008704)), false); - assert_eq!(call!(lt_si64(4, -1328271339354574848)), false); - assert_eq!(call!(lt_si64(4, 0)), false); - assert_eq!(call!(lt_si64(4, 1)), false); - assert_eq!(call!(lt_si64(4, 2)), false); - assert_eq!(call!(lt_si64(4, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_406() { - assert_eq!(call!(lt_si64(4, 4)), false); - assert_eq!(call!(lt_si64(5577148965131116544, -9223372036854775808)), false); - assert_eq!(call!(lt_si64(5577148965131116544, -9223372036854775807)), false); - assert_eq!(call!(lt_si64(5577148965131116544, -1741927215160008704)), false); - assert_eq!(call!(lt_si64(5577148965131116544, -1328271339354574848)), false); - assert_eq!(call!(lt_si64(5577148965131116544, 0)), false); - assert_eq!(call!(lt_si64(5577148965131116544, 1)), false); - assert_eq!(call!(lt_si64(5577148965131116544, 2)), false); - assert_eq!(call!(lt_si64(5577148965131116544, 3)), false); - assert_eq!(call!(lt_si64(5577148965131116544, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_407() { - assert_eq!(call!(lt_si64(5577148965131116544, 5577148965131116544)), false); - assert_eq!(call!(lt_si64(9223372036854775806, -9223372036854775808)), false); - assert_eq!(call!(lt_si64(9223372036854775806, -9223372036854775807)), false); - assert_eq!(call!(lt_si64(9223372036854775806, -1741927215160008704)), false); - assert_eq!(call!(lt_si64(9223372036854775806, -1328271339354574848)), false); - assert_eq!(call!(lt_si64(9223372036854775806, 0)), false); - assert_eq!(call!(lt_si64(9223372036854775806, 1)), false); - assert_eq!(call!(lt_si64(9223372036854775806, 2)), false); - assert_eq!(call!(lt_si64(9223372036854775806, 3)), false); - assert_eq!(call!(lt_si64(9223372036854775806, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_408() { - assert_eq!(call!(lt_si64(9223372036854775806, 5577148965131116544)), false); - assert_eq!(call!(lt_si64(9223372036854775806, 9223372036854775806)), false); - assert_eq!(call!(lt_si64(9223372036854775807, -9223372036854775808)), false); - assert_eq!(call!(lt_si64(9223372036854775807, -9223372036854775807)), false); - assert_eq!(call!(lt_si64(9223372036854775807, -1741927215160008704)), false); - assert_eq!(call!(lt_si64(9223372036854775807, -1328271339354574848)), false); - assert_eq!(call!(lt_si64(9223372036854775807, 0)), false); - assert_eq!(call!(lt_si64(9223372036854775807, 1)), false); - assert_eq!(call!(lt_si64(9223372036854775807, 2)), false); - assert_eq!(call!(lt_si64(9223372036854775807, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_409() { - assert_eq!(call!(lt_si64(9223372036854775807, 4)), false); - assert_eq!(call!(lt_si64(9223372036854775807, 5577148965131116544)), false); - assert_eq!(call!(lt_si64(9223372036854775807, 9223372036854775806)), false); - assert_eq!(call!(lt_si64(9223372036854775807, 9223372036854775807)), false); - assert_eq!(call!(lt_si64(-9223372036854775808, -9223372036854775807)), true); - assert_eq!(call!(lt_si64(-9223372036854775808, -1741927215160008704)), true); - assert_eq!(call!(lt_si64(-9223372036854775808, -1328271339354574848)), true); - assert_eq!(call!(lt_si64(-9223372036854775808, 0)), true); - assert_eq!(call!(lt_si64(-9223372036854775808, 1)), true); - assert_eq!(call!(lt_si64(-9223372036854775808, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_410() { - assert_eq!(call!(lt_si64(-9223372036854775808, 3)), true); - assert_eq!(call!(lt_si64(-9223372036854775808, 4)), true); - assert_eq!(call!(lt_si64(-9223372036854775808, 5577148965131116544)), true); - assert_eq!(call!(lt_si64(-9223372036854775808, 9223372036854775806)), true); - assert_eq!(call!(lt_si64(-9223372036854775808, 9223372036854775807)), true); - assert_eq!(call!(lt_si64(-9223372036854775807, -1741927215160008704)), true); - assert_eq!(call!(lt_si64(-9223372036854775807, -1328271339354574848)), true); - assert_eq!(call!(lt_si64(-9223372036854775807, 0)), true); - assert_eq!(call!(lt_si64(-9223372036854775807, 1)), true); - assert_eq!(call!(lt_si64(-9223372036854775807, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_411() { - assert_eq!(call!(lt_si64(-9223372036854775807, 3)), true); - assert_eq!(call!(lt_si64(-9223372036854775807, 4)), true); - assert_eq!(call!(lt_si64(-9223372036854775807, 5577148965131116544)), true); - assert_eq!(call!(lt_si64(-9223372036854775807, 9223372036854775806)), true); - assert_eq!(call!(lt_si64(-9223372036854775807, 9223372036854775807)), true); - assert_eq!(call!(lt_si64(-1741927215160008704, -1328271339354574848)), true); - assert_eq!(call!(lt_si64(-1741927215160008704, 0)), true); - assert_eq!(call!(lt_si64(-1741927215160008704, 1)), true); - assert_eq!(call!(lt_si64(-1741927215160008704, 2)), true); - assert_eq!(call!(lt_si64(-1741927215160008704, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_412() { - assert_eq!(call!(lt_si64(-1741927215160008704, 4)), true); - assert_eq!(call!(lt_si64(-1741927215160008704, 5577148965131116544)), true); - assert_eq!(call!(lt_si64(-1741927215160008704, 9223372036854775806)), true); - assert_eq!(call!(lt_si64(-1741927215160008704, 9223372036854775807)), true); - assert_eq!(call!(lt_si64(-1328271339354574848, 0)), true); - assert_eq!(call!(lt_si64(-1328271339354574848, 1)), true); - assert_eq!(call!(lt_si64(-1328271339354574848, 2)), true); - assert_eq!(call!(lt_si64(-1328271339354574848, 3)), true); - assert_eq!(call!(lt_si64(-1328271339354574848, 4)), true); - assert_eq!(call!(lt_si64(-1328271339354574848, 5577148965131116544)), true); - } - #[rewrite(main)] - #[test] - fn test_413() { - assert_eq!(call!(lt_si64(-1328271339354574848, 9223372036854775806)), true); - assert_eq!(call!(lt_si64(-1328271339354574848, 9223372036854775807)), true); - assert_eq!(call!(lt_si64(0, 1)), true); - assert_eq!(call!(lt_si64(0, 2)), true); - assert_eq!(call!(lt_si64(0, 3)), true); - assert_eq!(call!(lt_si64(0, 4)), true); - assert_eq!(call!(lt_si64(0, 5577148965131116544)), true); - assert_eq!(call!(lt_si64(0, 9223372036854775806)), true); - assert_eq!(call!(lt_si64(0, 9223372036854775807)), true); - assert_eq!(call!(lt_si64(1, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_414() { - assert_eq!(call!(lt_si64(1, 3)), true); - assert_eq!(call!(lt_si64(1, 4)), true); - assert_eq!(call!(lt_si64(1, 5577148965131116544)), true); - assert_eq!(call!(lt_si64(1, 9223372036854775806)), true); - assert_eq!(call!(lt_si64(1, 9223372036854775807)), true); - assert_eq!(call!(lt_si64(2, 3)), true); - assert_eq!(call!(lt_si64(2, 4)), true); - assert_eq!(call!(lt_si64(2, 5577148965131116544)), true); - assert_eq!(call!(lt_si64(2, 9223372036854775806)), true); - assert_eq!(call!(lt_si64(2, 9223372036854775807)), true); - } - #[rewrite(main)] - #[test] - fn test_415() { - assert_eq!(call!(lt_si64(3, 4)), true); - assert_eq!(call!(lt_si64(3, 5577148965131116544)), true); - assert_eq!(call!(lt_si64(3, 9223372036854775806)), true); - assert_eq!(call!(lt_si64(3, 9223372036854775807)), true); - assert_eq!(call!(lt_si64(4, 5577148965131116544)), true); - assert_eq!(call!(lt_si64(4, 9223372036854775806)), true); - assert_eq!(call!(lt_si64(4, 9223372036854775807)), true); - assert_eq!(call!(lt_si64(5577148965131116544, 9223372036854775806)), true); - assert_eq!(call!(lt_si64(5577148965131116544, 9223372036854775807)), true); - assert_eq!(call!(lt_si64(9223372036854775806, 9223372036854775807)), true); - } - #[rewrite(main)] - #[test] - fn test_416() { - assert_eq!(call!(lt_si8(-128, -128)), false); - assert_eq!(call!(lt_si8(-127, -128)), false); - assert_eq!(call!(lt_si8(-127, -127)), false); - assert_eq!(call!(lt_si8(0, -128)), false); - assert_eq!(call!(lt_si8(0, -127)), false); - assert_eq!(call!(lt_si8(0, 0)), false); - assert_eq!(call!(lt_si8(1, -128)), false); - assert_eq!(call!(lt_si8(1, -127)), false); - assert_eq!(call!(lt_si8(1, 0)), false); - assert_eq!(call!(lt_si8(1, 1)), false); - } - #[rewrite(main)] - #[test] - fn test_417() { - assert_eq!(call!(lt_si8(2, -128)), false); - assert_eq!(call!(lt_si8(2, -127)), false); - assert_eq!(call!(lt_si8(2, 0)), false); - assert_eq!(call!(lt_si8(2, 1)), false); - assert_eq!(call!(lt_si8(2, 2)), false); - assert_eq!(call!(lt_si8(3, -128)), false); - assert_eq!(call!(lt_si8(3, -127)), false); - assert_eq!(call!(lt_si8(3, 0)), false); - assert_eq!(call!(lt_si8(3, 1)), false); - assert_eq!(call!(lt_si8(3, 2)), false); - } - #[rewrite(main)] - #[test] - fn test_418() { - assert_eq!(call!(lt_si8(3, 3)), false); - assert_eq!(call!(lt_si8(4, -128)), false); - assert_eq!(call!(lt_si8(4, -127)), false); - assert_eq!(call!(lt_si8(4, 0)), false); - assert_eq!(call!(lt_si8(4, 1)), false); - assert_eq!(call!(lt_si8(4, 2)), false); - assert_eq!(call!(lt_si8(4, 3)), false); - assert_eq!(call!(lt_si8(4, 4)), false); - assert_eq!(call!(lt_si8(16, -128)), false); - assert_eq!(call!(lt_si8(16, -127)), false); - } - #[rewrite(main)] - #[test] - fn test_419() { - assert_eq!(call!(lt_si8(16, 0)), false); - assert_eq!(call!(lt_si8(16, 1)), false); - assert_eq!(call!(lt_si8(16, 2)), false); - assert_eq!(call!(lt_si8(16, 3)), false); - assert_eq!(call!(lt_si8(16, 4)), false); - assert_eq!(call!(lt_si8(16, 16)), false); - assert_eq!(call!(lt_si8(126, -128)), false); - assert_eq!(call!(lt_si8(126, -127)), false); - assert_eq!(call!(lt_si8(126, 0)), false); - assert_eq!(call!(lt_si8(126, 1)), false); - } - #[rewrite(main)] - #[test] - fn test_420() { - assert_eq!(call!(lt_si8(126, 2)), false); - assert_eq!(call!(lt_si8(126, 3)), false); - assert_eq!(call!(lt_si8(126, 4)), false); - assert_eq!(call!(lt_si8(126, 16)), false); - assert_eq!(call!(lt_si8(126, 126)), false); - assert_eq!(call!(lt_si8(127, -128)), false); - assert_eq!(call!(lt_si8(127, -127)), false); - assert_eq!(call!(lt_si8(127, 0)), false); - assert_eq!(call!(lt_si8(127, 1)), false); - assert_eq!(call!(lt_si8(127, 2)), false); - } - #[rewrite(main)] - #[test] - fn test_421() { - assert_eq!(call!(lt_si8(127, 3)), false); - assert_eq!(call!(lt_si8(127, 4)), false); - assert_eq!(call!(lt_si8(127, 16)), false); - assert_eq!(call!(lt_si8(127, 126)), false); - assert_eq!(call!(lt_si8(127, 127)), false); - assert_eq!(call!(lt_si8(-128, -127)), true); - assert_eq!(call!(lt_si8(-128, 0)), true); - assert_eq!(call!(lt_si8(-128, 1)), true); - assert_eq!(call!(lt_si8(-128, 2)), true); - assert_eq!(call!(lt_si8(-128, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_422() { - assert_eq!(call!(lt_si8(-128, 4)), true); - assert_eq!(call!(lt_si8(-128, 16)), true); - assert_eq!(call!(lt_si8(-128, 126)), true); - assert_eq!(call!(lt_si8(-128, 127)), true); - assert_eq!(call!(lt_si8(-127, 0)), true); - assert_eq!(call!(lt_si8(-127, 1)), true); - assert_eq!(call!(lt_si8(-127, 2)), true); - assert_eq!(call!(lt_si8(-127, 3)), true); - assert_eq!(call!(lt_si8(-127, 4)), true); - assert_eq!(call!(lt_si8(-127, 16)), true); - } - #[rewrite(main)] - #[test] - fn test_423() { - assert_eq!(call!(lt_si8(-127, 126)), true); - assert_eq!(call!(lt_si8(-127, 127)), true); - assert_eq!(call!(lt_si8(0, 1)), true); - assert_eq!(call!(lt_si8(0, 2)), true); - assert_eq!(call!(lt_si8(0, 3)), true); - assert_eq!(call!(lt_si8(0, 4)), true); - assert_eq!(call!(lt_si8(0, 16)), true); - assert_eq!(call!(lt_si8(0, 126)), true); - assert_eq!(call!(lt_si8(0, 127)), true); - assert_eq!(call!(lt_si8(1, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_424() { - assert_eq!(call!(lt_si8(1, 3)), true); - assert_eq!(call!(lt_si8(1, 4)), true); - assert_eq!(call!(lt_si8(1, 16)), true); - assert_eq!(call!(lt_si8(1, 126)), true); - assert_eq!(call!(lt_si8(1, 127)), true); - assert_eq!(call!(lt_si8(2, 3)), true); - assert_eq!(call!(lt_si8(2, 4)), true); - assert_eq!(call!(lt_si8(2, 16)), true); - assert_eq!(call!(lt_si8(2, 126)), true); - assert_eq!(call!(lt_si8(2, 127)), true); - } - #[rewrite(main)] - #[test] - fn test_425() { - assert_eq!(call!(lt_si8(3, 4)), true); - assert_eq!(call!(lt_si8(3, 16)), true); - assert_eq!(call!(lt_si8(3, 126)), true); - assert_eq!(call!(lt_si8(3, 127)), true); - assert_eq!(call!(lt_si8(4, 16)), true); - assert_eq!(call!(lt_si8(4, 126)), true); - assert_eq!(call!(lt_si8(4, 127)), true); - assert_eq!(call!(lt_si8(16, 126)), true); - assert_eq!(call!(lt_si8(16, 127)), true); - assert_eq!(call!(lt_si8(126, 127)), true); - } - #[rewrite(main)] - #[test] - fn test_426() { - assert_eq!(call!(lt_ui16(0, 0)), false); - assert_eq!(call!(lt_ui16(1, 0)), false); - assert_eq!(call!(lt_ui16(1, 1)), false); - assert_eq!(call!(lt_ui16(2, 0)), false); - assert_eq!(call!(lt_ui16(2, 1)), false); - assert_eq!(call!(lt_ui16(2, 2)), false); - assert_eq!(call!(lt_ui16(3, 0)), false); - assert_eq!(call!(lt_ui16(3, 1)), false); - assert_eq!(call!(lt_ui16(3, 2)), false); - assert_eq!(call!(lt_ui16(3, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_427() { - assert_eq!(call!(lt_ui16(4, 0)), false); - assert_eq!(call!(lt_ui16(4, 1)), false); - assert_eq!(call!(lt_ui16(4, 2)), false); - assert_eq!(call!(lt_ui16(4, 3)), false); - assert_eq!(call!(lt_ui16(4, 4)), false); - assert_eq!(call!(lt_ui16(1717, 0)), false); - assert_eq!(call!(lt_ui16(1717, 1)), false); - assert_eq!(call!(lt_ui16(1717, 2)), false); - assert_eq!(call!(lt_ui16(1717, 3)), false); - assert_eq!(call!(lt_ui16(1717, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_428() { - assert_eq!(call!(lt_ui16(1717, 1717)), false); - assert_eq!(call!(lt_ui16(17988, 0)), false); - assert_eq!(call!(lt_ui16(17988, 1)), false); - assert_eq!(call!(lt_ui16(17988, 2)), false); - assert_eq!(call!(lt_ui16(17988, 3)), false); - assert_eq!(call!(lt_ui16(17988, 4)), false); - assert_eq!(call!(lt_ui16(17988, 1717)), false); - assert_eq!(call!(lt_ui16(17988, 17988)), false); - assert_eq!(call!(lt_ui16(65096, 0)), false); - assert_eq!(call!(lt_ui16(65096, 1)), false); - } - #[rewrite(main)] - #[test] - fn test_429() { - assert_eq!(call!(lt_ui16(65096, 2)), false); - assert_eq!(call!(lt_ui16(65096, 3)), false); - assert_eq!(call!(lt_ui16(65096, 4)), false); - assert_eq!(call!(lt_ui16(65096, 1717)), false); - assert_eq!(call!(lt_ui16(65096, 17988)), false); - assert_eq!(call!(lt_ui16(65096, 65096)), false); - assert_eq!(call!(lt_ui16(65534, 0)), false); - assert_eq!(call!(lt_ui16(65534, 1)), false); - assert_eq!(call!(lt_ui16(65534, 2)), false); - assert_eq!(call!(lt_ui16(65534, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_430() { - assert_eq!(call!(lt_ui16(65534, 4)), false); - assert_eq!(call!(lt_ui16(65534, 1717)), false); - assert_eq!(call!(lt_ui16(65534, 17988)), false); - assert_eq!(call!(lt_ui16(65534, 65096)), false); - assert_eq!(call!(lt_ui16(65534, 65534)), false); - assert_eq!(call!(lt_ui16(65535, 0)), false); - assert_eq!(call!(lt_ui16(65535, 1)), false); - assert_eq!(call!(lt_ui16(65535, 2)), false); - assert_eq!(call!(lt_ui16(65535, 3)), false); - assert_eq!(call!(lt_ui16(65535, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_431() { - assert_eq!(call!(lt_ui16(65535, 1717)), false); - assert_eq!(call!(lt_ui16(65535, 17988)), false); - assert_eq!(call!(lt_ui16(65535, 65096)), false); - assert_eq!(call!(lt_ui16(65535, 65534)), false); - assert_eq!(call!(lt_ui16(65535, 65535)), false); - assert_eq!(call!(lt_ui16(0, 1)), true); - assert_eq!(call!(lt_ui16(0, 2)), true); - assert_eq!(call!(lt_ui16(0, 3)), true); - assert_eq!(call!(lt_ui16(0, 4)), true); - assert_eq!(call!(lt_ui16(0, 1717)), true); - } - #[rewrite(main)] - #[test] - fn test_432() { - assert_eq!(call!(lt_ui16(0, 17988)), true); - assert_eq!(call!(lt_ui16(0, 65096)), true); - assert_eq!(call!(lt_ui16(0, 65534)), true); - assert_eq!(call!(lt_ui16(0, 65535)), true); - assert_eq!(call!(lt_ui16(1, 2)), true); - assert_eq!(call!(lt_ui16(1, 3)), true); - assert_eq!(call!(lt_ui16(1, 4)), true); - assert_eq!(call!(lt_ui16(1, 1717)), true); - assert_eq!(call!(lt_ui16(1, 17988)), true); - assert_eq!(call!(lt_ui16(1, 65096)), true); - } - #[rewrite(main)] - #[test] - fn test_433() { - assert_eq!(call!(lt_ui16(1, 65534)), true); - assert_eq!(call!(lt_ui16(1, 65535)), true); - assert_eq!(call!(lt_ui16(2, 3)), true); - assert_eq!(call!(lt_ui16(2, 4)), true); - assert_eq!(call!(lt_ui16(2, 1717)), true); - assert_eq!(call!(lt_ui16(2, 17988)), true); - assert_eq!(call!(lt_ui16(2, 65096)), true); - assert_eq!(call!(lt_ui16(2, 65534)), true); - assert_eq!(call!(lt_ui16(2, 65535)), true); - assert_eq!(call!(lt_ui16(3, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_434() { - assert_eq!(call!(lt_ui16(3, 1717)), true); - assert_eq!(call!(lt_ui16(3, 17988)), true); - assert_eq!(call!(lt_ui16(3, 65096)), true); - assert_eq!(call!(lt_ui16(3, 65534)), true); - assert_eq!(call!(lt_ui16(3, 65535)), true); - assert_eq!(call!(lt_ui16(4, 1717)), true); - assert_eq!(call!(lt_ui16(4, 17988)), true); - assert_eq!(call!(lt_ui16(4, 65096)), true); - assert_eq!(call!(lt_ui16(4, 65534)), true); - assert_eq!(call!(lt_ui16(4, 65535)), true); - } - #[rewrite(main)] - #[test] - fn test_435() { - assert_eq!(call!(lt_ui16(1717, 17988)), true); - assert_eq!(call!(lt_ui16(1717, 65096)), true); - assert_eq!(call!(lt_ui16(1717, 65534)), true); - assert_eq!(call!(lt_ui16(1717, 65535)), true); - assert_eq!(call!(lt_ui16(17988, 65096)), true); - assert_eq!(call!(lt_ui16(17988, 65534)), true); - assert_eq!(call!(lt_ui16(17988, 65535)), true); - assert_eq!(call!(lt_ui16(65096, 65534)), true); - assert_eq!(call!(lt_ui16(65096, 65535)), true); - assert_eq!(call!(lt_ui16(65534, 65535)), true); - } - #[rewrite(main)] - #[test] - fn test_436() { - assert_eq!(call!(lt_ui32(0, 0)), false); - assert_eq!(call!(lt_ui32(1, 0)), false); - assert_eq!(call!(lt_ui32(1, 1)), false); - assert_eq!(call!(lt_ui32(2, 0)), false); - assert_eq!(call!(lt_ui32(2, 1)), false); - assert_eq!(call!(lt_ui32(2, 2)), false); - assert_eq!(call!(lt_ui32(3, 0)), false); - assert_eq!(call!(lt_ui32(3, 1)), false); - assert_eq!(call!(lt_ui32(3, 2)), false); - assert_eq!(call!(lt_ui32(3, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_437() { - assert_eq!(call!(lt_ui32(4, 0)), false); - assert_eq!(call!(lt_ui32(4, 1)), false); - assert_eq!(call!(lt_ui32(4, 2)), false); - assert_eq!(call!(lt_ui32(4, 3)), false); - assert_eq!(call!(lt_ui32(4, 4)), false); - assert_eq!(call!(lt_ui32(2119154652, 0)), false); - assert_eq!(call!(lt_ui32(2119154652, 1)), false); - assert_eq!(call!(lt_ui32(2119154652, 2)), false); - assert_eq!(call!(lt_ui32(2119154652, 3)), false); - assert_eq!(call!(lt_ui32(2119154652, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_438() { - assert_eq!(call!(lt_ui32(2119154652, 2119154652)), false); - assert_eq!(call!(lt_ui32(3002788344, 0)), false); - assert_eq!(call!(lt_ui32(3002788344, 1)), false); - assert_eq!(call!(lt_ui32(3002788344, 2)), false); - assert_eq!(call!(lt_ui32(3002788344, 3)), false); - assert_eq!(call!(lt_ui32(3002788344, 4)), false); - assert_eq!(call!(lt_ui32(3002788344, 2119154652)), false); - assert_eq!(call!(lt_ui32(3002788344, 3002788344)), false); - assert_eq!(call!(lt_ui32(3482297128, 0)), false); - assert_eq!(call!(lt_ui32(3482297128, 1)), false); - } - #[rewrite(main)] - #[test] - fn test_439() { - assert_eq!(call!(lt_ui32(3482297128, 2)), false); - assert_eq!(call!(lt_ui32(3482297128, 3)), false); - assert_eq!(call!(lt_ui32(3482297128, 4)), false); - assert_eq!(call!(lt_ui32(3482297128, 2119154652)), false); - assert_eq!(call!(lt_ui32(3482297128, 3002788344)), false); - assert_eq!(call!(lt_ui32(3482297128, 3482297128)), false); - assert_eq!(call!(lt_ui32(4294967294, 0)), false); - assert_eq!(call!(lt_ui32(4294967294, 1)), false); - assert_eq!(call!(lt_ui32(4294967294, 2)), false); - assert_eq!(call!(lt_ui32(4294967294, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_440() { - assert_eq!(call!(lt_ui32(4294967294, 4)), false); - assert_eq!(call!(lt_ui32(4294967294, 2119154652)), false); - assert_eq!(call!(lt_ui32(4294967294, 3002788344)), false); - assert_eq!(call!(lt_ui32(4294967294, 3482297128)), false); - assert_eq!(call!(lt_ui32(4294967294, 4294967294)), false); - assert_eq!(call!(lt_ui32(4294967295, 0)), false); - assert_eq!(call!(lt_ui32(4294967295, 1)), false); - assert_eq!(call!(lt_ui32(4294967295, 2)), false); - assert_eq!(call!(lt_ui32(4294967295, 3)), false); - assert_eq!(call!(lt_ui32(4294967295, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_441() { - assert_eq!(call!(lt_ui32(4294967295, 2119154652)), false); - assert_eq!(call!(lt_ui32(4294967295, 3002788344)), false); - assert_eq!(call!(lt_ui32(4294967295, 3482297128)), false); - assert_eq!(call!(lt_ui32(4294967295, 4294967294)), false); - assert_eq!(call!(lt_ui32(4294967295, 4294967295)), false); - assert_eq!(call!(lt_ui32(0, 1)), true); - assert_eq!(call!(lt_ui32(0, 2)), true); - assert_eq!(call!(lt_ui32(0, 3)), true); - assert_eq!(call!(lt_ui32(0, 4)), true); - assert_eq!(call!(lt_ui32(0, 2119154652)), true); - } - #[rewrite(main)] - #[test] - fn test_442() { - assert_eq!(call!(lt_ui32(0, 3002788344)), true); - assert_eq!(call!(lt_ui32(0, 3482297128)), true); - assert_eq!(call!(lt_ui32(0, 4294967294)), true); - assert_eq!(call!(lt_ui32(0, 4294967295)), true); - assert_eq!(call!(lt_ui32(1, 2)), true); - assert_eq!(call!(lt_ui32(1, 3)), true); - assert_eq!(call!(lt_ui32(1, 4)), true); - assert_eq!(call!(lt_ui32(1, 2119154652)), true); - assert_eq!(call!(lt_ui32(1, 3002788344)), true); - assert_eq!(call!(lt_ui32(1, 3482297128)), true); - } - #[rewrite(main)] - #[test] - fn test_443() { - assert_eq!(call!(lt_ui32(1, 4294967294)), true); - assert_eq!(call!(lt_ui32(1, 4294967295)), true); - assert_eq!(call!(lt_ui32(2, 3)), true); - assert_eq!(call!(lt_ui32(2, 4)), true); - assert_eq!(call!(lt_ui32(2, 2119154652)), true); - assert_eq!(call!(lt_ui32(2, 3002788344)), true); - assert_eq!(call!(lt_ui32(2, 3482297128)), true); - assert_eq!(call!(lt_ui32(2, 4294967294)), true); - assert_eq!(call!(lt_ui32(2, 4294967295)), true); - assert_eq!(call!(lt_ui32(3, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_444() { - assert_eq!(call!(lt_ui32(3, 2119154652)), true); - assert_eq!(call!(lt_ui32(3, 3002788344)), true); - assert_eq!(call!(lt_ui32(3, 3482297128)), true); - assert_eq!(call!(lt_ui32(3, 4294967294)), true); - assert_eq!(call!(lt_ui32(3, 4294967295)), true); - assert_eq!(call!(lt_ui32(4, 2119154652)), true); - assert_eq!(call!(lt_ui32(4, 3002788344)), true); - assert_eq!(call!(lt_ui32(4, 3482297128)), true); - assert_eq!(call!(lt_ui32(4, 4294967294)), true); - assert_eq!(call!(lt_ui32(4, 4294967295)), true); - } - #[rewrite(main)] - #[test] - fn test_445() { - assert_eq!(call!(lt_ui32(2119154652, 3002788344)), true); - assert_eq!(call!(lt_ui32(2119154652, 3482297128)), true); - assert_eq!(call!(lt_ui32(2119154652, 4294967294)), true); - assert_eq!(call!(lt_ui32(2119154652, 4294967295)), true); - assert_eq!(call!(lt_ui32(3002788344, 3482297128)), true); - assert_eq!(call!(lt_ui32(3002788344, 4294967294)), true); - assert_eq!(call!(lt_ui32(3002788344, 4294967295)), true); - assert_eq!(call!(lt_ui32(3482297128, 4294967294)), true); - assert_eq!(call!(lt_ui32(3482297128, 4294967295)), true); - assert_eq!(call!(lt_ui32(4294967294, 4294967295)), true); - } - #[rewrite(main)] - #[test] - fn test_446() { - assert_eq!(call!(lt_ui64(0, 0)), false); - assert_eq!(call!(lt_ui64(1, 0)), false); - assert_eq!(call!(lt_ui64(1, 1)), false); - assert_eq!(call!(lt_ui64(2, 0)), false); - assert_eq!(call!(lt_ui64(2, 1)), false); - assert_eq!(call!(lt_ui64(2, 2)), false); - assert_eq!(call!(lt_ui64(3, 0)), false); - assert_eq!(call!(lt_ui64(3, 1)), false); - assert_eq!(call!(lt_ui64(3, 2)), false); - assert_eq!(call!(lt_ui64(3, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_447() { - assert_eq!(call!(lt_ui64(4, 0)), false); - assert_eq!(call!(lt_ui64(4, 1)), false); - assert_eq!(call!(lt_ui64(4, 2)), false); - assert_eq!(call!(lt_ui64(4, 3)), false); - assert_eq!(call!(lt_ui64(4, 4)), false); - assert_eq!(call!(lt_ui64(191084152064409600, 0)), false); - assert_eq!(call!(lt_ui64(191084152064409600, 1)), false); - assert_eq!(call!(lt_ui64(191084152064409600, 2)), false); - assert_eq!(call!(lt_ui64(191084152064409600, 3)), false); - assert_eq!(call!(lt_ui64(191084152064409600, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_448() { - assert_eq!(call!(lt_ui64(191084152064409600, 191084152064409600)), false); - assert_eq!(call!(lt_ui64(11015955194427482112, 0)), false); - assert_eq!(call!(lt_ui64(11015955194427482112, 1)), false); - assert_eq!(call!(lt_ui64(11015955194427482112, 2)), false); - assert_eq!(call!(lt_ui64(11015955194427482112, 3)), false); - assert_eq!(call!(lt_ui64(11015955194427482112, 4)), false); - assert_eq!(call!(lt_ui64(11015955194427482112, 191084152064409600)), false); - assert_eq!(call!(lt_ui64(11015955194427482112, 11015955194427482112)), false); - assert_eq!(call!(lt_ui64(16990600415051759616, 0)), false); - assert_eq!(call!(lt_ui64(16990600415051759616, 1)), false); - } - #[rewrite(main)] - #[test] - fn test_449() { - assert_eq!(call!(lt_ui64(16990600415051759616, 2)), false); - assert_eq!(call!(lt_ui64(16990600415051759616, 3)), false); - assert_eq!(call!(lt_ui64(16990600415051759616, 4)), false); - assert_eq!(call!(lt_ui64(16990600415051759616, 191084152064409600)), false); - assert_eq!(call!(lt_ui64(16990600415051759616, 11015955194427482112)), false); - assert_eq!(call!(lt_ui64(16990600415051759616, 16990600415051759616)), false); - assert_eq!(call!(lt_ui64(18446744073709551614, 0)), false); - assert_eq!(call!(lt_ui64(18446744073709551614, 1)), false); - assert_eq!(call!(lt_ui64(18446744073709551614, 2)), false); - assert_eq!(call!(lt_ui64(18446744073709551614, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_450() { - assert_eq!(call!(lt_ui64(18446744073709551614, 4)), false); - assert_eq!(call!(lt_ui64(18446744073709551614, 191084152064409600)), false); - assert_eq!(call!(lt_ui64(18446744073709551614, 11015955194427482112)), false); - assert_eq!(call!(lt_ui64(18446744073709551614, 16990600415051759616)), false); - assert_eq!(call!(lt_ui64(18446744073709551614, 18446744073709551614)), false); - assert_eq!(call!(lt_ui64(18446744073709551615, 0)), false); - assert_eq!(call!(lt_ui64(18446744073709551615, 1)), false); - assert_eq!(call!(lt_ui64(18446744073709551615, 2)), false); - assert_eq!(call!(lt_ui64(18446744073709551615, 3)), false); - assert_eq!(call!(lt_ui64(18446744073709551615, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_451() { - assert_eq!(call!(lt_ui64(18446744073709551615, 191084152064409600)), false); - assert_eq!(call!(lt_ui64(18446744073709551615, 11015955194427482112)), false); - assert_eq!(call!(lt_ui64(18446744073709551615, 16990600415051759616)), false); - assert_eq!(call!(lt_ui64(18446744073709551615, 18446744073709551614)), false); - assert_eq!(call!(lt_ui64(18446744073709551615, 18446744073709551615)), false); - assert_eq!(call!(lt_ui64(0, 1)), true); - assert_eq!(call!(lt_ui64(0, 2)), true); - assert_eq!(call!(lt_ui64(0, 3)), true); - assert_eq!(call!(lt_ui64(0, 4)), true); - assert_eq!(call!(lt_ui64(0, 191084152064409600)), true); - } - #[rewrite(main)] - #[test] - fn test_452() { - assert_eq!(call!(lt_ui64(0, 11015955194427482112)), true); - assert_eq!(call!(lt_ui64(0, 16990600415051759616)), true); - assert_eq!(call!(lt_ui64(0, 18446744073709551614)), true); - assert_eq!(call!(lt_ui64(0, 18446744073709551615)), true); - assert_eq!(call!(lt_ui64(1, 2)), true); - assert_eq!(call!(lt_ui64(1, 3)), true); - assert_eq!(call!(lt_ui64(1, 4)), true); - assert_eq!(call!(lt_ui64(1, 191084152064409600)), true); - assert_eq!(call!(lt_ui64(1, 11015955194427482112)), true); - assert_eq!(call!(lt_ui64(1, 16990600415051759616)), true); - } - #[rewrite(main)] - #[test] - fn test_453() { - assert_eq!(call!(lt_ui64(1, 18446744073709551614)), true); - assert_eq!(call!(lt_ui64(1, 18446744073709551615)), true); - assert_eq!(call!(lt_ui64(2, 3)), true); - assert_eq!(call!(lt_ui64(2, 4)), true); - assert_eq!(call!(lt_ui64(2, 191084152064409600)), true); - assert_eq!(call!(lt_ui64(2, 11015955194427482112)), true); - assert_eq!(call!(lt_ui64(2, 16990600415051759616)), true); - assert_eq!(call!(lt_ui64(2, 18446744073709551614)), true); - assert_eq!(call!(lt_ui64(2, 18446744073709551615)), true); - assert_eq!(call!(lt_ui64(3, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_454() { - assert_eq!(call!(lt_ui64(3, 191084152064409600)), true); - assert_eq!(call!(lt_ui64(3, 11015955194427482112)), true); - assert_eq!(call!(lt_ui64(3, 16990600415051759616)), true); - assert_eq!(call!(lt_ui64(3, 18446744073709551614)), true); - assert_eq!(call!(lt_ui64(3, 18446744073709551615)), true); - assert_eq!(call!(lt_ui64(4, 191084152064409600)), true); - assert_eq!(call!(lt_ui64(4, 11015955194427482112)), true); - assert_eq!(call!(lt_ui64(4, 16990600415051759616)), true); - assert_eq!(call!(lt_ui64(4, 18446744073709551614)), true); - assert_eq!(call!(lt_ui64(4, 18446744073709551615)), true); - } - #[rewrite(main)] - #[test] - fn test_455() { - assert_eq!(call!(lt_ui64(191084152064409600, 11015955194427482112)), true); - assert_eq!(call!(lt_ui64(191084152064409600, 16990600415051759616)), true); - assert_eq!(call!(lt_ui64(191084152064409600, 18446744073709551614)), true); - assert_eq!(call!(lt_ui64(191084152064409600, 18446744073709551615)), true); - assert_eq!(call!(lt_ui64(11015955194427482112, 16990600415051759616)), true); - assert_eq!(call!(lt_ui64(11015955194427482112, 18446744073709551614)), true); - assert_eq!(call!(lt_ui64(11015955194427482112, 18446744073709551615)), true); - assert_eq!(call!(lt_ui64(16990600415051759616, 18446744073709551614)), true); - assert_eq!(call!(lt_ui64(16990600415051759616, 18446744073709551615)), true); - assert_eq!(call!(lt_ui64(18446744073709551614, 18446744073709551615)), true); - } - #[rewrite(main)] - #[test] - fn test_456() { - assert_eq!(call!(lt_ui8(0, 0)), false); - assert_eq!(call!(lt_ui8(1, 0)), false); - assert_eq!(call!(lt_ui8(1, 1)), false); - assert_eq!(call!(lt_ui8(2, 0)), false); - assert_eq!(call!(lt_ui8(2, 1)), false); - assert_eq!(call!(lt_ui8(2, 2)), false); - assert_eq!(call!(lt_ui8(3, 0)), false); - assert_eq!(call!(lt_ui8(3, 1)), false); - assert_eq!(call!(lt_ui8(3, 2)), false); - assert_eq!(call!(lt_ui8(3, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_457() { - assert_eq!(call!(lt_ui8(4, 0)), false); - assert_eq!(call!(lt_ui8(4, 1)), false); - assert_eq!(call!(lt_ui8(4, 2)), false); - assert_eq!(call!(lt_ui8(4, 3)), false); - assert_eq!(call!(lt_ui8(4, 4)), false); - assert_eq!(call!(lt_ui8(72, 0)), false); - assert_eq!(call!(lt_ui8(72, 1)), false); - assert_eq!(call!(lt_ui8(72, 2)), false); - assert_eq!(call!(lt_ui8(72, 3)), false); - assert_eq!(call!(lt_ui8(72, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_458() { - assert_eq!(call!(lt_ui8(72, 72)), false); - assert_eq!(call!(lt_ui8(100, 0)), false); - assert_eq!(call!(lt_ui8(100, 1)), false); - assert_eq!(call!(lt_ui8(100, 2)), false); - assert_eq!(call!(lt_ui8(100, 3)), false); - assert_eq!(call!(lt_ui8(100, 4)), false); - assert_eq!(call!(lt_ui8(100, 72)), false); - assert_eq!(call!(lt_ui8(100, 100)), false); - assert_eq!(call!(lt_ui8(162, 0)), false); - assert_eq!(call!(lt_ui8(162, 1)), false); - } - #[rewrite(main)] - #[test] - fn test_459() { - assert_eq!(call!(lt_ui8(162, 2)), false); - assert_eq!(call!(lt_ui8(162, 3)), false); - assert_eq!(call!(lt_ui8(162, 4)), false); - assert_eq!(call!(lt_ui8(162, 72)), false); - assert_eq!(call!(lt_ui8(162, 100)), false); - assert_eq!(call!(lt_ui8(162, 162)), false); - assert_eq!(call!(lt_ui8(254, 0)), false); - assert_eq!(call!(lt_ui8(254, 1)), false); - assert_eq!(call!(lt_ui8(254, 2)), false); - assert_eq!(call!(lt_ui8(254, 3)), false); - } - #[rewrite(main)] - #[test] - fn test_460() { - assert_eq!(call!(lt_ui8(254, 4)), false); - assert_eq!(call!(lt_ui8(254, 72)), false); - assert_eq!(call!(lt_ui8(254, 100)), false); - assert_eq!(call!(lt_ui8(254, 162)), false); - assert_eq!(call!(lt_ui8(254, 254)), false); - assert_eq!(call!(lt_ui8(255, 0)), false); - assert_eq!(call!(lt_ui8(255, 1)), false); - assert_eq!(call!(lt_ui8(255, 2)), false); - assert_eq!(call!(lt_ui8(255, 3)), false); - assert_eq!(call!(lt_ui8(255, 4)), false); - } - #[rewrite(main)] - #[test] - fn test_461() { - assert_eq!(call!(lt_ui8(255, 72)), false); - assert_eq!(call!(lt_ui8(255, 100)), false); - assert_eq!(call!(lt_ui8(255, 162)), false); - assert_eq!(call!(lt_ui8(255, 254)), false); - assert_eq!(call!(lt_ui8(255, 255)), false); - assert_eq!(call!(lt_ui8(0, 1)), true); - assert_eq!(call!(lt_ui8(0, 2)), true); - assert_eq!(call!(lt_ui8(0, 3)), true); - assert_eq!(call!(lt_ui8(0, 4)), true); - assert_eq!(call!(lt_ui8(0, 72)), true); - } - #[rewrite(main)] - #[test] - fn test_462() { - assert_eq!(call!(lt_ui8(0, 100)), true); - assert_eq!(call!(lt_ui8(0, 162)), true); - assert_eq!(call!(lt_ui8(0, 254)), true); - assert_eq!(call!(lt_ui8(0, 255)), true); - assert_eq!(call!(lt_ui8(1, 2)), true); - assert_eq!(call!(lt_ui8(1, 3)), true); - assert_eq!(call!(lt_ui8(1, 4)), true); - assert_eq!(call!(lt_ui8(1, 72)), true); - assert_eq!(call!(lt_ui8(1, 100)), true); - assert_eq!(call!(lt_ui8(1, 162)), true); - } - #[rewrite(main)] - #[test] - fn test_463() { - assert_eq!(call!(lt_ui8(1, 254)), true); - assert_eq!(call!(lt_ui8(1, 255)), true); - assert_eq!(call!(lt_ui8(2, 3)), true); - assert_eq!(call!(lt_ui8(2, 4)), true); - assert_eq!(call!(lt_ui8(2, 72)), true); - assert_eq!(call!(lt_ui8(2, 100)), true); - assert_eq!(call!(lt_ui8(2, 162)), true); - assert_eq!(call!(lt_ui8(2, 254)), true); - assert_eq!(call!(lt_ui8(2, 255)), true); - assert_eq!(call!(lt_ui8(3, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_464() { - assert_eq!(call!(lt_ui8(3, 72)), true); - assert_eq!(call!(lt_ui8(3, 100)), true); - assert_eq!(call!(lt_ui8(3, 162)), true); - assert_eq!(call!(lt_ui8(3, 254)), true); - assert_eq!(call!(lt_ui8(3, 255)), true); - assert_eq!(call!(lt_ui8(4, 72)), true); - assert_eq!(call!(lt_ui8(4, 100)), true); - assert_eq!(call!(lt_ui8(4, 162)), true); - assert_eq!(call!(lt_ui8(4, 254)), true); - assert_eq!(call!(lt_ui8(4, 255)), true); - } - #[rewrite(main)] - #[test] - fn test_465() { - assert_eq!(call!(lt_ui8(72, 100)), true); - assert_eq!(call!(lt_ui8(72, 162)), true); - assert_eq!(call!(lt_ui8(72, 254)), true); - assert_eq!(call!(lt_ui8(72, 255)), true); - assert_eq!(call!(lt_ui8(100, 162)), true); - assert_eq!(call!(lt_ui8(100, 254)), true); - assert_eq!(call!(lt_ui8(100, 255)), true); - assert_eq!(call!(lt_ui8(162, 254)), true); - assert_eq!(call!(lt_ui8(162, 255)), true); - assert_eq!(call!(lt_ui8(254, 255)), true); - } - #[rewrite(main)] - #[test] - fn test_466() { - assert_eq!(call!(ne_si16(-32768, -32768)), false); - assert_eq!(call!(ne_si16(-32767, -32767)), false); - assert_eq!(call!(ne_si16(-32547, -32547)), false); - assert_eq!(call!(ne_si16(0, 0)), false); - assert_eq!(call!(ne_si16(1, 1)), false); - assert_eq!(call!(ne_si16(2, 2)), false); - assert_eq!(call!(ne_si16(3, 3)), false); - assert_eq!(call!(ne_si16(4, 4)), false); - assert_eq!(call!(ne_si16(10486, 10486)), false); - assert_eq!(call!(ne_si16(16514, 16514)), false); - } - #[rewrite(main)] - #[test] - fn test_467() { - assert_eq!(call!(ne_si16(32766, 32766)), false); - assert_eq!(call!(ne_si16(32767, 32767)), false); - assert_eq!(call!(ne_si16(-32768, -32767)), true); - assert_eq!(call!(ne_si16(-32768, -32547)), true); - assert_eq!(call!(ne_si16(-32768, 0)), true); - assert_eq!(call!(ne_si16(-32768, 1)), true); - assert_eq!(call!(ne_si16(-32768, 2)), true); - assert_eq!(call!(ne_si16(-32768, 3)), true); - assert_eq!(call!(ne_si16(-32768, 4)), true); - assert_eq!(call!(ne_si16(-32768, 10486)), true); - } - #[rewrite(main)] - #[test] - fn test_468() { - assert_eq!(call!(ne_si16(-32768, 16514)), true); - assert_eq!(call!(ne_si16(-32768, 32766)), true); - assert_eq!(call!(ne_si16(-32768, 32767)), true); - assert_eq!(call!(ne_si16(-32767, -32768)), true); - assert_eq!(call!(ne_si16(-32767, -32547)), true); - assert_eq!(call!(ne_si16(-32767, 0)), true); - assert_eq!(call!(ne_si16(-32767, 1)), true); - assert_eq!(call!(ne_si16(-32767, 2)), true); - assert_eq!(call!(ne_si16(-32767, 3)), true); - assert_eq!(call!(ne_si16(-32767, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_469() { - assert_eq!(call!(ne_si16(-32767, 10486)), true); - assert_eq!(call!(ne_si16(-32767, 16514)), true); - assert_eq!(call!(ne_si16(-32767, 32766)), true); - assert_eq!(call!(ne_si16(-32767, 32767)), true); - assert_eq!(call!(ne_si16(-32547, -32768)), true); - assert_eq!(call!(ne_si16(-32547, -32767)), true); - assert_eq!(call!(ne_si16(-32547, 0)), true); - assert_eq!(call!(ne_si16(-32547, 1)), true); - assert_eq!(call!(ne_si16(-32547, 2)), true); - assert_eq!(call!(ne_si16(-32547, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_470() { - assert_eq!(call!(ne_si16(-32547, 4)), true); - assert_eq!(call!(ne_si16(-32547, 10486)), true); - assert_eq!(call!(ne_si16(-32547, 16514)), true); - assert_eq!(call!(ne_si16(-32547, 32766)), true); - assert_eq!(call!(ne_si16(-32547, 32767)), true); - assert_eq!(call!(ne_si16(0, -32768)), true); - assert_eq!(call!(ne_si16(0, -32767)), true); - assert_eq!(call!(ne_si16(0, -32547)), true); - assert_eq!(call!(ne_si16(0, 1)), true); - assert_eq!(call!(ne_si16(0, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_471() { - assert_eq!(call!(ne_si16(0, 3)), true); - assert_eq!(call!(ne_si16(0, 4)), true); - assert_eq!(call!(ne_si16(0, 10486)), true); - assert_eq!(call!(ne_si16(0, 16514)), true); - assert_eq!(call!(ne_si16(0, 32766)), true); - assert_eq!(call!(ne_si16(0, 32767)), true); - assert_eq!(call!(ne_si16(1, -32768)), true); - assert_eq!(call!(ne_si16(1, -32767)), true); - assert_eq!(call!(ne_si16(1, -32547)), true); - assert_eq!(call!(ne_si16(1, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_472() { - assert_eq!(call!(ne_si16(1, 2)), true); - assert_eq!(call!(ne_si16(1, 3)), true); - assert_eq!(call!(ne_si16(1, 4)), true); - assert_eq!(call!(ne_si16(1, 10486)), true); - assert_eq!(call!(ne_si16(1, 16514)), true); - assert_eq!(call!(ne_si16(1, 32766)), true); - assert_eq!(call!(ne_si16(1, 32767)), true); - assert_eq!(call!(ne_si16(2, -32768)), true); - assert_eq!(call!(ne_si16(2, -32767)), true); - assert_eq!(call!(ne_si16(2, -32547)), true); - } - #[rewrite(main)] - #[test] - fn test_473() { - assert_eq!(call!(ne_si16(2, 0)), true); - assert_eq!(call!(ne_si16(2, 1)), true); - assert_eq!(call!(ne_si16(2, 3)), true); - assert_eq!(call!(ne_si16(2, 4)), true); - assert_eq!(call!(ne_si16(2, 10486)), true); - assert_eq!(call!(ne_si16(2, 16514)), true); - assert_eq!(call!(ne_si16(2, 32766)), true); - assert_eq!(call!(ne_si16(2, 32767)), true); - assert_eq!(call!(ne_si16(3, -32768)), true); - assert_eq!(call!(ne_si16(3, -32767)), true); - } - #[rewrite(main)] - #[test] - fn test_474() { - assert_eq!(call!(ne_si16(3, -32547)), true); - assert_eq!(call!(ne_si16(3, 0)), true); - assert_eq!(call!(ne_si16(3, 1)), true); - assert_eq!(call!(ne_si16(3, 2)), true); - assert_eq!(call!(ne_si16(3, 4)), true); - assert_eq!(call!(ne_si16(3, 10486)), true); - assert_eq!(call!(ne_si16(3, 16514)), true); - assert_eq!(call!(ne_si16(3, 32766)), true); - assert_eq!(call!(ne_si16(3, 32767)), true); - assert_eq!(call!(ne_si16(4, -32768)), true); - } - #[rewrite(main)] - #[test] - fn test_475() { - assert_eq!(call!(ne_si16(4, -32767)), true); - assert_eq!(call!(ne_si16(4, -32547)), true); - assert_eq!(call!(ne_si16(4, 0)), true); - assert_eq!(call!(ne_si16(4, 1)), true); - assert_eq!(call!(ne_si16(4, 2)), true); - assert_eq!(call!(ne_si16(4, 3)), true); - assert_eq!(call!(ne_si16(4, 10486)), true); - assert_eq!(call!(ne_si16(4, 16514)), true); - assert_eq!(call!(ne_si16(4, 32766)), true); - assert_eq!(call!(ne_si16(4, 32767)), true); - } - #[rewrite(main)] - #[test] - fn test_476() { - assert_eq!(call!(ne_si16(10486, -32768)), true); - assert_eq!(call!(ne_si16(10486, -32767)), true); - assert_eq!(call!(ne_si16(10486, -32547)), true); - assert_eq!(call!(ne_si16(10486, 0)), true); - assert_eq!(call!(ne_si16(10486, 1)), true); - assert_eq!(call!(ne_si16(10486, 2)), true); - assert_eq!(call!(ne_si16(10486, 3)), true); - assert_eq!(call!(ne_si16(10486, 4)), true); - assert_eq!(call!(ne_si16(10486, 16514)), true); - assert_eq!(call!(ne_si16(10486, 32766)), true); - } - #[rewrite(main)] - #[test] - fn test_477() { - assert_eq!(call!(ne_si16(10486, 32767)), true); - assert_eq!(call!(ne_si16(16514, -32768)), true); - assert_eq!(call!(ne_si16(16514, -32767)), true); - assert_eq!(call!(ne_si16(16514, -32547)), true); - assert_eq!(call!(ne_si16(16514, 0)), true); - assert_eq!(call!(ne_si16(16514, 1)), true); - assert_eq!(call!(ne_si16(16514, 2)), true); - assert_eq!(call!(ne_si16(16514, 3)), true); - assert_eq!(call!(ne_si16(16514, 4)), true); - assert_eq!(call!(ne_si16(16514, 10486)), true); - } - #[rewrite(main)] - #[test] - fn test_478() { - assert_eq!(call!(ne_si16(16514, 32766)), true); - assert_eq!(call!(ne_si16(16514, 32767)), true); - assert_eq!(call!(ne_si16(32766, -32768)), true); - assert_eq!(call!(ne_si16(32766, -32767)), true); - assert_eq!(call!(ne_si16(32766, -32547)), true); - assert_eq!(call!(ne_si16(32766, 0)), true); - assert_eq!(call!(ne_si16(32766, 1)), true); - assert_eq!(call!(ne_si16(32766, 2)), true); - assert_eq!(call!(ne_si16(32766, 3)), true); - assert_eq!(call!(ne_si16(32766, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_479() { - assert_eq!(call!(ne_si16(32766, 10486)), true); - assert_eq!(call!(ne_si16(32766, 16514)), true); - assert_eq!(call!(ne_si16(32766, 32767)), true); - assert_eq!(call!(ne_si16(32767, -32768)), true); - assert_eq!(call!(ne_si16(32767, -32767)), true); - assert_eq!(call!(ne_si16(32767, -32547)), true); - assert_eq!(call!(ne_si16(32767, 0)), true); - assert_eq!(call!(ne_si16(32767, 1)), true); - assert_eq!(call!(ne_si16(32767, 2)), true); - assert_eq!(call!(ne_si16(32767, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_480() { - assert_eq!(call!(ne_si16(32767, 4)), true); - assert_eq!(call!(ne_si16(32767, 10486)), true); - assert_eq!(call!(ne_si16(32767, 16514)), true); - assert_eq!(call!(ne_si16(32767, 32766)), true); - assert_eq!(call!(ne_si32(-2147483648, -2147483648)), false); - assert_eq!(call!(ne_si32(-2147483647, -2147483647)), false); - assert_eq!(call!(ne_si32(-1713183800, -1713183800)), false); - assert_eq!(call!(ne_si32(-1252582164, -1252582164)), false); - assert_eq!(call!(ne_si32(-1035405763, -1035405763)), false); - assert_eq!(call!(ne_si32(0, 0)), false); - } - #[rewrite(main)] - #[test] - fn test_481() { - assert_eq!(call!(ne_si32(1, 1)), false); - assert_eq!(call!(ne_si32(2, 2)), false); - assert_eq!(call!(ne_si32(3, 3)), false); - assert_eq!(call!(ne_si32(4, 4)), false); - assert_eq!(call!(ne_si32(2147483646, 2147483646)), false); - assert_eq!(call!(ne_si32(2147483647, 2147483647)), false); - assert_eq!(call!(ne_si32(-2147483648, -2147483647)), true); - assert_eq!(call!(ne_si32(-2147483648, -1713183800)), true); - assert_eq!(call!(ne_si32(-2147483648, -1252582164)), true); - assert_eq!(call!(ne_si32(-2147483648, -1035405763)), true); - } - #[rewrite(main)] - #[test] - fn test_482() { - assert_eq!(call!(ne_si32(-2147483648, 0)), true); - assert_eq!(call!(ne_si32(-2147483648, 1)), true); - assert_eq!(call!(ne_si32(-2147483648, 2)), true); - assert_eq!(call!(ne_si32(-2147483648, 3)), true); - assert_eq!(call!(ne_si32(-2147483648, 4)), true); - assert_eq!(call!(ne_si32(-2147483648, 2147483646)), true); - assert_eq!(call!(ne_si32(-2147483648, 2147483647)), true); - assert_eq!(call!(ne_si32(-2147483647, -2147483648)), true); - assert_eq!(call!(ne_si32(-2147483647, -1713183800)), true); - assert_eq!(call!(ne_si32(-2147483647, -1252582164)), true); - } - #[rewrite(main)] - #[test] - fn test_483() { - assert_eq!(call!(ne_si32(-2147483647, -1035405763)), true); - assert_eq!(call!(ne_si32(-2147483647, 0)), true); - assert_eq!(call!(ne_si32(-2147483647, 1)), true); - assert_eq!(call!(ne_si32(-2147483647, 2)), true); - assert_eq!(call!(ne_si32(-2147483647, 3)), true); - assert_eq!(call!(ne_si32(-2147483647, 4)), true); - assert_eq!(call!(ne_si32(-2147483647, 2147483646)), true); - assert_eq!(call!(ne_si32(-2147483647, 2147483647)), true); - assert_eq!(call!(ne_si32(-1713183800, -2147483648)), true); - assert_eq!(call!(ne_si32(-1713183800, -2147483647)), true); - } - #[rewrite(main)] - #[test] - fn test_484() { - assert_eq!(call!(ne_si32(-1713183800, -1252582164)), true); - assert_eq!(call!(ne_si32(-1713183800, -1035405763)), true); - assert_eq!(call!(ne_si32(-1713183800, 0)), true); - assert_eq!(call!(ne_si32(-1713183800, 1)), true); - assert_eq!(call!(ne_si32(-1713183800, 2)), true); - assert_eq!(call!(ne_si32(-1713183800, 3)), true); - assert_eq!(call!(ne_si32(-1713183800, 4)), true); - assert_eq!(call!(ne_si32(-1713183800, 2147483646)), true); - assert_eq!(call!(ne_si32(-1713183800, 2147483647)), true); - assert_eq!(call!(ne_si32(-1252582164, -2147483648)), true); - } - #[rewrite(main)] - #[test] - fn test_485() { - assert_eq!(call!(ne_si32(-1252582164, -2147483647)), true); - assert_eq!(call!(ne_si32(-1252582164, -1713183800)), true); - assert_eq!(call!(ne_si32(-1252582164, -1035405763)), true); - assert_eq!(call!(ne_si32(-1252582164, 0)), true); - assert_eq!(call!(ne_si32(-1252582164, 1)), true); - assert_eq!(call!(ne_si32(-1252582164, 2)), true); - assert_eq!(call!(ne_si32(-1252582164, 3)), true); - assert_eq!(call!(ne_si32(-1252582164, 4)), true); - assert_eq!(call!(ne_si32(-1252582164, 2147483646)), true); - assert_eq!(call!(ne_si32(-1252582164, 2147483647)), true); - } - #[rewrite(main)] - #[test] - fn test_486() { - assert_eq!(call!(ne_si32(-1035405763, -2147483648)), true); - assert_eq!(call!(ne_si32(-1035405763, -2147483647)), true); - assert_eq!(call!(ne_si32(-1035405763, -1713183800)), true); - assert_eq!(call!(ne_si32(-1035405763, -1252582164)), true); - assert_eq!(call!(ne_si32(-1035405763, 0)), true); - assert_eq!(call!(ne_si32(-1035405763, 1)), true); - assert_eq!(call!(ne_si32(-1035405763, 2)), true); - assert_eq!(call!(ne_si32(-1035405763, 3)), true); - assert_eq!(call!(ne_si32(-1035405763, 4)), true); - assert_eq!(call!(ne_si32(-1035405763, 2147483646)), true); - } - #[rewrite(main)] - #[test] - fn test_487() { - assert_eq!(call!(ne_si32(-1035405763, 2147483647)), true); - assert_eq!(call!(ne_si32(0, -2147483648)), true); - assert_eq!(call!(ne_si32(0, -2147483647)), true); - assert_eq!(call!(ne_si32(0, -1713183800)), true); - assert_eq!(call!(ne_si32(0, -1252582164)), true); - assert_eq!(call!(ne_si32(0, -1035405763)), true); - assert_eq!(call!(ne_si32(0, 1)), true); - assert_eq!(call!(ne_si32(0, 2)), true); - assert_eq!(call!(ne_si32(0, 3)), true); - assert_eq!(call!(ne_si32(0, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_488() { - assert_eq!(call!(ne_si32(0, 2147483646)), true); - assert_eq!(call!(ne_si32(0, 2147483647)), true); - assert_eq!(call!(ne_si32(1, -2147483648)), true); - assert_eq!(call!(ne_si32(1, -2147483647)), true); - assert_eq!(call!(ne_si32(1, -1713183800)), true); - assert_eq!(call!(ne_si32(1, -1252582164)), true); - assert_eq!(call!(ne_si32(1, -1035405763)), true); - assert_eq!(call!(ne_si32(1, 0)), true); - assert_eq!(call!(ne_si32(1, 2)), true); - assert_eq!(call!(ne_si32(1, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_489() { - assert_eq!(call!(ne_si32(1, 4)), true); - assert_eq!(call!(ne_si32(1, 2147483646)), true); - assert_eq!(call!(ne_si32(1, 2147483647)), true); - assert_eq!(call!(ne_si32(2, -2147483648)), true); - assert_eq!(call!(ne_si32(2, -2147483647)), true); - assert_eq!(call!(ne_si32(2, -1713183800)), true); - assert_eq!(call!(ne_si32(2, -1252582164)), true); - assert_eq!(call!(ne_si32(2, -1035405763)), true); - assert_eq!(call!(ne_si32(2, 0)), true); - assert_eq!(call!(ne_si32(2, 1)), true); - } - #[rewrite(main)] - #[test] - fn test_490() { - assert_eq!(call!(ne_si32(2, 3)), true); - assert_eq!(call!(ne_si32(2, 4)), true); - assert_eq!(call!(ne_si32(2, 2147483646)), true); - assert_eq!(call!(ne_si32(2, 2147483647)), true); - assert_eq!(call!(ne_si32(3, -2147483648)), true); - assert_eq!(call!(ne_si32(3, -2147483647)), true); - assert_eq!(call!(ne_si32(3, -1713183800)), true); - assert_eq!(call!(ne_si32(3, -1252582164)), true); - assert_eq!(call!(ne_si32(3, -1035405763)), true); - assert_eq!(call!(ne_si32(3, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_491() { - assert_eq!(call!(ne_si32(3, 1)), true); - assert_eq!(call!(ne_si32(3, 2)), true); - assert_eq!(call!(ne_si32(3, 4)), true); - assert_eq!(call!(ne_si32(3, 2147483646)), true); - assert_eq!(call!(ne_si32(3, 2147483647)), true); - assert_eq!(call!(ne_si32(4, -2147483648)), true); - assert_eq!(call!(ne_si32(4, -2147483647)), true); - assert_eq!(call!(ne_si32(4, -1713183800)), true); - assert_eq!(call!(ne_si32(4, -1252582164)), true); - assert_eq!(call!(ne_si32(4, -1035405763)), true); - } - #[rewrite(main)] - #[test] - fn test_492() { - assert_eq!(call!(ne_si32(4, 0)), true); - assert_eq!(call!(ne_si32(4, 1)), true); - assert_eq!(call!(ne_si32(4, 2)), true); - assert_eq!(call!(ne_si32(4, 3)), true); - assert_eq!(call!(ne_si32(4, 2147483646)), true); - assert_eq!(call!(ne_si32(4, 2147483647)), true); - assert_eq!(call!(ne_si32(2147483646, -2147483648)), true); - assert_eq!(call!(ne_si32(2147483646, -2147483647)), true); - assert_eq!(call!(ne_si32(2147483646, -1713183800)), true); - assert_eq!(call!(ne_si32(2147483646, -1252582164)), true); - } - #[rewrite(main)] - #[test] - fn test_493() { - assert_eq!(call!(ne_si32(2147483646, -1035405763)), true); - assert_eq!(call!(ne_si32(2147483646, 0)), true); - assert_eq!(call!(ne_si32(2147483646, 1)), true); - assert_eq!(call!(ne_si32(2147483646, 2)), true); - assert_eq!(call!(ne_si32(2147483646, 3)), true); - assert_eq!(call!(ne_si32(2147483646, 4)), true); - assert_eq!(call!(ne_si32(2147483646, 2147483647)), true); - assert_eq!(call!(ne_si32(2147483647, -2147483648)), true); - assert_eq!(call!(ne_si32(2147483647, -2147483647)), true); - assert_eq!(call!(ne_si32(2147483647, -1713183800)), true); - } - #[rewrite(main)] - #[test] - fn test_494() { - assert_eq!(call!(ne_si32(2147483647, -1252582164)), true); - assert_eq!(call!(ne_si32(2147483647, -1035405763)), true); - assert_eq!(call!(ne_si32(2147483647, 0)), true); - assert_eq!(call!(ne_si32(2147483647, 1)), true); - assert_eq!(call!(ne_si32(2147483647, 2)), true); - assert_eq!(call!(ne_si32(2147483647, 3)), true); - assert_eq!(call!(ne_si32(2147483647, 4)), true); - assert_eq!(call!(ne_si32(2147483647, 2147483646)), true); - assert_eq!(call!(ne_si64(-9223372036854775808, -9223372036854775808)), false); - assert_eq!(call!(ne_si64(-9223372036854775807, -9223372036854775807)), false); - } - #[rewrite(main)] - #[test] - fn test_495() { - assert_eq!(call!(ne_si64(-1741927215160008704, -1741927215160008704)), false); - assert_eq!(call!(ne_si64(-1328271339354574848, -1328271339354574848)), false); - assert_eq!(call!(ne_si64(0, 0)), false); - assert_eq!(call!(ne_si64(1, 1)), false); - assert_eq!(call!(ne_si64(2, 2)), false); - assert_eq!(call!(ne_si64(3, 3)), false); - assert_eq!(call!(ne_si64(4, 4)), false); - assert_eq!(call!(ne_si64(5577148965131116544, 5577148965131116544)), false); - assert_eq!(call!(ne_si64(9223372036854775806, 9223372036854775806)), false); - assert_eq!(call!(ne_si64(9223372036854775807, 9223372036854775807)), false); - } - #[rewrite(main)] - #[test] - fn test_496() { - assert_eq!(call!(ne_si64(-9223372036854775808, -9223372036854775807)), true); - assert_eq!(call!(ne_si64(-9223372036854775808, -1741927215160008704)), true); - assert_eq!(call!(ne_si64(-9223372036854775808, -1328271339354574848)), true); - assert_eq!(call!(ne_si64(-9223372036854775808, 0)), true); - assert_eq!(call!(ne_si64(-9223372036854775808, 1)), true); - assert_eq!(call!(ne_si64(-9223372036854775808, 2)), true); - assert_eq!(call!(ne_si64(-9223372036854775808, 3)), true); - assert_eq!(call!(ne_si64(-9223372036854775808, 4)), true); - assert_eq!(call!(ne_si64(-9223372036854775808, 5577148965131116544)), true); - assert_eq!(call!(ne_si64(-9223372036854775808, 9223372036854775806)), true); - } - #[rewrite(main)] - #[test] - fn test_497() { - assert_eq!(call!(ne_si64(-9223372036854775808, 9223372036854775807)), true); - assert_eq!(call!(ne_si64(-9223372036854775807, -9223372036854775808)), true); - assert_eq!(call!(ne_si64(-9223372036854775807, -1741927215160008704)), true); - assert_eq!(call!(ne_si64(-9223372036854775807, -1328271339354574848)), true); - assert_eq!(call!(ne_si64(-9223372036854775807, 0)), true); - assert_eq!(call!(ne_si64(-9223372036854775807, 1)), true); - assert_eq!(call!(ne_si64(-9223372036854775807, 2)), true); - assert_eq!(call!(ne_si64(-9223372036854775807, 3)), true); - assert_eq!(call!(ne_si64(-9223372036854775807, 4)), true); - assert_eq!(call!(ne_si64(-9223372036854775807, 5577148965131116544)), true); - } - #[rewrite(main)] - #[test] - fn test_498() { - assert_eq!(call!(ne_si64(-9223372036854775807, 9223372036854775806)), true); - assert_eq!(call!(ne_si64(-9223372036854775807, 9223372036854775807)), true); - assert_eq!(call!(ne_si64(-1741927215160008704, -9223372036854775808)), true); - assert_eq!(call!(ne_si64(-1741927215160008704, -9223372036854775807)), true); - assert_eq!(call!(ne_si64(-1741927215160008704, -1328271339354574848)), true); - assert_eq!(call!(ne_si64(-1741927215160008704, 0)), true); - assert_eq!(call!(ne_si64(-1741927215160008704, 1)), true); - assert_eq!(call!(ne_si64(-1741927215160008704, 2)), true); - assert_eq!(call!(ne_si64(-1741927215160008704, 3)), true); - assert_eq!(call!(ne_si64(-1741927215160008704, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_499() { - assert_eq!(call!(ne_si64(-1741927215160008704, 5577148965131116544)), true); - assert_eq!(call!(ne_si64(-1741927215160008704, 9223372036854775806)), true); - assert_eq!(call!(ne_si64(-1741927215160008704, 9223372036854775807)), true); - assert_eq!(call!(ne_si64(-1328271339354574848, -9223372036854775808)), true); - assert_eq!(call!(ne_si64(-1328271339354574848, -9223372036854775807)), true); - assert_eq!(call!(ne_si64(-1328271339354574848, -1741927215160008704)), true); - assert_eq!(call!(ne_si64(-1328271339354574848, 0)), true); - assert_eq!(call!(ne_si64(-1328271339354574848, 1)), true); - assert_eq!(call!(ne_si64(-1328271339354574848, 2)), true); - assert_eq!(call!(ne_si64(-1328271339354574848, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_500() { - assert_eq!(call!(ne_si64(-1328271339354574848, 4)), true); - assert_eq!(call!(ne_si64(-1328271339354574848, 5577148965131116544)), true); - assert_eq!(call!(ne_si64(-1328271339354574848, 9223372036854775806)), true); - assert_eq!(call!(ne_si64(-1328271339354574848, 9223372036854775807)), true); - assert_eq!(call!(ne_si64(0, -9223372036854775808)), true); - assert_eq!(call!(ne_si64(0, -9223372036854775807)), true); - assert_eq!(call!(ne_si64(0, -1741927215160008704)), true); - assert_eq!(call!(ne_si64(0, -1328271339354574848)), true); - assert_eq!(call!(ne_si64(0, 1)), true); - assert_eq!(call!(ne_si64(0, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_501() { - assert_eq!(call!(ne_si64(0, 3)), true); - assert_eq!(call!(ne_si64(0, 4)), true); - assert_eq!(call!(ne_si64(0, 5577148965131116544)), true); - assert_eq!(call!(ne_si64(0, 9223372036854775806)), true); - assert_eq!(call!(ne_si64(0, 9223372036854775807)), true); - assert_eq!(call!(ne_si64(1, -9223372036854775808)), true); - assert_eq!(call!(ne_si64(1, -9223372036854775807)), true); - assert_eq!(call!(ne_si64(1, -1741927215160008704)), true); - assert_eq!(call!(ne_si64(1, -1328271339354574848)), true); - assert_eq!(call!(ne_si64(1, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_502() { - assert_eq!(call!(ne_si64(1, 2)), true); - assert_eq!(call!(ne_si64(1, 3)), true); - assert_eq!(call!(ne_si64(1, 4)), true); - assert_eq!(call!(ne_si64(1, 5577148965131116544)), true); - assert_eq!(call!(ne_si64(1, 9223372036854775806)), true); - assert_eq!(call!(ne_si64(1, 9223372036854775807)), true); - assert_eq!(call!(ne_si64(2, -9223372036854775808)), true); - assert_eq!(call!(ne_si64(2, -9223372036854775807)), true); - assert_eq!(call!(ne_si64(2, -1741927215160008704)), true); - assert_eq!(call!(ne_si64(2, -1328271339354574848)), true); - } - #[rewrite(main)] - #[test] - fn test_503() { - assert_eq!(call!(ne_si64(2, 0)), true); - assert_eq!(call!(ne_si64(2, 1)), true); - assert_eq!(call!(ne_si64(2, 3)), true); - assert_eq!(call!(ne_si64(2, 4)), true); - assert_eq!(call!(ne_si64(2, 5577148965131116544)), true); - assert_eq!(call!(ne_si64(2, 9223372036854775806)), true); - assert_eq!(call!(ne_si64(2, 9223372036854775807)), true); - assert_eq!(call!(ne_si64(3, -9223372036854775808)), true); - assert_eq!(call!(ne_si64(3, -9223372036854775807)), true); - assert_eq!(call!(ne_si64(3, -1741927215160008704)), true); - } - #[rewrite(main)] - #[test] - fn test_504() { - assert_eq!(call!(ne_si64(3, -1328271339354574848)), true); - assert_eq!(call!(ne_si64(3, 0)), true); - assert_eq!(call!(ne_si64(3, 1)), true); - assert_eq!(call!(ne_si64(3, 2)), true); - assert_eq!(call!(ne_si64(3, 4)), true); - assert_eq!(call!(ne_si64(3, 5577148965131116544)), true); - assert_eq!(call!(ne_si64(3, 9223372036854775806)), true); - assert_eq!(call!(ne_si64(3, 9223372036854775807)), true); - assert_eq!(call!(ne_si64(4, -9223372036854775808)), true); - assert_eq!(call!(ne_si64(4, -9223372036854775807)), true); - } - #[rewrite(main)] - #[test] - fn test_505() { - assert_eq!(call!(ne_si64(4, -1741927215160008704)), true); - assert_eq!(call!(ne_si64(4, -1328271339354574848)), true); - assert_eq!(call!(ne_si64(4, 0)), true); - assert_eq!(call!(ne_si64(4, 1)), true); - assert_eq!(call!(ne_si64(4, 2)), true); - assert_eq!(call!(ne_si64(4, 3)), true); - assert_eq!(call!(ne_si64(4, 5577148965131116544)), true); - assert_eq!(call!(ne_si64(4, 9223372036854775806)), true); - assert_eq!(call!(ne_si64(4, 9223372036854775807)), true); - assert_eq!(call!(ne_si64(5577148965131116544, -9223372036854775808)), true); - } - #[rewrite(main)] - #[test] - fn test_506() { - assert_eq!(call!(ne_si64(5577148965131116544, -9223372036854775807)), true); - assert_eq!(call!(ne_si64(5577148965131116544, -1741927215160008704)), true); - assert_eq!(call!(ne_si64(5577148965131116544, -1328271339354574848)), true); - assert_eq!(call!(ne_si64(5577148965131116544, 0)), true); - assert_eq!(call!(ne_si64(5577148965131116544, 1)), true); - assert_eq!(call!(ne_si64(5577148965131116544, 2)), true); - assert_eq!(call!(ne_si64(5577148965131116544, 3)), true); - assert_eq!(call!(ne_si64(5577148965131116544, 4)), true); - assert_eq!(call!(ne_si64(5577148965131116544, 9223372036854775806)), true); - assert_eq!(call!(ne_si64(5577148965131116544, 9223372036854775807)), true); - } - #[rewrite(main)] - #[test] - fn test_507() { - assert_eq!(call!(ne_si64(9223372036854775806, -9223372036854775808)), true); - assert_eq!(call!(ne_si64(9223372036854775806, -9223372036854775807)), true); - assert_eq!(call!(ne_si64(9223372036854775806, -1741927215160008704)), true); - assert_eq!(call!(ne_si64(9223372036854775806, -1328271339354574848)), true); - assert_eq!(call!(ne_si64(9223372036854775806, 0)), true); - assert_eq!(call!(ne_si64(9223372036854775806, 1)), true); - assert_eq!(call!(ne_si64(9223372036854775806, 2)), true); - assert_eq!(call!(ne_si64(9223372036854775806, 3)), true); - assert_eq!(call!(ne_si64(9223372036854775806, 4)), true); - assert_eq!(call!(ne_si64(9223372036854775806, 5577148965131116544)), true); - } - #[rewrite(main)] - #[test] - fn test_508() { - assert_eq!(call!(ne_si64(9223372036854775806, 9223372036854775807)), true); - assert_eq!(call!(ne_si64(9223372036854775807, -9223372036854775808)), true); - assert_eq!(call!(ne_si64(9223372036854775807, -9223372036854775807)), true); - assert_eq!(call!(ne_si64(9223372036854775807, -1741927215160008704)), true); - assert_eq!(call!(ne_si64(9223372036854775807, -1328271339354574848)), true); - assert_eq!(call!(ne_si64(9223372036854775807, 0)), true); - assert_eq!(call!(ne_si64(9223372036854775807, 1)), true); - assert_eq!(call!(ne_si64(9223372036854775807, 2)), true); - assert_eq!(call!(ne_si64(9223372036854775807, 3)), true); - assert_eq!(call!(ne_si64(9223372036854775807, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_509() { - assert_eq!(call!(ne_si64(9223372036854775807, 5577148965131116544)), true); - assert_eq!(call!(ne_si64(9223372036854775807, 9223372036854775806)), true); - assert_eq!(call!(ne_si8(-128, -128)), false); - assert_eq!(call!(ne_si8(-127, -127)), false); - assert_eq!(call!(ne_si8(0, 0)), false); - assert_eq!(call!(ne_si8(1, 1)), false); - assert_eq!(call!(ne_si8(2, 2)), false); - assert_eq!(call!(ne_si8(3, 3)), false); - assert_eq!(call!(ne_si8(4, 4)), false); - assert_eq!(call!(ne_si8(16, 16)), false); - } - #[rewrite(main)] - #[test] - fn test_510() { - assert_eq!(call!(ne_si8(126, 126)), false); - assert_eq!(call!(ne_si8(127, 127)), false); - assert_eq!(call!(ne_si8(-128, -127)), true); - assert_eq!(call!(ne_si8(-128, 0)), true); - assert_eq!(call!(ne_si8(-128, 1)), true); - assert_eq!(call!(ne_si8(-128, 2)), true); - assert_eq!(call!(ne_si8(-128, 3)), true); - assert_eq!(call!(ne_si8(-128, 4)), true); - assert_eq!(call!(ne_si8(-128, 16)), true); - assert_eq!(call!(ne_si8(-128, 126)), true); - } - #[rewrite(main)] - #[test] - fn test_511() { - assert_eq!(call!(ne_si8(-128, 127)), true); - assert_eq!(call!(ne_si8(-127, -128)), true); - assert_eq!(call!(ne_si8(-127, 0)), true); - assert_eq!(call!(ne_si8(-127, 1)), true); - assert_eq!(call!(ne_si8(-127, 2)), true); - assert_eq!(call!(ne_si8(-127, 3)), true); - assert_eq!(call!(ne_si8(-127, 4)), true); - assert_eq!(call!(ne_si8(-127, 16)), true); - assert_eq!(call!(ne_si8(-127, 126)), true); - assert_eq!(call!(ne_si8(-127, 127)), true); - } - #[rewrite(main)] - #[test] - fn test_512() { - assert_eq!(call!(ne_si8(0, -128)), true); - assert_eq!(call!(ne_si8(0, -127)), true); - assert_eq!(call!(ne_si8(0, 1)), true); - assert_eq!(call!(ne_si8(0, 2)), true); - assert_eq!(call!(ne_si8(0, 3)), true); - assert_eq!(call!(ne_si8(0, 4)), true); - assert_eq!(call!(ne_si8(0, 16)), true); - assert_eq!(call!(ne_si8(0, 126)), true); - assert_eq!(call!(ne_si8(0, 127)), true); - assert_eq!(call!(ne_si8(1, -128)), true); - } - #[rewrite(main)] - #[test] - fn test_513() { - assert_eq!(call!(ne_si8(1, -127)), true); - assert_eq!(call!(ne_si8(1, 0)), true); - assert_eq!(call!(ne_si8(1, 2)), true); - assert_eq!(call!(ne_si8(1, 3)), true); - assert_eq!(call!(ne_si8(1, 4)), true); - assert_eq!(call!(ne_si8(1, 16)), true); - assert_eq!(call!(ne_si8(1, 126)), true); - assert_eq!(call!(ne_si8(1, 127)), true); - assert_eq!(call!(ne_si8(2, -128)), true); - assert_eq!(call!(ne_si8(2, -127)), true); - } - #[rewrite(main)] - #[test] - fn test_514() { - assert_eq!(call!(ne_si8(2, 0)), true); - assert_eq!(call!(ne_si8(2, 1)), true); - assert_eq!(call!(ne_si8(2, 3)), true); - assert_eq!(call!(ne_si8(2, 4)), true); - assert_eq!(call!(ne_si8(2, 16)), true); - assert_eq!(call!(ne_si8(2, 126)), true); - assert_eq!(call!(ne_si8(2, 127)), true); - assert_eq!(call!(ne_si8(3, -128)), true); - assert_eq!(call!(ne_si8(3, -127)), true); - assert_eq!(call!(ne_si8(3, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_515() { - assert_eq!(call!(ne_si8(3, 1)), true); - assert_eq!(call!(ne_si8(3, 2)), true); - assert_eq!(call!(ne_si8(3, 4)), true); - assert_eq!(call!(ne_si8(3, 16)), true); - assert_eq!(call!(ne_si8(3, 126)), true); - assert_eq!(call!(ne_si8(3, 127)), true); - assert_eq!(call!(ne_si8(4, -128)), true); - assert_eq!(call!(ne_si8(4, -127)), true); - assert_eq!(call!(ne_si8(4, 0)), true); - assert_eq!(call!(ne_si8(4, 1)), true); - } - #[rewrite(main)] - #[test] - fn test_516() { - assert_eq!(call!(ne_si8(4, 2)), true); - assert_eq!(call!(ne_si8(4, 3)), true); - assert_eq!(call!(ne_si8(4, 16)), true); - assert_eq!(call!(ne_si8(4, 126)), true); - assert_eq!(call!(ne_si8(4, 127)), true); - assert_eq!(call!(ne_si8(16, -128)), true); - assert_eq!(call!(ne_si8(16, -127)), true); - assert_eq!(call!(ne_si8(16, 0)), true); - assert_eq!(call!(ne_si8(16, 1)), true); - assert_eq!(call!(ne_si8(16, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_517() { - assert_eq!(call!(ne_si8(16, 3)), true); - assert_eq!(call!(ne_si8(16, 4)), true); - assert_eq!(call!(ne_si8(16, 126)), true); - assert_eq!(call!(ne_si8(16, 127)), true); - assert_eq!(call!(ne_si8(126, -128)), true); - assert_eq!(call!(ne_si8(126, -127)), true); - assert_eq!(call!(ne_si8(126, 0)), true); - assert_eq!(call!(ne_si8(126, 1)), true); - assert_eq!(call!(ne_si8(126, 2)), true); - assert_eq!(call!(ne_si8(126, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_518() { - assert_eq!(call!(ne_si8(126, 4)), true); - assert_eq!(call!(ne_si8(126, 16)), true); - assert_eq!(call!(ne_si8(126, 127)), true); - assert_eq!(call!(ne_si8(127, -128)), true); - assert_eq!(call!(ne_si8(127, -127)), true); - assert_eq!(call!(ne_si8(127, 0)), true); - assert_eq!(call!(ne_si8(127, 1)), true); - assert_eq!(call!(ne_si8(127, 2)), true); - assert_eq!(call!(ne_si8(127, 3)), true); - assert_eq!(call!(ne_si8(127, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_519() { - assert_eq!(call!(ne_si8(127, 16)), true); - assert_eq!(call!(ne_si8(127, 126)), true); - assert_eq!(call!(ne_ui16(0, 0)), false); - assert_eq!(call!(ne_ui16(1, 1)), false); - assert_eq!(call!(ne_ui16(2, 2)), false); - assert_eq!(call!(ne_ui16(3, 3)), false); - assert_eq!(call!(ne_ui16(4, 4)), false); - assert_eq!(call!(ne_ui16(1717, 1717)), false); - assert_eq!(call!(ne_ui16(17988, 17988)), false); - assert_eq!(call!(ne_ui16(65096, 65096)), false); - } - #[rewrite(main)] - #[test] - fn test_520() { - assert_eq!(call!(ne_ui16(65534, 65534)), false); - assert_eq!(call!(ne_ui16(65535, 65535)), false); - assert_eq!(call!(ne_ui16(0, 1)), true); - assert_eq!(call!(ne_ui16(0, 2)), true); - assert_eq!(call!(ne_ui16(0, 3)), true); - assert_eq!(call!(ne_ui16(0, 4)), true); - assert_eq!(call!(ne_ui16(0, 1717)), true); - assert_eq!(call!(ne_ui16(0, 17988)), true); - assert_eq!(call!(ne_ui16(0, 65096)), true); - assert_eq!(call!(ne_ui16(0, 65534)), true); - } - #[rewrite(main)] - #[test] - fn test_521() { - assert_eq!(call!(ne_ui16(0, 65535)), true); - assert_eq!(call!(ne_ui16(1, 0)), true); - assert_eq!(call!(ne_ui16(1, 2)), true); - assert_eq!(call!(ne_ui16(1, 3)), true); - assert_eq!(call!(ne_ui16(1, 4)), true); - assert_eq!(call!(ne_ui16(1, 1717)), true); - assert_eq!(call!(ne_ui16(1, 17988)), true); - assert_eq!(call!(ne_ui16(1, 65096)), true); - assert_eq!(call!(ne_ui16(1, 65534)), true); - assert_eq!(call!(ne_ui16(1, 65535)), true); - } - #[rewrite(main)] - #[test] - fn test_522() { - assert_eq!(call!(ne_ui16(2, 0)), true); - assert_eq!(call!(ne_ui16(2, 1)), true); - assert_eq!(call!(ne_ui16(2, 3)), true); - assert_eq!(call!(ne_ui16(2, 4)), true); - assert_eq!(call!(ne_ui16(2, 1717)), true); - assert_eq!(call!(ne_ui16(2, 17988)), true); - assert_eq!(call!(ne_ui16(2, 65096)), true); - assert_eq!(call!(ne_ui16(2, 65534)), true); - assert_eq!(call!(ne_ui16(2, 65535)), true); - assert_eq!(call!(ne_ui16(3, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_523() { - assert_eq!(call!(ne_ui16(3, 1)), true); - assert_eq!(call!(ne_ui16(3, 2)), true); - assert_eq!(call!(ne_ui16(3, 4)), true); - assert_eq!(call!(ne_ui16(3, 1717)), true); - assert_eq!(call!(ne_ui16(3, 17988)), true); - assert_eq!(call!(ne_ui16(3, 65096)), true); - assert_eq!(call!(ne_ui16(3, 65534)), true); - assert_eq!(call!(ne_ui16(3, 65535)), true); - assert_eq!(call!(ne_ui16(4, 0)), true); - assert_eq!(call!(ne_ui16(4, 1)), true); - } - #[rewrite(main)] - #[test] - fn test_524() { - assert_eq!(call!(ne_ui16(4, 2)), true); - assert_eq!(call!(ne_ui16(4, 3)), true); - assert_eq!(call!(ne_ui16(4, 1717)), true); - assert_eq!(call!(ne_ui16(4, 17988)), true); - assert_eq!(call!(ne_ui16(4, 65096)), true); - assert_eq!(call!(ne_ui16(4, 65534)), true); - assert_eq!(call!(ne_ui16(4, 65535)), true); - assert_eq!(call!(ne_ui16(1717, 0)), true); - assert_eq!(call!(ne_ui16(1717, 1)), true); - assert_eq!(call!(ne_ui16(1717, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_525() { - assert_eq!(call!(ne_ui16(1717, 3)), true); - assert_eq!(call!(ne_ui16(1717, 4)), true); - assert_eq!(call!(ne_ui16(1717, 17988)), true); - assert_eq!(call!(ne_ui16(1717, 65096)), true); - assert_eq!(call!(ne_ui16(1717, 65534)), true); - assert_eq!(call!(ne_ui16(1717, 65535)), true); - assert_eq!(call!(ne_ui16(17988, 0)), true); - assert_eq!(call!(ne_ui16(17988, 1)), true); - assert_eq!(call!(ne_ui16(17988, 2)), true); - assert_eq!(call!(ne_ui16(17988, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_526() { - assert_eq!(call!(ne_ui16(17988, 4)), true); - assert_eq!(call!(ne_ui16(17988, 1717)), true); - assert_eq!(call!(ne_ui16(17988, 65096)), true); - assert_eq!(call!(ne_ui16(17988, 65534)), true); - assert_eq!(call!(ne_ui16(17988, 65535)), true); - assert_eq!(call!(ne_ui16(65096, 0)), true); - assert_eq!(call!(ne_ui16(65096, 1)), true); - assert_eq!(call!(ne_ui16(65096, 2)), true); - assert_eq!(call!(ne_ui16(65096, 3)), true); - assert_eq!(call!(ne_ui16(65096, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_527() { - assert_eq!(call!(ne_ui16(65096, 1717)), true); - assert_eq!(call!(ne_ui16(65096, 17988)), true); - assert_eq!(call!(ne_ui16(65096, 65534)), true); - assert_eq!(call!(ne_ui16(65096, 65535)), true); - assert_eq!(call!(ne_ui16(65534, 0)), true); - assert_eq!(call!(ne_ui16(65534, 1)), true); - assert_eq!(call!(ne_ui16(65534, 2)), true); - assert_eq!(call!(ne_ui16(65534, 3)), true); - assert_eq!(call!(ne_ui16(65534, 4)), true); - assert_eq!(call!(ne_ui16(65534, 1717)), true); - } - #[rewrite(main)] - #[test] - fn test_528() { - assert_eq!(call!(ne_ui16(65534, 17988)), true); - assert_eq!(call!(ne_ui16(65534, 65096)), true); - assert_eq!(call!(ne_ui16(65534, 65535)), true); - assert_eq!(call!(ne_ui16(65535, 0)), true); - assert_eq!(call!(ne_ui16(65535, 1)), true); - assert_eq!(call!(ne_ui16(65535, 2)), true); - assert_eq!(call!(ne_ui16(65535, 3)), true); - assert_eq!(call!(ne_ui16(65535, 4)), true); - assert_eq!(call!(ne_ui16(65535, 1717)), true); - assert_eq!(call!(ne_ui16(65535, 17988)), true); - } - #[rewrite(main)] - #[test] - fn test_529() { - assert_eq!(call!(ne_ui16(65535, 65096)), true); - assert_eq!(call!(ne_ui16(65535, 65534)), true); - assert_eq!(call!(ne_ui32(0, 0)), false); - assert_eq!(call!(ne_ui32(1, 1)), false); - assert_eq!(call!(ne_ui32(2, 2)), false); - assert_eq!(call!(ne_ui32(3, 3)), false); - assert_eq!(call!(ne_ui32(4, 4)), false); - assert_eq!(call!(ne_ui32(2119154652, 2119154652)), false); - assert_eq!(call!(ne_ui32(3002788344, 3002788344)), false); - assert_eq!(call!(ne_ui32(3482297128, 3482297128)), false); - } - #[rewrite(main)] - #[test] - fn test_530() { - assert_eq!(call!(ne_ui32(4294967294, 4294967294)), false); - assert_eq!(call!(ne_ui32(4294967295, 4294967295)), false); - assert_eq!(call!(ne_ui32(0, 1)), true); - assert_eq!(call!(ne_ui32(0, 2)), true); - assert_eq!(call!(ne_ui32(0, 3)), true); - assert_eq!(call!(ne_ui32(0, 4)), true); - assert_eq!(call!(ne_ui32(0, 2119154652)), true); - assert_eq!(call!(ne_ui32(0, 3002788344)), true); - assert_eq!(call!(ne_ui32(0, 3482297128)), true); - assert_eq!(call!(ne_ui32(0, 4294967294)), true); - } - #[rewrite(main)] - #[test] - fn test_531() { - assert_eq!(call!(ne_ui32(0, 4294967295)), true); - assert_eq!(call!(ne_ui32(1, 0)), true); - assert_eq!(call!(ne_ui32(1, 2)), true); - assert_eq!(call!(ne_ui32(1, 3)), true); - assert_eq!(call!(ne_ui32(1, 4)), true); - assert_eq!(call!(ne_ui32(1, 2119154652)), true); - assert_eq!(call!(ne_ui32(1, 3002788344)), true); - assert_eq!(call!(ne_ui32(1, 3482297128)), true); - assert_eq!(call!(ne_ui32(1, 4294967294)), true); - assert_eq!(call!(ne_ui32(1, 4294967295)), true); - } - #[rewrite(main)] - #[test] - fn test_532() { - assert_eq!(call!(ne_ui32(2, 0)), true); - assert_eq!(call!(ne_ui32(2, 1)), true); - assert_eq!(call!(ne_ui32(2, 3)), true); - assert_eq!(call!(ne_ui32(2, 4)), true); - assert_eq!(call!(ne_ui32(2, 2119154652)), true); - assert_eq!(call!(ne_ui32(2, 3002788344)), true); - assert_eq!(call!(ne_ui32(2, 3482297128)), true); - assert_eq!(call!(ne_ui32(2, 4294967294)), true); - assert_eq!(call!(ne_ui32(2, 4294967295)), true); - assert_eq!(call!(ne_ui32(3, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_533() { - assert_eq!(call!(ne_ui32(3, 1)), true); - assert_eq!(call!(ne_ui32(3, 2)), true); - assert_eq!(call!(ne_ui32(3, 4)), true); - assert_eq!(call!(ne_ui32(3, 2119154652)), true); - assert_eq!(call!(ne_ui32(3, 3002788344)), true); - assert_eq!(call!(ne_ui32(3, 3482297128)), true); - assert_eq!(call!(ne_ui32(3, 4294967294)), true); - assert_eq!(call!(ne_ui32(3, 4294967295)), true); - assert_eq!(call!(ne_ui32(4, 0)), true); - assert_eq!(call!(ne_ui32(4, 1)), true); - } - #[rewrite(main)] - #[test] - fn test_534() { - assert_eq!(call!(ne_ui32(4, 2)), true); - assert_eq!(call!(ne_ui32(4, 3)), true); - assert_eq!(call!(ne_ui32(4, 2119154652)), true); - assert_eq!(call!(ne_ui32(4, 3002788344)), true); - assert_eq!(call!(ne_ui32(4, 3482297128)), true); - assert_eq!(call!(ne_ui32(4, 4294967294)), true); - assert_eq!(call!(ne_ui32(4, 4294967295)), true); - assert_eq!(call!(ne_ui32(2119154652, 0)), true); - assert_eq!(call!(ne_ui32(2119154652, 1)), true); - assert_eq!(call!(ne_ui32(2119154652, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_535() { - assert_eq!(call!(ne_ui32(2119154652, 3)), true); - assert_eq!(call!(ne_ui32(2119154652, 4)), true); - assert_eq!(call!(ne_ui32(2119154652, 3002788344)), true); - assert_eq!(call!(ne_ui32(2119154652, 3482297128)), true); - assert_eq!(call!(ne_ui32(2119154652, 4294967294)), true); - assert_eq!(call!(ne_ui32(2119154652, 4294967295)), true); - assert_eq!(call!(ne_ui32(3002788344, 0)), true); - assert_eq!(call!(ne_ui32(3002788344, 1)), true); - assert_eq!(call!(ne_ui32(3002788344, 2)), true); - assert_eq!(call!(ne_ui32(3002788344, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_536() { - assert_eq!(call!(ne_ui32(3002788344, 4)), true); - assert_eq!(call!(ne_ui32(3002788344, 2119154652)), true); - assert_eq!(call!(ne_ui32(3002788344, 3482297128)), true); - assert_eq!(call!(ne_ui32(3002788344, 4294967294)), true); - assert_eq!(call!(ne_ui32(3002788344, 4294967295)), true); - assert_eq!(call!(ne_ui32(3482297128, 0)), true); - assert_eq!(call!(ne_ui32(3482297128, 1)), true); - assert_eq!(call!(ne_ui32(3482297128, 2)), true); - assert_eq!(call!(ne_ui32(3482297128, 3)), true); - assert_eq!(call!(ne_ui32(3482297128, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_537() { - assert_eq!(call!(ne_ui32(3482297128, 2119154652)), true); - assert_eq!(call!(ne_ui32(3482297128, 3002788344)), true); - assert_eq!(call!(ne_ui32(3482297128, 4294967294)), true); - assert_eq!(call!(ne_ui32(3482297128, 4294967295)), true); - assert_eq!(call!(ne_ui32(4294967294, 0)), true); - assert_eq!(call!(ne_ui32(4294967294, 1)), true); - assert_eq!(call!(ne_ui32(4294967294, 2)), true); - assert_eq!(call!(ne_ui32(4294967294, 3)), true); - assert_eq!(call!(ne_ui32(4294967294, 4)), true); - assert_eq!(call!(ne_ui32(4294967294, 2119154652)), true); - } - #[rewrite(main)] - #[test] - fn test_538() { - assert_eq!(call!(ne_ui32(4294967294, 3002788344)), true); - assert_eq!(call!(ne_ui32(4294967294, 3482297128)), true); - assert_eq!(call!(ne_ui32(4294967294, 4294967295)), true); - assert_eq!(call!(ne_ui32(4294967295, 0)), true); - assert_eq!(call!(ne_ui32(4294967295, 1)), true); - assert_eq!(call!(ne_ui32(4294967295, 2)), true); - assert_eq!(call!(ne_ui32(4294967295, 3)), true); - assert_eq!(call!(ne_ui32(4294967295, 4)), true); - assert_eq!(call!(ne_ui32(4294967295, 2119154652)), true); - assert_eq!(call!(ne_ui32(4294967295, 3002788344)), true); - } - #[rewrite(main)] - #[test] - fn test_539() { - assert_eq!(call!(ne_ui32(4294967295, 3482297128)), true); - assert_eq!(call!(ne_ui32(4294967295, 4294967294)), true); - assert_eq!(call!(ne_ui64(0, 0)), false); - assert_eq!(call!(ne_ui64(1, 1)), false); - assert_eq!(call!(ne_ui64(2, 2)), false); - assert_eq!(call!(ne_ui64(3, 3)), false); - assert_eq!(call!(ne_ui64(4, 4)), false); - assert_eq!(call!(ne_ui64(191084152064409600, 191084152064409600)), false); - assert_eq!(call!(ne_ui64(11015955194427482112, 11015955194427482112)), false); - assert_eq!(call!(ne_ui64(16990600415051759616, 16990600415051759616)), false); - } - #[rewrite(main)] - #[test] - fn test_540() { - assert_eq!(call!(ne_ui64(18446744073709551614, 18446744073709551614)), false); - assert_eq!(call!(ne_ui64(18446744073709551615, 18446744073709551615)), false); - assert_eq!(call!(ne_ui64(0, 1)), true); - assert_eq!(call!(ne_ui64(0, 2)), true); - assert_eq!(call!(ne_ui64(0, 3)), true); - assert_eq!(call!(ne_ui64(0, 4)), true); - assert_eq!(call!(ne_ui64(0, 191084152064409600)), true); - assert_eq!(call!(ne_ui64(0, 11015955194427482112)), true); - assert_eq!(call!(ne_ui64(0, 16990600415051759616)), true); - assert_eq!(call!(ne_ui64(0, 18446744073709551614)), true); - } - #[rewrite(main)] - #[test] - fn test_541() { - assert_eq!(call!(ne_ui64(0, 18446744073709551615)), true); - assert_eq!(call!(ne_ui64(1, 0)), true); - assert_eq!(call!(ne_ui64(1, 2)), true); - assert_eq!(call!(ne_ui64(1, 3)), true); - assert_eq!(call!(ne_ui64(1, 4)), true); - assert_eq!(call!(ne_ui64(1, 191084152064409600)), true); - assert_eq!(call!(ne_ui64(1, 11015955194427482112)), true); - assert_eq!(call!(ne_ui64(1, 16990600415051759616)), true); - assert_eq!(call!(ne_ui64(1, 18446744073709551614)), true); - assert_eq!(call!(ne_ui64(1, 18446744073709551615)), true); - } - #[rewrite(main)] - #[test] - fn test_542() { - assert_eq!(call!(ne_ui64(2, 0)), true); - assert_eq!(call!(ne_ui64(2, 1)), true); - assert_eq!(call!(ne_ui64(2, 3)), true); - assert_eq!(call!(ne_ui64(2, 4)), true); - assert_eq!(call!(ne_ui64(2, 191084152064409600)), true); - assert_eq!(call!(ne_ui64(2, 11015955194427482112)), true); - assert_eq!(call!(ne_ui64(2, 16990600415051759616)), true); - assert_eq!(call!(ne_ui64(2, 18446744073709551614)), true); - assert_eq!(call!(ne_ui64(2, 18446744073709551615)), true); - assert_eq!(call!(ne_ui64(3, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_543() { - assert_eq!(call!(ne_ui64(3, 1)), true); - assert_eq!(call!(ne_ui64(3, 2)), true); - assert_eq!(call!(ne_ui64(3, 4)), true); - assert_eq!(call!(ne_ui64(3, 191084152064409600)), true); - assert_eq!(call!(ne_ui64(3, 11015955194427482112)), true); - assert_eq!(call!(ne_ui64(3, 16990600415051759616)), true); - assert_eq!(call!(ne_ui64(3, 18446744073709551614)), true); - assert_eq!(call!(ne_ui64(3, 18446744073709551615)), true); - assert_eq!(call!(ne_ui64(4, 0)), true); - assert_eq!(call!(ne_ui64(4, 1)), true); - } - #[rewrite(main)] - #[test] - fn test_544() { - assert_eq!(call!(ne_ui64(4, 2)), true); - assert_eq!(call!(ne_ui64(4, 3)), true); - assert_eq!(call!(ne_ui64(4, 191084152064409600)), true); - assert_eq!(call!(ne_ui64(4, 11015955194427482112)), true); - assert_eq!(call!(ne_ui64(4, 16990600415051759616)), true); - assert_eq!(call!(ne_ui64(4, 18446744073709551614)), true); - assert_eq!(call!(ne_ui64(4, 18446744073709551615)), true); - assert_eq!(call!(ne_ui64(191084152064409600, 0)), true); - assert_eq!(call!(ne_ui64(191084152064409600, 1)), true); - assert_eq!(call!(ne_ui64(191084152064409600, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_545() { - assert_eq!(call!(ne_ui64(191084152064409600, 3)), true); - assert_eq!(call!(ne_ui64(191084152064409600, 4)), true); - assert_eq!(call!(ne_ui64(191084152064409600, 11015955194427482112)), true); - assert_eq!(call!(ne_ui64(191084152064409600, 16990600415051759616)), true); - assert_eq!(call!(ne_ui64(191084152064409600, 18446744073709551614)), true); - assert_eq!(call!(ne_ui64(191084152064409600, 18446744073709551615)), true); - assert_eq!(call!(ne_ui64(11015955194427482112, 0)), true); - assert_eq!(call!(ne_ui64(11015955194427482112, 1)), true); - assert_eq!(call!(ne_ui64(11015955194427482112, 2)), true); - assert_eq!(call!(ne_ui64(11015955194427482112, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_546() { - assert_eq!(call!(ne_ui64(11015955194427482112, 4)), true); - assert_eq!(call!(ne_ui64(11015955194427482112, 191084152064409600)), true); - assert_eq!(call!(ne_ui64(11015955194427482112, 16990600415051759616)), true); - assert_eq!(call!(ne_ui64(11015955194427482112, 18446744073709551614)), true); - assert_eq!(call!(ne_ui64(11015955194427482112, 18446744073709551615)), true); - assert_eq!(call!(ne_ui64(16990600415051759616, 0)), true); - assert_eq!(call!(ne_ui64(16990600415051759616, 1)), true); - assert_eq!(call!(ne_ui64(16990600415051759616, 2)), true); - assert_eq!(call!(ne_ui64(16990600415051759616, 3)), true); - assert_eq!(call!(ne_ui64(16990600415051759616, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_547() { - assert_eq!(call!(ne_ui64(16990600415051759616, 191084152064409600)), true); - assert_eq!(call!(ne_ui64(16990600415051759616, 11015955194427482112)), true); - assert_eq!(call!(ne_ui64(16990600415051759616, 18446744073709551614)), true); - assert_eq!(call!(ne_ui64(16990600415051759616, 18446744073709551615)), true); - assert_eq!(call!(ne_ui64(18446744073709551614, 0)), true); - assert_eq!(call!(ne_ui64(18446744073709551614, 1)), true); - assert_eq!(call!(ne_ui64(18446744073709551614, 2)), true); - assert_eq!(call!(ne_ui64(18446744073709551614, 3)), true); - assert_eq!(call!(ne_ui64(18446744073709551614, 4)), true); - assert_eq!(call!(ne_ui64(18446744073709551614, 191084152064409600)), true); - } - #[rewrite(main)] - #[test] - fn test_548() { - assert_eq!(call!(ne_ui64(18446744073709551614, 11015955194427482112)), true); - assert_eq!(call!(ne_ui64(18446744073709551614, 16990600415051759616)), true); - assert_eq!(call!(ne_ui64(18446744073709551614, 18446744073709551615)), true); - assert_eq!(call!(ne_ui64(18446744073709551615, 0)), true); - assert_eq!(call!(ne_ui64(18446744073709551615, 1)), true); - assert_eq!(call!(ne_ui64(18446744073709551615, 2)), true); - assert_eq!(call!(ne_ui64(18446744073709551615, 3)), true); - assert_eq!(call!(ne_ui64(18446744073709551615, 4)), true); - assert_eq!(call!(ne_ui64(18446744073709551615, 191084152064409600)), true); - assert_eq!(call!(ne_ui64(18446744073709551615, 11015955194427482112)), true); - } - #[rewrite(main)] - #[test] - fn test_549() { - assert_eq!(call!(ne_ui64(18446744073709551615, 16990600415051759616)), true); - assert_eq!(call!(ne_ui64(18446744073709551615, 18446744073709551614)), true); - assert_eq!(call!(ne_ui8(0, 0)), false); - assert_eq!(call!(ne_ui8(1, 1)), false); - assert_eq!(call!(ne_ui8(2, 2)), false); - assert_eq!(call!(ne_ui8(3, 3)), false); - assert_eq!(call!(ne_ui8(4, 4)), false); - assert_eq!(call!(ne_ui8(72, 72)), false); - assert_eq!(call!(ne_ui8(100, 100)), false); - assert_eq!(call!(ne_ui8(162, 162)), false); - } - #[rewrite(main)] - #[test] - fn test_550() { - assert_eq!(call!(ne_ui8(254, 254)), false); - assert_eq!(call!(ne_ui8(255, 255)), false); - assert_eq!(call!(ne_ui8(0, 1)), true); - assert_eq!(call!(ne_ui8(0, 2)), true); - assert_eq!(call!(ne_ui8(0, 3)), true); - assert_eq!(call!(ne_ui8(0, 4)), true); - assert_eq!(call!(ne_ui8(0, 72)), true); - assert_eq!(call!(ne_ui8(0, 100)), true); - assert_eq!(call!(ne_ui8(0, 162)), true); - assert_eq!(call!(ne_ui8(0, 254)), true); - } - #[rewrite(main)] - #[test] - fn test_551() { - assert_eq!(call!(ne_ui8(0, 255)), true); - assert_eq!(call!(ne_ui8(1, 0)), true); - assert_eq!(call!(ne_ui8(1, 2)), true); - assert_eq!(call!(ne_ui8(1, 3)), true); - assert_eq!(call!(ne_ui8(1, 4)), true); - assert_eq!(call!(ne_ui8(1, 72)), true); - assert_eq!(call!(ne_ui8(1, 100)), true); - assert_eq!(call!(ne_ui8(1, 162)), true); - assert_eq!(call!(ne_ui8(1, 254)), true); - assert_eq!(call!(ne_ui8(1, 255)), true); - } - #[rewrite(main)] - #[test] - fn test_552() { - assert_eq!(call!(ne_ui8(2, 0)), true); - assert_eq!(call!(ne_ui8(2, 1)), true); - assert_eq!(call!(ne_ui8(2, 3)), true); - assert_eq!(call!(ne_ui8(2, 4)), true); - assert_eq!(call!(ne_ui8(2, 72)), true); - assert_eq!(call!(ne_ui8(2, 100)), true); - assert_eq!(call!(ne_ui8(2, 162)), true); - assert_eq!(call!(ne_ui8(2, 254)), true); - assert_eq!(call!(ne_ui8(2, 255)), true); - assert_eq!(call!(ne_ui8(3, 0)), true); - } - #[rewrite(main)] - #[test] - fn test_553() { - assert_eq!(call!(ne_ui8(3, 1)), true); - assert_eq!(call!(ne_ui8(3, 2)), true); - assert_eq!(call!(ne_ui8(3, 4)), true); - assert_eq!(call!(ne_ui8(3, 72)), true); - assert_eq!(call!(ne_ui8(3, 100)), true); - assert_eq!(call!(ne_ui8(3, 162)), true); - assert_eq!(call!(ne_ui8(3, 254)), true); - assert_eq!(call!(ne_ui8(3, 255)), true); - assert_eq!(call!(ne_ui8(4, 0)), true); - assert_eq!(call!(ne_ui8(4, 1)), true); - } - #[rewrite(main)] - #[test] - fn test_554() { - assert_eq!(call!(ne_ui8(4, 2)), true); - assert_eq!(call!(ne_ui8(4, 3)), true); - assert_eq!(call!(ne_ui8(4, 72)), true); - assert_eq!(call!(ne_ui8(4, 100)), true); - assert_eq!(call!(ne_ui8(4, 162)), true); - assert_eq!(call!(ne_ui8(4, 254)), true); - assert_eq!(call!(ne_ui8(4, 255)), true); - assert_eq!(call!(ne_ui8(72, 0)), true); - assert_eq!(call!(ne_ui8(72, 1)), true); - assert_eq!(call!(ne_ui8(72, 2)), true); - } - #[rewrite(main)] - #[test] - fn test_555() { - assert_eq!(call!(ne_ui8(72, 3)), true); - assert_eq!(call!(ne_ui8(72, 4)), true); - assert_eq!(call!(ne_ui8(72, 100)), true); - assert_eq!(call!(ne_ui8(72, 162)), true); - assert_eq!(call!(ne_ui8(72, 254)), true); - assert_eq!(call!(ne_ui8(72, 255)), true); - assert_eq!(call!(ne_ui8(100, 0)), true); - assert_eq!(call!(ne_ui8(100, 1)), true); - assert_eq!(call!(ne_ui8(100, 2)), true); - assert_eq!(call!(ne_ui8(100, 3)), true); - } - #[rewrite(main)] - #[test] - fn test_556() { - assert_eq!(call!(ne_ui8(100, 4)), true); - assert_eq!(call!(ne_ui8(100, 72)), true); - assert_eq!(call!(ne_ui8(100, 162)), true); - assert_eq!(call!(ne_ui8(100, 254)), true); - assert_eq!(call!(ne_ui8(100, 255)), true); - assert_eq!(call!(ne_ui8(162, 0)), true); - assert_eq!(call!(ne_ui8(162, 1)), true); - assert_eq!(call!(ne_ui8(162, 2)), true); - assert_eq!(call!(ne_ui8(162, 3)), true); - assert_eq!(call!(ne_ui8(162, 4)), true); - } - #[rewrite(main)] - #[test] - fn test_557() { - assert_eq!(call!(ne_ui8(162, 72)), true); - assert_eq!(call!(ne_ui8(162, 100)), true); - assert_eq!(call!(ne_ui8(162, 254)), true); - assert_eq!(call!(ne_ui8(162, 255)), true); - assert_eq!(call!(ne_ui8(254, 0)), true); - assert_eq!(call!(ne_ui8(254, 1)), true); - assert_eq!(call!(ne_ui8(254, 2)), true); - assert_eq!(call!(ne_ui8(254, 3)), true); - assert_eq!(call!(ne_ui8(254, 4)), true); - assert_eq!(call!(ne_ui8(254, 72)), true); - } - #[rewrite(main)] - #[test] - fn test_558() { - assert_eq!(call!(ne_ui8(254, 100)), true); - assert_eq!(call!(ne_ui8(254, 162)), true); - assert_eq!(call!(ne_ui8(254, 255)), true); - assert_eq!(call!(ne_ui8(255, 0)), true); - assert_eq!(call!(ne_ui8(255, 1)), true); - assert_eq!(call!(ne_ui8(255, 2)), true); - assert_eq!(call!(ne_ui8(255, 3)), true); - assert_eq!(call!(ne_ui8(255, 4)), true); - assert_eq!(call!(ne_ui8(255, 72)), true); - assert_eq!(call!(ne_ui8(255, 100)), true); - } - #[rewrite(main)] - #[test] - fn test_559() { - assert_eq!(call!(ne_ui8(255, 162)), true); - assert_eq!(call!(ne_ui8(255, 254)), true); - } + use crate::arctorustcmpi::*; + #[test] + fn test_0() { + assert_eq!(eq_si16(-32768, -32767), false); + assert_eq!(eq_si16(-32768, -32547), false); + assert_eq!(eq_si16(-32768, 0), false); + assert_eq!(eq_si16(-32768, 1), false); + assert_eq!(eq_si16(-32768, 2), false); + assert_eq!(eq_si16(-32768, 3), false); + assert_eq!(eq_si16(-32768, 4), false); + assert_eq!(eq_si16(-32768, 10486), false); + assert_eq!(eq_si16(-32768, 16514), false); + assert_eq!(eq_si16(-32768, 32766), false); + } + #[test] + fn test_1() { + assert_eq!(eq_si16(-32768, 32767), false); + assert_eq!(eq_si16(-32767, -32768), false); + assert_eq!(eq_si16(-32767, -32547), false); + assert_eq!(eq_si16(-32767, 0), false); + assert_eq!(eq_si16(-32767, 1), false); + assert_eq!(eq_si16(-32767, 2), false); + assert_eq!(eq_si16(-32767, 3), false); + assert_eq!(eq_si16(-32767, 4), false); + assert_eq!(eq_si16(-32767, 10486), false); + assert_eq!(eq_si16(-32767, 16514), false); + } + #[test] + fn test_2() { + assert_eq!(eq_si16(-32767, 32766), false); + assert_eq!(eq_si16(-32767, 32767), false); + assert_eq!(eq_si16(-32547, -32768), false); + assert_eq!(eq_si16(-32547, -32767), false); + assert_eq!(eq_si16(-32547, 0), false); + assert_eq!(eq_si16(-32547, 1), false); + assert_eq!(eq_si16(-32547, 2), false); + assert_eq!(eq_si16(-32547, 3), false); + assert_eq!(eq_si16(-32547, 4), false); + assert_eq!(eq_si16(-32547, 10486), false); + } + #[test] + fn test_3() { + assert_eq!(eq_si16(-32547, 16514), false); + assert_eq!(eq_si16(-32547, 32766), false); + assert_eq!(eq_si16(-32547, 32767), false); + assert_eq!(eq_si16(0, -32768), false); + assert_eq!(eq_si16(0, -32767), false); + assert_eq!(eq_si16(0, -32547), false); + assert_eq!(eq_si16(0, 1), false); + assert_eq!(eq_si16(0, 2), false); + assert_eq!(eq_si16(0, 3), false); + assert_eq!(eq_si16(0, 4), false); + } + #[test] + fn test_4() { + assert_eq!(eq_si16(0, 10486), false); + assert_eq!(eq_si16(0, 16514), false); + assert_eq!(eq_si16(0, 32766), false); + assert_eq!(eq_si16(0, 32767), false); + assert_eq!(eq_si16(1, -32768), false); + assert_eq!(eq_si16(1, -32767), false); + assert_eq!(eq_si16(1, -32547), false); + assert_eq!(eq_si16(1, 0), false); + assert_eq!(eq_si16(1, 2), false); + assert_eq!(eq_si16(1, 3), false); + } + #[test] + fn test_5() { + assert_eq!(eq_si16(1, 4), false); + assert_eq!(eq_si16(1, 10486), false); + assert_eq!(eq_si16(1, 16514), false); + assert_eq!(eq_si16(1, 32766), false); + assert_eq!(eq_si16(1, 32767), false); + assert_eq!(eq_si16(2, -32768), false); + assert_eq!(eq_si16(2, -32767), false); + assert_eq!(eq_si16(2, -32547), false); + assert_eq!(eq_si16(2, 0), false); + assert_eq!(eq_si16(2, 1), false); + } + #[test] + fn test_6() { + assert_eq!(eq_si16(2, 3), false); + assert_eq!(eq_si16(2, 4), false); + assert_eq!(eq_si16(2, 10486), false); + assert_eq!(eq_si16(2, 16514), false); + assert_eq!(eq_si16(2, 32766), false); + assert_eq!(eq_si16(2, 32767), false); + assert_eq!(eq_si16(3, -32768), false); + assert_eq!(eq_si16(3, -32767), false); + assert_eq!(eq_si16(3, -32547), false); + assert_eq!(eq_si16(3, 0), false); + } + #[test] + fn test_7() { + assert_eq!(eq_si16(3, 1), false); + assert_eq!(eq_si16(3, 2), false); + assert_eq!(eq_si16(3, 4), false); + assert_eq!(eq_si16(3, 10486), false); + assert_eq!(eq_si16(3, 16514), false); + assert_eq!(eq_si16(3, 32766), false); + assert_eq!(eq_si16(3, 32767), false); + assert_eq!(eq_si16(4, -32768), false); + assert_eq!(eq_si16(4, -32767), false); + assert_eq!(eq_si16(4, -32547), false); + } + #[test] + fn test_8() { + assert_eq!(eq_si16(4, 0), false); + assert_eq!(eq_si16(4, 1), false); + assert_eq!(eq_si16(4, 2), false); + assert_eq!(eq_si16(4, 3), false); + assert_eq!(eq_si16(4, 10486), false); + assert_eq!(eq_si16(4, 16514), false); + assert_eq!(eq_si16(4, 32766), false); + assert_eq!(eq_si16(4, 32767), false); + assert_eq!(eq_si16(10486, -32768), false); + assert_eq!(eq_si16(10486, -32767), false); + } + #[test] + fn test_9() { + assert_eq!(eq_si16(10486, -32547), false); + assert_eq!(eq_si16(10486, 0), false); + assert_eq!(eq_si16(10486, 1), false); + assert_eq!(eq_si16(10486, 2), false); + assert_eq!(eq_si16(10486, 3), false); + assert_eq!(eq_si16(10486, 4), false); + assert_eq!(eq_si16(10486, 16514), false); + assert_eq!(eq_si16(10486, 32766), false); + assert_eq!(eq_si16(10486, 32767), false); + assert_eq!(eq_si16(16514, -32768), false); + } + #[test] + fn test_10() { + assert_eq!(eq_si16(16514, -32767), false); + assert_eq!(eq_si16(16514, -32547), false); + assert_eq!(eq_si16(16514, 0), false); + assert_eq!(eq_si16(16514, 1), false); + assert_eq!(eq_si16(16514, 2), false); + assert_eq!(eq_si16(16514, 3), false); + assert_eq!(eq_si16(16514, 4), false); + assert_eq!(eq_si16(16514, 10486), false); + assert_eq!(eq_si16(16514, 32766), false); + assert_eq!(eq_si16(16514, 32767), false); + } + #[test] + fn test_11() { + assert_eq!(eq_si16(32766, -32768), false); + assert_eq!(eq_si16(32766, -32767), false); + assert_eq!(eq_si16(32766, -32547), false); + assert_eq!(eq_si16(32766, 0), false); + assert_eq!(eq_si16(32766, 1), false); + assert_eq!(eq_si16(32766, 2), false); + assert_eq!(eq_si16(32766, 3), false); + assert_eq!(eq_si16(32766, 4), false); + assert_eq!(eq_si16(32766, 10486), false); + assert_eq!(eq_si16(32766, 16514), false); + } + #[test] + fn test_12() { + assert_eq!(eq_si16(32766, 32767), false); + assert_eq!(eq_si16(32767, -32768), false); + assert_eq!(eq_si16(32767, -32767), false); + assert_eq!(eq_si16(32767, -32547), false); + assert_eq!(eq_si16(32767, 0), false); + assert_eq!(eq_si16(32767, 1), false); + assert_eq!(eq_si16(32767, 2), false); + assert_eq!(eq_si16(32767, 3), false); + assert_eq!(eq_si16(32767, 4), false); + assert_eq!(eq_si16(32767, 10486), false); + } + #[test] + fn test_13() { + assert_eq!(eq_si16(32767, 16514), false); + assert_eq!(eq_si16(32767, 32766), false); + assert_eq!(eq_si16(-32768, -32768), true); + assert_eq!(eq_si16(-32767, -32767), true); + assert_eq!(eq_si16(-32547, -32547), true); + assert_eq!(eq_si16(0, 0), true); + assert_eq!(eq_si16(1, 1), true); + assert_eq!(eq_si16(2, 2), true); + assert_eq!(eq_si16(3, 3), true); + assert_eq!(eq_si16(4, 4), true); + } + #[test] + fn test_14() { + assert_eq!(eq_si16(10486, 10486), true); + assert_eq!(eq_si16(16514, 16514), true); + assert_eq!(eq_si16(32766, 32766), true); + assert_eq!(eq_si16(32767, 32767), true); + assert_eq!(eq_si32(-2147483648, -2147483647), false); + assert_eq!(eq_si32(-2147483648, -1713183800), false); + assert_eq!(eq_si32(-2147483648, -1252582164), false); + assert_eq!(eq_si32(-2147483648, -1035405763), false); + assert_eq!(eq_si32(-2147483648, 0), false); + assert_eq!(eq_si32(-2147483648, 1), false); + } + #[test] + fn test_15() { + assert_eq!(eq_si32(-2147483648, 2), false); + assert_eq!(eq_si32(-2147483648, 3), false); + assert_eq!(eq_si32(-2147483648, 4), false); + assert_eq!(eq_si32(-2147483648, 2147483646), false); + assert_eq!(eq_si32(-2147483648, 2147483647), false); + assert_eq!(eq_si32(-2147483647, -2147483648), false); + assert_eq!(eq_si32(-2147483647, -1713183800), false); + assert_eq!(eq_si32(-2147483647, -1252582164), false); + assert_eq!(eq_si32(-2147483647, -1035405763), false); + assert_eq!(eq_si32(-2147483647, 0), false); + } + #[test] + fn test_16() { + assert_eq!(eq_si32(-2147483647, 1), false); + assert_eq!(eq_si32(-2147483647, 2), false); + assert_eq!(eq_si32(-2147483647, 3), false); + assert_eq!(eq_si32(-2147483647, 4), false); + assert_eq!(eq_si32(-2147483647, 2147483646), false); + assert_eq!(eq_si32(-2147483647, 2147483647), false); + assert_eq!(eq_si32(-1713183800, -2147483648), false); + assert_eq!(eq_si32(-1713183800, -2147483647), false); + assert_eq!(eq_si32(-1713183800, -1252582164), false); + assert_eq!(eq_si32(-1713183800, -1035405763), false); + } + #[test] + fn test_17() { + assert_eq!(eq_si32(-1713183800, 0), false); + assert_eq!(eq_si32(-1713183800, 1), false); + assert_eq!(eq_si32(-1713183800, 2), false); + assert_eq!(eq_si32(-1713183800, 3), false); + assert_eq!(eq_si32(-1713183800, 4), false); + assert_eq!(eq_si32(-1713183800, 2147483646), false); + assert_eq!(eq_si32(-1713183800, 2147483647), false); + assert_eq!(eq_si32(-1252582164, -2147483648), false); + assert_eq!(eq_si32(-1252582164, -2147483647), false); + assert_eq!(eq_si32(-1252582164, -1713183800), false); + } + #[test] + fn test_18() { + assert_eq!(eq_si32(-1252582164, -1035405763), false); + assert_eq!(eq_si32(-1252582164, 0), false); + assert_eq!(eq_si32(-1252582164, 1), false); + assert_eq!(eq_si32(-1252582164, 2), false); + assert_eq!(eq_si32(-1252582164, 3), false); + assert_eq!(eq_si32(-1252582164, 4), false); + assert_eq!(eq_si32(-1252582164, 2147483646), false); + assert_eq!(eq_si32(-1252582164, 2147483647), false); + assert_eq!(eq_si32(-1035405763, -2147483648), false); + assert_eq!(eq_si32(-1035405763, -2147483647), false); + } + #[test] + fn test_19() { + assert_eq!(eq_si32(-1035405763, -1713183800), false); + assert_eq!(eq_si32(-1035405763, -1252582164), false); + assert_eq!(eq_si32(-1035405763, 0), false); + assert_eq!(eq_si32(-1035405763, 1), false); + assert_eq!(eq_si32(-1035405763, 2), false); + assert_eq!(eq_si32(-1035405763, 3), false); + assert_eq!(eq_si32(-1035405763, 4), false); + assert_eq!(eq_si32(-1035405763, 2147483646), false); + assert_eq!(eq_si32(-1035405763, 2147483647), false); + assert_eq!(eq_si32(0, -2147483648), false); + } + #[test] + fn test_20() { + assert_eq!(eq_si32(0, -2147483647), false); + assert_eq!(eq_si32(0, -1713183800), false); + assert_eq!(eq_si32(0, -1252582164), false); + assert_eq!(eq_si32(0, -1035405763), false); + assert_eq!(eq_si32(0, 1), false); + assert_eq!(eq_si32(0, 2), false); + assert_eq!(eq_si32(0, 3), false); + assert_eq!(eq_si32(0, 4), false); + assert_eq!(eq_si32(0, 2147483646), false); + assert_eq!(eq_si32(0, 2147483647), false); + } + #[test] + fn test_21() { + assert_eq!(eq_si32(1, -2147483648), false); + assert_eq!(eq_si32(1, -2147483647), false); + assert_eq!(eq_si32(1, -1713183800), false); + assert_eq!(eq_si32(1, -1252582164), false); + assert_eq!(eq_si32(1, -1035405763), false); + assert_eq!(eq_si32(1, 0), false); + assert_eq!(eq_si32(1, 2), false); + assert_eq!(eq_si32(1, 3), false); + assert_eq!(eq_si32(1, 4), false); + assert_eq!(eq_si32(1, 2147483646), false); + } + #[test] + fn test_22() { + assert_eq!(eq_si32(1, 2147483647), false); + assert_eq!(eq_si32(2, -2147483648), false); + assert_eq!(eq_si32(2, -2147483647), false); + assert_eq!(eq_si32(2, -1713183800), false); + assert_eq!(eq_si32(2, -1252582164), false); + assert_eq!(eq_si32(2, -1035405763), false); + assert_eq!(eq_si32(2, 0), false); + assert_eq!(eq_si32(2, 1), false); + assert_eq!(eq_si32(2, 3), false); + assert_eq!(eq_si32(2, 4), false); + } + #[test] + fn test_23() { + assert_eq!(eq_si32(2, 2147483646), false); + assert_eq!(eq_si32(2, 2147483647), false); + assert_eq!(eq_si32(3, -2147483648), false); + assert_eq!(eq_si32(3, -2147483647), false); + assert_eq!(eq_si32(3, -1713183800), false); + assert_eq!(eq_si32(3, -1252582164), false); + assert_eq!(eq_si32(3, -1035405763), false); + assert_eq!(eq_si32(3, 0), false); + assert_eq!(eq_si32(3, 1), false); + assert_eq!(eq_si32(3, 2), false); + } + #[test] + fn test_24() { + assert_eq!(eq_si32(3, 4), false); + assert_eq!(eq_si32(3, 2147483646), false); + assert_eq!(eq_si32(3, 2147483647), false); + assert_eq!(eq_si32(4, -2147483648), false); + assert_eq!(eq_si32(4, -2147483647), false); + assert_eq!(eq_si32(4, -1713183800), false); + assert_eq!(eq_si32(4, -1252582164), false); + assert_eq!(eq_si32(4, -1035405763), false); + assert_eq!(eq_si32(4, 0), false); + assert_eq!(eq_si32(4, 1), false); + } + #[test] + fn test_25() { + assert_eq!(eq_si32(4, 2), false); + assert_eq!(eq_si32(4, 3), false); + assert_eq!(eq_si32(4, 2147483646), false); + assert_eq!(eq_si32(4, 2147483647), false); + assert_eq!(eq_si32(2147483646, -2147483648), false); + assert_eq!(eq_si32(2147483646, -2147483647), false); + assert_eq!(eq_si32(2147483646, -1713183800), false); + assert_eq!(eq_si32(2147483646, -1252582164), false); + assert_eq!(eq_si32(2147483646, -1035405763), false); + assert_eq!(eq_si32(2147483646, 0), false); + } + #[test] + fn test_26() { + assert_eq!(eq_si32(2147483646, 1), false); + assert_eq!(eq_si32(2147483646, 2), false); + assert_eq!(eq_si32(2147483646, 3), false); + assert_eq!(eq_si32(2147483646, 4), false); + assert_eq!(eq_si32(2147483646, 2147483647), false); + assert_eq!(eq_si32(2147483647, -2147483648), false); + assert_eq!(eq_si32(2147483647, -2147483647), false); + assert_eq!(eq_si32(2147483647, -1713183800), false); + assert_eq!(eq_si32(2147483647, -1252582164), false); + assert_eq!(eq_si32(2147483647, -1035405763), false); + } + #[test] + fn test_27() { + assert_eq!(eq_si32(2147483647, 0), false); + assert_eq!(eq_si32(2147483647, 1), false); + assert_eq!(eq_si32(2147483647, 2), false); + assert_eq!(eq_si32(2147483647, 3), false); + assert_eq!(eq_si32(2147483647, 4), false); + assert_eq!(eq_si32(2147483647, 2147483646), false); + assert_eq!(eq_si32(-2147483648, -2147483648), true); + assert_eq!(eq_si32(-2147483647, -2147483647), true); + assert_eq!(eq_si32(-1713183800, -1713183800), true); + assert_eq!(eq_si32(-1252582164, -1252582164), true); + } + #[test] + fn test_28() { + assert_eq!(eq_si32(-1035405763, -1035405763), true); + assert_eq!(eq_si32(0, 0), true); + assert_eq!(eq_si32(1, 1), true); + assert_eq!(eq_si32(2, 2), true); + assert_eq!(eq_si32(3, 3), true); + assert_eq!(eq_si32(4, 4), true); + assert_eq!(eq_si32(2147483646, 2147483646), true); + assert_eq!(eq_si32(2147483647, 2147483647), true); + assert_eq!(eq_si64(-9223372036854775808, -9223372036854775807), false); + assert_eq!(eq_si64(-9223372036854775808, -1741927215160008704), false); + } + #[test] + fn test_29() { + assert_eq!(eq_si64(-9223372036854775808, -1328271339354574848), false); + assert_eq!(eq_si64(-9223372036854775808, 0), false); + assert_eq!(eq_si64(-9223372036854775808, 1), false); + assert_eq!(eq_si64(-9223372036854775808, 2), false); + assert_eq!(eq_si64(-9223372036854775808, 3), false); + assert_eq!(eq_si64(-9223372036854775808, 4), false); + assert_eq!(eq_si64(-9223372036854775808, 5577148965131116544), false); + assert_eq!(eq_si64(-9223372036854775808, 9223372036854775806), false); + assert_eq!(eq_si64(-9223372036854775808, 9223372036854775807), false); + assert_eq!(eq_si64(-9223372036854775807, -9223372036854775808), false); + } + #[test] + fn test_30() { + assert_eq!(eq_si64(-9223372036854775807, -1741927215160008704), false); + assert_eq!(eq_si64(-9223372036854775807, -1328271339354574848), false); + assert_eq!(eq_si64(-9223372036854775807, 0), false); + assert_eq!(eq_si64(-9223372036854775807, 1), false); + assert_eq!(eq_si64(-9223372036854775807, 2), false); + assert_eq!(eq_si64(-9223372036854775807, 3), false); + assert_eq!(eq_si64(-9223372036854775807, 4), false); + assert_eq!(eq_si64(-9223372036854775807, 5577148965131116544), false); + assert_eq!(eq_si64(-9223372036854775807, 9223372036854775806), false); + assert_eq!(eq_si64(-9223372036854775807, 9223372036854775807), false); + } + #[test] + fn test_31() { + assert_eq!(eq_si64(-1741927215160008704, -9223372036854775808), false); + assert_eq!(eq_si64(-1741927215160008704, -9223372036854775807), false); + assert_eq!(eq_si64(-1741927215160008704, -1328271339354574848), false); + assert_eq!(eq_si64(-1741927215160008704, 0), false); + assert_eq!(eq_si64(-1741927215160008704, 1), false); + assert_eq!(eq_si64(-1741927215160008704, 2), false); + assert_eq!(eq_si64(-1741927215160008704, 3), false); + assert_eq!(eq_si64(-1741927215160008704, 4), false); + assert_eq!(eq_si64(-1741927215160008704, 5577148965131116544), false); + assert_eq!(eq_si64(-1741927215160008704, 9223372036854775806), false); + } + #[test] + fn test_32() { + assert_eq!(eq_si64(-1741927215160008704, 9223372036854775807), false); + assert_eq!(eq_si64(-1328271339354574848, -9223372036854775808), false); + assert_eq!(eq_si64(-1328271339354574848, -9223372036854775807), false); + assert_eq!(eq_si64(-1328271339354574848, -1741927215160008704), false); + assert_eq!(eq_si64(-1328271339354574848, 0), false); + assert_eq!(eq_si64(-1328271339354574848, 1), false); + assert_eq!(eq_si64(-1328271339354574848, 2), false); + assert_eq!(eq_si64(-1328271339354574848, 3), false); + assert_eq!(eq_si64(-1328271339354574848, 4), false); + assert_eq!(eq_si64(-1328271339354574848, 5577148965131116544), false); + } + #[test] + fn test_33() { + assert_eq!(eq_si64(-1328271339354574848, 9223372036854775806), false); + assert_eq!(eq_si64(-1328271339354574848, 9223372036854775807), false); + assert_eq!(eq_si64(0, -9223372036854775808), false); + assert_eq!(eq_si64(0, -9223372036854775807), false); + assert_eq!(eq_si64(0, -1741927215160008704), false); + assert_eq!(eq_si64(0, -1328271339354574848), false); + assert_eq!(eq_si64(0, 1), false); + assert_eq!(eq_si64(0, 2), false); + assert_eq!(eq_si64(0, 3), false); + assert_eq!(eq_si64(0, 4), false); + } + #[test] + fn test_34() { + assert_eq!(eq_si64(0, 5577148965131116544), false); + assert_eq!(eq_si64(0, 9223372036854775806), false); + assert_eq!(eq_si64(0, 9223372036854775807), false); + assert_eq!(eq_si64(1, -9223372036854775808), false); + assert_eq!(eq_si64(1, -9223372036854775807), false); + assert_eq!(eq_si64(1, -1741927215160008704), false); + assert_eq!(eq_si64(1, -1328271339354574848), false); + assert_eq!(eq_si64(1, 0), false); + assert_eq!(eq_si64(1, 2), false); + assert_eq!(eq_si64(1, 3), false); + } + #[test] + fn test_35() { + assert_eq!(eq_si64(1, 4), false); + assert_eq!(eq_si64(1, 5577148965131116544), false); + assert_eq!(eq_si64(1, 9223372036854775806), false); + assert_eq!(eq_si64(1, 9223372036854775807), false); + assert_eq!(eq_si64(2, -9223372036854775808), false); + assert_eq!(eq_si64(2, -9223372036854775807), false); + assert_eq!(eq_si64(2, -1741927215160008704), false); + assert_eq!(eq_si64(2, -1328271339354574848), false); + assert_eq!(eq_si64(2, 0), false); + assert_eq!(eq_si64(2, 1), false); + } + #[test] + fn test_36() { + assert_eq!(eq_si64(2, 3), false); + assert_eq!(eq_si64(2, 4), false); + assert_eq!(eq_si64(2, 5577148965131116544), false); + assert_eq!(eq_si64(2, 9223372036854775806), false); + assert_eq!(eq_si64(2, 9223372036854775807), false); + assert_eq!(eq_si64(3, -9223372036854775808), false); + assert_eq!(eq_si64(3, -9223372036854775807), false); + assert_eq!(eq_si64(3, -1741927215160008704), false); + assert_eq!(eq_si64(3, -1328271339354574848), false); + assert_eq!(eq_si64(3, 0), false); + } + #[test] + fn test_37() { + assert_eq!(eq_si64(3, 1), false); + assert_eq!(eq_si64(3, 2), false); + assert_eq!(eq_si64(3, 4), false); + assert_eq!(eq_si64(3, 5577148965131116544), false); + assert_eq!(eq_si64(3, 9223372036854775806), false); + assert_eq!(eq_si64(3, 9223372036854775807), false); + assert_eq!(eq_si64(4, -9223372036854775808), false); + assert_eq!(eq_si64(4, -9223372036854775807), false); + assert_eq!(eq_si64(4, -1741927215160008704), false); + assert_eq!(eq_si64(4, -1328271339354574848), false); + } + #[test] + fn test_38() { + assert_eq!(eq_si64(4, 0), false); + assert_eq!(eq_si64(4, 1), false); + assert_eq!(eq_si64(4, 2), false); + assert_eq!(eq_si64(4, 3), false); + assert_eq!(eq_si64(4, 5577148965131116544), false); + assert_eq!(eq_si64(4, 9223372036854775806), false); + assert_eq!(eq_si64(4, 9223372036854775807), false); + assert_eq!(eq_si64(5577148965131116544, -9223372036854775808), false); + assert_eq!(eq_si64(5577148965131116544, -9223372036854775807), false); + assert_eq!(eq_si64(5577148965131116544, -1741927215160008704), false); + } + #[test] + fn test_39() { + assert_eq!(eq_si64(5577148965131116544, -1328271339354574848), false); + assert_eq!(eq_si64(5577148965131116544, 0), false); + assert_eq!(eq_si64(5577148965131116544, 1), false); + assert_eq!(eq_si64(5577148965131116544, 2), false); + assert_eq!(eq_si64(5577148965131116544, 3), false); + assert_eq!(eq_si64(5577148965131116544, 4), false); + assert_eq!(eq_si64(5577148965131116544, 9223372036854775806), false); + assert_eq!(eq_si64(5577148965131116544, 9223372036854775807), false); + assert_eq!(eq_si64(9223372036854775806, -9223372036854775808), false); + assert_eq!(eq_si64(9223372036854775806, -9223372036854775807), false); + } + #[test] + fn test_40() { + assert_eq!(eq_si64(9223372036854775806, -1741927215160008704), false); + assert_eq!(eq_si64(9223372036854775806, -1328271339354574848), false); + assert_eq!(eq_si64(9223372036854775806, 0), false); + assert_eq!(eq_si64(9223372036854775806, 1), false); + assert_eq!(eq_si64(9223372036854775806, 2), false); + assert_eq!(eq_si64(9223372036854775806, 3), false); + assert_eq!(eq_si64(9223372036854775806, 4), false); + assert_eq!(eq_si64(9223372036854775806, 5577148965131116544), false); + assert_eq!(eq_si64(9223372036854775806, 9223372036854775807), false); + assert_eq!(eq_si64(9223372036854775807, -9223372036854775808), false); + } + #[test] + fn test_41() { + assert_eq!(eq_si64(9223372036854775807, -9223372036854775807), false); + assert_eq!(eq_si64(9223372036854775807, -1741927215160008704), false); + assert_eq!(eq_si64(9223372036854775807, -1328271339354574848), false); + assert_eq!(eq_si64(9223372036854775807, 0), false); + assert_eq!(eq_si64(9223372036854775807, 1), false); + assert_eq!(eq_si64(9223372036854775807, 2), false); + assert_eq!(eq_si64(9223372036854775807, 3), false); + assert_eq!(eq_si64(9223372036854775807, 4), false); + assert_eq!(eq_si64(9223372036854775807, 5577148965131116544), false); + assert_eq!(eq_si64(9223372036854775807, 9223372036854775806), false); + } + #[test] + fn test_42() { + assert_eq!(eq_si64(-9223372036854775808, -9223372036854775808), true); + assert_eq!(eq_si64(-9223372036854775807, -9223372036854775807), true); + assert_eq!(eq_si64(-1741927215160008704, -1741927215160008704), true); + assert_eq!(eq_si64(-1328271339354574848, -1328271339354574848), true); + assert_eq!(eq_si64(0, 0), true); + assert_eq!(eq_si64(1, 1), true); + assert_eq!(eq_si64(2, 2), true); + assert_eq!(eq_si64(3, 3), true); + assert_eq!(eq_si64(4, 4), true); + assert_eq!(eq_si64(5577148965131116544, 5577148965131116544), true); + } + #[test] + fn test_43() { + assert_eq!(eq_si64(9223372036854775806, 9223372036854775806), true); + assert_eq!(eq_si64(9223372036854775807, 9223372036854775807), true); + assert_eq!(eq_si8(-128, -127), false); + assert_eq!(eq_si8(-128, 0), false); + assert_eq!(eq_si8(-128, 1), false); + assert_eq!(eq_si8(-128, 2), false); + assert_eq!(eq_si8(-128, 3), false); + assert_eq!(eq_si8(-128, 4), false); + assert_eq!(eq_si8(-128, 16), false); + assert_eq!(eq_si8(-128, 126), false); + } + #[test] + fn test_44() { + assert_eq!(eq_si8(-128, 127), false); + assert_eq!(eq_si8(-127, -128), false); + assert_eq!(eq_si8(-127, 0), false); + assert_eq!(eq_si8(-127, 1), false); + assert_eq!(eq_si8(-127, 2), false); + assert_eq!(eq_si8(-127, 3), false); + assert_eq!(eq_si8(-127, 4), false); + assert_eq!(eq_si8(-127, 16), false); + assert_eq!(eq_si8(-127, 126), false); + assert_eq!(eq_si8(-127, 127), false); + } + #[test] + fn test_45() { + assert_eq!(eq_si8(0, -128), false); + assert_eq!(eq_si8(0, -127), false); + assert_eq!(eq_si8(0, 1), false); + assert_eq!(eq_si8(0, 2), false); + assert_eq!(eq_si8(0, 3), false); + assert_eq!(eq_si8(0, 4), false); + assert_eq!(eq_si8(0, 16), false); + assert_eq!(eq_si8(0, 126), false); + assert_eq!(eq_si8(0, 127), false); + assert_eq!(eq_si8(1, -128), false); + } + #[test] + fn test_46() { + assert_eq!(eq_si8(1, -127), false); + assert_eq!(eq_si8(1, 0), false); + assert_eq!(eq_si8(1, 2), false); + assert_eq!(eq_si8(1, 3), false); + assert_eq!(eq_si8(1, 4), false); + assert_eq!(eq_si8(1, 16), false); + assert_eq!(eq_si8(1, 126), false); + assert_eq!(eq_si8(1, 127), false); + assert_eq!(eq_si8(2, -128), false); + assert_eq!(eq_si8(2, -127), false); + } + #[test] + fn test_47() { + assert_eq!(eq_si8(2, 0), false); + assert_eq!(eq_si8(2, 1), false); + assert_eq!(eq_si8(2, 3), false); + assert_eq!(eq_si8(2, 4), false); + assert_eq!(eq_si8(2, 16), false); + assert_eq!(eq_si8(2, 126), false); + assert_eq!(eq_si8(2, 127), false); + assert_eq!(eq_si8(3, -128), false); + assert_eq!(eq_si8(3, -127), false); + assert_eq!(eq_si8(3, 0), false); + } + #[test] + fn test_48() { + assert_eq!(eq_si8(3, 1), false); + assert_eq!(eq_si8(3, 2), false); + assert_eq!(eq_si8(3, 4), false); + assert_eq!(eq_si8(3, 16), false); + assert_eq!(eq_si8(3, 126), false); + assert_eq!(eq_si8(3, 127), false); + assert_eq!(eq_si8(4, -128), false); + assert_eq!(eq_si8(4, -127), false); + assert_eq!(eq_si8(4, 0), false); + assert_eq!(eq_si8(4, 1), false); + } + #[test] + fn test_49() { + assert_eq!(eq_si8(4, 2), false); + assert_eq!(eq_si8(4, 3), false); + assert_eq!(eq_si8(4, 16), false); + assert_eq!(eq_si8(4, 126), false); + assert_eq!(eq_si8(4, 127), false); + assert_eq!(eq_si8(16, -128), false); + assert_eq!(eq_si8(16, -127), false); + assert_eq!(eq_si8(16, 0), false); + assert_eq!(eq_si8(16, 1), false); + assert_eq!(eq_si8(16, 2), false); + } + #[test] + fn test_50() { + assert_eq!(eq_si8(16, 3), false); + assert_eq!(eq_si8(16, 4), false); + assert_eq!(eq_si8(16, 126), false); + assert_eq!(eq_si8(16, 127), false); + assert_eq!(eq_si8(126, -128), false); + assert_eq!(eq_si8(126, -127), false); + assert_eq!(eq_si8(126, 0), false); + assert_eq!(eq_si8(126, 1), false); + assert_eq!(eq_si8(126, 2), false); + assert_eq!(eq_si8(126, 3), false); + } + #[test] + fn test_51() { + assert_eq!(eq_si8(126, 4), false); + assert_eq!(eq_si8(126, 16), false); + assert_eq!(eq_si8(126, 127), false); + assert_eq!(eq_si8(127, -128), false); + assert_eq!(eq_si8(127, -127), false); + assert_eq!(eq_si8(127, 0), false); + assert_eq!(eq_si8(127, 1), false); + assert_eq!(eq_si8(127, 2), false); + assert_eq!(eq_si8(127, 3), false); + assert_eq!(eq_si8(127, 4), false); + } + #[test] + fn test_52() { + assert_eq!(eq_si8(127, 16), false); + assert_eq!(eq_si8(127, 126), false); + assert_eq!(eq_si8(-128, -128), true); + assert_eq!(eq_si8(-127, -127), true); + assert_eq!(eq_si8(0, 0), true); + assert_eq!(eq_si8(1, 1), true); + assert_eq!(eq_si8(2, 2), true); + assert_eq!(eq_si8(3, 3), true); + assert_eq!(eq_si8(4, 4), true); + assert_eq!(eq_si8(16, 16), true); + } + #[test] + fn test_53() { + assert_eq!(eq_si8(126, 126), true); + assert_eq!(eq_si8(127, 127), true); + assert_eq!(eq_ui16(0, 1), false); + assert_eq!(eq_ui16(0, 2), false); + assert_eq!(eq_ui16(0, 3), false); + assert_eq!(eq_ui16(0, 4), false); + assert_eq!(eq_ui16(0, 1717), false); + assert_eq!(eq_ui16(0, 17988), false); + assert_eq!(eq_ui16(0, 65096), false); + assert_eq!(eq_ui16(0, 65534), false); + } + #[test] + fn test_54() { + assert_eq!(eq_ui16(0, 65535), false); + assert_eq!(eq_ui16(1, 0), false); + assert_eq!(eq_ui16(1, 2), false); + assert_eq!(eq_ui16(1, 3), false); + assert_eq!(eq_ui16(1, 4), false); + assert_eq!(eq_ui16(1, 1717), false); + assert_eq!(eq_ui16(1, 17988), false); + assert_eq!(eq_ui16(1, 65096), false); + assert_eq!(eq_ui16(1, 65534), false); + assert_eq!(eq_ui16(1, 65535), false); + } + #[test] + fn test_55() { + assert_eq!(eq_ui16(2, 0), false); + assert_eq!(eq_ui16(2, 1), false); + assert_eq!(eq_ui16(2, 3), false); + assert_eq!(eq_ui16(2, 4), false); + assert_eq!(eq_ui16(2, 1717), false); + assert_eq!(eq_ui16(2, 17988), false); + assert_eq!(eq_ui16(2, 65096), false); + assert_eq!(eq_ui16(2, 65534), false); + assert_eq!(eq_ui16(2, 65535), false); + assert_eq!(eq_ui16(3, 0), false); + } + #[test] + fn test_56() { + assert_eq!(eq_ui16(3, 1), false); + assert_eq!(eq_ui16(3, 2), false); + assert_eq!(eq_ui16(3, 4), false); + assert_eq!(eq_ui16(3, 1717), false); + assert_eq!(eq_ui16(3, 17988), false); + assert_eq!(eq_ui16(3, 65096), false); + assert_eq!(eq_ui16(3, 65534), false); + assert_eq!(eq_ui16(3, 65535), false); + assert_eq!(eq_ui16(4, 0), false); + assert_eq!(eq_ui16(4, 1), false); + } + #[test] + fn test_57() { + assert_eq!(eq_ui16(4, 2), false); + assert_eq!(eq_ui16(4, 3), false); + assert_eq!(eq_ui16(4, 1717), false); + assert_eq!(eq_ui16(4, 17988), false); + assert_eq!(eq_ui16(4, 65096), false); + assert_eq!(eq_ui16(4, 65534), false); + assert_eq!(eq_ui16(4, 65535), false); + assert_eq!(eq_ui16(1717, 0), false); + assert_eq!(eq_ui16(1717, 1), false); + assert_eq!(eq_ui16(1717, 2), false); + } + #[test] + fn test_58() { + assert_eq!(eq_ui16(1717, 3), false); + assert_eq!(eq_ui16(1717, 4), false); + assert_eq!(eq_ui16(1717, 17988), false); + assert_eq!(eq_ui16(1717, 65096), false); + assert_eq!(eq_ui16(1717, 65534), false); + assert_eq!(eq_ui16(1717, 65535), false); + assert_eq!(eq_ui16(17988, 0), false); + assert_eq!(eq_ui16(17988, 1), false); + assert_eq!(eq_ui16(17988, 2), false); + assert_eq!(eq_ui16(17988, 3), false); + } + #[test] + fn test_59() { + assert_eq!(eq_ui16(17988, 4), false); + assert_eq!(eq_ui16(17988, 1717), false); + assert_eq!(eq_ui16(17988, 65096), false); + assert_eq!(eq_ui16(17988, 65534), false); + assert_eq!(eq_ui16(17988, 65535), false); + assert_eq!(eq_ui16(65096, 0), false); + assert_eq!(eq_ui16(65096, 1), false); + assert_eq!(eq_ui16(65096, 2), false); + assert_eq!(eq_ui16(65096, 3), false); + assert_eq!(eq_ui16(65096, 4), false); + } + #[test] + fn test_60() { + assert_eq!(eq_ui16(65096, 1717), false); + assert_eq!(eq_ui16(65096, 17988), false); + assert_eq!(eq_ui16(65096, 65534), false); + assert_eq!(eq_ui16(65096, 65535), false); + assert_eq!(eq_ui16(65534, 0), false); + assert_eq!(eq_ui16(65534, 1), false); + assert_eq!(eq_ui16(65534, 2), false); + assert_eq!(eq_ui16(65534, 3), false); + assert_eq!(eq_ui16(65534, 4), false); + assert_eq!(eq_ui16(65534, 1717), false); + } + #[test] + fn test_61() { + assert_eq!(eq_ui16(65534, 17988), false); + assert_eq!(eq_ui16(65534, 65096), false); + assert_eq!(eq_ui16(65534, 65535), false); + assert_eq!(eq_ui16(65535, 0), false); + assert_eq!(eq_ui16(65535, 1), false); + assert_eq!(eq_ui16(65535, 2), false); + assert_eq!(eq_ui16(65535, 3), false); + assert_eq!(eq_ui16(65535, 4), false); + assert_eq!(eq_ui16(65535, 1717), false); + assert_eq!(eq_ui16(65535, 17988), false); + } + #[test] + fn test_62() { + assert_eq!(eq_ui16(65535, 65096), false); + assert_eq!(eq_ui16(65535, 65534), false); + assert_eq!(eq_ui16(0, 0), true); + assert_eq!(eq_ui16(1, 1), true); + assert_eq!(eq_ui16(2, 2), true); + assert_eq!(eq_ui16(3, 3), true); + assert_eq!(eq_ui16(4, 4), true); + assert_eq!(eq_ui16(1717, 1717), true); + assert_eq!(eq_ui16(17988, 17988), true); + assert_eq!(eq_ui16(65096, 65096), true); + } + #[test] + fn test_63() { + assert_eq!(eq_ui16(65534, 65534), true); + assert_eq!(eq_ui16(65535, 65535), true); + assert_eq!(eq_ui32(0, 1), false); + assert_eq!(eq_ui32(0, 2), false); + assert_eq!(eq_ui32(0, 3), false); + assert_eq!(eq_ui32(0, 4), false); + assert_eq!(eq_ui32(0, 2119154652), false); + assert_eq!(eq_ui32(0, 3002788344), false); + assert_eq!(eq_ui32(0, 3482297128), false); + assert_eq!(eq_ui32(0, 4294967294), false); + } + #[test] + fn test_64() { + assert_eq!(eq_ui32(0, 4294967295), false); + assert_eq!(eq_ui32(1, 0), false); + assert_eq!(eq_ui32(1, 2), false); + assert_eq!(eq_ui32(1, 3), false); + assert_eq!(eq_ui32(1, 4), false); + assert_eq!(eq_ui32(1, 2119154652), false); + assert_eq!(eq_ui32(1, 3002788344), false); + assert_eq!(eq_ui32(1, 3482297128), false); + assert_eq!(eq_ui32(1, 4294967294), false); + assert_eq!(eq_ui32(1, 4294967295), false); + } + #[test] + fn test_65() { + assert_eq!(eq_ui32(2, 0), false); + assert_eq!(eq_ui32(2, 1), false); + assert_eq!(eq_ui32(2, 3), false); + assert_eq!(eq_ui32(2, 4), false); + assert_eq!(eq_ui32(2, 2119154652), false); + assert_eq!(eq_ui32(2, 3002788344), false); + assert_eq!(eq_ui32(2, 3482297128), false); + assert_eq!(eq_ui32(2, 4294967294), false); + assert_eq!(eq_ui32(2, 4294967295), false); + assert_eq!(eq_ui32(3, 0), false); + } + #[test] + fn test_66() { + assert_eq!(eq_ui32(3, 1), false); + assert_eq!(eq_ui32(3, 2), false); + assert_eq!(eq_ui32(3, 4), false); + assert_eq!(eq_ui32(3, 2119154652), false); + assert_eq!(eq_ui32(3, 3002788344), false); + assert_eq!(eq_ui32(3, 3482297128), false); + assert_eq!(eq_ui32(3, 4294967294), false); + assert_eq!(eq_ui32(3, 4294967295), false); + assert_eq!(eq_ui32(4, 0), false); + assert_eq!(eq_ui32(4, 1), false); + } + #[test] + fn test_67() { + assert_eq!(eq_ui32(4, 2), false); + assert_eq!(eq_ui32(4, 3), false); + assert_eq!(eq_ui32(4, 2119154652), false); + assert_eq!(eq_ui32(4, 3002788344), false); + assert_eq!(eq_ui32(4, 3482297128), false); + assert_eq!(eq_ui32(4, 4294967294), false); + assert_eq!(eq_ui32(4, 4294967295), false); + assert_eq!(eq_ui32(2119154652, 0), false); + assert_eq!(eq_ui32(2119154652, 1), false); + assert_eq!(eq_ui32(2119154652, 2), false); + } + #[test] + fn test_68() { + assert_eq!(eq_ui32(2119154652, 3), false); + assert_eq!(eq_ui32(2119154652, 4), false); + assert_eq!(eq_ui32(2119154652, 3002788344), false); + assert_eq!(eq_ui32(2119154652, 3482297128), false); + assert_eq!(eq_ui32(2119154652, 4294967294), false); + assert_eq!(eq_ui32(2119154652, 4294967295), false); + assert_eq!(eq_ui32(3002788344, 0), false); + assert_eq!(eq_ui32(3002788344, 1), false); + assert_eq!(eq_ui32(3002788344, 2), false); + assert_eq!(eq_ui32(3002788344, 3), false); + } + #[test] + fn test_69() { + assert_eq!(eq_ui32(3002788344, 4), false); + assert_eq!(eq_ui32(3002788344, 2119154652), false); + assert_eq!(eq_ui32(3002788344, 3482297128), false); + assert_eq!(eq_ui32(3002788344, 4294967294), false); + assert_eq!(eq_ui32(3002788344, 4294967295), false); + assert_eq!(eq_ui32(3482297128, 0), false); + assert_eq!(eq_ui32(3482297128, 1), false); + assert_eq!(eq_ui32(3482297128, 2), false); + assert_eq!(eq_ui32(3482297128, 3), false); + assert_eq!(eq_ui32(3482297128, 4), false); + } + #[test] + fn test_70() { + assert_eq!(eq_ui32(3482297128, 2119154652), false); + assert_eq!(eq_ui32(3482297128, 3002788344), false); + assert_eq!(eq_ui32(3482297128, 4294967294), false); + assert_eq!(eq_ui32(3482297128, 4294967295), false); + assert_eq!(eq_ui32(4294967294, 0), false); + assert_eq!(eq_ui32(4294967294, 1), false); + assert_eq!(eq_ui32(4294967294, 2), false); + assert_eq!(eq_ui32(4294967294, 3), false); + assert_eq!(eq_ui32(4294967294, 4), false); + assert_eq!(eq_ui32(4294967294, 2119154652), false); + } + #[test] + fn test_71() { + assert_eq!(eq_ui32(4294967294, 3002788344), false); + assert_eq!(eq_ui32(4294967294, 3482297128), false); + assert_eq!(eq_ui32(4294967294, 4294967295), false); + assert_eq!(eq_ui32(4294967295, 0), false); + assert_eq!(eq_ui32(4294967295, 1), false); + assert_eq!(eq_ui32(4294967295, 2), false); + assert_eq!(eq_ui32(4294967295, 3), false); + assert_eq!(eq_ui32(4294967295, 4), false); + assert_eq!(eq_ui32(4294967295, 2119154652), false); + assert_eq!(eq_ui32(4294967295, 3002788344), false); + } + #[test] + fn test_72() { + assert_eq!(eq_ui32(4294967295, 3482297128), false); + assert_eq!(eq_ui32(4294967295, 4294967294), false); + assert_eq!(eq_ui32(0, 0), true); + assert_eq!(eq_ui32(1, 1), true); + assert_eq!(eq_ui32(2, 2), true); + assert_eq!(eq_ui32(3, 3), true); + assert_eq!(eq_ui32(4, 4), true); + assert_eq!(eq_ui32(2119154652, 2119154652), true); + assert_eq!(eq_ui32(3002788344, 3002788344), true); + assert_eq!(eq_ui32(3482297128, 3482297128), true); + } + #[test] + fn test_73() { + assert_eq!(eq_ui32(4294967294, 4294967294), true); + assert_eq!(eq_ui32(4294967295, 4294967295), true); + assert_eq!(eq_ui64(0, 1), false); + assert_eq!(eq_ui64(0, 2), false); + assert_eq!(eq_ui64(0, 3), false); + assert_eq!(eq_ui64(0, 4), false); + assert_eq!(eq_ui64(0, 191084152064409600), false); + assert_eq!(eq_ui64(0, 11015955194427482112), false); + assert_eq!(eq_ui64(0, 16990600415051759616), false); + assert_eq!(eq_ui64(0, 18446744073709551614), false); + } + #[test] + fn test_74() { + assert_eq!(eq_ui64(0, 18446744073709551615), false); + assert_eq!(eq_ui64(1, 0), false); + assert_eq!(eq_ui64(1, 2), false); + assert_eq!(eq_ui64(1, 3), false); + assert_eq!(eq_ui64(1, 4), false); + assert_eq!(eq_ui64(1, 191084152064409600), false); + assert_eq!(eq_ui64(1, 11015955194427482112), false); + assert_eq!(eq_ui64(1, 16990600415051759616), false); + assert_eq!(eq_ui64(1, 18446744073709551614), false); + assert_eq!(eq_ui64(1, 18446744073709551615), false); + } + #[test] + fn test_75() { + assert_eq!(eq_ui64(2, 0), false); + assert_eq!(eq_ui64(2, 1), false); + assert_eq!(eq_ui64(2, 3), false); + assert_eq!(eq_ui64(2, 4), false); + assert_eq!(eq_ui64(2, 191084152064409600), false); + assert_eq!(eq_ui64(2, 11015955194427482112), false); + assert_eq!(eq_ui64(2, 16990600415051759616), false); + assert_eq!(eq_ui64(2, 18446744073709551614), false); + assert_eq!(eq_ui64(2, 18446744073709551615), false); + assert_eq!(eq_ui64(3, 0), false); + } + #[test] + fn test_76() { + assert_eq!(eq_ui64(3, 1), false); + assert_eq!(eq_ui64(3, 2), false); + assert_eq!(eq_ui64(3, 4), false); + assert_eq!(eq_ui64(3, 191084152064409600), false); + assert_eq!(eq_ui64(3, 11015955194427482112), false); + assert_eq!(eq_ui64(3, 16990600415051759616), false); + assert_eq!(eq_ui64(3, 18446744073709551614), false); + assert_eq!(eq_ui64(3, 18446744073709551615), false); + assert_eq!(eq_ui64(4, 0), false); + assert_eq!(eq_ui64(4, 1), false); + } + #[test] + fn test_77() { + assert_eq!(eq_ui64(4, 2), false); + assert_eq!(eq_ui64(4, 3), false); + assert_eq!(eq_ui64(4, 191084152064409600), false); + assert_eq!(eq_ui64(4, 11015955194427482112), false); + assert_eq!(eq_ui64(4, 16990600415051759616), false); + assert_eq!(eq_ui64(4, 18446744073709551614), false); + assert_eq!(eq_ui64(4, 18446744073709551615), false); + assert_eq!(eq_ui64(191084152064409600, 0), false); + assert_eq!(eq_ui64(191084152064409600, 1), false); + assert_eq!(eq_ui64(191084152064409600, 2), false); + } + #[test] + fn test_78() { + assert_eq!(eq_ui64(191084152064409600, 3), false); + assert_eq!(eq_ui64(191084152064409600, 4), false); + assert_eq!(eq_ui64(191084152064409600, 11015955194427482112), false); + assert_eq!(eq_ui64(191084152064409600, 16990600415051759616), false); + assert_eq!(eq_ui64(191084152064409600, 18446744073709551614), false); + assert_eq!(eq_ui64(191084152064409600, 18446744073709551615), false); + assert_eq!(eq_ui64(11015955194427482112, 0), false); + assert_eq!(eq_ui64(11015955194427482112, 1), false); + assert_eq!(eq_ui64(11015955194427482112, 2), false); + assert_eq!(eq_ui64(11015955194427482112, 3), false); + } + #[test] + fn test_79() { + assert_eq!(eq_ui64(11015955194427482112, 4), false); + assert_eq!(eq_ui64(11015955194427482112, 191084152064409600), false); + assert_eq!(eq_ui64(11015955194427482112, 16990600415051759616), false); + assert_eq!(eq_ui64(11015955194427482112, 18446744073709551614), false); + assert_eq!(eq_ui64(11015955194427482112, 18446744073709551615), false); + assert_eq!(eq_ui64(16990600415051759616, 0), false); + assert_eq!(eq_ui64(16990600415051759616, 1), false); + assert_eq!(eq_ui64(16990600415051759616, 2), false); + assert_eq!(eq_ui64(16990600415051759616, 3), false); + assert_eq!(eq_ui64(16990600415051759616, 4), false); + } + #[test] + fn test_80() { + assert_eq!(eq_ui64(16990600415051759616, 191084152064409600), false); + assert_eq!(eq_ui64(16990600415051759616, 11015955194427482112), false); + assert_eq!(eq_ui64(16990600415051759616, 18446744073709551614), false); + assert_eq!(eq_ui64(16990600415051759616, 18446744073709551615), false); + assert_eq!(eq_ui64(18446744073709551614, 0), false); + assert_eq!(eq_ui64(18446744073709551614, 1), false); + assert_eq!(eq_ui64(18446744073709551614, 2), false); + assert_eq!(eq_ui64(18446744073709551614, 3), false); + assert_eq!(eq_ui64(18446744073709551614, 4), false); + assert_eq!(eq_ui64(18446744073709551614, 191084152064409600), false); + } + #[test] + fn test_81() { + assert_eq!(eq_ui64(18446744073709551614, 11015955194427482112), false); + assert_eq!(eq_ui64(18446744073709551614, 16990600415051759616), false); + assert_eq!(eq_ui64(18446744073709551614, 18446744073709551615), false); + assert_eq!(eq_ui64(18446744073709551615, 0), false); + assert_eq!(eq_ui64(18446744073709551615, 1), false); + assert_eq!(eq_ui64(18446744073709551615, 2), false); + assert_eq!(eq_ui64(18446744073709551615, 3), false); + assert_eq!(eq_ui64(18446744073709551615, 4), false); + assert_eq!(eq_ui64(18446744073709551615, 191084152064409600), false); + assert_eq!(eq_ui64(18446744073709551615, 11015955194427482112), false); + } + #[test] + fn test_82() { + assert_eq!(eq_ui64(18446744073709551615, 16990600415051759616), false); + assert_eq!(eq_ui64(18446744073709551615, 18446744073709551614), false); + assert_eq!(eq_ui64(0, 0), true); + assert_eq!(eq_ui64(1, 1), true); + assert_eq!(eq_ui64(2, 2), true); + assert_eq!(eq_ui64(3, 3), true); + assert_eq!(eq_ui64(4, 4), true); + assert_eq!(eq_ui64(191084152064409600, 191084152064409600), true); + assert_eq!(eq_ui64(11015955194427482112, 11015955194427482112), true); + assert_eq!(eq_ui64(16990600415051759616, 16990600415051759616), true); + } + #[test] + fn test_83() { + assert_eq!(eq_ui64(18446744073709551614, 18446744073709551614), true); + assert_eq!(eq_ui64(18446744073709551615, 18446744073709551615), true); + assert_eq!(eq_ui8(0, 1), false); + assert_eq!(eq_ui8(0, 2), false); + assert_eq!(eq_ui8(0, 3), false); + assert_eq!(eq_ui8(0, 4), false); + assert_eq!(eq_ui8(0, 72), false); + assert_eq!(eq_ui8(0, 100), false); + assert_eq!(eq_ui8(0, 162), false); + assert_eq!(eq_ui8(0, 254), false); + } + #[test] + fn test_84() { + assert_eq!(eq_ui8(0, 255), false); + assert_eq!(eq_ui8(1, 0), false); + assert_eq!(eq_ui8(1, 2), false); + assert_eq!(eq_ui8(1, 3), false); + assert_eq!(eq_ui8(1, 4), false); + assert_eq!(eq_ui8(1, 72), false); + assert_eq!(eq_ui8(1, 100), false); + assert_eq!(eq_ui8(1, 162), false); + assert_eq!(eq_ui8(1, 254), false); + assert_eq!(eq_ui8(1, 255), false); + } + #[test] + fn test_85() { + assert_eq!(eq_ui8(2, 0), false); + assert_eq!(eq_ui8(2, 1), false); + assert_eq!(eq_ui8(2, 3), false); + assert_eq!(eq_ui8(2, 4), false); + assert_eq!(eq_ui8(2, 72), false); + assert_eq!(eq_ui8(2, 100), false); + assert_eq!(eq_ui8(2, 162), false); + assert_eq!(eq_ui8(2, 254), false); + assert_eq!(eq_ui8(2, 255), false); + assert_eq!(eq_ui8(3, 0), false); + } + #[test] + fn test_86() { + assert_eq!(eq_ui8(3, 1), false); + assert_eq!(eq_ui8(3, 2), false); + assert_eq!(eq_ui8(3, 4), false); + assert_eq!(eq_ui8(3, 72), false); + assert_eq!(eq_ui8(3, 100), false); + assert_eq!(eq_ui8(3, 162), false); + assert_eq!(eq_ui8(3, 254), false); + assert_eq!(eq_ui8(3, 255), false); + assert_eq!(eq_ui8(4, 0), false); + assert_eq!(eq_ui8(4, 1), false); + } + #[test] + fn test_87() { + assert_eq!(eq_ui8(4, 2), false); + assert_eq!(eq_ui8(4, 3), false); + assert_eq!(eq_ui8(4, 72), false); + assert_eq!(eq_ui8(4, 100), false); + assert_eq!(eq_ui8(4, 162), false); + assert_eq!(eq_ui8(4, 254), false); + assert_eq!(eq_ui8(4, 255), false); + assert_eq!(eq_ui8(72, 0), false); + assert_eq!(eq_ui8(72, 1), false); + assert_eq!(eq_ui8(72, 2), false); + } + #[test] + fn test_88() { + assert_eq!(eq_ui8(72, 3), false); + assert_eq!(eq_ui8(72, 4), false); + assert_eq!(eq_ui8(72, 100), false); + assert_eq!(eq_ui8(72, 162), false); + assert_eq!(eq_ui8(72, 254), false); + assert_eq!(eq_ui8(72, 255), false); + assert_eq!(eq_ui8(100, 0), false); + assert_eq!(eq_ui8(100, 1), false); + assert_eq!(eq_ui8(100, 2), false); + assert_eq!(eq_ui8(100, 3), false); + } + #[test] + fn test_89() { + assert_eq!(eq_ui8(100, 4), false); + assert_eq!(eq_ui8(100, 72), false); + assert_eq!(eq_ui8(100, 162), false); + assert_eq!(eq_ui8(100, 254), false); + assert_eq!(eq_ui8(100, 255), false); + assert_eq!(eq_ui8(162, 0), false); + assert_eq!(eq_ui8(162, 1), false); + assert_eq!(eq_ui8(162, 2), false); + assert_eq!(eq_ui8(162, 3), false); + assert_eq!(eq_ui8(162, 4), false); + } + #[test] + fn test_90() { + assert_eq!(eq_ui8(162, 72), false); + assert_eq!(eq_ui8(162, 100), false); + assert_eq!(eq_ui8(162, 254), false); + assert_eq!(eq_ui8(162, 255), false); + assert_eq!(eq_ui8(254, 0), false); + assert_eq!(eq_ui8(254, 1), false); + assert_eq!(eq_ui8(254, 2), false); + assert_eq!(eq_ui8(254, 3), false); + assert_eq!(eq_ui8(254, 4), false); + assert_eq!(eq_ui8(254, 72), false); + } + #[test] + fn test_91() { + assert_eq!(eq_ui8(254, 100), false); + assert_eq!(eq_ui8(254, 162), false); + assert_eq!(eq_ui8(254, 255), false); + assert_eq!(eq_ui8(255, 0), false); + assert_eq!(eq_ui8(255, 1), false); + assert_eq!(eq_ui8(255, 2), false); + assert_eq!(eq_ui8(255, 3), false); + assert_eq!(eq_ui8(255, 4), false); + assert_eq!(eq_ui8(255, 72), false); + assert_eq!(eq_ui8(255, 100), false); + } + #[test] + fn test_92() { + assert_eq!(eq_ui8(255, 162), false); + assert_eq!(eq_ui8(255, 254), false); + assert_eq!(eq_ui8(0, 0), true); + assert_eq!(eq_ui8(1, 1), true); + assert_eq!(eq_ui8(2, 2), true); + assert_eq!(eq_ui8(3, 3), true); + assert_eq!(eq_ui8(4, 4), true); + assert_eq!(eq_ui8(72, 72), true); + assert_eq!(eq_ui8(100, 100), true); + assert_eq!(eq_ui8(162, 162), true); + } + #[test] + fn test_93() { + assert_eq!(eq_ui8(254, 254), true); + assert_eq!(eq_ui8(255, 255), true); + assert_eq!(ge_si16(-32768, -32767), false); + assert_eq!(ge_si16(-32768, -32547), false); + assert_eq!(ge_si16(-32768, 0), false); + assert_eq!(ge_si16(-32768, 1), false); + assert_eq!(ge_si16(-32768, 2), false); + assert_eq!(ge_si16(-32768, 3), false); + assert_eq!(ge_si16(-32768, 4), false); + assert_eq!(ge_si16(-32768, 10486), false); + } + #[test] + fn test_94() { + assert_eq!(ge_si16(-32768, 16514), false); + assert_eq!(ge_si16(-32768, 32766), false); + assert_eq!(ge_si16(-32768, 32767), false); + assert_eq!(ge_si16(-32767, -32547), false); + assert_eq!(ge_si16(-32767, 0), false); + assert_eq!(ge_si16(-32767, 1), false); + assert_eq!(ge_si16(-32767, 2), false); + assert_eq!(ge_si16(-32767, 3), false); + assert_eq!(ge_si16(-32767, 4), false); + assert_eq!(ge_si16(-32767, 10486), false); + } + #[test] + fn test_95() { + assert_eq!(ge_si16(-32767, 16514), false); + assert_eq!(ge_si16(-32767, 32766), false); + assert_eq!(ge_si16(-32767, 32767), false); + assert_eq!(ge_si16(-32547, 0), false); + assert_eq!(ge_si16(-32547, 1), false); + assert_eq!(ge_si16(-32547, 2), false); + assert_eq!(ge_si16(-32547, 3), false); + assert_eq!(ge_si16(-32547, 4), false); + assert_eq!(ge_si16(-32547, 10486), false); + assert_eq!(ge_si16(-32547, 16514), false); + } + #[test] + fn test_96() { + assert_eq!(ge_si16(-32547, 32766), false); + assert_eq!(ge_si16(-32547, 32767), false); + assert_eq!(ge_si16(0, 1), false); + assert_eq!(ge_si16(0, 2), false); + assert_eq!(ge_si16(0, 3), false); + assert_eq!(ge_si16(0, 4), false); + assert_eq!(ge_si16(0, 10486), false); + assert_eq!(ge_si16(0, 16514), false); + assert_eq!(ge_si16(0, 32766), false); + assert_eq!(ge_si16(0, 32767), false); + } + #[test] + fn test_97() { + assert_eq!(ge_si16(1, 2), false); + assert_eq!(ge_si16(1, 3), false); + assert_eq!(ge_si16(1, 4), false); + assert_eq!(ge_si16(1, 10486), false); + assert_eq!(ge_si16(1, 16514), false); + assert_eq!(ge_si16(1, 32766), false); + assert_eq!(ge_si16(1, 32767), false); + assert_eq!(ge_si16(2, 3), false); + assert_eq!(ge_si16(2, 4), false); + assert_eq!(ge_si16(2, 10486), false); + } + #[test] + fn test_98() { + assert_eq!(ge_si16(2, 16514), false); + assert_eq!(ge_si16(2, 32766), false); + assert_eq!(ge_si16(2, 32767), false); + assert_eq!(ge_si16(3, 4), false); + assert_eq!(ge_si16(3, 10486), false); + assert_eq!(ge_si16(3, 16514), false); + assert_eq!(ge_si16(3, 32766), false); + assert_eq!(ge_si16(3, 32767), false); + assert_eq!(ge_si16(4, 10486), false); + assert_eq!(ge_si16(4, 16514), false); + } + #[test] + fn test_99() { + assert_eq!(ge_si16(4, 32766), false); + assert_eq!(ge_si16(4, 32767), false); + assert_eq!(ge_si16(10486, 16514), false); + assert_eq!(ge_si16(10486, 32766), false); + assert_eq!(ge_si16(10486, 32767), false); + assert_eq!(ge_si16(16514, 32766), false); + assert_eq!(ge_si16(16514, 32767), false); + assert_eq!(ge_si16(32766, 32767), false); + assert_eq!(ge_si16(-32768, -32768), true); + assert_eq!(ge_si16(-32767, -32768), true); + } + #[test] + fn test_100() { + assert_eq!(ge_si16(-32767, -32767), true); + assert_eq!(ge_si16(-32547, -32768), true); + assert_eq!(ge_si16(-32547, -32767), true); + assert_eq!(ge_si16(-32547, -32547), true); + assert_eq!(ge_si16(0, -32768), true); + assert_eq!(ge_si16(0, -32767), true); + assert_eq!(ge_si16(0, -32547), true); + assert_eq!(ge_si16(0, 0), true); + assert_eq!(ge_si16(1, -32768), true); + assert_eq!(ge_si16(1, -32767), true); + } + #[test] + fn test_101() { + assert_eq!(ge_si16(1, -32547), true); + assert_eq!(ge_si16(1, 0), true); + assert_eq!(ge_si16(1, 1), true); + assert_eq!(ge_si16(2, -32768), true); + assert_eq!(ge_si16(2, -32767), true); + assert_eq!(ge_si16(2, -32547), true); + assert_eq!(ge_si16(2, 0), true); + assert_eq!(ge_si16(2, 1), true); + assert_eq!(ge_si16(2, 2), true); + assert_eq!(ge_si16(3, -32768), true); + } + #[test] + fn test_102() { + assert_eq!(ge_si16(3, -32767), true); + assert_eq!(ge_si16(3, -32547), true); + assert_eq!(ge_si16(3, 0), true); + assert_eq!(ge_si16(3, 1), true); + assert_eq!(ge_si16(3, 2), true); + assert_eq!(ge_si16(3, 3), true); + assert_eq!(ge_si16(4, -32768), true); + assert_eq!(ge_si16(4, -32767), true); + assert_eq!(ge_si16(4, -32547), true); + assert_eq!(ge_si16(4, 0), true); + } + #[test] + fn test_103() { + assert_eq!(ge_si16(4, 1), true); + assert_eq!(ge_si16(4, 2), true); + assert_eq!(ge_si16(4, 3), true); + assert_eq!(ge_si16(4, 4), true); + assert_eq!(ge_si16(10486, -32768), true); + assert_eq!(ge_si16(10486, -32767), true); + assert_eq!(ge_si16(10486, -32547), true); + assert_eq!(ge_si16(10486, 0), true); + assert_eq!(ge_si16(10486, 1), true); + assert_eq!(ge_si16(10486, 2), true); + } + #[test] + fn test_104() { + assert_eq!(ge_si16(10486, 3), true); + assert_eq!(ge_si16(10486, 4), true); + assert_eq!(ge_si16(10486, 10486), true); + assert_eq!(ge_si16(16514, -32768), true); + assert_eq!(ge_si16(16514, -32767), true); + assert_eq!(ge_si16(16514, -32547), true); + assert_eq!(ge_si16(16514, 0), true); + assert_eq!(ge_si16(16514, 1), true); + assert_eq!(ge_si16(16514, 2), true); + assert_eq!(ge_si16(16514, 3), true); + } + #[test] + fn test_105() { + assert_eq!(ge_si16(16514, 4), true); + assert_eq!(ge_si16(16514, 10486), true); + assert_eq!(ge_si16(16514, 16514), true); + assert_eq!(ge_si16(32766, -32768), true); + assert_eq!(ge_si16(32766, -32767), true); + assert_eq!(ge_si16(32766, -32547), true); + assert_eq!(ge_si16(32766, 0), true); + assert_eq!(ge_si16(32766, 1), true); + assert_eq!(ge_si16(32766, 2), true); + assert_eq!(ge_si16(32766, 3), true); + } + #[test] + fn test_106() { + assert_eq!(ge_si16(32766, 4), true); + assert_eq!(ge_si16(32766, 10486), true); + assert_eq!(ge_si16(32766, 16514), true); + assert_eq!(ge_si16(32766, 32766), true); + assert_eq!(ge_si16(32767, -32768), true); + assert_eq!(ge_si16(32767, -32767), true); + assert_eq!(ge_si16(32767, -32547), true); + assert_eq!(ge_si16(32767, 0), true); + assert_eq!(ge_si16(32767, 1), true); + assert_eq!(ge_si16(32767, 2), true); + } + #[test] + fn test_107() { + assert_eq!(ge_si16(32767, 3), true); + assert_eq!(ge_si16(32767, 4), true); + assert_eq!(ge_si16(32767, 10486), true); + assert_eq!(ge_si16(32767, 16514), true); + assert_eq!(ge_si16(32767, 32766), true); + assert_eq!(ge_si16(32767, 32767), true); + assert_eq!(ge_si32(-2147483648, -2147483647), false); + assert_eq!(ge_si32(-2147483648, -1713183800), false); + assert_eq!(ge_si32(-2147483648, -1252582164), false); + assert_eq!(ge_si32(-2147483648, -1035405763), false); + } + #[test] + fn test_108() { + assert_eq!(ge_si32(-2147483648, 0), false); + assert_eq!(ge_si32(-2147483648, 1), false); + assert_eq!(ge_si32(-2147483648, 2), false); + assert_eq!(ge_si32(-2147483648, 3), false); + assert_eq!(ge_si32(-2147483648, 4), false); + assert_eq!(ge_si32(-2147483648, 2147483646), false); + assert_eq!(ge_si32(-2147483648, 2147483647), false); + assert_eq!(ge_si32(-2147483647, -1713183800), false); + assert_eq!(ge_si32(-2147483647, -1252582164), false); + assert_eq!(ge_si32(-2147483647, -1035405763), false); + } + #[test] + fn test_109() { + assert_eq!(ge_si32(-2147483647, 0), false); + assert_eq!(ge_si32(-2147483647, 1), false); + assert_eq!(ge_si32(-2147483647, 2), false); + assert_eq!(ge_si32(-2147483647, 3), false); + assert_eq!(ge_si32(-2147483647, 4), false); + assert_eq!(ge_si32(-2147483647, 2147483646), false); + assert_eq!(ge_si32(-2147483647, 2147483647), false); + assert_eq!(ge_si32(-1713183800, -1252582164), false); + assert_eq!(ge_si32(-1713183800, -1035405763), false); + assert_eq!(ge_si32(-1713183800, 0), false); + } + #[test] + fn test_110() { + assert_eq!(ge_si32(-1713183800, 1), false); + assert_eq!(ge_si32(-1713183800, 2), false); + assert_eq!(ge_si32(-1713183800, 3), false); + assert_eq!(ge_si32(-1713183800, 4), false); + assert_eq!(ge_si32(-1713183800, 2147483646), false); + assert_eq!(ge_si32(-1713183800, 2147483647), false); + assert_eq!(ge_si32(-1252582164, -1035405763), false); + assert_eq!(ge_si32(-1252582164, 0), false); + assert_eq!(ge_si32(-1252582164, 1), false); + assert_eq!(ge_si32(-1252582164, 2), false); + } + #[test] + fn test_111() { + assert_eq!(ge_si32(-1252582164, 3), false); + assert_eq!(ge_si32(-1252582164, 4), false); + assert_eq!(ge_si32(-1252582164, 2147483646), false); + assert_eq!(ge_si32(-1252582164, 2147483647), false); + assert_eq!(ge_si32(-1035405763, 0), false); + assert_eq!(ge_si32(-1035405763, 1), false); + assert_eq!(ge_si32(-1035405763, 2), false); + assert_eq!(ge_si32(-1035405763, 3), false); + assert_eq!(ge_si32(-1035405763, 4), false); + assert_eq!(ge_si32(-1035405763, 2147483646), false); + } + #[test] + fn test_112() { + assert_eq!(ge_si32(-1035405763, 2147483647), false); + assert_eq!(ge_si32(0, 1), false); + assert_eq!(ge_si32(0, 2), false); + assert_eq!(ge_si32(0, 3), false); + assert_eq!(ge_si32(0, 4), false); + assert_eq!(ge_si32(0, 2147483646), false); + assert_eq!(ge_si32(0, 2147483647), false); + assert_eq!(ge_si32(1, 2), false); + assert_eq!(ge_si32(1, 3), false); + assert_eq!(ge_si32(1, 4), false); + } + #[test] + fn test_113() { + assert_eq!(ge_si32(1, 2147483646), false); + assert_eq!(ge_si32(1, 2147483647), false); + assert_eq!(ge_si32(2, 3), false); + assert_eq!(ge_si32(2, 4), false); + assert_eq!(ge_si32(2, 2147483646), false); + assert_eq!(ge_si32(2, 2147483647), false); + assert_eq!(ge_si32(3, 4), false); + assert_eq!(ge_si32(3, 2147483646), false); + assert_eq!(ge_si32(3, 2147483647), false); + assert_eq!(ge_si32(4, 2147483646), false); + } + #[test] + fn test_114() { + assert_eq!(ge_si32(4, 2147483647), false); + assert_eq!(ge_si32(2147483646, 2147483647), false); + assert_eq!(ge_si32(-2147483648, -2147483648), true); + assert_eq!(ge_si32(-2147483647, -2147483648), true); + assert_eq!(ge_si32(-2147483647, -2147483647), true); + assert_eq!(ge_si32(-1713183800, -2147483648), true); + assert_eq!(ge_si32(-1713183800, -2147483647), true); + assert_eq!(ge_si32(-1713183800, -1713183800), true); + assert_eq!(ge_si32(-1252582164, -2147483648), true); + assert_eq!(ge_si32(-1252582164, -2147483647), true); + } + #[test] + fn test_115() { + assert_eq!(ge_si32(-1252582164, -1713183800), true); + assert_eq!(ge_si32(-1252582164, -1252582164), true); + assert_eq!(ge_si32(-1035405763, -2147483648), true); + assert_eq!(ge_si32(-1035405763, -2147483647), true); + assert_eq!(ge_si32(-1035405763, -1713183800), true); + assert_eq!(ge_si32(-1035405763, -1252582164), true); + assert_eq!(ge_si32(-1035405763, -1035405763), true); + assert_eq!(ge_si32(0, -2147483648), true); + assert_eq!(ge_si32(0, -2147483647), true); + assert_eq!(ge_si32(0, -1713183800), true); + } + #[test] + fn test_116() { + assert_eq!(ge_si32(0, -1252582164), true); + assert_eq!(ge_si32(0, -1035405763), true); + assert_eq!(ge_si32(0, 0), true); + assert_eq!(ge_si32(1, -2147483648), true); + assert_eq!(ge_si32(1, -2147483647), true); + assert_eq!(ge_si32(1, -1713183800), true); + assert_eq!(ge_si32(1, -1252582164), true); + assert_eq!(ge_si32(1, -1035405763), true); + assert_eq!(ge_si32(1, 0), true); + assert_eq!(ge_si32(1, 1), true); + } + #[test] + fn test_117() { + assert_eq!(ge_si32(2, -2147483648), true); + assert_eq!(ge_si32(2, -2147483647), true); + assert_eq!(ge_si32(2, -1713183800), true); + assert_eq!(ge_si32(2, -1252582164), true); + assert_eq!(ge_si32(2, -1035405763), true); + assert_eq!(ge_si32(2, 0), true); + assert_eq!(ge_si32(2, 1), true); + assert_eq!(ge_si32(2, 2), true); + assert_eq!(ge_si32(3, -2147483648), true); + assert_eq!(ge_si32(3, -2147483647), true); + } + #[test] + fn test_118() { + assert_eq!(ge_si32(3, -1713183800), true); + assert_eq!(ge_si32(3, -1252582164), true); + assert_eq!(ge_si32(3, -1035405763), true); + assert_eq!(ge_si32(3, 0), true); + assert_eq!(ge_si32(3, 1), true); + assert_eq!(ge_si32(3, 2), true); + assert_eq!(ge_si32(3, 3), true); + assert_eq!(ge_si32(4, -2147483648), true); + assert_eq!(ge_si32(4, -2147483647), true); + assert_eq!(ge_si32(4, -1713183800), true); + } + #[test] + fn test_119() { + assert_eq!(ge_si32(4, -1252582164), true); + assert_eq!(ge_si32(4, -1035405763), true); + assert_eq!(ge_si32(4, 0), true); + assert_eq!(ge_si32(4, 1), true); + assert_eq!(ge_si32(4, 2), true); + assert_eq!(ge_si32(4, 3), true); + assert_eq!(ge_si32(4, 4), true); + assert_eq!(ge_si32(2147483646, -2147483648), true); + assert_eq!(ge_si32(2147483646, -2147483647), true); + assert_eq!(ge_si32(2147483646, -1713183800), true); + } + #[test] + fn test_120() { + assert_eq!(ge_si32(2147483646, -1252582164), true); + assert_eq!(ge_si32(2147483646, -1035405763), true); + assert_eq!(ge_si32(2147483646, 0), true); + assert_eq!(ge_si32(2147483646, 1), true); + assert_eq!(ge_si32(2147483646, 2), true); + assert_eq!(ge_si32(2147483646, 3), true); + assert_eq!(ge_si32(2147483646, 4), true); + assert_eq!(ge_si32(2147483646, 2147483646), true); + assert_eq!(ge_si32(2147483647, -2147483648), true); + assert_eq!(ge_si32(2147483647, -2147483647), true); + } + #[test] + fn test_121() { + assert_eq!(ge_si32(2147483647, -1713183800), true); + assert_eq!(ge_si32(2147483647, -1252582164), true); + assert_eq!(ge_si32(2147483647, -1035405763), true); + assert_eq!(ge_si32(2147483647, 0), true); + assert_eq!(ge_si32(2147483647, 1), true); + assert_eq!(ge_si32(2147483647, 2), true); + assert_eq!(ge_si32(2147483647, 3), true); + assert_eq!(ge_si32(2147483647, 4), true); + assert_eq!(ge_si32(2147483647, 2147483646), true); + assert_eq!(ge_si32(2147483647, 2147483647), true); + } + #[test] + fn test_122() { + assert_eq!(ge_si64(-9223372036854775808, -9223372036854775807), false); + assert_eq!(ge_si64(-9223372036854775808, -1741927215160008704), false); + assert_eq!(ge_si64(-9223372036854775808, -1328271339354574848), false); + assert_eq!(ge_si64(-9223372036854775808, 0), false); + assert_eq!(ge_si64(-9223372036854775808, 1), false); + assert_eq!(ge_si64(-9223372036854775808, 2), false); + assert_eq!(ge_si64(-9223372036854775808, 3), false); + assert_eq!(ge_si64(-9223372036854775808, 4), false); + assert_eq!(ge_si64(-9223372036854775808, 5577148965131116544), false); + assert_eq!(ge_si64(-9223372036854775808, 9223372036854775806), false); + } + #[test] + fn test_123() { + assert_eq!(ge_si64(-9223372036854775808, 9223372036854775807), false); + assert_eq!(ge_si64(-9223372036854775807, -1741927215160008704), false); + assert_eq!(ge_si64(-9223372036854775807, -1328271339354574848), false); + assert_eq!(ge_si64(-9223372036854775807, 0), false); + assert_eq!(ge_si64(-9223372036854775807, 1), false); + assert_eq!(ge_si64(-9223372036854775807, 2), false); + assert_eq!(ge_si64(-9223372036854775807, 3), false); + assert_eq!(ge_si64(-9223372036854775807, 4), false); + assert_eq!(ge_si64(-9223372036854775807, 5577148965131116544), false); + assert_eq!(ge_si64(-9223372036854775807, 9223372036854775806), false); + } + #[test] + fn test_124() { + assert_eq!(ge_si64(-9223372036854775807, 9223372036854775807), false); + assert_eq!(ge_si64(-1741927215160008704, -1328271339354574848), false); + assert_eq!(ge_si64(-1741927215160008704, 0), false); + assert_eq!(ge_si64(-1741927215160008704, 1), false); + assert_eq!(ge_si64(-1741927215160008704, 2), false); + assert_eq!(ge_si64(-1741927215160008704, 3), false); + assert_eq!(ge_si64(-1741927215160008704, 4), false); + assert_eq!(ge_si64(-1741927215160008704, 5577148965131116544), false); + assert_eq!(ge_si64(-1741927215160008704, 9223372036854775806), false); + assert_eq!(ge_si64(-1741927215160008704, 9223372036854775807), false); + } + #[test] + fn test_125() { + assert_eq!(ge_si64(-1328271339354574848, 0), false); + assert_eq!(ge_si64(-1328271339354574848, 1), false); + assert_eq!(ge_si64(-1328271339354574848, 2), false); + assert_eq!(ge_si64(-1328271339354574848, 3), false); + assert_eq!(ge_si64(-1328271339354574848, 4), false); + assert_eq!(ge_si64(-1328271339354574848, 5577148965131116544), false); + assert_eq!(ge_si64(-1328271339354574848, 9223372036854775806), false); + assert_eq!(ge_si64(-1328271339354574848, 9223372036854775807), false); + assert_eq!(ge_si64(0, 1), false); + assert_eq!(ge_si64(0, 2), false); + } + #[test] + fn test_126() { + assert_eq!(ge_si64(0, 3), false); + assert_eq!(ge_si64(0, 4), false); + assert_eq!(ge_si64(0, 5577148965131116544), false); + assert_eq!(ge_si64(0, 9223372036854775806), false); + assert_eq!(ge_si64(0, 9223372036854775807), false); + assert_eq!(ge_si64(1, 2), false); + assert_eq!(ge_si64(1, 3), false); + assert_eq!(ge_si64(1, 4), false); + assert_eq!(ge_si64(1, 5577148965131116544), false); + assert_eq!(ge_si64(1, 9223372036854775806), false); + } + #[test] + fn test_127() { + assert_eq!(ge_si64(1, 9223372036854775807), false); + assert_eq!(ge_si64(2, 3), false); + assert_eq!(ge_si64(2, 4), false); + assert_eq!(ge_si64(2, 5577148965131116544), false); + assert_eq!(ge_si64(2, 9223372036854775806), false); + assert_eq!(ge_si64(2, 9223372036854775807), false); + assert_eq!(ge_si64(3, 4), false); + assert_eq!(ge_si64(3, 5577148965131116544), false); + assert_eq!(ge_si64(3, 9223372036854775806), false); + assert_eq!(ge_si64(3, 9223372036854775807), false); + } + #[test] + fn test_128() { + assert_eq!(ge_si64(4, 5577148965131116544), false); + assert_eq!(ge_si64(4, 9223372036854775806), false); + assert_eq!(ge_si64(4, 9223372036854775807), false); + assert_eq!(ge_si64(5577148965131116544, 9223372036854775806), false); + assert_eq!(ge_si64(5577148965131116544, 9223372036854775807), false); + assert_eq!(ge_si64(9223372036854775806, 9223372036854775807), false); + assert_eq!(ge_si64(-9223372036854775808, -9223372036854775808), true); + assert_eq!(ge_si64(-9223372036854775807, -9223372036854775808), true); + assert_eq!(ge_si64(-9223372036854775807, -9223372036854775807), true); + assert_eq!(ge_si64(-1741927215160008704, -9223372036854775808), true); + } + #[test] + fn test_129() { + assert_eq!(ge_si64(-1741927215160008704, -9223372036854775807), true); + assert_eq!(ge_si64(-1741927215160008704, -1741927215160008704), true); + assert_eq!(ge_si64(-1328271339354574848, -9223372036854775808), true); + assert_eq!(ge_si64(-1328271339354574848, -9223372036854775807), true); + assert_eq!(ge_si64(-1328271339354574848, -1741927215160008704), true); + assert_eq!(ge_si64(-1328271339354574848, -1328271339354574848), true); + assert_eq!(ge_si64(0, -9223372036854775808), true); + assert_eq!(ge_si64(0, -9223372036854775807), true); + assert_eq!(ge_si64(0, -1741927215160008704), true); + assert_eq!(ge_si64(0, -1328271339354574848), true); + } + #[test] + fn test_130() { + assert_eq!(ge_si64(0, 0), true); + assert_eq!(ge_si64(1, -9223372036854775808), true); + assert_eq!(ge_si64(1, -9223372036854775807), true); + assert_eq!(ge_si64(1, -1741927215160008704), true); + assert_eq!(ge_si64(1, -1328271339354574848), true); + assert_eq!(ge_si64(1, 0), true); + assert_eq!(ge_si64(1, 1), true); + assert_eq!(ge_si64(2, -9223372036854775808), true); + assert_eq!(ge_si64(2, -9223372036854775807), true); + assert_eq!(ge_si64(2, -1741927215160008704), true); + } + #[test] + fn test_131() { + assert_eq!(ge_si64(2, -1328271339354574848), true); + assert_eq!(ge_si64(2, 0), true); + assert_eq!(ge_si64(2, 1), true); + assert_eq!(ge_si64(2, 2), true); + assert_eq!(ge_si64(3, -9223372036854775808), true); + assert_eq!(ge_si64(3, -9223372036854775807), true); + assert_eq!(ge_si64(3, -1741927215160008704), true); + assert_eq!(ge_si64(3, -1328271339354574848), true); + assert_eq!(ge_si64(3, 0), true); + assert_eq!(ge_si64(3, 1), true); + } + #[test] + fn test_132() { + assert_eq!(ge_si64(3, 2), true); + assert_eq!(ge_si64(3, 3), true); + assert_eq!(ge_si64(4, -9223372036854775808), true); + assert_eq!(ge_si64(4, -9223372036854775807), true); + assert_eq!(ge_si64(4, -1741927215160008704), true); + assert_eq!(ge_si64(4, -1328271339354574848), true); + assert_eq!(ge_si64(4, 0), true); + assert_eq!(ge_si64(4, 1), true); + assert_eq!(ge_si64(4, 2), true); + assert_eq!(ge_si64(4, 3), true); + } + #[test] + fn test_133() { + assert_eq!(ge_si64(4, 4), true); + assert_eq!(ge_si64(5577148965131116544, -9223372036854775808), true); + assert_eq!(ge_si64(5577148965131116544, -9223372036854775807), true); + assert_eq!(ge_si64(5577148965131116544, -1741927215160008704), true); + assert_eq!(ge_si64(5577148965131116544, -1328271339354574848), true); + assert_eq!(ge_si64(5577148965131116544, 0), true); + assert_eq!(ge_si64(5577148965131116544, 1), true); + assert_eq!(ge_si64(5577148965131116544, 2), true); + assert_eq!(ge_si64(5577148965131116544, 3), true); + assert_eq!(ge_si64(5577148965131116544, 4), true); + } + #[test] + fn test_134() { + assert_eq!(ge_si64(5577148965131116544, 5577148965131116544), true); + assert_eq!(ge_si64(9223372036854775806, -9223372036854775808), true); + assert_eq!(ge_si64(9223372036854775806, -9223372036854775807), true); + assert_eq!(ge_si64(9223372036854775806, -1741927215160008704), true); + assert_eq!(ge_si64(9223372036854775806, -1328271339354574848), true); + assert_eq!(ge_si64(9223372036854775806, 0), true); + assert_eq!(ge_si64(9223372036854775806, 1), true); + assert_eq!(ge_si64(9223372036854775806, 2), true); + assert_eq!(ge_si64(9223372036854775806, 3), true); + assert_eq!(ge_si64(9223372036854775806, 4), true); + } + #[test] + fn test_135() { + assert_eq!(ge_si64(9223372036854775806, 5577148965131116544), true); + assert_eq!(ge_si64(9223372036854775806, 9223372036854775806), true); + assert_eq!(ge_si64(9223372036854775807, -9223372036854775808), true); + assert_eq!(ge_si64(9223372036854775807, -9223372036854775807), true); + assert_eq!(ge_si64(9223372036854775807, -1741927215160008704), true); + assert_eq!(ge_si64(9223372036854775807, -1328271339354574848), true); + assert_eq!(ge_si64(9223372036854775807, 0), true); + assert_eq!(ge_si64(9223372036854775807, 1), true); + assert_eq!(ge_si64(9223372036854775807, 2), true); + assert_eq!(ge_si64(9223372036854775807, 3), true); + } + #[test] + fn test_136() { + assert_eq!(ge_si64(9223372036854775807, 4), true); + assert_eq!(ge_si64(9223372036854775807, 5577148965131116544), true); + assert_eq!(ge_si64(9223372036854775807, 9223372036854775806), true); + assert_eq!(ge_si64(9223372036854775807, 9223372036854775807), true); + assert_eq!(ge_si8(-128, -127), false); + assert_eq!(ge_si8(-128, 0), false); + assert_eq!(ge_si8(-128, 1), false); + assert_eq!(ge_si8(-128, 2), false); + assert_eq!(ge_si8(-128, 3), false); + assert_eq!(ge_si8(-128, 4), false); + } + #[test] + fn test_137() { + assert_eq!(ge_si8(-128, 16), false); + assert_eq!(ge_si8(-128, 126), false); + assert_eq!(ge_si8(-128, 127), false); + assert_eq!(ge_si8(-127, 0), false); + assert_eq!(ge_si8(-127, 1), false); + assert_eq!(ge_si8(-127, 2), false); + assert_eq!(ge_si8(-127, 3), false); + assert_eq!(ge_si8(-127, 4), false); + assert_eq!(ge_si8(-127, 16), false); + assert_eq!(ge_si8(-127, 126), false); + } + #[test] + fn test_138() { + assert_eq!(ge_si8(-127, 127), false); + assert_eq!(ge_si8(0, 1), false); + assert_eq!(ge_si8(0, 2), false); + assert_eq!(ge_si8(0, 3), false); + assert_eq!(ge_si8(0, 4), false); + assert_eq!(ge_si8(0, 16), false); + assert_eq!(ge_si8(0, 126), false); + assert_eq!(ge_si8(0, 127), false); + assert_eq!(ge_si8(1, 2), false); + assert_eq!(ge_si8(1, 3), false); + } + #[test] + fn test_139() { + assert_eq!(ge_si8(1, 4), false); + assert_eq!(ge_si8(1, 16), false); + assert_eq!(ge_si8(1, 126), false); + assert_eq!(ge_si8(1, 127), false); + assert_eq!(ge_si8(2, 3), false); + assert_eq!(ge_si8(2, 4), false); + assert_eq!(ge_si8(2, 16), false); + assert_eq!(ge_si8(2, 126), false); + assert_eq!(ge_si8(2, 127), false); + assert_eq!(ge_si8(3, 4), false); + } + #[test] + fn test_140() { + assert_eq!(ge_si8(3, 16), false); + assert_eq!(ge_si8(3, 126), false); + assert_eq!(ge_si8(3, 127), false); + assert_eq!(ge_si8(4, 16), false); + assert_eq!(ge_si8(4, 126), false); + assert_eq!(ge_si8(4, 127), false); + assert_eq!(ge_si8(16, 126), false); + assert_eq!(ge_si8(16, 127), false); + assert_eq!(ge_si8(126, 127), false); + assert_eq!(ge_si8(-128, -128), true); + } + #[test] + fn test_141() { + assert_eq!(ge_si8(-127, -128), true); + assert_eq!(ge_si8(-127, -127), true); + assert_eq!(ge_si8(0, -128), true); + assert_eq!(ge_si8(0, -127), true); + assert_eq!(ge_si8(0, 0), true); + assert_eq!(ge_si8(1, -128), true); + assert_eq!(ge_si8(1, -127), true); + assert_eq!(ge_si8(1, 0), true); + assert_eq!(ge_si8(1, 1), true); + assert_eq!(ge_si8(2, -128), true); + } + #[test] + fn test_142() { + assert_eq!(ge_si8(2, -127), true); + assert_eq!(ge_si8(2, 0), true); + assert_eq!(ge_si8(2, 1), true); + assert_eq!(ge_si8(2, 2), true); + assert_eq!(ge_si8(3, -128), true); + assert_eq!(ge_si8(3, -127), true); + assert_eq!(ge_si8(3, 0), true); + assert_eq!(ge_si8(3, 1), true); + assert_eq!(ge_si8(3, 2), true); + assert_eq!(ge_si8(3, 3), true); + } + #[test] + fn test_143() { + assert_eq!(ge_si8(4, -128), true); + assert_eq!(ge_si8(4, -127), true); + assert_eq!(ge_si8(4, 0), true); + assert_eq!(ge_si8(4, 1), true); + assert_eq!(ge_si8(4, 2), true); + assert_eq!(ge_si8(4, 3), true); + assert_eq!(ge_si8(4, 4), true); + assert_eq!(ge_si8(16, -128), true); + assert_eq!(ge_si8(16, -127), true); + assert_eq!(ge_si8(16, 0), true); + } + #[test] + fn test_144() { + assert_eq!(ge_si8(16, 1), true); + assert_eq!(ge_si8(16, 2), true); + assert_eq!(ge_si8(16, 3), true); + assert_eq!(ge_si8(16, 4), true); + assert_eq!(ge_si8(16, 16), true); + assert_eq!(ge_si8(126, -128), true); + assert_eq!(ge_si8(126, -127), true); + assert_eq!(ge_si8(126, 0), true); + assert_eq!(ge_si8(126, 1), true); + assert_eq!(ge_si8(126, 2), true); + } + #[test] + fn test_145() { + assert_eq!(ge_si8(126, 3), true); + assert_eq!(ge_si8(126, 4), true); + assert_eq!(ge_si8(126, 16), true); + assert_eq!(ge_si8(126, 126), true); + assert_eq!(ge_si8(127, -128), true); + assert_eq!(ge_si8(127, -127), true); + assert_eq!(ge_si8(127, 0), true); + assert_eq!(ge_si8(127, 1), true); + assert_eq!(ge_si8(127, 2), true); + assert_eq!(ge_si8(127, 3), true); + } + #[test] + fn test_146() { + assert_eq!(ge_si8(127, 4), true); + assert_eq!(ge_si8(127, 16), true); + assert_eq!(ge_si8(127, 126), true); + assert_eq!(ge_si8(127, 127), true); + assert_eq!(ge_ui16(0, 1), false); + assert_eq!(ge_ui16(0, 2), false); + assert_eq!(ge_ui16(0, 3), false); + assert_eq!(ge_ui16(0, 4), false); + assert_eq!(ge_ui16(0, 1717), false); + assert_eq!(ge_ui16(0, 17988), false); + } + #[test] + fn test_147() { + assert_eq!(ge_ui16(0, 65096), false); + assert_eq!(ge_ui16(0, 65534), false); + assert_eq!(ge_ui16(0, 65535), false); + assert_eq!(ge_ui16(1, 2), false); + assert_eq!(ge_ui16(1, 3), false); + assert_eq!(ge_ui16(1, 4), false); + assert_eq!(ge_ui16(1, 1717), false); + assert_eq!(ge_ui16(1, 17988), false); + assert_eq!(ge_ui16(1, 65096), false); + assert_eq!(ge_ui16(1, 65534), false); + } + #[test] + fn test_148() { + assert_eq!(ge_ui16(1, 65535), false); + assert_eq!(ge_ui16(2, 3), false); + assert_eq!(ge_ui16(2, 4), false); + assert_eq!(ge_ui16(2, 1717), false); + assert_eq!(ge_ui16(2, 17988), false); + assert_eq!(ge_ui16(2, 65096), false); + assert_eq!(ge_ui16(2, 65534), false); + assert_eq!(ge_ui16(2, 65535), false); + assert_eq!(ge_ui16(3, 4), false); + assert_eq!(ge_ui16(3, 1717), false); + } + #[test] + fn test_149() { + assert_eq!(ge_ui16(3, 17988), false); + assert_eq!(ge_ui16(3, 65096), false); + assert_eq!(ge_ui16(3, 65534), false); + assert_eq!(ge_ui16(3, 65535), false); + assert_eq!(ge_ui16(4, 1717), false); + assert_eq!(ge_ui16(4, 17988), false); + assert_eq!(ge_ui16(4, 65096), false); + assert_eq!(ge_ui16(4, 65534), false); + assert_eq!(ge_ui16(4, 65535), false); + assert_eq!(ge_ui16(1717, 17988), false); + } + #[test] + fn test_150() { + assert_eq!(ge_ui16(1717, 65096), false); + assert_eq!(ge_ui16(1717, 65534), false); + assert_eq!(ge_ui16(1717, 65535), false); + assert_eq!(ge_ui16(17988, 65096), false); + assert_eq!(ge_ui16(17988, 65534), false); + assert_eq!(ge_ui16(17988, 65535), false); + assert_eq!(ge_ui16(65096, 65534), false); + assert_eq!(ge_ui16(65096, 65535), false); + assert_eq!(ge_ui16(65534, 65535), false); + assert_eq!(ge_ui16(0, 0), true); + } + #[test] + fn test_151() { + assert_eq!(ge_ui16(1, 0), true); + assert_eq!(ge_ui16(1, 1), true); + assert_eq!(ge_ui16(2, 0), true); + assert_eq!(ge_ui16(2, 1), true); + assert_eq!(ge_ui16(2, 2), true); + assert_eq!(ge_ui16(3, 0), true); + assert_eq!(ge_ui16(3, 1), true); + assert_eq!(ge_ui16(3, 2), true); + assert_eq!(ge_ui16(3, 3), true); + assert_eq!(ge_ui16(4, 0), true); + } + #[test] + fn test_152() { + assert_eq!(ge_ui16(4, 1), true); + assert_eq!(ge_ui16(4, 2), true); + assert_eq!(ge_ui16(4, 3), true); + assert_eq!(ge_ui16(4, 4), true); + assert_eq!(ge_ui16(1717, 0), true); + assert_eq!(ge_ui16(1717, 1), true); + assert_eq!(ge_ui16(1717, 2), true); + assert_eq!(ge_ui16(1717, 3), true); + assert_eq!(ge_ui16(1717, 4), true); + assert_eq!(ge_ui16(1717, 1717), true); + } + #[test] + fn test_153() { + assert_eq!(ge_ui16(17988, 0), true); + assert_eq!(ge_ui16(17988, 1), true); + assert_eq!(ge_ui16(17988, 2), true); + assert_eq!(ge_ui16(17988, 3), true); + assert_eq!(ge_ui16(17988, 4), true); + assert_eq!(ge_ui16(17988, 1717), true); + assert_eq!(ge_ui16(17988, 17988), true); + assert_eq!(ge_ui16(65096, 0), true); + assert_eq!(ge_ui16(65096, 1), true); + assert_eq!(ge_ui16(65096, 2), true); + } + #[test] + fn test_154() { + assert_eq!(ge_ui16(65096, 3), true); + assert_eq!(ge_ui16(65096, 4), true); + assert_eq!(ge_ui16(65096, 1717), true); + assert_eq!(ge_ui16(65096, 17988), true); + assert_eq!(ge_ui16(65096, 65096), true); + assert_eq!(ge_ui16(65534, 0), true); + assert_eq!(ge_ui16(65534, 1), true); + assert_eq!(ge_ui16(65534, 2), true); + assert_eq!(ge_ui16(65534, 3), true); + assert_eq!(ge_ui16(65534, 4), true); + } + #[test] + fn test_155() { + assert_eq!(ge_ui16(65534, 1717), true); + assert_eq!(ge_ui16(65534, 17988), true); + assert_eq!(ge_ui16(65534, 65096), true); + assert_eq!(ge_ui16(65534, 65534), true); + assert_eq!(ge_ui16(65535, 0), true); + assert_eq!(ge_ui16(65535, 1), true); + assert_eq!(ge_ui16(65535, 2), true); + assert_eq!(ge_ui16(65535, 3), true); + assert_eq!(ge_ui16(65535, 4), true); + assert_eq!(ge_ui16(65535, 1717), true); + } + #[test] + fn test_156() { + assert_eq!(ge_ui16(65535, 17988), true); + assert_eq!(ge_ui16(65535, 65096), true); + assert_eq!(ge_ui16(65535, 65534), true); + assert_eq!(ge_ui16(65535, 65535), true); + assert_eq!(ge_ui32(0, 1), false); + assert_eq!(ge_ui32(0, 2), false); + assert_eq!(ge_ui32(0, 3), false); + assert_eq!(ge_ui32(0, 4), false); + assert_eq!(ge_ui32(0, 2119154652), false); + assert_eq!(ge_ui32(0, 3002788344), false); + } + #[test] + fn test_157() { + assert_eq!(ge_ui32(0, 3482297128), false); + assert_eq!(ge_ui32(0, 4294967294), false); + assert_eq!(ge_ui32(0, 4294967295), false); + assert_eq!(ge_ui32(1, 2), false); + assert_eq!(ge_ui32(1, 3), false); + assert_eq!(ge_ui32(1, 4), false); + assert_eq!(ge_ui32(1, 2119154652), false); + assert_eq!(ge_ui32(1, 3002788344), false); + assert_eq!(ge_ui32(1, 3482297128), false); + assert_eq!(ge_ui32(1, 4294967294), false); + } + #[test] + fn test_158() { + assert_eq!(ge_ui32(1, 4294967295), false); + assert_eq!(ge_ui32(2, 3), false); + assert_eq!(ge_ui32(2, 4), false); + assert_eq!(ge_ui32(2, 2119154652), false); + assert_eq!(ge_ui32(2, 3002788344), false); + assert_eq!(ge_ui32(2, 3482297128), false); + assert_eq!(ge_ui32(2, 4294967294), false); + assert_eq!(ge_ui32(2, 4294967295), false); + assert_eq!(ge_ui32(3, 4), false); + assert_eq!(ge_ui32(3, 2119154652), false); + } + #[test] + fn test_159() { + assert_eq!(ge_ui32(3, 3002788344), false); + assert_eq!(ge_ui32(3, 3482297128), false); + assert_eq!(ge_ui32(3, 4294967294), false); + assert_eq!(ge_ui32(3, 4294967295), false); + assert_eq!(ge_ui32(4, 2119154652), false); + assert_eq!(ge_ui32(4, 3002788344), false); + assert_eq!(ge_ui32(4, 3482297128), false); + assert_eq!(ge_ui32(4, 4294967294), false); + assert_eq!(ge_ui32(4, 4294967295), false); + assert_eq!(ge_ui32(2119154652, 3002788344), false); + } + #[test] + fn test_160() { + assert_eq!(ge_ui32(2119154652, 3482297128), false); + assert_eq!(ge_ui32(2119154652, 4294967294), false); + assert_eq!(ge_ui32(2119154652, 4294967295), false); + assert_eq!(ge_ui32(3002788344, 3482297128), false); + assert_eq!(ge_ui32(3002788344, 4294967294), false); + assert_eq!(ge_ui32(3002788344, 4294967295), false); + assert_eq!(ge_ui32(3482297128, 4294967294), false); + assert_eq!(ge_ui32(3482297128, 4294967295), false); + assert_eq!(ge_ui32(4294967294, 4294967295), false); + assert_eq!(ge_ui32(0, 0), true); + } + #[test] + fn test_161() { + assert_eq!(ge_ui32(1, 0), true); + assert_eq!(ge_ui32(1, 1), true); + assert_eq!(ge_ui32(2, 0), true); + assert_eq!(ge_ui32(2, 1), true); + assert_eq!(ge_ui32(2, 2), true); + assert_eq!(ge_ui32(3, 0), true); + assert_eq!(ge_ui32(3, 1), true); + assert_eq!(ge_ui32(3, 2), true); + assert_eq!(ge_ui32(3, 3), true); + assert_eq!(ge_ui32(4, 0), true); + } + #[test] + fn test_162() { + assert_eq!(ge_ui32(4, 1), true); + assert_eq!(ge_ui32(4, 2), true); + assert_eq!(ge_ui32(4, 3), true); + assert_eq!(ge_ui32(4, 4), true); + assert_eq!(ge_ui32(2119154652, 0), true); + assert_eq!(ge_ui32(2119154652, 1), true); + assert_eq!(ge_ui32(2119154652, 2), true); + assert_eq!(ge_ui32(2119154652, 3), true); + assert_eq!(ge_ui32(2119154652, 4), true); + assert_eq!(ge_ui32(2119154652, 2119154652), true); + } + #[test] + fn test_163() { + assert_eq!(ge_ui32(3002788344, 0), true); + assert_eq!(ge_ui32(3002788344, 1), true); + assert_eq!(ge_ui32(3002788344, 2), true); + assert_eq!(ge_ui32(3002788344, 3), true); + assert_eq!(ge_ui32(3002788344, 4), true); + assert_eq!(ge_ui32(3002788344, 2119154652), true); + assert_eq!(ge_ui32(3002788344, 3002788344), true); + assert_eq!(ge_ui32(3482297128, 0), true); + assert_eq!(ge_ui32(3482297128, 1), true); + assert_eq!(ge_ui32(3482297128, 2), true); + } + #[test] + fn test_164() { + assert_eq!(ge_ui32(3482297128, 3), true); + assert_eq!(ge_ui32(3482297128, 4), true); + assert_eq!(ge_ui32(3482297128, 2119154652), true); + assert_eq!(ge_ui32(3482297128, 3002788344), true); + assert_eq!(ge_ui32(3482297128, 3482297128), true); + assert_eq!(ge_ui32(4294967294, 0), true); + assert_eq!(ge_ui32(4294967294, 1), true); + assert_eq!(ge_ui32(4294967294, 2), true); + assert_eq!(ge_ui32(4294967294, 3), true); + assert_eq!(ge_ui32(4294967294, 4), true); + } + #[test] + fn test_165() { + assert_eq!(ge_ui32(4294967294, 2119154652), true); + assert_eq!(ge_ui32(4294967294, 3002788344), true); + assert_eq!(ge_ui32(4294967294, 3482297128), true); + assert_eq!(ge_ui32(4294967294, 4294967294), true); + assert_eq!(ge_ui32(4294967295, 0), true); + assert_eq!(ge_ui32(4294967295, 1), true); + assert_eq!(ge_ui32(4294967295, 2), true); + assert_eq!(ge_ui32(4294967295, 3), true); + assert_eq!(ge_ui32(4294967295, 4), true); + assert_eq!(ge_ui32(4294967295, 2119154652), true); + } + #[test] + fn test_166() { + assert_eq!(ge_ui32(4294967295, 3002788344), true); + assert_eq!(ge_ui32(4294967295, 3482297128), true); + assert_eq!(ge_ui32(4294967295, 4294967294), true); + assert_eq!(ge_ui32(4294967295, 4294967295), true); + assert_eq!(ge_ui64(0, 1), false); + assert_eq!(ge_ui64(0, 2), false); + assert_eq!(ge_ui64(0, 3), false); + assert_eq!(ge_ui64(0, 4), false); + assert_eq!(ge_ui64(0, 191084152064409600), false); + assert_eq!(ge_ui64(0, 11015955194427482112), false); + } + #[test] + fn test_167() { + assert_eq!(ge_ui64(0, 16990600415051759616), false); + assert_eq!(ge_ui64(0, 18446744073709551614), false); + assert_eq!(ge_ui64(0, 18446744073709551615), false); + assert_eq!(ge_ui64(1, 2), false); + assert_eq!(ge_ui64(1, 3), false); + assert_eq!(ge_ui64(1, 4), false); + assert_eq!(ge_ui64(1, 191084152064409600), false); + assert_eq!(ge_ui64(1, 11015955194427482112), false); + assert_eq!(ge_ui64(1, 16990600415051759616), false); + assert_eq!(ge_ui64(1, 18446744073709551614), false); + } + #[test] + fn test_168() { + assert_eq!(ge_ui64(1, 18446744073709551615), false); + assert_eq!(ge_ui64(2, 3), false); + assert_eq!(ge_ui64(2, 4), false); + assert_eq!(ge_ui64(2, 191084152064409600), false); + assert_eq!(ge_ui64(2, 11015955194427482112), false); + assert_eq!(ge_ui64(2, 16990600415051759616), false); + assert_eq!(ge_ui64(2, 18446744073709551614), false); + assert_eq!(ge_ui64(2, 18446744073709551615), false); + assert_eq!(ge_ui64(3, 4), false); + assert_eq!(ge_ui64(3, 191084152064409600), false); + } + #[test] + fn test_169() { + assert_eq!(ge_ui64(3, 11015955194427482112), false); + assert_eq!(ge_ui64(3, 16990600415051759616), false); + assert_eq!(ge_ui64(3, 18446744073709551614), false); + assert_eq!(ge_ui64(3, 18446744073709551615), false); + assert_eq!(ge_ui64(4, 191084152064409600), false); + assert_eq!(ge_ui64(4, 11015955194427482112), false); + assert_eq!(ge_ui64(4, 16990600415051759616), false); + assert_eq!(ge_ui64(4, 18446744073709551614), false); + assert_eq!(ge_ui64(4, 18446744073709551615), false); + assert_eq!(ge_ui64(191084152064409600, 11015955194427482112), false); + } + #[test] + fn test_170() { + assert_eq!(ge_ui64(191084152064409600, 16990600415051759616), false); + assert_eq!(ge_ui64(191084152064409600, 18446744073709551614), false); + assert_eq!(ge_ui64(191084152064409600, 18446744073709551615), false); + assert_eq!(ge_ui64(11015955194427482112, 16990600415051759616), false); + assert_eq!(ge_ui64(11015955194427482112, 18446744073709551614), false); + assert_eq!(ge_ui64(11015955194427482112, 18446744073709551615), false); + assert_eq!(ge_ui64(16990600415051759616, 18446744073709551614), false); + assert_eq!(ge_ui64(16990600415051759616, 18446744073709551615), false); + assert_eq!(ge_ui64(18446744073709551614, 18446744073709551615), false); + assert_eq!(ge_ui64(0, 0), true); + } + #[test] + fn test_171() { + assert_eq!(ge_ui64(1, 0), true); + assert_eq!(ge_ui64(1, 1), true); + assert_eq!(ge_ui64(2, 0), true); + assert_eq!(ge_ui64(2, 1), true); + assert_eq!(ge_ui64(2, 2), true); + assert_eq!(ge_ui64(3, 0), true); + assert_eq!(ge_ui64(3, 1), true); + assert_eq!(ge_ui64(3, 2), true); + assert_eq!(ge_ui64(3, 3), true); + assert_eq!(ge_ui64(4, 0), true); + } + #[test] + fn test_172() { + assert_eq!(ge_ui64(4, 1), true); + assert_eq!(ge_ui64(4, 2), true); + assert_eq!(ge_ui64(4, 3), true); + assert_eq!(ge_ui64(4, 4), true); + assert_eq!(ge_ui64(191084152064409600, 0), true); + assert_eq!(ge_ui64(191084152064409600, 1), true); + assert_eq!(ge_ui64(191084152064409600, 2), true); + assert_eq!(ge_ui64(191084152064409600, 3), true); + assert_eq!(ge_ui64(191084152064409600, 4), true); + assert_eq!(ge_ui64(191084152064409600, 191084152064409600), true); + } + #[test] + fn test_173() { + assert_eq!(ge_ui64(11015955194427482112, 0), true); + assert_eq!(ge_ui64(11015955194427482112, 1), true); + assert_eq!(ge_ui64(11015955194427482112, 2), true); + assert_eq!(ge_ui64(11015955194427482112, 3), true); + assert_eq!(ge_ui64(11015955194427482112, 4), true); + assert_eq!(ge_ui64(11015955194427482112, 191084152064409600), true); + assert_eq!(ge_ui64(11015955194427482112, 11015955194427482112), true); + assert_eq!(ge_ui64(16990600415051759616, 0), true); + assert_eq!(ge_ui64(16990600415051759616, 1), true); + assert_eq!(ge_ui64(16990600415051759616, 2), true); + } + #[test] + fn test_174() { + assert_eq!(ge_ui64(16990600415051759616, 3), true); + assert_eq!(ge_ui64(16990600415051759616, 4), true); + assert_eq!(ge_ui64(16990600415051759616, 191084152064409600), true); + assert_eq!(ge_ui64(16990600415051759616, 11015955194427482112), true); + assert_eq!(ge_ui64(16990600415051759616, 16990600415051759616), true); + assert_eq!(ge_ui64(18446744073709551614, 0), true); + assert_eq!(ge_ui64(18446744073709551614, 1), true); + assert_eq!(ge_ui64(18446744073709551614, 2), true); + assert_eq!(ge_ui64(18446744073709551614, 3), true); + assert_eq!(ge_ui64(18446744073709551614, 4), true); + } + #[test] + fn test_175() { + assert_eq!(ge_ui64(18446744073709551614, 191084152064409600), true); + assert_eq!(ge_ui64(18446744073709551614, 11015955194427482112), true); + assert_eq!(ge_ui64(18446744073709551614, 16990600415051759616), true); + assert_eq!(ge_ui64(18446744073709551614, 18446744073709551614), true); + assert_eq!(ge_ui64(18446744073709551615, 0), true); + assert_eq!(ge_ui64(18446744073709551615, 1), true); + assert_eq!(ge_ui64(18446744073709551615, 2), true); + assert_eq!(ge_ui64(18446744073709551615, 3), true); + assert_eq!(ge_ui64(18446744073709551615, 4), true); + assert_eq!(ge_ui64(18446744073709551615, 191084152064409600), true); + } + #[test] + fn test_176() { + assert_eq!(ge_ui64(18446744073709551615, 11015955194427482112), true); + assert_eq!(ge_ui64(18446744073709551615, 16990600415051759616), true); + assert_eq!(ge_ui64(18446744073709551615, 18446744073709551614), true); + assert_eq!(ge_ui64(18446744073709551615, 18446744073709551615), true); + assert_eq!(ge_ui8(0, 1), false); + assert_eq!(ge_ui8(0, 2), false); + assert_eq!(ge_ui8(0, 3), false); + assert_eq!(ge_ui8(0, 4), false); + assert_eq!(ge_ui8(0, 72), false); + assert_eq!(ge_ui8(0, 100), false); + } + #[test] + fn test_177() { + assert_eq!(ge_ui8(0, 162), false); + assert_eq!(ge_ui8(0, 254), false); + assert_eq!(ge_ui8(0, 255), false); + assert_eq!(ge_ui8(1, 2), false); + assert_eq!(ge_ui8(1, 3), false); + assert_eq!(ge_ui8(1, 4), false); + assert_eq!(ge_ui8(1, 72), false); + assert_eq!(ge_ui8(1, 100), false); + assert_eq!(ge_ui8(1, 162), false); + assert_eq!(ge_ui8(1, 254), false); + } + #[test] + fn test_178() { + assert_eq!(ge_ui8(1, 255), false); + assert_eq!(ge_ui8(2, 3), false); + assert_eq!(ge_ui8(2, 4), false); + assert_eq!(ge_ui8(2, 72), false); + assert_eq!(ge_ui8(2, 100), false); + assert_eq!(ge_ui8(2, 162), false); + assert_eq!(ge_ui8(2, 254), false); + assert_eq!(ge_ui8(2, 255), false); + assert_eq!(ge_ui8(3, 4), false); + assert_eq!(ge_ui8(3, 72), false); + } + #[test] + fn test_179() { + assert_eq!(ge_ui8(3, 100), false); + assert_eq!(ge_ui8(3, 162), false); + assert_eq!(ge_ui8(3, 254), false); + assert_eq!(ge_ui8(3, 255), false); + assert_eq!(ge_ui8(4, 72), false); + assert_eq!(ge_ui8(4, 100), false); + assert_eq!(ge_ui8(4, 162), false); + assert_eq!(ge_ui8(4, 254), false); + assert_eq!(ge_ui8(4, 255), false); + assert_eq!(ge_ui8(72, 100), false); + } + #[test] + fn test_180() { + assert_eq!(ge_ui8(72, 162), false); + assert_eq!(ge_ui8(72, 254), false); + assert_eq!(ge_ui8(72, 255), false); + assert_eq!(ge_ui8(100, 162), false); + assert_eq!(ge_ui8(100, 254), false); + assert_eq!(ge_ui8(100, 255), false); + assert_eq!(ge_ui8(162, 254), false); + assert_eq!(ge_ui8(162, 255), false); + assert_eq!(ge_ui8(254, 255), false); + assert_eq!(ge_ui8(0, 0), true); + } + #[test] + fn test_181() { + assert_eq!(ge_ui8(1, 0), true); + assert_eq!(ge_ui8(1, 1), true); + assert_eq!(ge_ui8(2, 0), true); + assert_eq!(ge_ui8(2, 1), true); + assert_eq!(ge_ui8(2, 2), true); + assert_eq!(ge_ui8(3, 0), true); + assert_eq!(ge_ui8(3, 1), true); + assert_eq!(ge_ui8(3, 2), true); + assert_eq!(ge_ui8(3, 3), true); + assert_eq!(ge_ui8(4, 0), true); + } + #[test] + fn test_182() { + assert_eq!(ge_ui8(4, 1), true); + assert_eq!(ge_ui8(4, 2), true); + assert_eq!(ge_ui8(4, 3), true); + assert_eq!(ge_ui8(4, 4), true); + assert_eq!(ge_ui8(72, 0), true); + assert_eq!(ge_ui8(72, 1), true); + assert_eq!(ge_ui8(72, 2), true); + assert_eq!(ge_ui8(72, 3), true); + assert_eq!(ge_ui8(72, 4), true); + assert_eq!(ge_ui8(72, 72), true); + } + #[test] + fn test_183() { + assert_eq!(ge_ui8(100, 0), true); + assert_eq!(ge_ui8(100, 1), true); + assert_eq!(ge_ui8(100, 2), true); + assert_eq!(ge_ui8(100, 3), true); + assert_eq!(ge_ui8(100, 4), true); + assert_eq!(ge_ui8(100, 72), true); + assert_eq!(ge_ui8(100, 100), true); + assert_eq!(ge_ui8(162, 0), true); + assert_eq!(ge_ui8(162, 1), true); + assert_eq!(ge_ui8(162, 2), true); + } + #[test] + fn test_184() { + assert_eq!(ge_ui8(162, 3), true); + assert_eq!(ge_ui8(162, 4), true); + assert_eq!(ge_ui8(162, 72), true); + assert_eq!(ge_ui8(162, 100), true); + assert_eq!(ge_ui8(162, 162), true); + assert_eq!(ge_ui8(254, 0), true); + assert_eq!(ge_ui8(254, 1), true); + assert_eq!(ge_ui8(254, 2), true); + assert_eq!(ge_ui8(254, 3), true); + assert_eq!(ge_ui8(254, 4), true); + } + #[test] + fn test_185() { + assert_eq!(ge_ui8(254, 72), true); + assert_eq!(ge_ui8(254, 100), true); + assert_eq!(ge_ui8(254, 162), true); + assert_eq!(ge_ui8(254, 254), true); + assert_eq!(ge_ui8(255, 0), true); + assert_eq!(ge_ui8(255, 1), true); + assert_eq!(ge_ui8(255, 2), true); + assert_eq!(ge_ui8(255, 3), true); + assert_eq!(ge_ui8(255, 4), true); + assert_eq!(ge_ui8(255, 72), true); + } + #[test] + fn test_186() { + assert_eq!(ge_ui8(255, 100), true); + assert_eq!(ge_ui8(255, 162), true); + assert_eq!(ge_ui8(255, 254), true); + assert_eq!(ge_ui8(255, 255), true); + assert_eq!(gt_si16(-32768, -32768), false); + assert_eq!(gt_si16(-32768, -32767), false); + assert_eq!(gt_si16(-32768, -32547), false); + assert_eq!(gt_si16(-32768, 0), false); + assert_eq!(gt_si16(-32768, 1), false); + assert_eq!(gt_si16(-32768, 2), false); + } + #[test] + fn test_187() { + assert_eq!(gt_si16(-32768, 3), false); + assert_eq!(gt_si16(-32768, 4), false); + assert_eq!(gt_si16(-32768, 10486), false); + assert_eq!(gt_si16(-32768, 16514), false); + assert_eq!(gt_si16(-32768, 32766), false); + assert_eq!(gt_si16(-32768, 32767), false); + assert_eq!(gt_si16(-32767, -32767), false); + assert_eq!(gt_si16(-32767, -32547), false); + assert_eq!(gt_si16(-32767, 0), false); + assert_eq!(gt_si16(-32767, 1), false); + } + #[test] + fn test_188() { + assert_eq!(gt_si16(-32767, 2), false); + assert_eq!(gt_si16(-32767, 3), false); + assert_eq!(gt_si16(-32767, 4), false); + assert_eq!(gt_si16(-32767, 10486), false); + assert_eq!(gt_si16(-32767, 16514), false); + assert_eq!(gt_si16(-32767, 32766), false); + assert_eq!(gt_si16(-32767, 32767), false); + assert_eq!(gt_si16(-32547, -32547), false); + assert_eq!(gt_si16(-32547, 0), false); + assert_eq!(gt_si16(-32547, 1), false); + } + #[test] + fn test_189() { + assert_eq!(gt_si16(-32547, 2), false); + assert_eq!(gt_si16(-32547, 3), false); + assert_eq!(gt_si16(-32547, 4), false); + assert_eq!(gt_si16(-32547, 10486), false); + assert_eq!(gt_si16(-32547, 16514), false); + assert_eq!(gt_si16(-32547, 32766), false); + assert_eq!(gt_si16(-32547, 32767), false); + assert_eq!(gt_si16(0, 0), false); + assert_eq!(gt_si16(0, 1), false); + assert_eq!(gt_si16(0, 2), false); + } + #[test] + fn test_190() { + assert_eq!(gt_si16(0, 3), false); + assert_eq!(gt_si16(0, 4), false); + assert_eq!(gt_si16(0, 10486), false); + assert_eq!(gt_si16(0, 16514), false); + assert_eq!(gt_si16(0, 32766), false); + assert_eq!(gt_si16(0, 32767), false); + assert_eq!(gt_si16(1, 1), false); + assert_eq!(gt_si16(1, 2), false); + assert_eq!(gt_si16(1, 3), false); + assert_eq!(gt_si16(1, 4), false); + } + #[test] + fn test_191() { + assert_eq!(gt_si16(1, 10486), false); + assert_eq!(gt_si16(1, 16514), false); + assert_eq!(gt_si16(1, 32766), false); + assert_eq!(gt_si16(1, 32767), false); + assert_eq!(gt_si16(2, 2), false); + assert_eq!(gt_si16(2, 3), false); + assert_eq!(gt_si16(2, 4), false); + assert_eq!(gt_si16(2, 10486), false); + assert_eq!(gt_si16(2, 16514), false); + assert_eq!(gt_si16(2, 32766), false); + } + #[test] + fn test_192() { + assert_eq!(gt_si16(2, 32767), false); + assert_eq!(gt_si16(3, 3), false); + assert_eq!(gt_si16(3, 4), false); + assert_eq!(gt_si16(3, 10486), false); + assert_eq!(gt_si16(3, 16514), false); + assert_eq!(gt_si16(3, 32766), false); + assert_eq!(gt_si16(3, 32767), false); + assert_eq!(gt_si16(4, 4), false); + assert_eq!(gt_si16(4, 10486), false); + assert_eq!(gt_si16(4, 16514), false); + } + #[test] + fn test_193() { + assert_eq!(gt_si16(4, 32766), false); + assert_eq!(gt_si16(4, 32767), false); + assert_eq!(gt_si16(10486, 10486), false); + assert_eq!(gt_si16(10486, 16514), false); + assert_eq!(gt_si16(10486, 32766), false); + assert_eq!(gt_si16(10486, 32767), false); + assert_eq!(gt_si16(16514, 16514), false); + assert_eq!(gt_si16(16514, 32766), false); + assert_eq!(gt_si16(16514, 32767), false); + assert_eq!(gt_si16(32766, 32766), false); + } + #[test] + fn test_194() { + assert_eq!(gt_si16(32766, 32767), false); + assert_eq!(gt_si16(32767, 32767), false); + assert_eq!(gt_si16(-32767, -32768), true); + assert_eq!(gt_si16(-32547, -32768), true); + assert_eq!(gt_si16(-32547, -32767), true); + assert_eq!(gt_si16(0, -32768), true); + assert_eq!(gt_si16(0, -32767), true); + assert_eq!(gt_si16(0, -32547), true); + assert_eq!(gt_si16(1, -32768), true); + assert_eq!(gt_si16(1, -32767), true); + } + #[test] + fn test_195() { + assert_eq!(gt_si16(1, -32547), true); + assert_eq!(gt_si16(1, 0), true); + assert_eq!(gt_si16(2, -32768), true); + assert_eq!(gt_si16(2, -32767), true); + assert_eq!(gt_si16(2, -32547), true); + assert_eq!(gt_si16(2, 0), true); + assert_eq!(gt_si16(2, 1), true); + assert_eq!(gt_si16(3, -32768), true); + assert_eq!(gt_si16(3, -32767), true); + assert_eq!(gt_si16(3, -32547), true); + } + #[test] + fn test_196() { + assert_eq!(gt_si16(3, 0), true); + assert_eq!(gt_si16(3, 1), true); + assert_eq!(gt_si16(3, 2), true); + assert_eq!(gt_si16(4, -32768), true); + assert_eq!(gt_si16(4, -32767), true); + assert_eq!(gt_si16(4, -32547), true); + assert_eq!(gt_si16(4, 0), true); + assert_eq!(gt_si16(4, 1), true); + assert_eq!(gt_si16(4, 2), true); + assert_eq!(gt_si16(4, 3), true); + } + #[test] + fn test_197() { + assert_eq!(gt_si16(10486, -32768), true); + assert_eq!(gt_si16(10486, -32767), true); + assert_eq!(gt_si16(10486, -32547), true); + assert_eq!(gt_si16(10486, 0), true); + assert_eq!(gt_si16(10486, 1), true); + assert_eq!(gt_si16(10486, 2), true); + assert_eq!(gt_si16(10486, 3), true); + assert_eq!(gt_si16(10486, 4), true); + assert_eq!(gt_si16(16514, -32768), true); + assert_eq!(gt_si16(16514, -32767), true); + } + #[test] + fn test_198() { + assert_eq!(gt_si16(16514, -32547), true); + assert_eq!(gt_si16(16514, 0), true); + assert_eq!(gt_si16(16514, 1), true); + assert_eq!(gt_si16(16514, 2), true); + assert_eq!(gt_si16(16514, 3), true); + assert_eq!(gt_si16(16514, 4), true); + assert_eq!(gt_si16(16514, 10486), true); + assert_eq!(gt_si16(32766, -32768), true); + assert_eq!(gt_si16(32766, -32767), true); + assert_eq!(gt_si16(32766, -32547), true); + } + #[test] + fn test_199() { + assert_eq!(gt_si16(32766, 0), true); + assert_eq!(gt_si16(32766, 1), true); + assert_eq!(gt_si16(32766, 2), true); + assert_eq!(gt_si16(32766, 3), true); + assert_eq!(gt_si16(32766, 4), true); + assert_eq!(gt_si16(32766, 10486), true); + assert_eq!(gt_si16(32766, 16514), true); + assert_eq!(gt_si16(32767, -32768), true); + assert_eq!(gt_si16(32767, -32767), true); + assert_eq!(gt_si16(32767, -32547), true); + } + #[test] + fn test_200() { + assert_eq!(gt_si16(32767, 0), true); + assert_eq!(gt_si16(32767, 1), true); + assert_eq!(gt_si16(32767, 2), true); + assert_eq!(gt_si16(32767, 3), true); + assert_eq!(gt_si16(32767, 4), true); + assert_eq!(gt_si16(32767, 10486), true); + assert_eq!(gt_si16(32767, 16514), true); + assert_eq!(gt_si16(32767, 32766), true); + assert_eq!(gt_si32(-2147483648, -2147483648), false); + assert_eq!(gt_si32(-2147483648, -2147483647), false); + } + #[test] + fn test_201() { + assert_eq!(gt_si32(-2147483648, -1713183800), false); + assert_eq!(gt_si32(-2147483648, -1252582164), false); + assert_eq!(gt_si32(-2147483648, -1035405763), false); + assert_eq!(gt_si32(-2147483648, 0), false); + assert_eq!(gt_si32(-2147483648, 1), false); + assert_eq!(gt_si32(-2147483648, 2), false); + assert_eq!(gt_si32(-2147483648, 3), false); + assert_eq!(gt_si32(-2147483648, 4), false); + assert_eq!(gt_si32(-2147483648, 2147483646), false); + assert_eq!(gt_si32(-2147483648, 2147483647), false); + } + #[test] + fn test_202() { + assert_eq!(gt_si32(-2147483647, -2147483647), false); + assert_eq!(gt_si32(-2147483647, -1713183800), false); + assert_eq!(gt_si32(-2147483647, -1252582164), false); + assert_eq!(gt_si32(-2147483647, -1035405763), false); + assert_eq!(gt_si32(-2147483647, 0), false); + assert_eq!(gt_si32(-2147483647, 1), false); + assert_eq!(gt_si32(-2147483647, 2), false); + assert_eq!(gt_si32(-2147483647, 3), false); + assert_eq!(gt_si32(-2147483647, 4), false); + assert_eq!(gt_si32(-2147483647, 2147483646), false); + } + #[test] + fn test_203() { + assert_eq!(gt_si32(-2147483647, 2147483647), false); + assert_eq!(gt_si32(-1713183800, -1713183800), false); + assert_eq!(gt_si32(-1713183800, -1252582164), false); + assert_eq!(gt_si32(-1713183800, -1035405763), false); + assert_eq!(gt_si32(-1713183800, 0), false); + assert_eq!(gt_si32(-1713183800, 1), false); + assert_eq!(gt_si32(-1713183800, 2), false); + assert_eq!(gt_si32(-1713183800, 3), false); + assert_eq!(gt_si32(-1713183800, 4), false); + assert_eq!(gt_si32(-1713183800, 2147483646), false); + } + #[test] + fn test_204() { + assert_eq!(gt_si32(-1713183800, 2147483647), false); + assert_eq!(gt_si32(-1252582164, -1252582164), false); + assert_eq!(gt_si32(-1252582164, -1035405763), false); + assert_eq!(gt_si32(-1252582164, 0), false); + assert_eq!(gt_si32(-1252582164, 1), false); + assert_eq!(gt_si32(-1252582164, 2), false); + assert_eq!(gt_si32(-1252582164, 3), false); + assert_eq!(gt_si32(-1252582164, 4), false); + assert_eq!(gt_si32(-1252582164, 2147483646), false); + assert_eq!(gt_si32(-1252582164, 2147483647), false); + } + #[test] + fn test_205() { + assert_eq!(gt_si32(-1035405763, -1035405763), false); + assert_eq!(gt_si32(-1035405763, 0), false); + assert_eq!(gt_si32(-1035405763, 1), false); + assert_eq!(gt_si32(-1035405763, 2), false); + assert_eq!(gt_si32(-1035405763, 3), false); + assert_eq!(gt_si32(-1035405763, 4), false); + assert_eq!(gt_si32(-1035405763, 2147483646), false); + assert_eq!(gt_si32(-1035405763, 2147483647), false); + assert_eq!(gt_si32(0, 0), false); + assert_eq!(gt_si32(0, 1), false); + } + #[test] + fn test_206() { + assert_eq!(gt_si32(0, 2), false); + assert_eq!(gt_si32(0, 3), false); + assert_eq!(gt_si32(0, 4), false); + assert_eq!(gt_si32(0, 2147483646), false); + assert_eq!(gt_si32(0, 2147483647), false); + assert_eq!(gt_si32(1, 1), false); + assert_eq!(gt_si32(1, 2), false); + assert_eq!(gt_si32(1, 3), false); + assert_eq!(gt_si32(1, 4), false); + assert_eq!(gt_si32(1, 2147483646), false); + } + #[test] + fn test_207() { + assert_eq!(gt_si32(1, 2147483647), false); + assert_eq!(gt_si32(2, 2), false); + assert_eq!(gt_si32(2, 3), false); + assert_eq!(gt_si32(2, 4), false); + assert_eq!(gt_si32(2, 2147483646), false); + assert_eq!(gt_si32(2, 2147483647), false); + assert_eq!(gt_si32(3, 3), false); + assert_eq!(gt_si32(3, 4), false); + assert_eq!(gt_si32(3, 2147483646), false); + assert_eq!(gt_si32(3, 2147483647), false); + } + #[test] + fn test_208() { + assert_eq!(gt_si32(4, 4), false); + assert_eq!(gt_si32(4, 2147483646), false); + assert_eq!(gt_si32(4, 2147483647), false); + assert_eq!(gt_si32(2147483646, 2147483646), false); + assert_eq!(gt_si32(2147483646, 2147483647), false); + assert_eq!(gt_si32(2147483647, 2147483647), false); + assert_eq!(gt_si32(-2147483647, -2147483648), true); + assert_eq!(gt_si32(-1713183800, -2147483648), true); + assert_eq!(gt_si32(-1713183800, -2147483647), true); + assert_eq!(gt_si32(-1252582164, -2147483648), true); + } + #[test] + fn test_209() { + assert_eq!(gt_si32(-1252582164, -2147483647), true); + assert_eq!(gt_si32(-1252582164, -1713183800), true); + assert_eq!(gt_si32(-1035405763, -2147483648), true); + assert_eq!(gt_si32(-1035405763, -2147483647), true); + assert_eq!(gt_si32(-1035405763, -1713183800), true); + assert_eq!(gt_si32(-1035405763, -1252582164), true); + assert_eq!(gt_si32(0, -2147483648), true); + assert_eq!(gt_si32(0, -2147483647), true); + assert_eq!(gt_si32(0, -1713183800), true); + assert_eq!(gt_si32(0, -1252582164), true); + } + #[test] + fn test_210() { + assert_eq!(gt_si32(0, -1035405763), true); + assert_eq!(gt_si32(1, -2147483648), true); + assert_eq!(gt_si32(1, -2147483647), true); + assert_eq!(gt_si32(1, -1713183800), true); + assert_eq!(gt_si32(1, -1252582164), true); + assert_eq!(gt_si32(1, -1035405763), true); + assert_eq!(gt_si32(1, 0), true); + assert_eq!(gt_si32(2, -2147483648), true); + assert_eq!(gt_si32(2, -2147483647), true); + assert_eq!(gt_si32(2, -1713183800), true); + } + #[test] + fn test_211() { + assert_eq!(gt_si32(2, -1252582164), true); + assert_eq!(gt_si32(2, -1035405763), true); + assert_eq!(gt_si32(2, 0), true); + assert_eq!(gt_si32(2, 1), true); + assert_eq!(gt_si32(3, -2147483648), true); + assert_eq!(gt_si32(3, -2147483647), true); + assert_eq!(gt_si32(3, -1713183800), true); + assert_eq!(gt_si32(3, -1252582164), true); + assert_eq!(gt_si32(3, -1035405763), true); + assert_eq!(gt_si32(3, 0), true); + } + #[test] + fn test_212() { + assert_eq!(gt_si32(3, 1), true); + assert_eq!(gt_si32(3, 2), true); + assert_eq!(gt_si32(4, -2147483648), true); + assert_eq!(gt_si32(4, -2147483647), true); + assert_eq!(gt_si32(4, -1713183800), true); + assert_eq!(gt_si32(4, -1252582164), true); + assert_eq!(gt_si32(4, -1035405763), true); + assert_eq!(gt_si32(4, 0), true); + assert_eq!(gt_si32(4, 1), true); + assert_eq!(gt_si32(4, 2), true); + } + #[test] + fn test_213() { + assert_eq!(gt_si32(4, 3), true); + assert_eq!(gt_si32(2147483646, -2147483648), true); + assert_eq!(gt_si32(2147483646, -2147483647), true); + assert_eq!(gt_si32(2147483646, -1713183800), true); + assert_eq!(gt_si32(2147483646, -1252582164), true); + assert_eq!(gt_si32(2147483646, -1035405763), true); + assert_eq!(gt_si32(2147483646, 0), true); + assert_eq!(gt_si32(2147483646, 1), true); + assert_eq!(gt_si32(2147483646, 2), true); + assert_eq!(gt_si32(2147483646, 3), true); + } + #[test] + fn test_214() { + assert_eq!(gt_si32(2147483646, 4), true); + assert_eq!(gt_si32(2147483647, -2147483648), true); + assert_eq!(gt_si32(2147483647, -2147483647), true); + assert_eq!(gt_si32(2147483647, -1713183800), true); + assert_eq!(gt_si32(2147483647, -1252582164), true); + assert_eq!(gt_si32(2147483647, -1035405763), true); + assert_eq!(gt_si32(2147483647, 0), true); + assert_eq!(gt_si32(2147483647, 1), true); + assert_eq!(gt_si32(2147483647, 2), true); + assert_eq!(gt_si32(2147483647, 3), true); + } + #[test] + fn test_215() { + assert_eq!(gt_si32(2147483647, 4), true); + assert_eq!(gt_si32(2147483647, 2147483646), true); + assert_eq!(gt_si64(-9223372036854775808, -9223372036854775808), false); + assert_eq!(gt_si64(-9223372036854775808, -9223372036854775807), false); + assert_eq!(gt_si64(-9223372036854775808, -1741927215160008704), false); + assert_eq!(gt_si64(-9223372036854775808, -1328271339354574848), false); + assert_eq!(gt_si64(-9223372036854775808, 0), false); + assert_eq!(gt_si64(-9223372036854775808, 1), false); + assert_eq!(gt_si64(-9223372036854775808, 2), false); + assert_eq!(gt_si64(-9223372036854775808, 3), false); + } + #[test] + fn test_216() { + assert_eq!(gt_si64(-9223372036854775808, 4), false); + assert_eq!(gt_si64(-9223372036854775808, 5577148965131116544), false); + assert_eq!(gt_si64(-9223372036854775808, 9223372036854775806), false); + assert_eq!(gt_si64(-9223372036854775808, 9223372036854775807), false); + assert_eq!(gt_si64(-9223372036854775807, -9223372036854775807), false); + assert_eq!(gt_si64(-9223372036854775807, -1741927215160008704), false); + assert_eq!(gt_si64(-9223372036854775807, -1328271339354574848), false); + assert_eq!(gt_si64(-9223372036854775807, 0), false); + assert_eq!(gt_si64(-9223372036854775807, 1), false); + assert_eq!(gt_si64(-9223372036854775807, 2), false); + } + #[test] + fn test_217() { + assert_eq!(gt_si64(-9223372036854775807, 3), false); + assert_eq!(gt_si64(-9223372036854775807, 4), false); + assert_eq!(gt_si64(-9223372036854775807, 5577148965131116544), false); + assert_eq!(gt_si64(-9223372036854775807, 9223372036854775806), false); + assert_eq!(gt_si64(-9223372036854775807, 9223372036854775807), false); + assert_eq!(gt_si64(-1741927215160008704, -1741927215160008704), false); + assert_eq!(gt_si64(-1741927215160008704, -1328271339354574848), false); + assert_eq!(gt_si64(-1741927215160008704, 0), false); + assert_eq!(gt_si64(-1741927215160008704, 1), false); + assert_eq!(gt_si64(-1741927215160008704, 2), false); + } + #[test] + fn test_218() { + assert_eq!(gt_si64(-1741927215160008704, 3), false); + assert_eq!(gt_si64(-1741927215160008704, 4), false); + assert_eq!(gt_si64(-1741927215160008704, 5577148965131116544), false); + assert_eq!(gt_si64(-1741927215160008704, 9223372036854775806), false); + assert_eq!(gt_si64(-1741927215160008704, 9223372036854775807), false); + assert_eq!(gt_si64(-1328271339354574848, -1328271339354574848), false); + assert_eq!(gt_si64(-1328271339354574848, 0), false); + assert_eq!(gt_si64(-1328271339354574848, 1), false); + assert_eq!(gt_si64(-1328271339354574848, 2), false); + assert_eq!(gt_si64(-1328271339354574848, 3), false); + } + #[test] + fn test_219() { + assert_eq!(gt_si64(-1328271339354574848, 4), false); + assert_eq!(gt_si64(-1328271339354574848, 5577148965131116544), false); + assert_eq!(gt_si64(-1328271339354574848, 9223372036854775806), false); + assert_eq!(gt_si64(-1328271339354574848, 9223372036854775807), false); + assert_eq!(gt_si64(0, 0), false); + assert_eq!(gt_si64(0, 1), false); + assert_eq!(gt_si64(0, 2), false); + assert_eq!(gt_si64(0, 3), false); + assert_eq!(gt_si64(0, 4), false); + assert_eq!(gt_si64(0, 5577148965131116544), false); + } + #[test] + fn test_220() { + assert_eq!(gt_si64(0, 9223372036854775806), false); + assert_eq!(gt_si64(0, 9223372036854775807), false); + assert_eq!(gt_si64(1, 1), false); + assert_eq!(gt_si64(1, 2), false); + assert_eq!(gt_si64(1, 3), false); + assert_eq!(gt_si64(1, 4), false); + assert_eq!(gt_si64(1, 5577148965131116544), false); + assert_eq!(gt_si64(1, 9223372036854775806), false); + assert_eq!(gt_si64(1, 9223372036854775807), false); + assert_eq!(gt_si64(2, 2), false); + } + #[test] + fn test_221() { + assert_eq!(gt_si64(2, 3), false); + assert_eq!(gt_si64(2, 4), false); + assert_eq!(gt_si64(2, 5577148965131116544), false); + assert_eq!(gt_si64(2, 9223372036854775806), false); + assert_eq!(gt_si64(2, 9223372036854775807), false); + assert_eq!(gt_si64(3, 3), false); + assert_eq!(gt_si64(3, 4), false); + assert_eq!(gt_si64(3, 5577148965131116544), false); + assert_eq!(gt_si64(3, 9223372036854775806), false); + assert_eq!(gt_si64(3, 9223372036854775807), false); + } + #[test] + fn test_222() { + assert_eq!(gt_si64(4, 4), false); + assert_eq!(gt_si64(4, 5577148965131116544), false); + assert_eq!(gt_si64(4, 9223372036854775806), false); + assert_eq!(gt_si64(4, 9223372036854775807), false); + assert_eq!(gt_si64(5577148965131116544, 5577148965131116544), false); + assert_eq!(gt_si64(5577148965131116544, 9223372036854775806), false); + assert_eq!(gt_si64(5577148965131116544, 9223372036854775807), false); + assert_eq!(gt_si64(9223372036854775806, 9223372036854775806), false); + assert_eq!(gt_si64(9223372036854775806, 9223372036854775807), false); + assert_eq!(gt_si64(9223372036854775807, 9223372036854775807), false); + } + #[test] + fn test_223() { + assert_eq!(gt_si64(-9223372036854775807, -9223372036854775808), true); + assert_eq!(gt_si64(-1741927215160008704, -9223372036854775808), true); + assert_eq!(gt_si64(-1741927215160008704, -9223372036854775807), true); + assert_eq!(gt_si64(-1328271339354574848, -9223372036854775808), true); + assert_eq!(gt_si64(-1328271339354574848, -9223372036854775807), true); + assert_eq!(gt_si64(-1328271339354574848, -1741927215160008704), true); + assert_eq!(gt_si64(0, -9223372036854775808), true); + assert_eq!(gt_si64(0, -9223372036854775807), true); + assert_eq!(gt_si64(0, -1741927215160008704), true); + assert_eq!(gt_si64(0, -1328271339354574848), true); + } + #[test] + fn test_224() { + assert_eq!(gt_si64(1, -9223372036854775808), true); + assert_eq!(gt_si64(1, -9223372036854775807), true); + assert_eq!(gt_si64(1, -1741927215160008704), true); + assert_eq!(gt_si64(1, -1328271339354574848), true); + assert_eq!(gt_si64(1, 0), true); + assert_eq!(gt_si64(2, -9223372036854775808), true); + assert_eq!(gt_si64(2, -9223372036854775807), true); + assert_eq!(gt_si64(2, -1741927215160008704), true); + assert_eq!(gt_si64(2, -1328271339354574848), true); + assert_eq!(gt_si64(2, 0), true); + } + #[test] + fn test_225() { + assert_eq!(gt_si64(2, 1), true); + assert_eq!(gt_si64(3, -9223372036854775808), true); + assert_eq!(gt_si64(3, -9223372036854775807), true); + assert_eq!(gt_si64(3, -1741927215160008704), true); + assert_eq!(gt_si64(3, -1328271339354574848), true); + assert_eq!(gt_si64(3, 0), true); + assert_eq!(gt_si64(3, 1), true); + assert_eq!(gt_si64(3, 2), true); + assert_eq!(gt_si64(4, -9223372036854775808), true); + assert_eq!(gt_si64(4, -9223372036854775807), true); + } + #[test] + fn test_226() { + assert_eq!(gt_si64(4, -1741927215160008704), true); + assert_eq!(gt_si64(4, -1328271339354574848), true); + assert_eq!(gt_si64(4, 0), true); + assert_eq!(gt_si64(4, 1), true); + assert_eq!(gt_si64(4, 2), true); + assert_eq!(gt_si64(4, 3), true); + assert_eq!(gt_si64(5577148965131116544, -9223372036854775808), true); + assert_eq!(gt_si64(5577148965131116544, -9223372036854775807), true); + assert_eq!(gt_si64(5577148965131116544, -1741927215160008704), true); + assert_eq!(gt_si64(5577148965131116544, -1328271339354574848), true); + } + #[test] + fn test_227() { + assert_eq!(gt_si64(5577148965131116544, 0), true); + assert_eq!(gt_si64(5577148965131116544, 1), true); + assert_eq!(gt_si64(5577148965131116544, 2), true); + assert_eq!(gt_si64(5577148965131116544, 3), true); + assert_eq!(gt_si64(5577148965131116544, 4), true); + assert_eq!(gt_si64(9223372036854775806, -9223372036854775808), true); + assert_eq!(gt_si64(9223372036854775806, -9223372036854775807), true); + assert_eq!(gt_si64(9223372036854775806, -1741927215160008704), true); + assert_eq!(gt_si64(9223372036854775806, -1328271339354574848), true); + assert_eq!(gt_si64(9223372036854775806, 0), true); + } + #[test] + fn test_228() { + assert_eq!(gt_si64(9223372036854775806, 1), true); + assert_eq!(gt_si64(9223372036854775806, 2), true); + assert_eq!(gt_si64(9223372036854775806, 3), true); + assert_eq!(gt_si64(9223372036854775806, 4), true); + assert_eq!(gt_si64(9223372036854775806, 5577148965131116544), true); + assert_eq!(gt_si64(9223372036854775807, -9223372036854775808), true); + assert_eq!(gt_si64(9223372036854775807, -9223372036854775807), true); + assert_eq!(gt_si64(9223372036854775807, -1741927215160008704), true); + assert_eq!(gt_si64(9223372036854775807, -1328271339354574848), true); + assert_eq!(gt_si64(9223372036854775807, 0), true); + } + #[test] + fn test_229() { + assert_eq!(gt_si64(9223372036854775807, 1), true); + assert_eq!(gt_si64(9223372036854775807, 2), true); + assert_eq!(gt_si64(9223372036854775807, 3), true); + assert_eq!(gt_si64(9223372036854775807, 4), true); + assert_eq!(gt_si64(9223372036854775807, 5577148965131116544), true); + assert_eq!(gt_si64(9223372036854775807, 9223372036854775806), true); + assert_eq!(gt_si8(-128, -128), false); + assert_eq!(gt_si8(-128, -127), false); + assert_eq!(gt_si8(-128, 0), false); + assert_eq!(gt_si8(-128, 1), false); + } + #[test] + fn test_230() { + assert_eq!(gt_si8(-128, 2), false); + assert_eq!(gt_si8(-128, 3), false); + assert_eq!(gt_si8(-128, 4), false); + assert_eq!(gt_si8(-128, 16), false); + assert_eq!(gt_si8(-128, 126), false); + assert_eq!(gt_si8(-128, 127), false); + assert_eq!(gt_si8(-127, -127), false); + assert_eq!(gt_si8(-127, 0), false); + assert_eq!(gt_si8(-127, 1), false); + assert_eq!(gt_si8(-127, 2), false); + } + #[test] + fn test_231() { + assert_eq!(gt_si8(-127, 3), false); + assert_eq!(gt_si8(-127, 4), false); + assert_eq!(gt_si8(-127, 16), false); + assert_eq!(gt_si8(-127, 126), false); + assert_eq!(gt_si8(-127, 127), false); + assert_eq!(gt_si8(0, 0), false); + assert_eq!(gt_si8(0, 1), false); + assert_eq!(gt_si8(0, 2), false); + assert_eq!(gt_si8(0, 3), false); + assert_eq!(gt_si8(0, 4), false); + } + #[test] + fn test_232() { + assert_eq!(gt_si8(0, 16), false); + assert_eq!(gt_si8(0, 126), false); + assert_eq!(gt_si8(0, 127), false); + assert_eq!(gt_si8(1, 1), false); + assert_eq!(gt_si8(1, 2), false); + assert_eq!(gt_si8(1, 3), false); + assert_eq!(gt_si8(1, 4), false); + assert_eq!(gt_si8(1, 16), false); + assert_eq!(gt_si8(1, 126), false); + assert_eq!(gt_si8(1, 127), false); + } + #[test] + fn test_233() { + assert_eq!(gt_si8(2, 2), false); + assert_eq!(gt_si8(2, 3), false); + assert_eq!(gt_si8(2, 4), false); + assert_eq!(gt_si8(2, 16), false); + assert_eq!(gt_si8(2, 126), false); + assert_eq!(gt_si8(2, 127), false); + assert_eq!(gt_si8(3, 3), false); + assert_eq!(gt_si8(3, 4), false); + assert_eq!(gt_si8(3, 16), false); + assert_eq!(gt_si8(3, 126), false); + } + #[test] + fn test_234() { + assert_eq!(gt_si8(3, 127), false); + assert_eq!(gt_si8(4, 4), false); + assert_eq!(gt_si8(4, 16), false); + assert_eq!(gt_si8(4, 126), false); + assert_eq!(gt_si8(4, 127), false); + assert_eq!(gt_si8(16, 16), false); + assert_eq!(gt_si8(16, 126), false); + assert_eq!(gt_si8(16, 127), false); + assert_eq!(gt_si8(126, 126), false); + assert_eq!(gt_si8(126, 127), false); + } + #[test] + fn test_235() { + assert_eq!(gt_si8(127, 127), false); + assert_eq!(gt_si8(-127, -128), true); + assert_eq!(gt_si8(0, -128), true); + assert_eq!(gt_si8(0, -127), true); + assert_eq!(gt_si8(1, -128), true); + assert_eq!(gt_si8(1, -127), true); + assert_eq!(gt_si8(1, 0), true); + assert_eq!(gt_si8(2, -128), true); + assert_eq!(gt_si8(2, -127), true); + assert_eq!(gt_si8(2, 0), true); + } + #[test] + fn test_236() { + assert_eq!(gt_si8(2, 1), true); + assert_eq!(gt_si8(3, -128), true); + assert_eq!(gt_si8(3, -127), true); + assert_eq!(gt_si8(3, 0), true); + assert_eq!(gt_si8(3, 1), true); + assert_eq!(gt_si8(3, 2), true); + assert_eq!(gt_si8(4, -128), true); + assert_eq!(gt_si8(4, -127), true); + assert_eq!(gt_si8(4, 0), true); + assert_eq!(gt_si8(4, 1), true); + } + #[test] + fn test_237() { + assert_eq!(gt_si8(4, 2), true); + assert_eq!(gt_si8(4, 3), true); + assert_eq!(gt_si8(16, -128), true); + assert_eq!(gt_si8(16, -127), true); + assert_eq!(gt_si8(16, 0), true); + assert_eq!(gt_si8(16, 1), true); + assert_eq!(gt_si8(16, 2), true); + assert_eq!(gt_si8(16, 3), true); + assert_eq!(gt_si8(16, 4), true); + assert_eq!(gt_si8(126, -128), true); + } + #[test] + fn test_238() { + assert_eq!(gt_si8(126, -127), true); + assert_eq!(gt_si8(126, 0), true); + assert_eq!(gt_si8(126, 1), true); + assert_eq!(gt_si8(126, 2), true); + assert_eq!(gt_si8(126, 3), true); + assert_eq!(gt_si8(126, 4), true); + assert_eq!(gt_si8(126, 16), true); + assert_eq!(gt_si8(127, -128), true); + assert_eq!(gt_si8(127, -127), true); + assert_eq!(gt_si8(127, 0), true); + } + #[test] + fn test_239() { + assert_eq!(gt_si8(127, 1), true); + assert_eq!(gt_si8(127, 2), true); + assert_eq!(gt_si8(127, 3), true); + assert_eq!(gt_si8(127, 4), true); + assert_eq!(gt_si8(127, 16), true); + assert_eq!(gt_si8(127, 126), true); + assert_eq!(gt_ui16(0, 0), false); + assert_eq!(gt_ui16(0, 1), false); + assert_eq!(gt_ui16(0, 2), false); + assert_eq!(gt_ui16(0, 3), false); + } + #[test] + fn test_240() { + assert_eq!(gt_ui16(0, 4), false); + assert_eq!(gt_ui16(0, 1717), false); + assert_eq!(gt_ui16(0, 17988), false); + assert_eq!(gt_ui16(0, 65096), false); + assert_eq!(gt_ui16(0, 65534), false); + assert_eq!(gt_ui16(0, 65535), false); + assert_eq!(gt_ui16(1, 1), false); + assert_eq!(gt_ui16(1, 2), false); + assert_eq!(gt_ui16(1, 3), false); + assert_eq!(gt_ui16(1, 4), false); + } + #[test] + fn test_241() { + assert_eq!(gt_ui16(1, 1717), false); + assert_eq!(gt_ui16(1, 17988), false); + assert_eq!(gt_ui16(1, 65096), false); + assert_eq!(gt_ui16(1, 65534), false); + assert_eq!(gt_ui16(1, 65535), false); + assert_eq!(gt_ui16(2, 2), false); + assert_eq!(gt_ui16(2, 3), false); + assert_eq!(gt_ui16(2, 4), false); + assert_eq!(gt_ui16(2, 1717), false); + assert_eq!(gt_ui16(2, 17988), false); + } + #[test] + fn test_242() { + assert_eq!(gt_ui16(2, 65096), false); + assert_eq!(gt_ui16(2, 65534), false); + assert_eq!(gt_ui16(2, 65535), false); + assert_eq!(gt_ui16(3, 3), false); + assert_eq!(gt_ui16(3, 4), false); + assert_eq!(gt_ui16(3, 1717), false); + assert_eq!(gt_ui16(3, 17988), false); + assert_eq!(gt_ui16(3, 65096), false); + assert_eq!(gt_ui16(3, 65534), false); + assert_eq!(gt_ui16(3, 65535), false); + } + #[test] + fn test_243() { + assert_eq!(gt_ui16(4, 4), false); + assert_eq!(gt_ui16(4, 1717), false); + assert_eq!(gt_ui16(4, 17988), false); + assert_eq!(gt_ui16(4, 65096), false); + assert_eq!(gt_ui16(4, 65534), false); + assert_eq!(gt_ui16(4, 65535), false); + assert_eq!(gt_ui16(1717, 1717), false); + assert_eq!(gt_ui16(1717, 17988), false); + assert_eq!(gt_ui16(1717, 65096), false); + assert_eq!(gt_ui16(1717, 65534), false); + } + #[test] + fn test_244() { + assert_eq!(gt_ui16(1717, 65535), false); + assert_eq!(gt_ui16(17988, 17988), false); + assert_eq!(gt_ui16(17988, 65096), false); + assert_eq!(gt_ui16(17988, 65534), false); + assert_eq!(gt_ui16(17988, 65535), false); + assert_eq!(gt_ui16(65096, 65096), false); + assert_eq!(gt_ui16(65096, 65534), false); + assert_eq!(gt_ui16(65096, 65535), false); + assert_eq!(gt_ui16(65534, 65534), false); + assert_eq!(gt_ui16(65534, 65535), false); + } + #[test] + fn test_245() { + assert_eq!(gt_ui16(65535, 65535), false); + assert_eq!(gt_ui16(1, 0), true); + assert_eq!(gt_ui16(2, 0), true); + assert_eq!(gt_ui16(2, 1), true); + assert_eq!(gt_ui16(3, 0), true); + assert_eq!(gt_ui16(3, 1), true); + assert_eq!(gt_ui16(3, 2), true); + assert_eq!(gt_ui16(4, 0), true); + assert_eq!(gt_ui16(4, 1), true); + assert_eq!(gt_ui16(4, 2), true); + } + #[test] + fn test_246() { + assert_eq!(gt_ui16(4, 3), true); + assert_eq!(gt_ui16(1717, 0), true); + assert_eq!(gt_ui16(1717, 1), true); + assert_eq!(gt_ui16(1717, 2), true); + assert_eq!(gt_ui16(1717, 3), true); + assert_eq!(gt_ui16(1717, 4), true); + assert_eq!(gt_ui16(17988, 0), true); + assert_eq!(gt_ui16(17988, 1), true); + assert_eq!(gt_ui16(17988, 2), true); + assert_eq!(gt_ui16(17988, 3), true); + } + #[test] + fn test_247() { + assert_eq!(gt_ui16(17988, 4), true); + assert_eq!(gt_ui16(17988, 1717), true); + assert_eq!(gt_ui16(65096, 0), true); + assert_eq!(gt_ui16(65096, 1), true); + assert_eq!(gt_ui16(65096, 2), true); + assert_eq!(gt_ui16(65096, 3), true); + assert_eq!(gt_ui16(65096, 4), true); + assert_eq!(gt_ui16(65096, 1717), true); + assert_eq!(gt_ui16(65096, 17988), true); + assert_eq!(gt_ui16(65534, 0), true); + } + #[test] + fn test_248() { + assert_eq!(gt_ui16(65534, 1), true); + assert_eq!(gt_ui16(65534, 2), true); + assert_eq!(gt_ui16(65534, 3), true); + assert_eq!(gt_ui16(65534, 4), true); + assert_eq!(gt_ui16(65534, 1717), true); + assert_eq!(gt_ui16(65534, 17988), true); + assert_eq!(gt_ui16(65534, 65096), true); + assert_eq!(gt_ui16(65535, 0), true); + assert_eq!(gt_ui16(65535, 1), true); + assert_eq!(gt_ui16(65535, 2), true); + } + #[test] + fn test_249() { + assert_eq!(gt_ui16(65535, 3), true); + assert_eq!(gt_ui16(65535, 4), true); + assert_eq!(gt_ui16(65535, 1717), true); + assert_eq!(gt_ui16(65535, 17988), true); + assert_eq!(gt_ui16(65535, 65096), true); + assert_eq!(gt_ui16(65535, 65534), true); + assert_eq!(gt_ui32(0, 0), false); + assert_eq!(gt_ui32(0, 1), false); + assert_eq!(gt_ui32(0, 2), false); + assert_eq!(gt_ui32(0, 3), false); + } + #[test] + fn test_250() { + assert_eq!(gt_ui32(0, 4), false); + assert_eq!(gt_ui32(0, 2119154652), false); + assert_eq!(gt_ui32(0, 3002788344), false); + assert_eq!(gt_ui32(0, 3482297128), false); + assert_eq!(gt_ui32(0, 4294967294), false); + assert_eq!(gt_ui32(0, 4294967295), false); + assert_eq!(gt_ui32(1, 1), false); + assert_eq!(gt_ui32(1, 2), false); + assert_eq!(gt_ui32(1, 3), false); + assert_eq!(gt_ui32(1, 4), false); + } + #[test] + fn test_251() { + assert_eq!(gt_ui32(1, 2119154652), false); + assert_eq!(gt_ui32(1, 3002788344), false); + assert_eq!(gt_ui32(1, 3482297128), false); + assert_eq!(gt_ui32(1, 4294967294), false); + assert_eq!(gt_ui32(1, 4294967295), false); + assert_eq!(gt_ui32(2, 2), false); + assert_eq!(gt_ui32(2, 3), false); + assert_eq!(gt_ui32(2, 4), false); + assert_eq!(gt_ui32(2, 2119154652), false); + assert_eq!(gt_ui32(2, 3002788344), false); + } + #[test] + fn test_252() { + assert_eq!(gt_ui32(2, 3482297128), false); + assert_eq!(gt_ui32(2, 4294967294), false); + assert_eq!(gt_ui32(2, 4294967295), false); + assert_eq!(gt_ui32(3, 3), false); + assert_eq!(gt_ui32(3, 4), false); + assert_eq!(gt_ui32(3, 2119154652), false); + assert_eq!(gt_ui32(3, 3002788344), false); + assert_eq!(gt_ui32(3, 3482297128), false); + assert_eq!(gt_ui32(3, 4294967294), false); + assert_eq!(gt_ui32(3, 4294967295), false); + } + #[test] + fn test_253() { + assert_eq!(gt_ui32(4, 4), false); + assert_eq!(gt_ui32(4, 2119154652), false); + assert_eq!(gt_ui32(4, 3002788344), false); + assert_eq!(gt_ui32(4, 3482297128), false); + assert_eq!(gt_ui32(4, 4294967294), false); + assert_eq!(gt_ui32(4, 4294967295), false); + assert_eq!(gt_ui32(2119154652, 2119154652), false); + assert_eq!(gt_ui32(2119154652, 3002788344), false); + assert_eq!(gt_ui32(2119154652, 3482297128), false); + assert_eq!(gt_ui32(2119154652, 4294967294), false); + } + #[test] + fn test_254() { + assert_eq!(gt_ui32(2119154652, 4294967295), false); + assert_eq!(gt_ui32(3002788344, 3002788344), false); + assert_eq!(gt_ui32(3002788344, 3482297128), false); + assert_eq!(gt_ui32(3002788344, 4294967294), false); + assert_eq!(gt_ui32(3002788344, 4294967295), false); + assert_eq!(gt_ui32(3482297128, 3482297128), false); + assert_eq!(gt_ui32(3482297128, 4294967294), false); + assert_eq!(gt_ui32(3482297128, 4294967295), false); + assert_eq!(gt_ui32(4294967294, 4294967294), false); + assert_eq!(gt_ui32(4294967294, 4294967295), false); + } + #[test] + fn test_255() { + assert_eq!(gt_ui32(4294967295, 4294967295), false); + assert_eq!(gt_ui32(1, 0), true); + assert_eq!(gt_ui32(2, 0), true); + assert_eq!(gt_ui32(2, 1), true); + assert_eq!(gt_ui32(3, 0), true); + assert_eq!(gt_ui32(3, 1), true); + assert_eq!(gt_ui32(3, 2), true); + assert_eq!(gt_ui32(4, 0), true); + assert_eq!(gt_ui32(4, 1), true); + assert_eq!(gt_ui32(4, 2), true); + } + #[test] + fn test_256() { + assert_eq!(gt_ui32(4, 3), true); + assert_eq!(gt_ui32(2119154652, 0), true); + assert_eq!(gt_ui32(2119154652, 1), true); + assert_eq!(gt_ui32(2119154652, 2), true); + assert_eq!(gt_ui32(2119154652, 3), true); + assert_eq!(gt_ui32(2119154652, 4), true); + assert_eq!(gt_ui32(3002788344, 0), true); + assert_eq!(gt_ui32(3002788344, 1), true); + assert_eq!(gt_ui32(3002788344, 2), true); + assert_eq!(gt_ui32(3002788344, 3), true); + } + #[test] + fn test_257() { + assert_eq!(gt_ui32(3002788344, 4), true); + assert_eq!(gt_ui32(3002788344, 2119154652), true); + assert_eq!(gt_ui32(3482297128, 0), true); + assert_eq!(gt_ui32(3482297128, 1), true); + assert_eq!(gt_ui32(3482297128, 2), true); + assert_eq!(gt_ui32(3482297128, 3), true); + assert_eq!(gt_ui32(3482297128, 4), true); + assert_eq!(gt_ui32(3482297128, 2119154652), true); + assert_eq!(gt_ui32(3482297128, 3002788344), true); + assert_eq!(gt_ui32(4294967294, 0), true); + } + #[test] + fn test_258() { + assert_eq!(gt_ui32(4294967294, 1), true); + assert_eq!(gt_ui32(4294967294, 2), true); + assert_eq!(gt_ui32(4294967294, 3), true); + assert_eq!(gt_ui32(4294967294, 4), true); + assert_eq!(gt_ui32(4294967294, 2119154652), true); + assert_eq!(gt_ui32(4294967294, 3002788344), true); + assert_eq!(gt_ui32(4294967294, 3482297128), true); + assert_eq!(gt_ui32(4294967295, 0), true); + assert_eq!(gt_ui32(4294967295, 1), true); + assert_eq!(gt_ui32(4294967295, 2), true); + } + #[test] + fn test_259() { + assert_eq!(gt_ui32(4294967295, 3), true); + assert_eq!(gt_ui32(4294967295, 4), true); + assert_eq!(gt_ui32(4294967295, 2119154652), true); + assert_eq!(gt_ui32(4294967295, 3002788344), true); + assert_eq!(gt_ui32(4294967295, 3482297128), true); + assert_eq!(gt_ui32(4294967295, 4294967294), true); + assert_eq!(gt_ui64(0, 0), false); + assert_eq!(gt_ui64(0, 1), false); + assert_eq!(gt_ui64(0, 2), false); + assert_eq!(gt_ui64(0, 3), false); + } + #[test] + fn test_260() { + assert_eq!(gt_ui64(0, 4), false); + assert_eq!(gt_ui64(0, 191084152064409600), false); + assert_eq!(gt_ui64(0, 11015955194427482112), false); + assert_eq!(gt_ui64(0, 16990600415051759616), false); + assert_eq!(gt_ui64(0, 18446744073709551614), false); + assert_eq!(gt_ui64(0, 18446744073709551615), false); + assert_eq!(gt_ui64(1, 1), false); + assert_eq!(gt_ui64(1, 2), false); + assert_eq!(gt_ui64(1, 3), false); + assert_eq!(gt_ui64(1, 4), false); + } + #[test] + fn test_261() { + assert_eq!(gt_ui64(1, 191084152064409600), false); + assert_eq!(gt_ui64(1, 11015955194427482112), false); + assert_eq!(gt_ui64(1, 16990600415051759616), false); + assert_eq!(gt_ui64(1, 18446744073709551614), false); + assert_eq!(gt_ui64(1, 18446744073709551615), false); + assert_eq!(gt_ui64(2, 2), false); + assert_eq!(gt_ui64(2, 3), false); + assert_eq!(gt_ui64(2, 4), false); + assert_eq!(gt_ui64(2, 191084152064409600), false); + assert_eq!(gt_ui64(2, 11015955194427482112), false); + } + #[test] + fn test_262() { + assert_eq!(gt_ui64(2, 16990600415051759616), false); + assert_eq!(gt_ui64(2, 18446744073709551614), false); + assert_eq!(gt_ui64(2, 18446744073709551615), false); + assert_eq!(gt_ui64(3, 3), false); + assert_eq!(gt_ui64(3, 4), false); + assert_eq!(gt_ui64(3, 191084152064409600), false); + assert_eq!(gt_ui64(3, 11015955194427482112), false); + assert_eq!(gt_ui64(3, 16990600415051759616), false); + assert_eq!(gt_ui64(3, 18446744073709551614), false); + assert_eq!(gt_ui64(3, 18446744073709551615), false); + } + #[test] + fn test_263() { + assert_eq!(gt_ui64(4, 4), false); + assert_eq!(gt_ui64(4, 191084152064409600), false); + assert_eq!(gt_ui64(4, 11015955194427482112), false); + assert_eq!(gt_ui64(4, 16990600415051759616), false); + assert_eq!(gt_ui64(4, 18446744073709551614), false); + assert_eq!(gt_ui64(4, 18446744073709551615), false); + assert_eq!(gt_ui64(191084152064409600, 191084152064409600), false); + assert_eq!(gt_ui64(191084152064409600, 11015955194427482112), false); + assert_eq!(gt_ui64(191084152064409600, 16990600415051759616), false); + assert_eq!(gt_ui64(191084152064409600, 18446744073709551614), false); + } + #[test] + fn test_264() { + assert_eq!(gt_ui64(191084152064409600, 18446744073709551615), false); + assert_eq!(gt_ui64(11015955194427482112, 11015955194427482112), false); + assert_eq!(gt_ui64(11015955194427482112, 16990600415051759616), false); + assert_eq!(gt_ui64(11015955194427482112, 18446744073709551614), false); + assert_eq!(gt_ui64(11015955194427482112, 18446744073709551615), false); + assert_eq!(gt_ui64(16990600415051759616, 16990600415051759616), false); + assert_eq!(gt_ui64(16990600415051759616, 18446744073709551614), false); + assert_eq!(gt_ui64(16990600415051759616, 18446744073709551615), false); + assert_eq!(gt_ui64(18446744073709551614, 18446744073709551614), false); + assert_eq!(gt_ui64(18446744073709551614, 18446744073709551615), false); + } + #[test] + fn test_265() { + assert_eq!(gt_ui64(18446744073709551615, 18446744073709551615), false); + assert_eq!(gt_ui64(1, 0), true); + assert_eq!(gt_ui64(2, 0), true); + assert_eq!(gt_ui64(2, 1), true); + assert_eq!(gt_ui64(3, 0), true); + assert_eq!(gt_ui64(3, 1), true); + assert_eq!(gt_ui64(3, 2), true); + assert_eq!(gt_ui64(4, 0), true); + assert_eq!(gt_ui64(4, 1), true); + assert_eq!(gt_ui64(4, 2), true); + } + #[test] + fn test_266() { + assert_eq!(gt_ui64(4, 3), true); + assert_eq!(gt_ui64(191084152064409600, 0), true); + assert_eq!(gt_ui64(191084152064409600, 1), true); + assert_eq!(gt_ui64(191084152064409600, 2), true); + assert_eq!(gt_ui64(191084152064409600, 3), true); + assert_eq!(gt_ui64(191084152064409600, 4), true); + assert_eq!(gt_ui64(11015955194427482112, 0), true); + assert_eq!(gt_ui64(11015955194427482112, 1), true); + assert_eq!(gt_ui64(11015955194427482112, 2), true); + assert_eq!(gt_ui64(11015955194427482112, 3), true); + } + #[test] + fn test_267() { + assert_eq!(gt_ui64(11015955194427482112, 4), true); + assert_eq!(gt_ui64(11015955194427482112, 191084152064409600), true); + assert_eq!(gt_ui64(16990600415051759616, 0), true); + assert_eq!(gt_ui64(16990600415051759616, 1), true); + assert_eq!(gt_ui64(16990600415051759616, 2), true); + assert_eq!(gt_ui64(16990600415051759616, 3), true); + assert_eq!(gt_ui64(16990600415051759616, 4), true); + assert_eq!(gt_ui64(16990600415051759616, 191084152064409600), true); + assert_eq!(gt_ui64(16990600415051759616, 11015955194427482112), true); + assert_eq!(gt_ui64(18446744073709551614, 0), true); + } + #[test] + fn test_268() { + assert_eq!(gt_ui64(18446744073709551614, 1), true); + assert_eq!(gt_ui64(18446744073709551614, 2), true); + assert_eq!(gt_ui64(18446744073709551614, 3), true); + assert_eq!(gt_ui64(18446744073709551614, 4), true); + assert_eq!(gt_ui64(18446744073709551614, 191084152064409600), true); + assert_eq!(gt_ui64(18446744073709551614, 11015955194427482112), true); + assert_eq!(gt_ui64(18446744073709551614, 16990600415051759616), true); + assert_eq!(gt_ui64(18446744073709551615, 0), true); + assert_eq!(gt_ui64(18446744073709551615, 1), true); + assert_eq!(gt_ui64(18446744073709551615, 2), true); + } + #[test] + fn test_269() { + assert_eq!(gt_ui64(18446744073709551615, 3), true); + assert_eq!(gt_ui64(18446744073709551615, 4), true); + assert_eq!(gt_ui64(18446744073709551615, 191084152064409600), true); + assert_eq!(gt_ui64(18446744073709551615, 11015955194427482112), true); + assert_eq!(gt_ui64(18446744073709551615, 16990600415051759616), true); + assert_eq!(gt_ui64(18446744073709551615, 18446744073709551614), true); + assert_eq!(gt_ui8(0, 0), false); + assert_eq!(gt_ui8(0, 1), false); + assert_eq!(gt_ui8(0, 2), false); + assert_eq!(gt_ui8(0, 3), false); + } + #[test] + fn test_270() { + assert_eq!(gt_ui8(0, 4), false); + assert_eq!(gt_ui8(0, 72), false); + assert_eq!(gt_ui8(0, 100), false); + assert_eq!(gt_ui8(0, 162), false); + assert_eq!(gt_ui8(0, 254), false); + assert_eq!(gt_ui8(0, 255), false); + assert_eq!(gt_ui8(1, 1), false); + assert_eq!(gt_ui8(1, 2), false); + assert_eq!(gt_ui8(1, 3), false); + assert_eq!(gt_ui8(1, 4), false); + } + #[test] + fn test_271() { + assert_eq!(gt_ui8(1, 72), false); + assert_eq!(gt_ui8(1, 100), false); + assert_eq!(gt_ui8(1, 162), false); + assert_eq!(gt_ui8(1, 254), false); + assert_eq!(gt_ui8(1, 255), false); + assert_eq!(gt_ui8(2, 2), false); + assert_eq!(gt_ui8(2, 3), false); + assert_eq!(gt_ui8(2, 4), false); + assert_eq!(gt_ui8(2, 72), false); + assert_eq!(gt_ui8(2, 100), false); + } + #[test] + fn test_272() { + assert_eq!(gt_ui8(2, 162), false); + assert_eq!(gt_ui8(2, 254), false); + assert_eq!(gt_ui8(2, 255), false); + assert_eq!(gt_ui8(3, 3), false); + assert_eq!(gt_ui8(3, 4), false); + assert_eq!(gt_ui8(3, 72), false); + assert_eq!(gt_ui8(3, 100), false); + assert_eq!(gt_ui8(3, 162), false); + assert_eq!(gt_ui8(3, 254), false); + assert_eq!(gt_ui8(3, 255), false); + } + #[test] + fn test_273() { + assert_eq!(gt_ui8(4, 4), false); + assert_eq!(gt_ui8(4, 72), false); + assert_eq!(gt_ui8(4, 100), false); + assert_eq!(gt_ui8(4, 162), false); + assert_eq!(gt_ui8(4, 254), false); + assert_eq!(gt_ui8(4, 255), false); + assert_eq!(gt_ui8(72, 72), false); + assert_eq!(gt_ui8(72, 100), false); + assert_eq!(gt_ui8(72, 162), false); + assert_eq!(gt_ui8(72, 254), false); + } + #[test] + fn test_274() { + assert_eq!(gt_ui8(72, 255), false); + assert_eq!(gt_ui8(100, 100), false); + assert_eq!(gt_ui8(100, 162), false); + assert_eq!(gt_ui8(100, 254), false); + assert_eq!(gt_ui8(100, 255), false); + assert_eq!(gt_ui8(162, 162), false); + assert_eq!(gt_ui8(162, 254), false); + assert_eq!(gt_ui8(162, 255), false); + assert_eq!(gt_ui8(254, 254), false); + assert_eq!(gt_ui8(254, 255), false); + } + #[test] + fn test_275() { + assert_eq!(gt_ui8(255, 255), false); + assert_eq!(gt_ui8(1, 0), true); + assert_eq!(gt_ui8(2, 0), true); + assert_eq!(gt_ui8(2, 1), true); + assert_eq!(gt_ui8(3, 0), true); + assert_eq!(gt_ui8(3, 1), true); + assert_eq!(gt_ui8(3, 2), true); + assert_eq!(gt_ui8(4, 0), true); + assert_eq!(gt_ui8(4, 1), true); + assert_eq!(gt_ui8(4, 2), true); + } + #[test] + fn test_276() { + assert_eq!(gt_ui8(4, 3), true); + assert_eq!(gt_ui8(72, 0), true); + assert_eq!(gt_ui8(72, 1), true); + assert_eq!(gt_ui8(72, 2), true); + assert_eq!(gt_ui8(72, 3), true); + assert_eq!(gt_ui8(72, 4), true); + assert_eq!(gt_ui8(100, 0), true); + assert_eq!(gt_ui8(100, 1), true); + assert_eq!(gt_ui8(100, 2), true); + assert_eq!(gt_ui8(100, 3), true); + } + #[test] + fn test_277() { + assert_eq!(gt_ui8(100, 4), true); + assert_eq!(gt_ui8(100, 72), true); + assert_eq!(gt_ui8(162, 0), true); + assert_eq!(gt_ui8(162, 1), true); + assert_eq!(gt_ui8(162, 2), true); + assert_eq!(gt_ui8(162, 3), true); + assert_eq!(gt_ui8(162, 4), true); + assert_eq!(gt_ui8(162, 72), true); + assert_eq!(gt_ui8(162, 100), true); + assert_eq!(gt_ui8(254, 0), true); + } + #[test] + fn test_278() { + assert_eq!(gt_ui8(254, 1), true); + assert_eq!(gt_ui8(254, 2), true); + assert_eq!(gt_ui8(254, 3), true); + assert_eq!(gt_ui8(254, 4), true); + assert_eq!(gt_ui8(254, 72), true); + assert_eq!(gt_ui8(254, 100), true); + assert_eq!(gt_ui8(254, 162), true); + assert_eq!(gt_ui8(255, 0), true); + assert_eq!(gt_ui8(255, 1), true); + assert_eq!(gt_ui8(255, 2), true); + } + #[test] + fn test_279() { + assert_eq!(gt_ui8(255, 3), true); + assert_eq!(gt_ui8(255, 4), true); + assert_eq!(gt_ui8(255, 72), true); + assert_eq!(gt_ui8(255, 100), true); + assert_eq!(gt_ui8(255, 162), true); + assert_eq!(gt_ui8(255, 254), true); + assert_eq!(le_si16(-32767, -32768), false); + assert_eq!(le_si16(-32547, -32768), false); + assert_eq!(le_si16(-32547, -32767), false); + assert_eq!(le_si16(0, -32768), false); + } + #[test] + fn test_280() { + assert_eq!(le_si16(0, -32767), false); + assert_eq!(le_si16(0, -32547), false); + assert_eq!(le_si16(1, -32768), false); + assert_eq!(le_si16(1, -32767), false); + assert_eq!(le_si16(1, -32547), false); + assert_eq!(le_si16(1, 0), false); + assert_eq!(le_si16(2, -32768), false); + assert_eq!(le_si16(2, -32767), false); + assert_eq!(le_si16(2, -32547), false); + assert_eq!(le_si16(2, 0), false); + } + #[test] + fn test_281() { + assert_eq!(le_si16(2, 1), false); + assert_eq!(le_si16(3, -32768), false); + assert_eq!(le_si16(3, -32767), false); + assert_eq!(le_si16(3, -32547), false); + assert_eq!(le_si16(3, 0), false); + assert_eq!(le_si16(3, 1), false); + assert_eq!(le_si16(3, 2), false); + assert_eq!(le_si16(4, -32768), false); + assert_eq!(le_si16(4, -32767), false); + assert_eq!(le_si16(4, -32547), false); + } + #[test] + fn test_282() { + assert_eq!(le_si16(4, 0), false); + assert_eq!(le_si16(4, 1), false); + assert_eq!(le_si16(4, 2), false); + assert_eq!(le_si16(4, 3), false); + assert_eq!(le_si16(10486, -32768), false); + assert_eq!(le_si16(10486, -32767), false); + assert_eq!(le_si16(10486, -32547), false); + assert_eq!(le_si16(10486, 0), false); + assert_eq!(le_si16(10486, 1), false); + assert_eq!(le_si16(10486, 2), false); + } + #[test] + fn test_283() { + assert_eq!(le_si16(10486, 3), false); + assert_eq!(le_si16(10486, 4), false); + assert_eq!(le_si16(16514, -32768), false); + assert_eq!(le_si16(16514, -32767), false); + assert_eq!(le_si16(16514, -32547), false); + assert_eq!(le_si16(16514, 0), false); + assert_eq!(le_si16(16514, 1), false); + assert_eq!(le_si16(16514, 2), false); + assert_eq!(le_si16(16514, 3), false); + assert_eq!(le_si16(16514, 4), false); + } + #[test] + fn test_284() { + assert_eq!(le_si16(16514, 10486), false); + assert_eq!(le_si16(32766, -32768), false); + assert_eq!(le_si16(32766, -32767), false); + assert_eq!(le_si16(32766, -32547), false); + assert_eq!(le_si16(32766, 0), false); + assert_eq!(le_si16(32766, 1), false); + assert_eq!(le_si16(32766, 2), false); + assert_eq!(le_si16(32766, 3), false); + assert_eq!(le_si16(32766, 4), false); + assert_eq!(le_si16(32766, 10486), false); + } + #[test] + fn test_285() { + assert_eq!(le_si16(32766, 16514), false); + assert_eq!(le_si16(32767, -32768), false); + assert_eq!(le_si16(32767, -32767), false); + assert_eq!(le_si16(32767, -32547), false); + assert_eq!(le_si16(32767, 0), false); + assert_eq!(le_si16(32767, 1), false); + assert_eq!(le_si16(32767, 2), false); + assert_eq!(le_si16(32767, 3), false); + assert_eq!(le_si16(32767, 4), false); + assert_eq!(le_si16(32767, 10486), false); + } + #[test] + fn test_286() { + assert_eq!(le_si16(32767, 16514), false); + assert_eq!(le_si16(32767, 32766), false); + assert_eq!(le_si16(-32768, -32768), true); + assert_eq!(le_si16(-32768, -32767), true); + assert_eq!(le_si16(-32768, -32547), true); + assert_eq!(le_si16(-32768, 0), true); + assert_eq!(le_si16(-32768, 1), true); + assert_eq!(le_si16(-32768, 2), true); + assert_eq!(le_si16(-32768, 3), true); + assert_eq!(le_si16(-32768, 4), true); + } + #[test] + fn test_287() { + assert_eq!(le_si16(-32768, 10486), true); + assert_eq!(le_si16(-32768, 16514), true); + assert_eq!(le_si16(-32768, 32766), true); + assert_eq!(le_si16(-32768, 32767), true); + assert_eq!(le_si16(-32767, -32767), true); + assert_eq!(le_si16(-32767, -32547), true); + assert_eq!(le_si16(-32767, 0), true); + assert_eq!(le_si16(-32767, 1), true); + assert_eq!(le_si16(-32767, 2), true); + assert_eq!(le_si16(-32767, 3), true); + } + #[test] + fn test_288() { + assert_eq!(le_si16(-32767, 4), true); + assert_eq!(le_si16(-32767, 10486), true); + assert_eq!(le_si16(-32767, 16514), true); + assert_eq!(le_si16(-32767, 32766), true); + assert_eq!(le_si16(-32767, 32767), true); + assert_eq!(le_si16(-32547, -32547), true); + assert_eq!(le_si16(-32547, 0), true); + assert_eq!(le_si16(-32547, 1), true); + assert_eq!(le_si16(-32547, 2), true); + assert_eq!(le_si16(-32547, 3), true); + } + #[test] + fn test_289() { + assert_eq!(le_si16(-32547, 4), true); + assert_eq!(le_si16(-32547, 10486), true); + assert_eq!(le_si16(-32547, 16514), true); + assert_eq!(le_si16(-32547, 32766), true); + assert_eq!(le_si16(-32547, 32767), true); + assert_eq!(le_si16(0, 0), true); + assert_eq!(le_si16(0, 1), true); + assert_eq!(le_si16(0, 2), true); + assert_eq!(le_si16(0, 3), true); + assert_eq!(le_si16(0, 4), true); + } + #[test] + fn test_290() { + assert_eq!(le_si16(0, 10486), true); + assert_eq!(le_si16(0, 16514), true); + assert_eq!(le_si16(0, 32766), true); + assert_eq!(le_si16(0, 32767), true); + assert_eq!(le_si16(1, 1), true); + assert_eq!(le_si16(1, 2), true); + assert_eq!(le_si16(1, 3), true); + assert_eq!(le_si16(1, 4), true); + assert_eq!(le_si16(1, 10486), true); + assert_eq!(le_si16(1, 16514), true); + } + #[test] + fn test_291() { + assert_eq!(le_si16(1, 32766), true); + assert_eq!(le_si16(1, 32767), true); + assert_eq!(le_si16(2, 2), true); + assert_eq!(le_si16(2, 3), true); + assert_eq!(le_si16(2, 4), true); + assert_eq!(le_si16(2, 10486), true); + assert_eq!(le_si16(2, 16514), true); + assert_eq!(le_si16(2, 32766), true); + assert_eq!(le_si16(2, 32767), true); + assert_eq!(le_si16(3, 3), true); + } + #[test] + fn test_292() { + assert_eq!(le_si16(3, 4), true); + assert_eq!(le_si16(3, 10486), true); + assert_eq!(le_si16(3, 16514), true); + assert_eq!(le_si16(3, 32766), true); + assert_eq!(le_si16(3, 32767), true); + assert_eq!(le_si16(4, 4), true); + assert_eq!(le_si16(4, 10486), true); + assert_eq!(le_si16(4, 16514), true); + assert_eq!(le_si16(4, 32766), true); + assert_eq!(le_si16(4, 32767), true); + } + #[test] + fn test_293() { + assert_eq!(le_si16(10486, 10486), true); + assert_eq!(le_si16(10486, 16514), true); + assert_eq!(le_si16(10486, 32766), true); + assert_eq!(le_si16(10486, 32767), true); + assert_eq!(le_si16(16514, 16514), true); + assert_eq!(le_si16(16514, 32766), true); + assert_eq!(le_si16(16514, 32767), true); + assert_eq!(le_si16(32766, 32766), true); + assert_eq!(le_si16(32766, 32767), true); + assert_eq!(le_si16(32767, 32767), true); + } + #[test] + fn test_294() { + assert_eq!(le_si32(-2147483647, -2147483648), false); + assert_eq!(le_si32(-1713183800, -2147483648), false); + assert_eq!(le_si32(-1713183800, -2147483647), false); + assert_eq!(le_si32(-1252582164, -2147483648), false); + assert_eq!(le_si32(-1252582164, -2147483647), false); + assert_eq!(le_si32(-1252582164, -1713183800), false); + assert_eq!(le_si32(-1035405763, -2147483648), false); + assert_eq!(le_si32(-1035405763, -2147483647), false); + assert_eq!(le_si32(-1035405763, -1713183800), false); + assert_eq!(le_si32(-1035405763, -1252582164), false); + } + #[test] + fn test_295() { + assert_eq!(le_si32(0, -2147483648), false); + assert_eq!(le_si32(0, -2147483647), false); + assert_eq!(le_si32(0, -1713183800), false); + assert_eq!(le_si32(0, -1252582164), false); + assert_eq!(le_si32(0, -1035405763), false); + assert_eq!(le_si32(1, -2147483648), false); + assert_eq!(le_si32(1, -2147483647), false); + assert_eq!(le_si32(1, -1713183800), false); + assert_eq!(le_si32(1, -1252582164), false); + assert_eq!(le_si32(1, -1035405763), false); + } + #[test] + fn test_296() { + assert_eq!(le_si32(1, 0), false); + assert_eq!(le_si32(2, -2147483648), false); + assert_eq!(le_si32(2, -2147483647), false); + assert_eq!(le_si32(2, -1713183800), false); + assert_eq!(le_si32(2, -1252582164), false); + assert_eq!(le_si32(2, -1035405763), false); + assert_eq!(le_si32(2, 0), false); + assert_eq!(le_si32(2, 1), false); + assert_eq!(le_si32(3, -2147483648), false); + assert_eq!(le_si32(3, -2147483647), false); + } + #[test] + fn test_297() { + assert_eq!(le_si32(3, -1713183800), false); + assert_eq!(le_si32(3, -1252582164), false); + assert_eq!(le_si32(3, -1035405763), false); + assert_eq!(le_si32(3, 0), false); + assert_eq!(le_si32(3, 1), false); + assert_eq!(le_si32(3, 2), false); + assert_eq!(le_si32(4, -2147483648), false); + assert_eq!(le_si32(4, -2147483647), false); + assert_eq!(le_si32(4, -1713183800), false); + assert_eq!(le_si32(4, -1252582164), false); + } + #[test] + fn test_298() { + assert_eq!(le_si32(4, -1035405763), false); + assert_eq!(le_si32(4, 0), false); + assert_eq!(le_si32(4, 1), false); + assert_eq!(le_si32(4, 2), false); + assert_eq!(le_si32(4, 3), false); + assert_eq!(le_si32(2147483646, -2147483648), false); + assert_eq!(le_si32(2147483646, -2147483647), false); + assert_eq!(le_si32(2147483646, -1713183800), false); + assert_eq!(le_si32(2147483646, -1252582164), false); + assert_eq!(le_si32(2147483646, -1035405763), false); + } + #[test] + fn test_299() { + assert_eq!(le_si32(2147483646, 0), false); + assert_eq!(le_si32(2147483646, 1), false); + assert_eq!(le_si32(2147483646, 2), false); + assert_eq!(le_si32(2147483646, 3), false); + assert_eq!(le_si32(2147483646, 4), false); + assert_eq!(le_si32(2147483647, -2147483648), false); + assert_eq!(le_si32(2147483647, -2147483647), false); + assert_eq!(le_si32(2147483647, -1713183800), false); + assert_eq!(le_si32(2147483647, -1252582164), false); + assert_eq!(le_si32(2147483647, -1035405763), false); + } + #[test] + fn test_300() { + assert_eq!(le_si32(2147483647, 0), false); + assert_eq!(le_si32(2147483647, 1), false); + assert_eq!(le_si32(2147483647, 2), false); + assert_eq!(le_si32(2147483647, 3), false); + assert_eq!(le_si32(2147483647, 4), false); + assert_eq!(le_si32(2147483647, 2147483646), false); + assert_eq!(le_si32(-2147483648, -2147483648), true); + assert_eq!(le_si32(-2147483648, -2147483647), true); + assert_eq!(le_si32(-2147483648, -1713183800), true); + assert_eq!(le_si32(-2147483648, -1252582164), true); + } + #[test] + fn test_301() { + assert_eq!(le_si32(-2147483648, -1035405763), true); + assert_eq!(le_si32(-2147483648, 0), true); + assert_eq!(le_si32(-2147483648, 1), true); + assert_eq!(le_si32(-2147483648, 2), true); + assert_eq!(le_si32(-2147483648, 3), true); + assert_eq!(le_si32(-2147483648, 4), true); + assert_eq!(le_si32(-2147483648, 2147483646), true); + assert_eq!(le_si32(-2147483648, 2147483647), true); + assert_eq!(le_si32(-2147483647, -2147483647), true); + assert_eq!(le_si32(-2147483647, -1713183800), true); + } + #[test] + fn test_302() { + assert_eq!(le_si32(-2147483647, -1252582164), true); + assert_eq!(le_si32(-2147483647, -1035405763), true); + assert_eq!(le_si32(-2147483647, 0), true); + assert_eq!(le_si32(-2147483647, 1), true); + assert_eq!(le_si32(-2147483647, 2), true); + assert_eq!(le_si32(-2147483647, 3), true); + assert_eq!(le_si32(-2147483647, 4), true); + assert_eq!(le_si32(-2147483647, 2147483646), true); + assert_eq!(le_si32(-2147483647, 2147483647), true); + assert_eq!(le_si32(-1713183800, -1713183800), true); + } + #[test] + fn test_303() { + assert_eq!(le_si32(-1713183800, -1252582164), true); + assert_eq!(le_si32(-1713183800, -1035405763), true); + assert_eq!(le_si32(-1713183800, 0), true); + assert_eq!(le_si32(-1713183800, 1), true); + assert_eq!(le_si32(-1713183800, 2), true); + assert_eq!(le_si32(-1713183800, 3), true); + assert_eq!(le_si32(-1713183800, 4), true); + assert_eq!(le_si32(-1713183800, 2147483646), true); + assert_eq!(le_si32(-1713183800, 2147483647), true); + assert_eq!(le_si32(-1252582164, -1252582164), true); + } + #[test] + fn test_304() { + assert_eq!(le_si32(-1252582164, -1035405763), true); + assert_eq!(le_si32(-1252582164, 0), true); + assert_eq!(le_si32(-1252582164, 1), true); + assert_eq!(le_si32(-1252582164, 2), true); + assert_eq!(le_si32(-1252582164, 3), true); + assert_eq!(le_si32(-1252582164, 4), true); + assert_eq!(le_si32(-1252582164, 2147483646), true); + assert_eq!(le_si32(-1252582164, 2147483647), true); + assert_eq!(le_si32(-1035405763, -1035405763), true); + assert_eq!(le_si32(-1035405763, 0), true); + } + #[test] + fn test_305() { + assert_eq!(le_si32(-1035405763, 1), true); + assert_eq!(le_si32(-1035405763, 2), true); + assert_eq!(le_si32(-1035405763, 3), true); + assert_eq!(le_si32(-1035405763, 4), true); + assert_eq!(le_si32(-1035405763, 2147483646), true); + assert_eq!(le_si32(-1035405763, 2147483647), true); + assert_eq!(le_si32(0, 0), true); + assert_eq!(le_si32(0, 1), true); + assert_eq!(le_si32(0, 2), true); + assert_eq!(le_si32(0, 3), true); + } + #[test] + fn test_306() { + assert_eq!(le_si32(0, 4), true); + assert_eq!(le_si32(0, 2147483646), true); + assert_eq!(le_si32(0, 2147483647), true); + assert_eq!(le_si32(1, 1), true); + assert_eq!(le_si32(1, 2), true); + assert_eq!(le_si32(1, 3), true); + assert_eq!(le_si32(1, 4), true); + assert_eq!(le_si32(1, 2147483646), true); + assert_eq!(le_si32(1, 2147483647), true); + assert_eq!(le_si32(2, 2), true); + } + #[test] + fn test_307() { + assert_eq!(le_si32(2, 3), true); + assert_eq!(le_si32(2, 4), true); + assert_eq!(le_si32(2, 2147483646), true); + assert_eq!(le_si32(2, 2147483647), true); + assert_eq!(le_si32(3, 3), true); + assert_eq!(le_si32(3, 4), true); + assert_eq!(le_si32(3, 2147483646), true); + assert_eq!(le_si32(3, 2147483647), true); + assert_eq!(le_si32(4, 4), true); + assert_eq!(le_si32(4, 2147483646), true); + } + #[test] + fn test_308() { + assert_eq!(le_si32(4, 2147483647), true); + assert_eq!(le_si32(2147483646, 2147483646), true); + assert_eq!(le_si32(2147483646, 2147483647), true); + assert_eq!(le_si32(2147483647, 2147483647), true); + assert_eq!(le_si64(-9223372036854775807, -9223372036854775808), false); + assert_eq!(le_si64(-1741927215160008704, -9223372036854775808), false); + assert_eq!(le_si64(-1741927215160008704, -9223372036854775807), false); + assert_eq!(le_si64(-1328271339354574848, -9223372036854775808), false); + assert_eq!(le_si64(-1328271339354574848, -9223372036854775807), false); + assert_eq!(le_si64(-1328271339354574848, -1741927215160008704), false); + } + #[test] + fn test_309() { + assert_eq!(le_si64(0, -9223372036854775808), false); + assert_eq!(le_si64(0, -9223372036854775807), false); + assert_eq!(le_si64(0, -1741927215160008704), false); + assert_eq!(le_si64(0, -1328271339354574848), false); + assert_eq!(le_si64(1, -9223372036854775808), false); + assert_eq!(le_si64(1, -9223372036854775807), false); + assert_eq!(le_si64(1, -1741927215160008704), false); + assert_eq!(le_si64(1, -1328271339354574848), false); + assert_eq!(le_si64(1, 0), false); + assert_eq!(le_si64(2, -9223372036854775808), false); + } + #[test] + fn test_310() { + assert_eq!(le_si64(2, -9223372036854775807), false); + assert_eq!(le_si64(2, -1741927215160008704), false); + assert_eq!(le_si64(2, -1328271339354574848), false); + assert_eq!(le_si64(2, 0), false); + assert_eq!(le_si64(2, 1), false); + assert_eq!(le_si64(3, -9223372036854775808), false); + assert_eq!(le_si64(3, -9223372036854775807), false); + assert_eq!(le_si64(3, -1741927215160008704), false); + assert_eq!(le_si64(3, -1328271339354574848), false); + assert_eq!(le_si64(3, 0), false); + } + #[test] + fn test_311() { + assert_eq!(le_si64(3, 1), false); + assert_eq!(le_si64(3, 2), false); + assert_eq!(le_si64(4, -9223372036854775808), false); + assert_eq!(le_si64(4, -9223372036854775807), false); + assert_eq!(le_si64(4, -1741927215160008704), false); + assert_eq!(le_si64(4, -1328271339354574848), false); + assert_eq!(le_si64(4, 0), false); + assert_eq!(le_si64(4, 1), false); + assert_eq!(le_si64(4, 2), false); + assert_eq!(le_si64(4, 3), false); + } + #[test] + fn test_312() { + assert_eq!(le_si64(5577148965131116544, -9223372036854775808), false); + assert_eq!(le_si64(5577148965131116544, -9223372036854775807), false); + assert_eq!(le_si64(5577148965131116544, -1741927215160008704), false); + assert_eq!(le_si64(5577148965131116544, -1328271339354574848), false); + assert_eq!(le_si64(5577148965131116544, 0), false); + assert_eq!(le_si64(5577148965131116544, 1), false); + assert_eq!(le_si64(5577148965131116544, 2), false); + assert_eq!(le_si64(5577148965131116544, 3), false); + assert_eq!(le_si64(5577148965131116544, 4), false); + assert_eq!(le_si64(9223372036854775806, -9223372036854775808), false); + } + #[test] + fn test_313() { + assert_eq!(le_si64(9223372036854775806, -9223372036854775807), false); + assert_eq!(le_si64(9223372036854775806, -1741927215160008704), false); + assert_eq!(le_si64(9223372036854775806, -1328271339354574848), false); + assert_eq!(le_si64(9223372036854775806, 0), false); + assert_eq!(le_si64(9223372036854775806, 1), false); + assert_eq!(le_si64(9223372036854775806, 2), false); + assert_eq!(le_si64(9223372036854775806, 3), false); + assert_eq!(le_si64(9223372036854775806, 4), false); + assert_eq!(le_si64(9223372036854775806, 5577148965131116544), false); + assert_eq!(le_si64(9223372036854775807, -9223372036854775808), false); + } + #[test] + fn test_314() { + assert_eq!(le_si64(9223372036854775807, -9223372036854775807), false); + assert_eq!(le_si64(9223372036854775807, -1741927215160008704), false); + assert_eq!(le_si64(9223372036854775807, -1328271339354574848), false); + assert_eq!(le_si64(9223372036854775807, 0), false); + assert_eq!(le_si64(9223372036854775807, 1), false); + assert_eq!(le_si64(9223372036854775807, 2), false); + assert_eq!(le_si64(9223372036854775807, 3), false); + assert_eq!(le_si64(9223372036854775807, 4), false); + assert_eq!(le_si64(9223372036854775807, 5577148965131116544), false); + assert_eq!(le_si64(9223372036854775807, 9223372036854775806), false); + } + #[test] + fn test_315() { + assert_eq!(le_si64(-9223372036854775808, -9223372036854775808), true); + assert_eq!(le_si64(-9223372036854775808, -9223372036854775807), true); + assert_eq!(le_si64(-9223372036854775808, -1741927215160008704), true); + assert_eq!(le_si64(-9223372036854775808, -1328271339354574848), true); + assert_eq!(le_si64(-9223372036854775808, 0), true); + assert_eq!(le_si64(-9223372036854775808, 1), true); + assert_eq!(le_si64(-9223372036854775808, 2), true); + assert_eq!(le_si64(-9223372036854775808, 3), true); + assert_eq!(le_si64(-9223372036854775808, 4), true); + assert_eq!(le_si64(-9223372036854775808, 5577148965131116544), true); + } + #[test] + fn test_316() { + assert_eq!(le_si64(-9223372036854775808, 9223372036854775806), true); + assert_eq!(le_si64(-9223372036854775808, 9223372036854775807), true); + assert_eq!(le_si64(-9223372036854775807, -9223372036854775807), true); + assert_eq!(le_si64(-9223372036854775807, -1741927215160008704), true); + assert_eq!(le_si64(-9223372036854775807, -1328271339354574848), true); + assert_eq!(le_si64(-9223372036854775807, 0), true); + assert_eq!(le_si64(-9223372036854775807, 1), true); + assert_eq!(le_si64(-9223372036854775807, 2), true); + assert_eq!(le_si64(-9223372036854775807, 3), true); + assert_eq!(le_si64(-9223372036854775807, 4), true); + } + #[test] + fn test_317() { + assert_eq!(le_si64(-9223372036854775807, 5577148965131116544), true); + assert_eq!(le_si64(-9223372036854775807, 9223372036854775806), true); + assert_eq!(le_si64(-9223372036854775807, 9223372036854775807), true); + assert_eq!(le_si64(-1741927215160008704, -1741927215160008704), true); + assert_eq!(le_si64(-1741927215160008704, -1328271339354574848), true); + assert_eq!(le_si64(-1741927215160008704, 0), true); + assert_eq!(le_si64(-1741927215160008704, 1), true); + assert_eq!(le_si64(-1741927215160008704, 2), true); + assert_eq!(le_si64(-1741927215160008704, 3), true); + assert_eq!(le_si64(-1741927215160008704, 4), true); + } + #[test] + fn test_318() { + assert_eq!(le_si64(-1741927215160008704, 5577148965131116544), true); + assert_eq!(le_si64(-1741927215160008704, 9223372036854775806), true); + assert_eq!(le_si64(-1741927215160008704, 9223372036854775807), true); + assert_eq!(le_si64(-1328271339354574848, -1328271339354574848), true); + assert_eq!(le_si64(-1328271339354574848, 0), true); + assert_eq!(le_si64(-1328271339354574848, 1), true); + assert_eq!(le_si64(-1328271339354574848, 2), true); + assert_eq!(le_si64(-1328271339354574848, 3), true); + assert_eq!(le_si64(-1328271339354574848, 4), true); + assert_eq!(le_si64(-1328271339354574848, 5577148965131116544), true); + } + #[test] + fn test_319() { + assert_eq!(le_si64(-1328271339354574848, 9223372036854775806), true); + assert_eq!(le_si64(-1328271339354574848, 9223372036854775807), true); + assert_eq!(le_si64(0, 0), true); + assert_eq!(le_si64(0, 1), true); + assert_eq!(le_si64(0, 2), true); + assert_eq!(le_si64(0, 3), true); + assert_eq!(le_si64(0, 4), true); + assert_eq!(le_si64(0, 5577148965131116544), true); + assert_eq!(le_si64(0, 9223372036854775806), true); + assert_eq!(le_si64(0, 9223372036854775807), true); + } + #[test] + fn test_320() { + assert_eq!(le_si64(1, 1), true); + assert_eq!(le_si64(1, 2), true); + assert_eq!(le_si64(1, 3), true); + assert_eq!(le_si64(1, 4), true); + assert_eq!(le_si64(1, 5577148965131116544), true); + assert_eq!(le_si64(1, 9223372036854775806), true); + assert_eq!(le_si64(1, 9223372036854775807), true); + assert_eq!(le_si64(2, 2), true); + assert_eq!(le_si64(2, 3), true); + assert_eq!(le_si64(2, 4), true); + } + #[test] + fn test_321() { + assert_eq!(le_si64(2, 5577148965131116544), true); + assert_eq!(le_si64(2, 9223372036854775806), true); + assert_eq!(le_si64(2, 9223372036854775807), true); + assert_eq!(le_si64(3, 3), true); + assert_eq!(le_si64(3, 4), true); + assert_eq!(le_si64(3, 5577148965131116544), true); + assert_eq!(le_si64(3, 9223372036854775806), true); + assert_eq!(le_si64(3, 9223372036854775807), true); + assert_eq!(le_si64(4, 4), true); + assert_eq!(le_si64(4, 5577148965131116544), true); + } + #[test] + fn test_322() { + assert_eq!(le_si64(4, 9223372036854775806), true); + assert_eq!(le_si64(4, 9223372036854775807), true); + assert_eq!(le_si64(5577148965131116544, 5577148965131116544), true); + assert_eq!(le_si64(5577148965131116544, 9223372036854775806), true); + assert_eq!(le_si64(5577148965131116544, 9223372036854775807), true); + assert_eq!(le_si64(9223372036854775806, 9223372036854775806), true); + assert_eq!(le_si64(9223372036854775806, 9223372036854775807), true); + assert_eq!(le_si64(9223372036854775807, 9223372036854775807), true); + assert_eq!(le_si8(-127, -128), false); + assert_eq!(le_si8(0, -128), false); + } + #[test] + fn test_323() { + assert_eq!(le_si8(0, -127), false); + assert_eq!(le_si8(1, -128), false); + assert_eq!(le_si8(1, -127), false); + assert_eq!(le_si8(1, 0), false); + assert_eq!(le_si8(2, -128), false); + assert_eq!(le_si8(2, -127), false); + assert_eq!(le_si8(2, 0), false); + assert_eq!(le_si8(2, 1), false); + assert_eq!(le_si8(3, -128), false); + assert_eq!(le_si8(3, -127), false); + } + #[test] + fn test_324() { + assert_eq!(le_si8(3, 0), false); + assert_eq!(le_si8(3, 1), false); + assert_eq!(le_si8(3, 2), false); + assert_eq!(le_si8(4, -128), false); + assert_eq!(le_si8(4, -127), false); + assert_eq!(le_si8(4, 0), false); + assert_eq!(le_si8(4, 1), false); + assert_eq!(le_si8(4, 2), false); + assert_eq!(le_si8(4, 3), false); + assert_eq!(le_si8(16, -128), false); + } + #[test] + fn test_325() { + assert_eq!(le_si8(16, -127), false); + assert_eq!(le_si8(16, 0), false); + assert_eq!(le_si8(16, 1), false); + assert_eq!(le_si8(16, 2), false); + assert_eq!(le_si8(16, 3), false); + assert_eq!(le_si8(16, 4), false); + assert_eq!(le_si8(126, -128), false); + assert_eq!(le_si8(126, -127), false); + assert_eq!(le_si8(126, 0), false); + assert_eq!(le_si8(126, 1), false); + } + #[test] + fn test_326() { + assert_eq!(le_si8(126, 2), false); + assert_eq!(le_si8(126, 3), false); + assert_eq!(le_si8(126, 4), false); + assert_eq!(le_si8(126, 16), false); + assert_eq!(le_si8(127, -128), false); + assert_eq!(le_si8(127, -127), false); + assert_eq!(le_si8(127, 0), false); + assert_eq!(le_si8(127, 1), false); + assert_eq!(le_si8(127, 2), false); + assert_eq!(le_si8(127, 3), false); + } + #[test] + fn test_327() { + assert_eq!(le_si8(127, 4), false); + assert_eq!(le_si8(127, 16), false); + assert_eq!(le_si8(127, 126), false); + assert_eq!(le_si8(-128, -128), true); + assert_eq!(le_si8(-128, -127), true); + assert_eq!(le_si8(-128, 0), true); + assert_eq!(le_si8(-128, 1), true); + assert_eq!(le_si8(-128, 2), true); + assert_eq!(le_si8(-128, 3), true); + assert_eq!(le_si8(-128, 4), true); + } + #[test] + fn test_328() { + assert_eq!(le_si8(-128, 16), true); + assert_eq!(le_si8(-128, 126), true); + assert_eq!(le_si8(-128, 127), true); + assert_eq!(le_si8(-127, -127), true); + assert_eq!(le_si8(-127, 0), true); + assert_eq!(le_si8(-127, 1), true); + assert_eq!(le_si8(-127, 2), true); + assert_eq!(le_si8(-127, 3), true); + assert_eq!(le_si8(-127, 4), true); + assert_eq!(le_si8(-127, 16), true); + } + #[test] + fn test_329() { + assert_eq!(le_si8(-127, 126), true); + assert_eq!(le_si8(-127, 127), true); + assert_eq!(le_si8(0, 0), true); + assert_eq!(le_si8(0, 1), true); + assert_eq!(le_si8(0, 2), true); + assert_eq!(le_si8(0, 3), true); + assert_eq!(le_si8(0, 4), true); + assert_eq!(le_si8(0, 16), true); + assert_eq!(le_si8(0, 126), true); + assert_eq!(le_si8(0, 127), true); + } + #[test] + fn test_330() { + assert_eq!(le_si8(1, 1), true); + assert_eq!(le_si8(1, 2), true); + assert_eq!(le_si8(1, 3), true); + assert_eq!(le_si8(1, 4), true); + assert_eq!(le_si8(1, 16), true); + assert_eq!(le_si8(1, 126), true); + assert_eq!(le_si8(1, 127), true); + assert_eq!(le_si8(2, 2), true); + assert_eq!(le_si8(2, 3), true); + assert_eq!(le_si8(2, 4), true); + } + #[test] + fn test_331() { + assert_eq!(le_si8(2, 16), true); + assert_eq!(le_si8(2, 126), true); + assert_eq!(le_si8(2, 127), true); + assert_eq!(le_si8(3, 3), true); + assert_eq!(le_si8(3, 4), true); + assert_eq!(le_si8(3, 16), true); + assert_eq!(le_si8(3, 126), true); + assert_eq!(le_si8(3, 127), true); + assert_eq!(le_si8(4, 4), true); + assert_eq!(le_si8(4, 16), true); + } + #[test] + fn test_332() { + assert_eq!(le_si8(4, 126), true); + assert_eq!(le_si8(4, 127), true); + assert_eq!(le_si8(16, 16), true); + assert_eq!(le_si8(16, 126), true); + assert_eq!(le_si8(16, 127), true); + assert_eq!(le_si8(126, 126), true); + assert_eq!(le_si8(126, 127), true); + assert_eq!(le_si8(127, 127), true); + assert_eq!(le_ui16(1, 0), false); + assert_eq!(le_ui16(2, 0), false); + } + #[test] + fn test_333() { + assert_eq!(le_ui16(2, 1), false); + assert_eq!(le_ui16(3, 0), false); + assert_eq!(le_ui16(3, 1), false); + assert_eq!(le_ui16(3, 2), false); + assert_eq!(le_ui16(4, 0), false); + assert_eq!(le_ui16(4, 1), false); + assert_eq!(le_ui16(4, 2), false); + assert_eq!(le_ui16(4, 3), false); + assert_eq!(le_ui16(1717, 0), false); + assert_eq!(le_ui16(1717, 1), false); + } + #[test] + fn test_334() { + assert_eq!(le_ui16(1717, 2), false); + assert_eq!(le_ui16(1717, 3), false); + assert_eq!(le_ui16(1717, 4), false); + assert_eq!(le_ui16(17988, 0), false); + assert_eq!(le_ui16(17988, 1), false); + assert_eq!(le_ui16(17988, 2), false); + assert_eq!(le_ui16(17988, 3), false); + assert_eq!(le_ui16(17988, 4), false); + assert_eq!(le_ui16(17988, 1717), false); + assert_eq!(le_ui16(65096, 0), false); + } + #[test] + fn test_335() { + assert_eq!(le_ui16(65096, 1), false); + assert_eq!(le_ui16(65096, 2), false); + assert_eq!(le_ui16(65096, 3), false); + assert_eq!(le_ui16(65096, 4), false); + assert_eq!(le_ui16(65096, 1717), false); + assert_eq!(le_ui16(65096, 17988), false); + assert_eq!(le_ui16(65534, 0), false); + assert_eq!(le_ui16(65534, 1), false); + assert_eq!(le_ui16(65534, 2), false); + assert_eq!(le_ui16(65534, 3), false); + } + #[test] + fn test_336() { + assert_eq!(le_ui16(65534, 4), false); + assert_eq!(le_ui16(65534, 1717), false); + assert_eq!(le_ui16(65534, 17988), false); + assert_eq!(le_ui16(65534, 65096), false); + assert_eq!(le_ui16(65535, 0), false); + assert_eq!(le_ui16(65535, 1), false); + assert_eq!(le_ui16(65535, 2), false); + assert_eq!(le_ui16(65535, 3), false); + assert_eq!(le_ui16(65535, 4), false); + assert_eq!(le_ui16(65535, 1717), false); + } + #[test] + fn test_337() { + assert_eq!(le_ui16(65535, 17988), false); + assert_eq!(le_ui16(65535, 65096), false); + assert_eq!(le_ui16(65535, 65534), false); + assert_eq!(le_ui16(0, 0), true); + assert_eq!(le_ui16(0, 1), true); + assert_eq!(le_ui16(0, 2), true); + assert_eq!(le_ui16(0, 3), true); + assert_eq!(le_ui16(0, 4), true); + assert_eq!(le_ui16(0, 1717), true); + assert_eq!(le_ui16(0, 17988), true); + } + #[test] + fn test_338() { + assert_eq!(le_ui16(0, 65096), true); + assert_eq!(le_ui16(0, 65534), true); + assert_eq!(le_ui16(0, 65535), true); + assert_eq!(le_ui16(1, 1), true); + assert_eq!(le_ui16(1, 2), true); + assert_eq!(le_ui16(1, 3), true); + assert_eq!(le_ui16(1, 4), true); + assert_eq!(le_ui16(1, 1717), true); + assert_eq!(le_ui16(1, 17988), true); + assert_eq!(le_ui16(1, 65096), true); + } + #[test] + fn test_339() { + assert_eq!(le_ui16(1, 65534), true); + assert_eq!(le_ui16(1, 65535), true); + assert_eq!(le_ui16(2, 2), true); + assert_eq!(le_ui16(2, 3), true); + assert_eq!(le_ui16(2, 4), true); + assert_eq!(le_ui16(2, 1717), true); + assert_eq!(le_ui16(2, 17988), true); + assert_eq!(le_ui16(2, 65096), true); + assert_eq!(le_ui16(2, 65534), true); + assert_eq!(le_ui16(2, 65535), true); + } + #[test] + fn test_340() { + assert_eq!(le_ui16(3, 3), true); + assert_eq!(le_ui16(3, 4), true); + assert_eq!(le_ui16(3, 1717), true); + assert_eq!(le_ui16(3, 17988), true); + assert_eq!(le_ui16(3, 65096), true); + assert_eq!(le_ui16(3, 65534), true); + assert_eq!(le_ui16(3, 65535), true); + assert_eq!(le_ui16(4, 4), true); + assert_eq!(le_ui16(4, 1717), true); + assert_eq!(le_ui16(4, 17988), true); + } + #[test] + fn test_341() { + assert_eq!(le_ui16(4, 65096), true); + assert_eq!(le_ui16(4, 65534), true); + assert_eq!(le_ui16(4, 65535), true); + assert_eq!(le_ui16(1717, 1717), true); + assert_eq!(le_ui16(1717, 17988), true); + assert_eq!(le_ui16(1717, 65096), true); + assert_eq!(le_ui16(1717, 65534), true); + assert_eq!(le_ui16(1717, 65535), true); + assert_eq!(le_ui16(17988, 17988), true); + assert_eq!(le_ui16(17988, 65096), true); + } + #[test] + fn test_342() { + assert_eq!(le_ui16(17988, 65534), true); + assert_eq!(le_ui16(17988, 65535), true); + assert_eq!(le_ui16(65096, 65096), true); + assert_eq!(le_ui16(65096, 65534), true); + assert_eq!(le_ui16(65096, 65535), true); + assert_eq!(le_ui16(65534, 65534), true); + assert_eq!(le_ui16(65534, 65535), true); + assert_eq!(le_ui16(65535, 65535), true); + assert_eq!(le_ui32(1, 0), false); + assert_eq!(le_ui32(2, 0), false); + } + #[test] + fn test_343() { + assert_eq!(le_ui32(2, 1), false); + assert_eq!(le_ui32(3, 0), false); + assert_eq!(le_ui32(3, 1), false); + assert_eq!(le_ui32(3, 2), false); + assert_eq!(le_ui32(4, 0), false); + assert_eq!(le_ui32(4, 1), false); + assert_eq!(le_ui32(4, 2), false); + assert_eq!(le_ui32(4, 3), false); + assert_eq!(le_ui32(2119154652, 0), false); + assert_eq!(le_ui32(2119154652, 1), false); + } + #[test] + fn test_344() { + assert_eq!(le_ui32(2119154652, 2), false); + assert_eq!(le_ui32(2119154652, 3), false); + assert_eq!(le_ui32(2119154652, 4), false); + assert_eq!(le_ui32(3002788344, 0), false); + assert_eq!(le_ui32(3002788344, 1), false); + assert_eq!(le_ui32(3002788344, 2), false); + assert_eq!(le_ui32(3002788344, 3), false); + assert_eq!(le_ui32(3002788344, 4), false); + assert_eq!(le_ui32(3002788344, 2119154652), false); + assert_eq!(le_ui32(3482297128, 0), false); + } + #[test] + fn test_345() { + assert_eq!(le_ui32(3482297128, 1), false); + assert_eq!(le_ui32(3482297128, 2), false); + assert_eq!(le_ui32(3482297128, 3), false); + assert_eq!(le_ui32(3482297128, 4), false); + assert_eq!(le_ui32(3482297128, 2119154652), false); + assert_eq!(le_ui32(3482297128, 3002788344), false); + assert_eq!(le_ui32(4294967294, 0), false); + assert_eq!(le_ui32(4294967294, 1), false); + assert_eq!(le_ui32(4294967294, 2), false); + assert_eq!(le_ui32(4294967294, 3), false); + } + #[test] + fn test_346() { + assert_eq!(le_ui32(4294967294, 4), false); + assert_eq!(le_ui32(4294967294, 2119154652), false); + assert_eq!(le_ui32(4294967294, 3002788344), false); + assert_eq!(le_ui32(4294967294, 3482297128), false); + assert_eq!(le_ui32(4294967295, 0), false); + assert_eq!(le_ui32(4294967295, 1), false); + assert_eq!(le_ui32(4294967295, 2), false); + assert_eq!(le_ui32(4294967295, 3), false); + assert_eq!(le_ui32(4294967295, 4), false); + assert_eq!(le_ui32(4294967295, 2119154652), false); + } + #[test] + fn test_347() { + assert_eq!(le_ui32(4294967295, 3002788344), false); + assert_eq!(le_ui32(4294967295, 3482297128), false); + assert_eq!(le_ui32(4294967295, 4294967294), false); + assert_eq!(le_ui32(0, 0), true); + assert_eq!(le_ui32(0, 1), true); + assert_eq!(le_ui32(0, 2), true); + assert_eq!(le_ui32(0, 3), true); + assert_eq!(le_ui32(0, 4), true); + assert_eq!(le_ui32(0, 2119154652), true); + assert_eq!(le_ui32(0, 3002788344), true); + } + #[test] + fn test_348() { + assert_eq!(le_ui32(0, 3482297128), true); + assert_eq!(le_ui32(0, 4294967294), true); + assert_eq!(le_ui32(0, 4294967295), true); + assert_eq!(le_ui32(1, 1), true); + assert_eq!(le_ui32(1, 2), true); + assert_eq!(le_ui32(1, 3), true); + assert_eq!(le_ui32(1, 4), true); + assert_eq!(le_ui32(1, 2119154652), true); + assert_eq!(le_ui32(1, 3002788344), true); + assert_eq!(le_ui32(1, 3482297128), true); + } + #[test] + fn test_349() { + assert_eq!(le_ui32(1, 4294967294), true); + assert_eq!(le_ui32(1, 4294967295), true); + assert_eq!(le_ui32(2, 2), true); + assert_eq!(le_ui32(2, 3), true); + assert_eq!(le_ui32(2, 4), true); + assert_eq!(le_ui32(2, 2119154652), true); + assert_eq!(le_ui32(2, 3002788344), true); + assert_eq!(le_ui32(2, 3482297128), true); + assert_eq!(le_ui32(2, 4294967294), true); + assert_eq!(le_ui32(2, 4294967295), true); + } + #[test] + fn test_350() { + assert_eq!(le_ui32(3, 3), true); + assert_eq!(le_ui32(3, 4), true); + assert_eq!(le_ui32(3, 2119154652), true); + assert_eq!(le_ui32(3, 3002788344), true); + assert_eq!(le_ui32(3, 3482297128), true); + assert_eq!(le_ui32(3, 4294967294), true); + assert_eq!(le_ui32(3, 4294967295), true); + assert_eq!(le_ui32(4, 4), true); + assert_eq!(le_ui32(4, 2119154652), true); + assert_eq!(le_ui32(4, 3002788344), true); + } + #[test] + fn test_351() { + assert_eq!(le_ui32(4, 3482297128), true); + assert_eq!(le_ui32(4, 4294967294), true); + assert_eq!(le_ui32(4, 4294967295), true); + assert_eq!(le_ui32(2119154652, 2119154652), true); + assert_eq!(le_ui32(2119154652, 3002788344), true); + assert_eq!(le_ui32(2119154652, 3482297128), true); + assert_eq!(le_ui32(2119154652, 4294967294), true); + assert_eq!(le_ui32(2119154652, 4294967295), true); + assert_eq!(le_ui32(3002788344, 3002788344), true); + assert_eq!(le_ui32(3002788344, 3482297128), true); + } + #[test] + fn test_352() { + assert_eq!(le_ui32(3002788344, 4294967294), true); + assert_eq!(le_ui32(3002788344, 4294967295), true); + assert_eq!(le_ui32(3482297128, 3482297128), true); + assert_eq!(le_ui32(3482297128, 4294967294), true); + assert_eq!(le_ui32(3482297128, 4294967295), true); + assert_eq!(le_ui32(4294967294, 4294967294), true); + assert_eq!(le_ui32(4294967294, 4294967295), true); + assert_eq!(le_ui32(4294967295, 4294967295), true); + assert_eq!(le_ui64(1, 0), false); + assert_eq!(le_ui64(2, 0), false); + } + #[test] + fn test_353() { + assert_eq!(le_ui64(2, 1), false); + assert_eq!(le_ui64(3, 0), false); + assert_eq!(le_ui64(3, 1), false); + assert_eq!(le_ui64(3, 2), false); + assert_eq!(le_ui64(4, 0), false); + assert_eq!(le_ui64(4, 1), false); + assert_eq!(le_ui64(4, 2), false); + assert_eq!(le_ui64(4, 3), false); + assert_eq!(le_ui64(191084152064409600, 0), false); + assert_eq!(le_ui64(191084152064409600, 1), false); + } + #[test] + fn test_354() { + assert_eq!(le_ui64(191084152064409600, 2), false); + assert_eq!(le_ui64(191084152064409600, 3), false); + assert_eq!(le_ui64(191084152064409600, 4), false); + assert_eq!(le_ui64(11015955194427482112, 0), false); + assert_eq!(le_ui64(11015955194427482112, 1), false); + assert_eq!(le_ui64(11015955194427482112, 2), false); + assert_eq!(le_ui64(11015955194427482112, 3), false); + assert_eq!(le_ui64(11015955194427482112, 4), false); + assert_eq!(le_ui64(11015955194427482112, 191084152064409600), false); + assert_eq!(le_ui64(16990600415051759616, 0), false); + } + #[test] + fn test_355() { + assert_eq!(le_ui64(16990600415051759616, 1), false); + assert_eq!(le_ui64(16990600415051759616, 2), false); + assert_eq!(le_ui64(16990600415051759616, 3), false); + assert_eq!(le_ui64(16990600415051759616, 4), false); + assert_eq!(le_ui64(16990600415051759616, 191084152064409600), false); + assert_eq!(le_ui64(16990600415051759616, 11015955194427482112), false); + assert_eq!(le_ui64(18446744073709551614, 0), false); + assert_eq!(le_ui64(18446744073709551614, 1), false); + assert_eq!(le_ui64(18446744073709551614, 2), false); + assert_eq!(le_ui64(18446744073709551614, 3), false); + } + #[test] + fn test_356() { + assert_eq!(le_ui64(18446744073709551614, 4), false); + assert_eq!(le_ui64(18446744073709551614, 191084152064409600), false); + assert_eq!(le_ui64(18446744073709551614, 11015955194427482112), false); + assert_eq!(le_ui64(18446744073709551614, 16990600415051759616), false); + assert_eq!(le_ui64(18446744073709551615, 0), false); + assert_eq!(le_ui64(18446744073709551615, 1), false); + assert_eq!(le_ui64(18446744073709551615, 2), false); + assert_eq!(le_ui64(18446744073709551615, 3), false); + assert_eq!(le_ui64(18446744073709551615, 4), false); + assert_eq!(le_ui64(18446744073709551615, 191084152064409600), false); + } + #[test] + fn test_357() { + assert_eq!(le_ui64(18446744073709551615, 11015955194427482112), false); + assert_eq!(le_ui64(18446744073709551615, 16990600415051759616), false); + assert_eq!(le_ui64(18446744073709551615, 18446744073709551614), false); + assert_eq!(le_ui64(0, 0), true); + assert_eq!(le_ui64(0, 1), true); + assert_eq!(le_ui64(0, 2), true); + assert_eq!(le_ui64(0, 3), true); + assert_eq!(le_ui64(0, 4), true); + assert_eq!(le_ui64(0, 191084152064409600), true); + assert_eq!(le_ui64(0, 11015955194427482112), true); + } + #[test] + fn test_358() { + assert_eq!(le_ui64(0, 16990600415051759616), true); + assert_eq!(le_ui64(0, 18446744073709551614), true); + assert_eq!(le_ui64(0, 18446744073709551615), true); + assert_eq!(le_ui64(1, 1), true); + assert_eq!(le_ui64(1, 2), true); + assert_eq!(le_ui64(1, 3), true); + assert_eq!(le_ui64(1, 4), true); + assert_eq!(le_ui64(1, 191084152064409600), true); + assert_eq!(le_ui64(1, 11015955194427482112), true); + assert_eq!(le_ui64(1, 16990600415051759616), true); + } + #[test] + fn test_359() { + assert_eq!(le_ui64(1, 18446744073709551614), true); + assert_eq!(le_ui64(1, 18446744073709551615), true); + assert_eq!(le_ui64(2, 2), true); + assert_eq!(le_ui64(2, 3), true); + assert_eq!(le_ui64(2, 4), true); + assert_eq!(le_ui64(2, 191084152064409600), true); + assert_eq!(le_ui64(2, 11015955194427482112), true); + assert_eq!(le_ui64(2, 16990600415051759616), true); + assert_eq!(le_ui64(2, 18446744073709551614), true); + assert_eq!(le_ui64(2, 18446744073709551615), true); + } + #[test] + fn test_360() { + assert_eq!(le_ui64(3, 3), true); + assert_eq!(le_ui64(3, 4), true); + assert_eq!(le_ui64(3, 191084152064409600), true); + assert_eq!(le_ui64(3, 11015955194427482112), true); + assert_eq!(le_ui64(3, 16990600415051759616), true); + assert_eq!(le_ui64(3, 18446744073709551614), true); + assert_eq!(le_ui64(3, 18446744073709551615), true); + assert_eq!(le_ui64(4, 4), true); + assert_eq!(le_ui64(4, 191084152064409600), true); + assert_eq!(le_ui64(4, 11015955194427482112), true); + } + #[test] + fn test_361() { + assert_eq!(le_ui64(4, 16990600415051759616), true); + assert_eq!(le_ui64(4, 18446744073709551614), true); + assert_eq!(le_ui64(4, 18446744073709551615), true); + assert_eq!(le_ui64(191084152064409600, 191084152064409600), true); + assert_eq!(le_ui64(191084152064409600, 11015955194427482112), true); + assert_eq!(le_ui64(191084152064409600, 16990600415051759616), true); + assert_eq!(le_ui64(191084152064409600, 18446744073709551614), true); + assert_eq!(le_ui64(191084152064409600, 18446744073709551615), true); + assert_eq!(le_ui64(11015955194427482112, 11015955194427482112), true); + assert_eq!(le_ui64(11015955194427482112, 16990600415051759616), true); + } + #[test] + fn test_362() { + assert_eq!(le_ui64(11015955194427482112, 18446744073709551614), true); + assert_eq!(le_ui64(11015955194427482112, 18446744073709551615), true); + assert_eq!(le_ui64(16990600415051759616, 16990600415051759616), true); + assert_eq!(le_ui64(16990600415051759616, 18446744073709551614), true); + assert_eq!(le_ui64(16990600415051759616, 18446744073709551615), true); + assert_eq!(le_ui64(18446744073709551614, 18446744073709551614), true); + assert_eq!(le_ui64(18446744073709551614, 18446744073709551615), true); + assert_eq!(le_ui64(18446744073709551615, 18446744073709551615), true); + assert_eq!(le_ui8(1, 0), false); + assert_eq!(le_ui8(2, 0), false); + } + #[test] + fn test_363() { + assert_eq!(le_ui8(2, 1), false); + assert_eq!(le_ui8(3, 0), false); + assert_eq!(le_ui8(3, 1), false); + assert_eq!(le_ui8(3, 2), false); + assert_eq!(le_ui8(4, 0), false); + assert_eq!(le_ui8(4, 1), false); + assert_eq!(le_ui8(4, 2), false); + assert_eq!(le_ui8(4, 3), false); + assert_eq!(le_ui8(72, 0), false); + assert_eq!(le_ui8(72, 1), false); + } + #[test] + fn test_364() { + assert_eq!(le_ui8(72, 2), false); + assert_eq!(le_ui8(72, 3), false); + assert_eq!(le_ui8(72, 4), false); + assert_eq!(le_ui8(100, 0), false); + assert_eq!(le_ui8(100, 1), false); + assert_eq!(le_ui8(100, 2), false); + assert_eq!(le_ui8(100, 3), false); + assert_eq!(le_ui8(100, 4), false); + assert_eq!(le_ui8(100, 72), false); + assert_eq!(le_ui8(162, 0), false); + } + #[test] + fn test_365() { + assert_eq!(le_ui8(162, 1), false); + assert_eq!(le_ui8(162, 2), false); + assert_eq!(le_ui8(162, 3), false); + assert_eq!(le_ui8(162, 4), false); + assert_eq!(le_ui8(162, 72), false); + assert_eq!(le_ui8(162, 100), false); + assert_eq!(le_ui8(254, 0), false); + assert_eq!(le_ui8(254, 1), false); + assert_eq!(le_ui8(254, 2), false); + assert_eq!(le_ui8(254, 3), false); + } + #[test] + fn test_366() { + assert_eq!(le_ui8(254, 4), false); + assert_eq!(le_ui8(254, 72), false); + assert_eq!(le_ui8(254, 100), false); + assert_eq!(le_ui8(254, 162), false); + assert_eq!(le_ui8(255, 0), false); + assert_eq!(le_ui8(255, 1), false); + assert_eq!(le_ui8(255, 2), false); + assert_eq!(le_ui8(255, 3), false); + assert_eq!(le_ui8(255, 4), false); + assert_eq!(le_ui8(255, 72), false); + } + #[test] + fn test_367() { + assert_eq!(le_ui8(255, 100), false); + assert_eq!(le_ui8(255, 162), false); + assert_eq!(le_ui8(255, 254), false); + assert_eq!(le_ui8(0, 0), true); + assert_eq!(le_ui8(0, 1), true); + assert_eq!(le_ui8(0, 2), true); + assert_eq!(le_ui8(0, 3), true); + assert_eq!(le_ui8(0, 4), true); + assert_eq!(le_ui8(0, 72), true); + assert_eq!(le_ui8(0, 100), true); + } + #[test] + fn test_368() { + assert_eq!(le_ui8(0, 162), true); + assert_eq!(le_ui8(0, 254), true); + assert_eq!(le_ui8(0, 255), true); + assert_eq!(le_ui8(1, 1), true); + assert_eq!(le_ui8(1, 2), true); + assert_eq!(le_ui8(1, 3), true); + assert_eq!(le_ui8(1, 4), true); + assert_eq!(le_ui8(1, 72), true); + assert_eq!(le_ui8(1, 100), true); + assert_eq!(le_ui8(1, 162), true); + } + #[test] + fn test_369() { + assert_eq!(le_ui8(1, 254), true); + assert_eq!(le_ui8(1, 255), true); + assert_eq!(le_ui8(2, 2), true); + assert_eq!(le_ui8(2, 3), true); + assert_eq!(le_ui8(2, 4), true); + assert_eq!(le_ui8(2, 72), true); + assert_eq!(le_ui8(2, 100), true); + assert_eq!(le_ui8(2, 162), true); + assert_eq!(le_ui8(2, 254), true); + assert_eq!(le_ui8(2, 255), true); + } + #[test] + fn test_370() { + assert_eq!(le_ui8(3, 3), true); + assert_eq!(le_ui8(3, 4), true); + assert_eq!(le_ui8(3, 72), true); + assert_eq!(le_ui8(3, 100), true); + assert_eq!(le_ui8(3, 162), true); + assert_eq!(le_ui8(3, 254), true); + assert_eq!(le_ui8(3, 255), true); + assert_eq!(le_ui8(4, 4), true); + assert_eq!(le_ui8(4, 72), true); + assert_eq!(le_ui8(4, 100), true); + } + #[test] + fn test_371() { + assert_eq!(le_ui8(4, 162), true); + assert_eq!(le_ui8(4, 254), true); + assert_eq!(le_ui8(4, 255), true); + assert_eq!(le_ui8(72, 72), true); + assert_eq!(le_ui8(72, 100), true); + assert_eq!(le_ui8(72, 162), true); + assert_eq!(le_ui8(72, 254), true); + assert_eq!(le_ui8(72, 255), true); + assert_eq!(le_ui8(100, 100), true); + assert_eq!(le_ui8(100, 162), true); + } + #[test] + fn test_372() { + assert_eq!(le_ui8(100, 254), true); + assert_eq!(le_ui8(100, 255), true); + assert_eq!(le_ui8(162, 162), true); + assert_eq!(le_ui8(162, 254), true); + assert_eq!(le_ui8(162, 255), true); + assert_eq!(le_ui8(254, 254), true); + assert_eq!(le_ui8(254, 255), true); + assert_eq!(le_ui8(255, 255), true); + assert_eq!(lt_si16(-32768, -32768), false); + assert_eq!(lt_si16(-32767, -32768), false); + } + #[test] + fn test_373() { + assert_eq!(lt_si16(-32767, -32767), false); + assert_eq!(lt_si16(-32547, -32768), false); + assert_eq!(lt_si16(-32547, -32767), false); + assert_eq!(lt_si16(-32547, -32547), false); + assert_eq!(lt_si16(0, -32768), false); + assert_eq!(lt_si16(0, -32767), false); + assert_eq!(lt_si16(0, -32547), false); + assert_eq!(lt_si16(0, 0), false); + assert_eq!(lt_si16(1, -32768), false); + assert_eq!(lt_si16(1, -32767), false); + } + #[test] + fn test_374() { + assert_eq!(lt_si16(1, -32547), false); + assert_eq!(lt_si16(1, 0), false); + assert_eq!(lt_si16(1, 1), false); + assert_eq!(lt_si16(2, -32768), false); + assert_eq!(lt_si16(2, -32767), false); + assert_eq!(lt_si16(2, -32547), false); + assert_eq!(lt_si16(2, 0), false); + assert_eq!(lt_si16(2, 1), false); + assert_eq!(lt_si16(2, 2), false); + assert_eq!(lt_si16(3, -32768), false); + } + #[test] + fn test_375() { + assert_eq!(lt_si16(3, -32767), false); + assert_eq!(lt_si16(3, -32547), false); + assert_eq!(lt_si16(3, 0), false); + assert_eq!(lt_si16(3, 1), false); + assert_eq!(lt_si16(3, 2), false); + assert_eq!(lt_si16(3, 3), false); + assert_eq!(lt_si16(4, -32768), false); + assert_eq!(lt_si16(4, -32767), false); + assert_eq!(lt_si16(4, -32547), false); + assert_eq!(lt_si16(4, 0), false); + } + #[test] + fn test_376() { + assert_eq!(lt_si16(4, 1), false); + assert_eq!(lt_si16(4, 2), false); + assert_eq!(lt_si16(4, 3), false); + assert_eq!(lt_si16(4, 4), false); + assert_eq!(lt_si16(10486, -32768), false); + assert_eq!(lt_si16(10486, -32767), false); + assert_eq!(lt_si16(10486, -32547), false); + assert_eq!(lt_si16(10486, 0), false); + assert_eq!(lt_si16(10486, 1), false); + assert_eq!(lt_si16(10486, 2), false); + } + #[test] + fn test_377() { + assert_eq!(lt_si16(10486, 3), false); + assert_eq!(lt_si16(10486, 4), false); + assert_eq!(lt_si16(10486, 10486), false); + assert_eq!(lt_si16(16514, -32768), false); + assert_eq!(lt_si16(16514, -32767), false); + assert_eq!(lt_si16(16514, -32547), false); + assert_eq!(lt_si16(16514, 0), false); + assert_eq!(lt_si16(16514, 1), false); + assert_eq!(lt_si16(16514, 2), false); + assert_eq!(lt_si16(16514, 3), false); + } + #[test] + fn test_378() { + assert_eq!(lt_si16(16514, 4), false); + assert_eq!(lt_si16(16514, 10486), false); + assert_eq!(lt_si16(16514, 16514), false); + assert_eq!(lt_si16(32766, -32768), false); + assert_eq!(lt_si16(32766, -32767), false); + assert_eq!(lt_si16(32766, -32547), false); + assert_eq!(lt_si16(32766, 0), false); + assert_eq!(lt_si16(32766, 1), false); + assert_eq!(lt_si16(32766, 2), false); + assert_eq!(lt_si16(32766, 3), false); + } + #[test] + fn test_379() { + assert_eq!(lt_si16(32766, 4), false); + assert_eq!(lt_si16(32766, 10486), false); + assert_eq!(lt_si16(32766, 16514), false); + assert_eq!(lt_si16(32766, 32766), false); + assert_eq!(lt_si16(32767, -32768), false); + assert_eq!(lt_si16(32767, -32767), false); + assert_eq!(lt_si16(32767, -32547), false); + assert_eq!(lt_si16(32767, 0), false); + assert_eq!(lt_si16(32767, 1), false); + assert_eq!(lt_si16(32767, 2), false); + } + #[test] + fn test_380() { + assert_eq!(lt_si16(32767, 3), false); + assert_eq!(lt_si16(32767, 4), false); + assert_eq!(lt_si16(32767, 10486), false); + assert_eq!(lt_si16(32767, 16514), false); + assert_eq!(lt_si16(32767, 32766), false); + assert_eq!(lt_si16(32767, 32767), false); + assert_eq!(lt_si16(-32768, -32767), true); + assert_eq!(lt_si16(-32768, -32547), true); + assert_eq!(lt_si16(-32768, 0), true); + assert_eq!(lt_si16(-32768, 1), true); + } + #[test] + fn test_381() { + assert_eq!(lt_si16(-32768, 2), true); + assert_eq!(lt_si16(-32768, 3), true); + assert_eq!(lt_si16(-32768, 4), true); + assert_eq!(lt_si16(-32768, 10486), true); + assert_eq!(lt_si16(-32768, 16514), true); + assert_eq!(lt_si16(-32768, 32766), true); + assert_eq!(lt_si16(-32768, 32767), true); + assert_eq!(lt_si16(-32767, -32547), true); + assert_eq!(lt_si16(-32767, 0), true); + assert_eq!(lt_si16(-32767, 1), true); + } + #[test] + fn test_382() { + assert_eq!(lt_si16(-32767, 2), true); + assert_eq!(lt_si16(-32767, 3), true); + assert_eq!(lt_si16(-32767, 4), true); + assert_eq!(lt_si16(-32767, 10486), true); + assert_eq!(lt_si16(-32767, 16514), true); + assert_eq!(lt_si16(-32767, 32766), true); + assert_eq!(lt_si16(-32767, 32767), true); + assert_eq!(lt_si16(-32547, 0), true); + assert_eq!(lt_si16(-32547, 1), true); + assert_eq!(lt_si16(-32547, 2), true); + } + #[test] + fn test_383() { + assert_eq!(lt_si16(-32547, 3), true); + assert_eq!(lt_si16(-32547, 4), true); + assert_eq!(lt_si16(-32547, 10486), true); + assert_eq!(lt_si16(-32547, 16514), true); + assert_eq!(lt_si16(-32547, 32766), true); + assert_eq!(lt_si16(-32547, 32767), true); + assert_eq!(lt_si16(0, 1), true); + assert_eq!(lt_si16(0, 2), true); + assert_eq!(lt_si16(0, 3), true); + assert_eq!(lt_si16(0, 4), true); + } + #[test] + fn test_384() { + assert_eq!(lt_si16(0, 10486), true); + assert_eq!(lt_si16(0, 16514), true); + assert_eq!(lt_si16(0, 32766), true); + assert_eq!(lt_si16(0, 32767), true); + assert_eq!(lt_si16(1, 2), true); + assert_eq!(lt_si16(1, 3), true); + assert_eq!(lt_si16(1, 4), true); + assert_eq!(lt_si16(1, 10486), true); + assert_eq!(lt_si16(1, 16514), true); + assert_eq!(lt_si16(1, 32766), true); + } + #[test] + fn test_385() { + assert_eq!(lt_si16(1, 32767), true); + assert_eq!(lt_si16(2, 3), true); + assert_eq!(lt_si16(2, 4), true); + assert_eq!(lt_si16(2, 10486), true); + assert_eq!(lt_si16(2, 16514), true); + assert_eq!(lt_si16(2, 32766), true); + assert_eq!(lt_si16(2, 32767), true); + assert_eq!(lt_si16(3, 4), true); + assert_eq!(lt_si16(3, 10486), true); + assert_eq!(lt_si16(3, 16514), true); + } + #[test] + fn test_386() { + assert_eq!(lt_si16(3, 32766), true); + assert_eq!(lt_si16(3, 32767), true); + assert_eq!(lt_si16(4, 10486), true); + assert_eq!(lt_si16(4, 16514), true); + assert_eq!(lt_si16(4, 32766), true); + assert_eq!(lt_si16(4, 32767), true); + assert_eq!(lt_si16(10486, 16514), true); + assert_eq!(lt_si16(10486, 32766), true); + assert_eq!(lt_si16(10486, 32767), true); + assert_eq!(lt_si16(16514, 32766), true); + } + #[test] + fn test_387() { + assert_eq!(lt_si16(16514, 32767), true); + assert_eq!(lt_si16(32766, 32767), true); + assert_eq!(lt_si32(-2147483648, -2147483648), false); + assert_eq!(lt_si32(-2147483647, -2147483648), false); + assert_eq!(lt_si32(-2147483647, -2147483647), false); + assert_eq!(lt_si32(-1713183800, -2147483648), false); + assert_eq!(lt_si32(-1713183800, -2147483647), false); + assert_eq!(lt_si32(-1713183800, -1713183800), false); + assert_eq!(lt_si32(-1252582164, -2147483648), false); + assert_eq!(lt_si32(-1252582164, -2147483647), false); + } + #[test] + fn test_388() { + assert_eq!(lt_si32(-1252582164, -1713183800), false); + assert_eq!(lt_si32(-1252582164, -1252582164), false); + assert_eq!(lt_si32(-1035405763, -2147483648), false); + assert_eq!(lt_si32(-1035405763, -2147483647), false); + assert_eq!(lt_si32(-1035405763, -1713183800), false); + assert_eq!(lt_si32(-1035405763, -1252582164), false); + assert_eq!(lt_si32(-1035405763, -1035405763), false); + assert_eq!(lt_si32(0, -2147483648), false); + assert_eq!(lt_si32(0, -2147483647), false); + assert_eq!(lt_si32(0, -1713183800), false); + } + #[test] + fn test_389() { + assert_eq!(lt_si32(0, -1252582164), false); + assert_eq!(lt_si32(0, -1035405763), false); + assert_eq!(lt_si32(0, 0), false); + assert_eq!(lt_si32(1, -2147483648), false); + assert_eq!(lt_si32(1, -2147483647), false); + assert_eq!(lt_si32(1, -1713183800), false); + assert_eq!(lt_si32(1, -1252582164), false); + assert_eq!(lt_si32(1, -1035405763), false); + assert_eq!(lt_si32(1, 0), false); + assert_eq!(lt_si32(1, 1), false); + } + #[test] + fn test_390() { + assert_eq!(lt_si32(2, -2147483648), false); + assert_eq!(lt_si32(2, -2147483647), false); + assert_eq!(lt_si32(2, -1713183800), false); + assert_eq!(lt_si32(2, -1252582164), false); + assert_eq!(lt_si32(2, -1035405763), false); + assert_eq!(lt_si32(2, 0), false); + assert_eq!(lt_si32(2, 1), false); + assert_eq!(lt_si32(2, 2), false); + assert_eq!(lt_si32(3, -2147483648), false); + assert_eq!(lt_si32(3, -2147483647), false); + } + #[test] + fn test_391() { + assert_eq!(lt_si32(3, -1713183800), false); + assert_eq!(lt_si32(3, -1252582164), false); + assert_eq!(lt_si32(3, -1035405763), false); + assert_eq!(lt_si32(3, 0), false); + assert_eq!(lt_si32(3, 1), false); + assert_eq!(lt_si32(3, 2), false); + assert_eq!(lt_si32(3, 3), false); + assert_eq!(lt_si32(4, -2147483648), false); + assert_eq!(lt_si32(4, -2147483647), false); + assert_eq!(lt_si32(4, -1713183800), false); + } + #[test] + fn test_392() { + assert_eq!(lt_si32(4, -1252582164), false); + assert_eq!(lt_si32(4, -1035405763), false); + assert_eq!(lt_si32(4, 0), false); + assert_eq!(lt_si32(4, 1), false); + assert_eq!(lt_si32(4, 2), false); + assert_eq!(lt_si32(4, 3), false); + assert_eq!(lt_si32(4, 4), false); + assert_eq!(lt_si32(2147483646, -2147483648), false); + assert_eq!(lt_si32(2147483646, -2147483647), false); + assert_eq!(lt_si32(2147483646, -1713183800), false); + } + #[test] + fn test_393() { + assert_eq!(lt_si32(2147483646, -1252582164), false); + assert_eq!(lt_si32(2147483646, -1035405763), false); + assert_eq!(lt_si32(2147483646, 0), false); + assert_eq!(lt_si32(2147483646, 1), false); + assert_eq!(lt_si32(2147483646, 2), false); + assert_eq!(lt_si32(2147483646, 3), false); + assert_eq!(lt_si32(2147483646, 4), false); + assert_eq!(lt_si32(2147483646, 2147483646), false); + assert_eq!(lt_si32(2147483647, -2147483648), false); + assert_eq!(lt_si32(2147483647, -2147483647), false); + } + #[test] + fn test_394() { + assert_eq!(lt_si32(2147483647, -1713183800), false); + assert_eq!(lt_si32(2147483647, -1252582164), false); + assert_eq!(lt_si32(2147483647, -1035405763), false); + assert_eq!(lt_si32(2147483647, 0), false); + assert_eq!(lt_si32(2147483647, 1), false); + assert_eq!(lt_si32(2147483647, 2), false); + assert_eq!(lt_si32(2147483647, 3), false); + assert_eq!(lt_si32(2147483647, 4), false); + assert_eq!(lt_si32(2147483647, 2147483646), false); + assert_eq!(lt_si32(2147483647, 2147483647), false); + } + #[test] + fn test_395() { + assert_eq!(lt_si32(-2147483648, -2147483647), true); + assert_eq!(lt_si32(-2147483648, -1713183800), true); + assert_eq!(lt_si32(-2147483648, -1252582164), true); + assert_eq!(lt_si32(-2147483648, -1035405763), true); + assert_eq!(lt_si32(-2147483648, 0), true); + assert_eq!(lt_si32(-2147483648, 1), true); + assert_eq!(lt_si32(-2147483648, 2), true); + assert_eq!(lt_si32(-2147483648, 3), true); + assert_eq!(lt_si32(-2147483648, 4), true); + assert_eq!(lt_si32(-2147483648, 2147483646), true); + } + #[test] + fn test_396() { + assert_eq!(lt_si32(-2147483648, 2147483647), true); + assert_eq!(lt_si32(-2147483647, -1713183800), true); + assert_eq!(lt_si32(-2147483647, -1252582164), true); + assert_eq!(lt_si32(-2147483647, -1035405763), true); + assert_eq!(lt_si32(-2147483647, 0), true); + assert_eq!(lt_si32(-2147483647, 1), true); + assert_eq!(lt_si32(-2147483647, 2), true); + assert_eq!(lt_si32(-2147483647, 3), true); + assert_eq!(lt_si32(-2147483647, 4), true); + assert_eq!(lt_si32(-2147483647, 2147483646), true); + } + #[test] + fn test_397() { + assert_eq!(lt_si32(-2147483647, 2147483647), true); + assert_eq!(lt_si32(-1713183800, -1252582164), true); + assert_eq!(lt_si32(-1713183800, -1035405763), true); + assert_eq!(lt_si32(-1713183800, 0), true); + assert_eq!(lt_si32(-1713183800, 1), true); + assert_eq!(lt_si32(-1713183800, 2), true); + assert_eq!(lt_si32(-1713183800, 3), true); + assert_eq!(lt_si32(-1713183800, 4), true); + assert_eq!(lt_si32(-1713183800, 2147483646), true); + assert_eq!(lt_si32(-1713183800, 2147483647), true); + } + #[test] + fn test_398() { + assert_eq!(lt_si32(-1252582164, -1035405763), true); + assert_eq!(lt_si32(-1252582164, 0), true); + assert_eq!(lt_si32(-1252582164, 1), true); + assert_eq!(lt_si32(-1252582164, 2), true); + assert_eq!(lt_si32(-1252582164, 3), true); + assert_eq!(lt_si32(-1252582164, 4), true); + assert_eq!(lt_si32(-1252582164, 2147483646), true); + assert_eq!(lt_si32(-1252582164, 2147483647), true); + assert_eq!(lt_si32(-1035405763, 0), true); + assert_eq!(lt_si32(-1035405763, 1), true); + } + #[test] + fn test_399() { + assert_eq!(lt_si32(-1035405763, 2), true); + assert_eq!(lt_si32(-1035405763, 3), true); + assert_eq!(lt_si32(-1035405763, 4), true); + assert_eq!(lt_si32(-1035405763, 2147483646), true); + assert_eq!(lt_si32(-1035405763, 2147483647), true); + assert_eq!(lt_si32(0, 1), true); + assert_eq!(lt_si32(0, 2), true); + assert_eq!(lt_si32(0, 3), true); + assert_eq!(lt_si32(0, 4), true); + assert_eq!(lt_si32(0, 2147483646), true); + } + #[test] + fn test_400() { + assert_eq!(lt_si32(0, 2147483647), true); + assert_eq!(lt_si32(1, 2), true); + assert_eq!(lt_si32(1, 3), true); + assert_eq!(lt_si32(1, 4), true); + assert_eq!(lt_si32(1, 2147483646), true); + assert_eq!(lt_si32(1, 2147483647), true); + assert_eq!(lt_si32(2, 3), true); + assert_eq!(lt_si32(2, 4), true); + assert_eq!(lt_si32(2, 2147483646), true); + assert_eq!(lt_si32(2, 2147483647), true); + } + #[test] + fn test_401() { + assert_eq!(lt_si32(3, 4), true); + assert_eq!(lt_si32(3, 2147483646), true); + assert_eq!(lt_si32(3, 2147483647), true); + assert_eq!(lt_si32(4, 2147483646), true); + assert_eq!(lt_si32(4, 2147483647), true); + assert_eq!(lt_si32(2147483646, 2147483647), true); + assert_eq!(lt_si64(-9223372036854775808, -9223372036854775808), false); + assert_eq!(lt_si64(-9223372036854775807, -9223372036854775808), false); + assert_eq!(lt_si64(-9223372036854775807, -9223372036854775807), false); + assert_eq!(lt_si64(-1741927215160008704, -9223372036854775808), false); + } + #[test] + fn test_402() { + assert_eq!(lt_si64(-1741927215160008704, -9223372036854775807), false); + assert_eq!(lt_si64(-1741927215160008704, -1741927215160008704), false); + assert_eq!(lt_si64(-1328271339354574848, -9223372036854775808), false); + assert_eq!(lt_si64(-1328271339354574848, -9223372036854775807), false); + assert_eq!(lt_si64(-1328271339354574848, -1741927215160008704), false); + assert_eq!(lt_si64(-1328271339354574848, -1328271339354574848), false); + assert_eq!(lt_si64(0, -9223372036854775808), false); + assert_eq!(lt_si64(0, -9223372036854775807), false); + assert_eq!(lt_si64(0, -1741927215160008704), false); + assert_eq!(lt_si64(0, -1328271339354574848), false); + } + #[test] + fn test_403() { + assert_eq!(lt_si64(0, 0), false); + assert_eq!(lt_si64(1, -9223372036854775808), false); + assert_eq!(lt_si64(1, -9223372036854775807), false); + assert_eq!(lt_si64(1, -1741927215160008704), false); + assert_eq!(lt_si64(1, -1328271339354574848), false); + assert_eq!(lt_si64(1, 0), false); + assert_eq!(lt_si64(1, 1), false); + assert_eq!(lt_si64(2, -9223372036854775808), false); + assert_eq!(lt_si64(2, -9223372036854775807), false); + assert_eq!(lt_si64(2, -1741927215160008704), false); + } + #[test] + fn test_404() { + assert_eq!(lt_si64(2, -1328271339354574848), false); + assert_eq!(lt_si64(2, 0), false); + assert_eq!(lt_si64(2, 1), false); + assert_eq!(lt_si64(2, 2), false); + assert_eq!(lt_si64(3, -9223372036854775808), false); + assert_eq!(lt_si64(3, -9223372036854775807), false); + assert_eq!(lt_si64(3, -1741927215160008704), false); + assert_eq!(lt_si64(3, -1328271339354574848), false); + assert_eq!(lt_si64(3, 0), false); + assert_eq!(lt_si64(3, 1), false); + } + #[test] + fn test_405() { + assert_eq!(lt_si64(3, 2), false); + assert_eq!(lt_si64(3, 3), false); + assert_eq!(lt_si64(4, -9223372036854775808), false); + assert_eq!(lt_si64(4, -9223372036854775807), false); + assert_eq!(lt_si64(4, -1741927215160008704), false); + assert_eq!(lt_si64(4, -1328271339354574848), false); + assert_eq!(lt_si64(4, 0), false); + assert_eq!(lt_si64(4, 1), false); + assert_eq!(lt_si64(4, 2), false); + assert_eq!(lt_si64(4, 3), false); + } + #[test] + fn test_406() { + assert_eq!(lt_si64(4, 4), false); + assert_eq!(lt_si64(5577148965131116544, -9223372036854775808), false); + assert_eq!(lt_si64(5577148965131116544, -9223372036854775807), false); + assert_eq!(lt_si64(5577148965131116544, -1741927215160008704), false); + assert_eq!(lt_si64(5577148965131116544, -1328271339354574848), false); + assert_eq!(lt_si64(5577148965131116544, 0), false); + assert_eq!(lt_si64(5577148965131116544, 1), false); + assert_eq!(lt_si64(5577148965131116544, 2), false); + assert_eq!(lt_si64(5577148965131116544, 3), false); + assert_eq!(lt_si64(5577148965131116544, 4), false); + } + #[test] + fn test_407() { + assert_eq!(lt_si64(5577148965131116544, 5577148965131116544), false); + assert_eq!(lt_si64(9223372036854775806, -9223372036854775808), false); + assert_eq!(lt_si64(9223372036854775806, -9223372036854775807), false); + assert_eq!(lt_si64(9223372036854775806, -1741927215160008704), false); + assert_eq!(lt_si64(9223372036854775806, -1328271339354574848), false); + assert_eq!(lt_si64(9223372036854775806, 0), false); + assert_eq!(lt_si64(9223372036854775806, 1), false); + assert_eq!(lt_si64(9223372036854775806, 2), false); + assert_eq!(lt_si64(9223372036854775806, 3), false); + assert_eq!(lt_si64(9223372036854775806, 4), false); + } + #[test] + fn test_408() { + assert_eq!(lt_si64(9223372036854775806, 5577148965131116544), false); + assert_eq!(lt_si64(9223372036854775806, 9223372036854775806), false); + assert_eq!(lt_si64(9223372036854775807, -9223372036854775808), false); + assert_eq!(lt_si64(9223372036854775807, -9223372036854775807), false); + assert_eq!(lt_si64(9223372036854775807, -1741927215160008704), false); + assert_eq!(lt_si64(9223372036854775807, -1328271339354574848), false); + assert_eq!(lt_si64(9223372036854775807, 0), false); + assert_eq!(lt_si64(9223372036854775807, 1), false); + assert_eq!(lt_si64(9223372036854775807, 2), false); + assert_eq!(lt_si64(9223372036854775807, 3), false); + } + #[test] + fn test_409() { + assert_eq!(lt_si64(9223372036854775807, 4), false); + assert_eq!(lt_si64(9223372036854775807, 5577148965131116544), false); + assert_eq!(lt_si64(9223372036854775807, 9223372036854775806), false); + assert_eq!(lt_si64(9223372036854775807, 9223372036854775807), false); + assert_eq!(lt_si64(-9223372036854775808, -9223372036854775807), true); + assert_eq!(lt_si64(-9223372036854775808, -1741927215160008704), true); + assert_eq!(lt_si64(-9223372036854775808, -1328271339354574848), true); + assert_eq!(lt_si64(-9223372036854775808, 0), true); + assert_eq!(lt_si64(-9223372036854775808, 1), true); + assert_eq!(lt_si64(-9223372036854775808, 2), true); + } + #[test] + fn test_410() { + assert_eq!(lt_si64(-9223372036854775808, 3), true); + assert_eq!(lt_si64(-9223372036854775808, 4), true); + assert_eq!(lt_si64(-9223372036854775808, 5577148965131116544), true); + assert_eq!(lt_si64(-9223372036854775808, 9223372036854775806), true); + assert_eq!(lt_si64(-9223372036854775808, 9223372036854775807), true); + assert_eq!(lt_si64(-9223372036854775807, -1741927215160008704), true); + assert_eq!(lt_si64(-9223372036854775807, -1328271339354574848), true); + assert_eq!(lt_si64(-9223372036854775807, 0), true); + assert_eq!(lt_si64(-9223372036854775807, 1), true); + assert_eq!(lt_si64(-9223372036854775807, 2), true); + } + #[test] + fn test_411() { + assert_eq!(lt_si64(-9223372036854775807, 3), true); + assert_eq!(lt_si64(-9223372036854775807, 4), true); + assert_eq!(lt_si64(-9223372036854775807, 5577148965131116544), true); + assert_eq!(lt_si64(-9223372036854775807, 9223372036854775806), true); + assert_eq!(lt_si64(-9223372036854775807, 9223372036854775807), true); + assert_eq!(lt_si64(-1741927215160008704, -1328271339354574848), true); + assert_eq!(lt_si64(-1741927215160008704, 0), true); + assert_eq!(lt_si64(-1741927215160008704, 1), true); + assert_eq!(lt_si64(-1741927215160008704, 2), true); + assert_eq!(lt_si64(-1741927215160008704, 3), true); + } + #[test] + fn test_412() { + assert_eq!(lt_si64(-1741927215160008704, 4), true); + assert_eq!(lt_si64(-1741927215160008704, 5577148965131116544), true); + assert_eq!(lt_si64(-1741927215160008704, 9223372036854775806), true); + assert_eq!(lt_si64(-1741927215160008704, 9223372036854775807), true); + assert_eq!(lt_si64(-1328271339354574848, 0), true); + assert_eq!(lt_si64(-1328271339354574848, 1), true); + assert_eq!(lt_si64(-1328271339354574848, 2), true); + assert_eq!(lt_si64(-1328271339354574848, 3), true); + assert_eq!(lt_si64(-1328271339354574848, 4), true); + assert_eq!(lt_si64(-1328271339354574848, 5577148965131116544), true); + } + #[test] + fn test_413() { + assert_eq!(lt_si64(-1328271339354574848, 9223372036854775806), true); + assert_eq!(lt_si64(-1328271339354574848, 9223372036854775807), true); + assert_eq!(lt_si64(0, 1), true); + assert_eq!(lt_si64(0, 2), true); + assert_eq!(lt_si64(0, 3), true); + assert_eq!(lt_si64(0, 4), true); + assert_eq!(lt_si64(0, 5577148965131116544), true); + assert_eq!(lt_si64(0, 9223372036854775806), true); + assert_eq!(lt_si64(0, 9223372036854775807), true); + assert_eq!(lt_si64(1, 2), true); + } + #[test] + fn test_414() { + assert_eq!(lt_si64(1, 3), true); + assert_eq!(lt_si64(1, 4), true); + assert_eq!(lt_si64(1, 5577148965131116544), true); + assert_eq!(lt_si64(1, 9223372036854775806), true); + assert_eq!(lt_si64(1, 9223372036854775807), true); + assert_eq!(lt_si64(2, 3), true); + assert_eq!(lt_si64(2, 4), true); + assert_eq!(lt_si64(2, 5577148965131116544), true); + assert_eq!(lt_si64(2, 9223372036854775806), true); + assert_eq!(lt_si64(2, 9223372036854775807), true); + } + #[test] + fn test_415() { + assert_eq!(lt_si64(3, 4), true); + assert_eq!(lt_si64(3, 5577148965131116544), true); + assert_eq!(lt_si64(3, 9223372036854775806), true); + assert_eq!(lt_si64(3, 9223372036854775807), true); + assert_eq!(lt_si64(4, 5577148965131116544), true); + assert_eq!(lt_si64(4, 9223372036854775806), true); + assert_eq!(lt_si64(4, 9223372036854775807), true); + assert_eq!(lt_si64(5577148965131116544, 9223372036854775806), true); + assert_eq!(lt_si64(5577148965131116544, 9223372036854775807), true); + assert_eq!(lt_si64(9223372036854775806, 9223372036854775807), true); + } + #[test] + fn test_416() { + assert_eq!(lt_si8(-128, -128), false); + assert_eq!(lt_si8(-127, -128), false); + assert_eq!(lt_si8(-127, -127), false); + assert_eq!(lt_si8(0, -128), false); + assert_eq!(lt_si8(0, -127), false); + assert_eq!(lt_si8(0, 0), false); + assert_eq!(lt_si8(1, -128), false); + assert_eq!(lt_si8(1, -127), false); + assert_eq!(lt_si8(1, 0), false); + assert_eq!(lt_si8(1, 1), false); + } + #[test] + fn test_417() { + assert_eq!(lt_si8(2, -128), false); + assert_eq!(lt_si8(2, -127), false); + assert_eq!(lt_si8(2, 0), false); + assert_eq!(lt_si8(2, 1), false); + assert_eq!(lt_si8(2, 2), false); + assert_eq!(lt_si8(3, -128), false); + assert_eq!(lt_si8(3, -127), false); + assert_eq!(lt_si8(3, 0), false); + assert_eq!(lt_si8(3, 1), false); + assert_eq!(lt_si8(3, 2), false); + } + #[test] + fn test_418() { + assert_eq!(lt_si8(3, 3), false); + assert_eq!(lt_si8(4, -128), false); + assert_eq!(lt_si8(4, -127), false); + assert_eq!(lt_si8(4, 0), false); + assert_eq!(lt_si8(4, 1), false); + assert_eq!(lt_si8(4, 2), false); + assert_eq!(lt_si8(4, 3), false); + assert_eq!(lt_si8(4, 4), false); + assert_eq!(lt_si8(16, -128), false); + assert_eq!(lt_si8(16, -127), false); + } + #[test] + fn test_419() { + assert_eq!(lt_si8(16, 0), false); + assert_eq!(lt_si8(16, 1), false); + assert_eq!(lt_si8(16, 2), false); + assert_eq!(lt_si8(16, 3), false); + assert_eq!(lt_si8(16, 4), false); + assert_eq!(lt_si8(16, 16), false); + assert_eq!(lt_si8(126, -128), false); + assert_eq!(lt_si8(126, -127), false); + assert_eq!(lt_si8(126, 0), false); + assert_eq!(lt_si8(126, 1), false); + } + #[test] + fn test_420() { + assert_eq!(lt_si8(126, 2), false); + assert_eq!(lt_si8(126, 3), false); + assert_eq!(lt_si8(126, 4), false); + assert_eq!(lt_si8(126, 16), false); + assert_eq!(lt_si8(126, 126), false); + assert_eq!(lt_si8(127, -128), false); + assert_eq!(lt_si8(127, -127), false); + assert_eq!(lt_si8(127, 0), false); + assert_eq!(lt_si8(127, 1), false); + assert_eq!(lt_si8(127, 2), false); + } + #[test] + fn test_421() { + assert_eq!(lt_si8(127, 3), false); + assert_eq!(lt_si8(127, 4), false); + assert_eq!(lt_si8(127, 16), false); + assert_eq!(lt_si8(127, 126), false); + assert_eq!(lt_si8(127, 127), false); + assert_eq!(lt_si8(-128, -127), true); + assert_eq!(lt_si8(-128, 0), true); + assert_eq!(lt_si8(-128, 1), true); + assert_eq!(lt_si8(-128, 2), true); + assert_eq!(lt_si8(-128, 3), true); + } + #[test] + fn test_422() { + assert_eq!(lt_si8(-128, 4), true); + assert_eq!(lt_si8(-128, 16), true); + assert_eq!(lt_si8(-128, 126), true); + assert_eq!(lt_si8(-128, 127), true); + assert_eq!(lt_si8(-127, 0), true); + assert_eq!(lt_si8(-127, 1), true); + assert_eq!(lt_si8(-127, 2), true); + assert_eq!(lt_si8(-127, 3), true); + assert_eq!(lt_si8(-127, 4), true); + assert_eq!(lt_si8(-127, 16), true); + } + #[test] + fn test_423() { + assert_eq!(lt_si8(-127, 126), true); + assert_eq!(lt_si8(-127, 127), true); + assert_eq!(lt_si8(0, 1), true); + assert_eq!(lt_si8(0, 2), true); + assert_eq!(lt_si8(0, 3), true); + assert_eq!(lt_si8(0, 4), true); + assert_eq!(lt_si8(0, 16), true); + assert_eq!(lt_si8(0, 126), true); + assert_eq!(lt_si8(0, 127), true); + assert_eq!(lt_si8(1, 2), true); + } + #[test] + fn test_424() { + assert_eq!(lt_si8(1, 3), true); + assert_eq!(lt_si8(1, 4), true); + assert_eq!(lt_si8(1, 16), true); + assert_eq!(lt_si8(1, 126), true); + assert_eq!(lt_si8(1, 127), true); + assert_eq!(lt_si8(2, 3), true); + assert_eq!(lt_si8(2, 4), true); + assert_eq!(lt_si8(2, 16), true); + assert_eq!(lt_si8(2, 126), true); + assert_eq!(lt_si8(2, 127), true); + } + #[test] + fn test_425() { + assert_eq!(lt_si8(3, 4), true); + assert_eq!(lt_si8(3, 16), true); + assert_eq!(lt_si8(3, 126), true); + assert_eq!(lt_si8(3, 127), true); + assert_eq!(lt_si8(4, 16), true); + assert_eq!(lt_si8(4, 126), true); + assert_eq!(lt_si8(4, 127), true); + assert_eq!(lt_si8(16, 126), true); + assert_eq!(lt_si8(16, 127), true); + assert_eq!(lt_si8(126, 127), true); + } + #[test] + fn test_426() { + assert_eq!(lt_ui16(0, 0), false); + assert_eq!(lt_ui16(1, 0), false); + assert_eq!(lt_ui16(1, 1), false); + assert_eq!(lt_ui16(2, 0), false); + assert_eq!(lt_ui16(2, 1), false); + assert_eq!(lt_ui16(2, 2), false); + assert_eq!(lt_ui16(3, 0), false); + assert_eq!(lt_ui16(3, 1), false); + assert_eq!(lt_ui16(3, 2), false); + assert_eq!(lt_ui16(3, 3), false); + } + #[test] + fn test_427() { + assert_eq!(lt_ui16(4, 0), false); + assert_eq!(lt_ui16(4, 1), false); + assert_eq!(lt_ui16(4, 2), false); + assert_eq!(lt_ui16(4, 3), false); + assert_eq!(lt_ui16(4, 4), false); + assert_eq!(lt_ui16(1717, 0), false); + assert_eq!(lt_ui16(1717, 1), false); + assert_eq!(lt_ui16(1717, 2), false); + assert_eq!(lt_ui16(1717, 3), false); + assert_eq!(lt_ui16(1717, 4), false); + } + #[test] + fn test_428() { + assert_eq!(lt_ui16(1717, 1717), false); + assert_eq!(lt_ui16(17988, 0), false); + assert_eq!(lt_ui16(17988, 1), false); + assert_eq!(lt_ui16(17988, 2), false); + assert_eq!(lt_ui16(17988, 3), false); + assert_eq!(lt_ui16(17988, 4), false); + assert_eq!(lt_ui16(17988, 1717), false); + assert_eq!(lt_ui16(17988, 17988), false); + assert_eq!(lt_ui16(65096, 0), false); + assert_eq!(lt_ui16(65096, 1), false); + } + #[test] + fn test_429() { + assert_eq!(lt_ui16(65096, 2), false); + assert_eq!(lt_ui16(65096, 3), false); + assert_eq!(lt_ui16(65096, 4), false); + assert_eq!(lt_ui16(65096, 1717), false); + assert_eq!(lt_ui16(65096, 17988), false); + assert_eq!(lt_ui16(65096, 65096), false); + assert_eq!(lt_ui16(65534, 0), false); + assert_eq!(lt_ui16(65534, 1), false); + assert_eq!(lt_ui16(65534, 2), false); + assert_eq!(lt_ui16(65534, 3), false); + } + #[test] + fn test_430() { + assert_eq!(lt_ui16(65534, 4), false); + assert_eq!(lt_ui16(65534, 1717), false); + assert_eq!(lt_ui16(65534, 17988), false); + assert_eq!(lt_ui16(65534, 65096), false); + assert_eq!(lt_ui16(65534, 65534), false); + assert_eq!(lt_ui16(65535, 0), false); + assert_eq!(lt_ui16(65535, 1), false); + assert_eq!(lt_ui16(65535, 2), false); + assert_eq!(lt_ui16(65535, 3), false); + assert_eq!(lt_ui16(65535, 4), false); + } + #[test] + fn test_431() { + assert_eq!(lt_ui16(65535, 1717), false); + assert_eq!(lt_ui16(65535, 17988), false); + assert_eq!(lt_ui16(65535, 65096), false); + assert_eq!(lt_ui16(65535, 65534), false); + assert_eq!(lt_ui16(65535, 65535), false); + assert_eq!(lt_ui16(0, 1), true); + assert_eq!(lt_ui16(0, 2), true); + assert_eq!(lt_ui16(0, 3), true); + assert_eq!(lt_ui16(0, 4), true); + assert_eq!(lt_ui16(0, 1717), true); + } + #[test] + fn test_432() { + assert_eq!(lt_ui16(0, 17988), true); + assert_eq!(lt_ui16(0, 65096), true); + assert_eq!(lt_ui16(0, 65534), true); + assert_eq!(lt_ui16(0, 65535), true); + assert_eq!(lt_ui16(1, 2), true); + assert_eq!(lt_ui16(1, 3), true); + assert_eq!(lt_ui16(1, 4), true); + assert_eq!(lt_ui16(1, 1717), true); + assert_eq!(lt_ui16(1, 17988), true); + assert_eq!(lt_ui16(1, 65096), true); + } + #[test] + fn test_433() { + assert_eq!(lt_ui16(1, 65534), true); + assert_eq!(lt_ui16(1, 65535), true); + assert_eq!(lt_ui16(2, 3), true); + assert_eq!(lt_ui16(2, 4), true); + assert_eq!(lt_ui16(2, 1717), true); + assert_eq!(lt_ui16(2, 17988), true); + assert_eq!(lt_ui16(2, 65096), true); + assert_eq!(lt_ui16(2, 65534), true); + assert_eq!(lt_ui16(2, 65535), true); + assert_eq!(lt_ui16(3, 4), true); + } + #[test] + fn test_434() { + assert_eq!(lt_ui16(3, 1717), true); + assert_eq!(lt_ui16(3, 17988), true); + assert_eq!(lt_ui16(3, 65096), true); + assert_eq!(lt_ui16(3, 65534), true); + assert_eq!(lt_ui16(3, 65535), true); + assert_eq!(lt_ui16(4, 1717), true); + assert_eq!(lt_ui16(4, 17988), true); + assert_eq!(lt_ui16(4, 65096), true); + assert_eq!(lt_ui16(4, 65534), true); + assert_eq!(lt_ui16(4, 65535), true); + } + #[test] + fn test_435() { + assert_eq!(lt_ui16(1717, 17988), true); + assert_eq!(lt_ui16(1717, 65096), true); + assert_eq!(lt_ui16(1717, 65534), true); + assert_eq!(lt_ui16(1717, 65535), true); + assert_eq!(lt_ui16(17988, 65096), true); + assert_eq!(lt_ui16(17988, 65534), true); + assert_eq!(lt_ui16(17988, 65535), true); + assert_eq!(lt_ui16(65096, 65534), true); + assert_eq!(lt_ui16(65096, 65535), true); + assert_eq!(lt_ui16(65534, 65535), true); + } + #[test] + fn test_436() { + assert_eq!(lt_ui32(0, 0), false); + assert_eq!(lt_ui32(1, 0), false); + assert_eq!(lt_ui32(1, 1), false); + assert_eq!(lt_ui32(2, 0), false); + assert_eq!(lt_ui32(2, 1), false); + assert_eq!(lt_ui32(2, 2), false); + assert_eq!(lt_ui32(3, 0), false); + assert_eq!(lt_ui32(3, 1), false); + assert_eq!(lt_ui32(3, 2), false); + assert_eq!(lt_ui32(3, 3), false); + } + #[test] + fn test_437() { + assert_eq!(lt_ui32(4, 0), false); + assert_eq!(lt_ui32(4, 1), false); + assert_eq!(lt_ui32(4, 2), false); + assert_eq!(lt_ui32(4, 3), false); + assert_eq!(lt_ui32(4, 4), false); + assert_eq!(lt_ui32(2119154652, 0), false); + assert_eq!(lt_ui32(2119154652, 1), false); + assert_eq!(lt_ui32(2119154652, 2), false); + assert_eq!(lt_ui32(2119154652, 3), false); + assert_eq!(lt_ui32(2119154652, 4), false); + } + #[test] + fn test_438() { + assert_eq!(lt_ui32(2119154652, 2119154652), false); + assert_eq!(lt_ui32(3002788344, 0), false); + assert_eq!(lt_ui32(3002788344, 1), false); + assert_eq!(lt_ui32(3002788344, 2), false); + assert_eq!(lt_ui32(3002788344, 3), false); + assert_eq!(lt_ui32(3002788344, 4), false); + assert_eq!(lt_ui32(3002788344, 2119154652), false); + assert_eq!(lt_ui32(3002788344, 3002788344), false); + assert_eq!(lt_ui32(3482297128, 0), false); + assert_eq!(lt_ui32(3482297128, 1), false); + } + #[test] + fn test_439() { + assert_eq!(lt_ui32(3482297128, 2), false); + assert_eq!(lt_ui32(3482297128, 3), false); + assert_eq!(lt_ui32(3482297128, 4), false); + assert_eq!(lt_ui32(3482297128, 2119154652), false); + assert_eq!(lt_ui32(3482297128, 3002788344), false); + assert_eq!(lt_ui32(3482297128, 3482297128), false); + assert_eq!(lt_ui32(4294967294, 0), false); + assert_eq!(lt_ui32(4294967294, 1), false); + assert_eq!(lt_ui32(4294967294, 2), false); + assert_eq!(lt_ui32(4294967294, 3), false); + } + #[test] + fn test_440() { + assert_eq!(lt_ui32(4294967294, 4), false); + assert_eq!(lt_ui32(4294967294, 2119154652), false); + assert_eq!(lt_ui32(4294967294, 3002788344), false); + assert_eq!(lt_ui32(4294967294, 3482297128), false); + assert_eq!(lt_ui32(4294967294, 4294967294), false); + assert_eq!(lt_ui32(4294967295, 0), false); + assert_eq!(lt_ui32(4294967295, 1), false); + assert_eq!(lt_ui32(4294967295, 2), false); + assert_eq!(lt_ui32(4294967295, 3), false); + assert_eq!(lt_ui32(4294967295, 4), false); + } + #[test] + fn test_441() { + assert_eq!(lt_ui32(4294967295, 2119154652), false); + assert_eq!(lt_ui32(4294967295, 3002788344), false); + assert_eq!(lt_ui32(4294967295, 3482297128), false); + assert_eq!(lt_ui32(4294967295, 4294967294), false); + assert_eq!(lt_ui32(4294967295, 4294967295), false); + assert_eq!(lt_ui32(0, 1), true); + assert_eq!(lt_ui32(0, 2), true); + assert_eq!(lt_ui32(0, 3), true); + assert_eq!(lt_ui32(0, 4), true); + assert_eq!(lt_ui32(0, 2119154652), true); + } + #[test] + fn test_442() { + assert_eq!(lt_ui32(0, 3002788344), true); + assert_eq!(lt_ui32(0, 3482297128), true); + assert_eq!(lt_ui32(0, 4294967294), true); + assert_eq!(lt_ui32(0, 4294967295), true); + assert_eq!(lt_ui32(1, 2), true); + assert_eq!(lt_ui32(1, 3), true); + assert_eq!(lt_ui32(1, 4), true); + assert_eq!(lt_ui32(1, 2119154652), true); + assert_eq!(lt_ui32(1, 3002788344), true); + assert_eq!(lt_ui32(1, 3482297128), true); + } + #[test] + fn test_443() { + assert_eq!(lt_ui32(1, 4294967294), true); + assert_eq!(lt_ui32(1, 4294967295), true); + assert_eq!(lt_ui32(2, 3), true); + assert_eq!(lt_ui32(2, 4), true); + assert_eq!(lt_ui32(2, 2119154652), true); + assert_eq!(lt_ui32(2, 3002788344), true); + assert_eq!(lt_ui32(2, 3482297128), true); + assert_eq!(lt_ui32(2, 4294967294), true); + assert_eq!(lt_ui32(2, 4294967295), true); + assert_eq!(lt_ui32(3, 4), true); + } + #[test] + fn test_444() { + assert_eq!(lt_ui32(3, 2119154652), true); + assert_eq!(lt_ui32(3, 3002788344), true); + assert_eq!(lt_ui32(3, 3482297128), true); + assert_eq!(lt_ui32(3, 4294967294), true); + assert_eq!(lt_ui32(3, 4294967295), true); + assert_eq!(lt_ui32(4, 2119154652), true); + assert_eq!(lt_ui32(4, 3002788344), true); + assert_eq!(lt_ui32(4, 3482297128), true); + assert_eq!(lt_ui32(4, 4294967294), true); + assert_eq!(lt_ui32(4, 4294967295), true); + } + #[test] + fn test_445() { + assert_eq!(lt_ui32(2119154652, 3002788344), true); + assert_eq!(lt_ui32(2119154652, 3482297128), true); + assert_eq!(lt_ui32(2119154652, 4294967294), true); + assert_eq!(lt_ui32(2119154652, 4294967295), true); + assert_eq!(lt_ui32(3002788344, 3482297128), true); + assert_eq!(lt_ui32(3002788344, 4294967294), true); + assert_eq!(lt_ui32(3002788344, 4294967295), true); + assert_eq!(lt_ui32(3482297128, 4294967294), true); + assert_eq!(lt_ui32(3482297128, 4294967295), true); + assert_eq!(lt_ui32(4294967294, 4294967295), true); + } + #[test] + fn test_446() { + assert_eq!(lt_ui64(0, 0), false); + assert_eq!(lt_ui64(1, 0), false); + assert_eq!(lt_ui64(1, 1), false); + assert_eq!(lt_ui64(2, 0), false); + assert_eq!(lt_ui64(2, 1), false); + assert_eq!(lt_ui64(2, 2), false); + assert_eq!(lt_ui64(3, 0), false); + assert_eq!(lt_ui64(3, 1), false); + assert_eq!(lt_ui64(3, 2), false); + assert_eq!(lt_ui64(3, 3), false); + } + #[test] + fn test_447() { + assert_eq!(lt_ui64(4, 0), false); + assert_eq!(lt_ui64(4, 1), false); + assert_eq!(lt_ui64(4, 2), false); + assert_eq!(lt_ui64(4, 3), false); + assert_eq!(lt_ui64(4, 4), false); + assert_eq!(lt_ui64(191084152064409600, 0), false); + assert_eq!(lt_ui64(191084152064409600, 1), false); + assert_eq!(lt_ui64(191084152064409600, 2), false); + assert_eq!(lt_ui64(191084152064409600, 3), false); + assert_eq!(lt_ui64(191084152064409600, 4), false); + } + #[test] + fn test_448() { + assert_eq!(lt_ui64(191084152064409600, 191084152064409600), false); + assert_eq!(lt_ui64(11015955194427482112, 0), false); + assert_eq!(lt_ui64(11015955194427482112, 1), false); + assert_eq!(lt_ui64(11015955194427482112, 2), false); + assert_eq!(lt_ui64(11015955194427482112, 3), false); + assert_eq!(lt_ui64(11015955194427482112, 4), false); + assert_eq!(lt_ui64(11015955194427482112, 191084152064409600), false); + assert_eq!(lt_ui64(11015955194427482112, 11015955194427482112), false); + assert_eq!(lt_ui64(16990600415051759616, 0), false); + assert_eq!(lt_ui64(16990600415051759616, 1), false); + } + #[test] + fn test_449() { + assert_eq!(lt_ui64(16990600415051759616, 2), false); + assert_eq!(lt_ui64(16990600415051759616, 3), false); + assert_eq!(lt_ui64(16990600415051759616, 4), false); + assert_eq!(lt_ui64(16990600415051759616, 191084152064409600), false); + assert_eq!(lt_ui64(16990600415051759616, 11015955194427482112), false); + assert_eq!(lt_ui64(16990600415051759616, 16990600415051759616), false); + assert_eq!(lt_ui64(18446744073709551614, 0), false); + assert_eq!(lt_ui64(18446744073709551614, 1), false); + assert_eq!(lt_ui64(18446744073709551614, 2), false); + assert_eq!(lt_ui64(18446744073709551614, 3), false); + } + #[test] + fn test_450() { + assert_eq!(lt_ui64(18446744073709551614, 4), false); + assert_eq!(lt_ui64(18446744073709551614, 191084152064409600), false); + assert_eq!(lt_ui64(18446744073709551614, 11015955194427482112), false); + assert_eq!(lt_ui64(18446744073709551614, 16990600415051759616), false); + assert_eq!(lt_ui64(18446744073709551614, 18446744073709551614), false); + assert_eq!(lt_ui64(18446744073709551615, 0), false); + assert_eq!(lt_ui64(18446744073709551615, 1), false); + assert_eq!(lt_ui64(18446744073709551615, 2), false); + assert_eq!(lt_ui64(18446744073709551615, 3), false); + assert_eq!(lt_ui64(18446744073709551615, 4), false); + } + #[test] + fn test_451() { + assert_eq!(lt_ui64(18446744073709551615, 191084152064409600), false); + assert_eq!(lt_ui64(18446744073709551615, 11015955194427482112), false); + assert_eq!(lt_ui64(18446744073709551615, 16990600415051759616), false); + assert_eq!(lt_ui64(18446744073709551615, 18446744073709551614), false); + assert_eq!(lt_ui64(18446744073709551615, 18446744073709551615), false); + assert_eq!(lt_ui64(0, 1), true); + assert_eq!(lt_ui64(0, 2), true); + assert_eq!(lt_ui64(0, 3), true); + assert_eq!(lt_ui64(0, 4), true); + assert_eq!(lt_ui64(0, 191084152064409600), true); + } + #[test] + fn test_452() { + assert_eq!(lt_ui64(0, 11015955194427482112), true); + assert_eq!(lt_ui64(0, 16990600415051759616), true); + assert_eq!(lt_ui64(0, 18446744073709551614), true); + assert_eq!(lt_ui64(0, 18446744073709551615), true); + assert_eq!(lt_ui64(1, 2), true); + assert_eq!(lt_ui64(1, 3), true); + assert_eq!(lt_ui64(1, 4), true); + assert_eq!(lt_ui64(1, 191084152064409600), true); + assert_eq!(lt_ui64(1, 11015955194427482112), true); + assert_eq!(lt_ui64(1, 16990600415051759616), true); + } + #[test] + fn test_453() { + assert_eq!(lt_ui64(1, 18446744073709551614), true); + assert_eq!(lt_ui64(1, 18446744073709551615), true); + assert_eq!(lt_ui64(2, 3), true); + assert_eq!(lt_ui64(2, 4), true); + assert_eq!(lt_ui64(2, 191084152064409600), true); + assert_eq!(lt_ui64(2, 11015955194427482112), true); + assert_eq!(lt_ui64(2, 16990600415051759616), true); + assert_eq!(lt_ui64(2, 18446744073709551614), true); + assert_eq!(lt_ui64(2, 18446744073709551615), true); + assert_eq!(lt_ui64(3, 4), true); + } + #[test] + fn test_454() { + assert_eq!(lt_ui64(3, 191084152064409600), true); + assert_eq!(lt_ui64(3, 11015955194427482112), true); + assert_eq!(lt_ui64(3, 16990600415051759616), true); + assert_eq!(lt_ui64(3, 18446744073709551614), true); + assert_eq!(lt_ui64(3, 18446744073709551615), true); + assert_eq!(lt_ui64(4, 191084152064409600), true); + assert_eq!(lt_ui64(4, 11015955194427482112), true); + assert_eq!(lt_ui64(4, 16990600415051759616), true); + assert_eq!(lt_ui64(4, 18446744073709551614), true); + assert_eq!(lt_ui64(4, 18446744073709551615), true); + } + #[test] + fn test_455() { + assert_eq!(lt_ui64(191084152064409600, 11015955194427482112), true); + assert_eq!(lt_ui64(191084152064409600, 16990600415051759616), true); + assert_eq!(lt_ui64(191084152064409600, 18446744073709551614), true); + assert_eq!(lt_ui64(191084152064409600, 18446744073709551615), true); + assert_eq!(lt_ui64(11015955194427482112, 16990600415051759616), true); + assert_eq!(lt_ui64(11015955194427482112, 18446744073709551614), true); + assert_eq!(lt_ui64(11015955194427482112, 18446744073709551615), true); + assert_eq!(lt_ui64(16990600415051759616, 18446744073709551614), true); + assert_eq!(lt_ui64(16990600415051759616, 18446744073709551615), true); + assert_eq!(lt_ui64(18446744073709551614, 18446744073709551615), true); + } + #[test] + fn test_456() { + assert_eq!(lt_ui8(0, 0), false); + assert_eq!(lt_ui8(1, 0), false); + assert_eq!(lt_ui8(1, 1), false); + assert_eq!(lt_ui8(2, 0), false); + assert_eq!(lt_ui8(2, 1), false); + assert_eq!(lt_ui8(2, 2), false); + assert_eq!(lt_ui8(3, 0), false); + assert_eq!(lt_ui8(3, 1), false); + assert_eq!(lt_ui8(3, 2), false); + assert_eq!(lt_ui8(3, 3), false); + } + #[test] + fn test_457() { + assert_eq!(lt_ui8(4, 0), false); + assert_eq!(lt_ui8(4, 1), false); + assert_eq!(lt_ui8(4, 2), false); + assert_eq!(lt_ui8(4, 3), false); + assert_eq!(lt_ui8(4, 4), false); + assert_eq!(lt_ui8(72, 0), false); + assert_eq!(lt_ui8(72, 1), false); + assert_eq!(lt_ui8(72, 2), false); + assert_eq!(lt_ui8(72, 3), false); + assert_eq!(lt_ui8(72, 4), false); + } + #[test] + fn test_458() { + assert_eq!(lt_ui8(72, 72), false); + assert_eq!(lt_ui8(100, 0), false); + assert_eq!(lt_ui8(100, 1), false); + assert_eq!(lt_ui8(100, 2), false); + assert_eq!(lt_ui8(100, 3), false); + assert_eq!(lt_ui8(100, 4), false); + assert_eq!(lt_ui8(100, 72), false); + assert_eq!(lt_ui8(100, 100), false); + assert_eq!(lt_ui8(162, 0), false); + assert_eq!(lt_ui8(162, 1), false); + } + #[test] + fn test_459() { + assert_eq!(lt_ui8(162, 2), false); + assert_eq!(lt_ui8(162, 3), false); + assert_eq!(lt_ui8(162, 4), false); + assert_eq!(lt_ui8(162, 72), false); + assert_eq!(lt_ui8(162, 100), false); + assert_eq!(lt_ui8(162, 162), false); + assert_eq!(lt_ui8(254, 0), false); + assert_eq!(lt_ui8(254, 1), false); + assert_eq!(lt_ui8(254, 2), false); + assert_eq!(lt_ui8(254, 3), false); + } + #[test] + fn test_460() { + assert_eq!(lt_ui8(254, 4), false); + assert_eq!(lt_ui8(254, 72), false); + assert_eq!(lt_ui8(254, 100), false); + assert_eq!(lt_ui8(254, 162), false); + assert_eq!(lt_ui8(254, 254), false); + assert_eq!(lt_ui8(255, 0), false); + assert_eq!(lt_ui8(255, 1), false); + assert_eq!(lt_ui8(255, 2), false); + assert_eq!(lt_ui8(255, 3), false); + assert_eq!(lt_ui8(255, 4), false); + } + #[test] + fn test_461() { + assert_eq!(lt_ui8(255, 72), false); + assert_eq!(lt_ui8(255, 100), false); + assert_eq!(lt_ui8(255, 162), false); + assert_eq!(lt_ui8(255, 254), false); + assert_eq!(lt_ui8(255, 255), false); + assert_eq!(lt_ui8(0, 1), true); + assert_eq!(lt_ui8(0, 2), true); + assert_eq!(lt_ui8(0, 3), true); + assert_eq!(lt_ui8(0, 4), true); + assert_eq!(lt_ui8(0, 72), true); + } + #[test] + fn test_462() { + assert_eq!(lt_ui8(0, 100), true); + assert_eq!(lt_ui8(0, 162), true); + assert_eq!(lt_ui8(0, 254), true); + assert_eq!(lt_ui8(0, 255), true); + assert_eq!(lt_ui8(1, 2), true); + assert_eq!(lt_ui8(1, 3), true); + assert_eq!(lt_ui8(1, 4), true); + assert_eq!(lt_ui8(1, 72), true); + assert_eq!(lt_ui8(1, 100), true); + assert_eq!(lt_ui8(1, 162), true); + } + #[test] + fn test_463() { + assert_eq!(lt_ui8(1, 254), true); + assert_eq!(lt_ui8(1, 255), true); + assert_eq!(lt_ui8(2, 3), true); + assert_eq!(lt_ui8(2, 4), true); + assert_eq!(lt_ui8(2, 72), true); + assert_eq!(lt_ui8(2, 100), true); + assert_eq!(lt_ui8(2, 162), true); + assert_eq!(lt_ui8(2, 254), true); + assert_eq!(lt_ui8(2, 255), true); + assert_eq!(lt_ui8(3, 4), true); + } + #[test] + fn test_464() { + assert_eq!(lt_ui8(3, 72), true); + assert_eq!(lt_ui8(3, 100), true); + assert_eq!(lt_ui8(3, 162), true); + assert_eq!(lt_ui8(3, 254), true); + assert_eq!(lt_ui8(3, 255), true); + assert_eq!(lt_ui8(4, 72), true); + assert_eq!(lt_ui8(4, 100), true); + assert_eq!(lt_ui8(4, 162), true); + assert_eq!(lt_ui8(4, 254), true); + assert_eq!(lt_ui8(4, 255), true); + } + #[test] + fn test_465() { + assert_eq!(lt_ui8(72, 100), true); + assert_eq!(lt_ui8(72, 162), true); + assert_eq!(lt_ui8(72, 254), true); + assert_eq!(lt_ui8(72, 255), true); + assert_eq!(lt_ui8(100, 162), true); + assert_eq!(lt_ui8(100, 254), true); + assert_eq!(lt_ui8(100, 255), true); + assert_eq!(lt_ui8(162, 254), true); + assert_eq!(lt_ui8(162, 255), true); + assert_eq!(lt_ui8(254, 255), true); + } + #[test] + fn test_466() { + assert_eq!(ne_si16(-32768, -32768), false); + assert_eq!(ne_si16(-32767, -32767), false); + assert_eq!(ne_si16(-32547, -32547), false); + assert_eq!(ne_si16(0, 0), false); + assert_eq!(ne_si16(1, 1), false); + assert_eq!(ne_si16(2, 2), false); + assert_eq!(ne_si16(3, 3), false); + assert_eq!(ne_si16(4, 4), false); + assert_eq!(ne_si16(10486, 10486), false); + assert_eq!(ne_si16(16514, 16514), false); + } + #[test] + fn test_467() { + assert_eq!(ne_si16(32766, 32766), false); + assert_eq!(ne_si16(32767, 32767), false); + assert_eq!(ne_si16(-32768, -32767), true); + assert_eq!(ne_si16(-32768, -32547), true); + assert_eq!(ne_si16(-32768, 0), true); + assert_eq!(ne_si16(-32768, 1), true); + assert_eq!(ne_si16(-32768, 2), true); + assert_eq!(ne_si16(-32768, 3), true); + assert_eq!(ne_si16(-32768, 4), true); + assert_eq!(ne_si16(-32768, 10486), true); + } + #[test] + fn test_468() { + assert_eq!(ne_si16(-32768, 16514), true); + assert_eq!(ne_si16(-32768, 32766), true); + assert_eq!(ne_si16(-32768, 32767), true); + assert_eq!(ne_si16(-32767, -32768), true); + assert_eq!(ne_si16(-32767, -32547), true); + assert_eq!(ne_si16(-32767, 0), true); + assert_eq!(ne_si16(-32767, 1), true); + assert_eq!(ne_si16(-32767, 2), true); + assert_eq!(ne_si16(-32767, 3), true); + assert_eq!(ne_si16(-32767, 4), true); + } + #[test] + fn test_469() { + assert_eq!(ne_si16(-32767, 10486), true); + assert_eq!(ne_si16(-32767, 16514), true); + assert_eq!(ne_si16(-32767, 32766), true); + assert_eq!(ne_si16(-32767, 32767), true); + assert_eq!(ne_si16(-32547, -32768), true); + assert_eq!(ne_si16(-32547, -32767), true); + assert_eq!(ne_si16(-32547, 0), true); + assert_eq!(ne_si16(-32547, 1), true); + assert_eq!(ne_si16(-32547, 2), true); + assert_eq!(ne_si16(-32547, 3), true); + } + #[test] + fn test_470() { + assert_eq!(ne_si16(-32547, 4), true); + assert_eq!(ne_si16(-32547, 10486), true); + assert_eq!(ne_si16(-32547, 16514), true); + assert_eq!(ne_si16(-32547, 32766), true); + assert_eq!(ne_si16(-32547, 32767), true); + assert_eq!(ne_si16(0, -32768), true); + assert_eq!(ne_si16(0, -32767), true); + assert_eq!(ne_si16(0, -32547), true); + assert_eq!(ne_si16(0, 1), true); + assert_eq!(ne_si16(0, 2), true); + } + #[test] + fn test_471() { + assert_eq!(ne_si16(0, 3), true); + assert_eq!(ne_si16(0, 4), true); + assert_eq!(ne_si16(0, 10486), true); + assert_eq!(ne_si16(0, 16514), true); + assert_eq!(ne_si16(0, 32766), true); + assert_eq!(ne_si16(0, 32767), true); + assert_eq!(ne_si16(1, -32768), true); + assert_eq!(ne_si16(1, -32767), true); + assert_eq!(ne_si16(1, -32547), true); + assert_eq!(ne_si16(1, 0), true); + } + #[test] + fn test_472() { + assert_eq!(ne_si16(1, 2), true); + assert_eq!(ne_si16(1, 3), true); + assert_eq!(ne_si16(1, 4), true); + assert_eq!(ne_si16(1, 10486), true); + assert_eq!(ne_si16(1, 16514), true); + assert_eq!(ne_si16(1, 32766), true); + assert_eq!(ne_si16(1, 32767), true); + assert_eq!(ne_si16(2, -32768), true); + assert_eq!(ne_si16(2, -32767), true); + assert_eq!(ne_si16(2, -32547), true); + } + #[test] + fn test_473() { + assert_eq!(ne_si16(2, 0), true); + assert_eq!(ne_si16(2, 1), true); + assert_eq!(ne_si16(2, 3), true); + assert_eq!(ne_si16(2, 4), true); + assert_eq!(ne_si16(2, 10486), true); + assert_eq!(ne_si16(2, 16514), true); + assert_eq!(ne_si16(2, 32766), true); + assert_eq!(ne_si16(2, 32767), true); + assert_eq!(ne_si16(3, -32768), true); + assert_eq!(ne_si16(3, -32767), true); + } + #[test] + fn test_474() { + assert_eq!(ne_si16(3, -32547), true); + assert_eq!(ne_si16(3, 0), true); + assert_eq!(ne_si16(3, 1), true); + assert_eq!(ne_si16(3, 2), true); + assert_eq!(ne_si16(3, 4), true); + assert_eq!(ne_si16(3, 10486), true); + assert_eq!(ne_si16(3, 16514), true); + assert_eq!(ne_si16(3, 32766), true); + assert_eq!(ne_si16(3, 32767), true); + assert_eq!(ne_si16(4, -32768), true); + } + #[test] + fn test_475() { + assert_eq!(ne_si16(4, -32767), true); + assert_eq!(ne_si16(4, -32547), true); + assert_eq!(ne_si16(4, 0), true); + assert_eq!(ne_si16(4, 1), true); + assert_eq!(ne_si16(4, 2), true); + assert_eq!(ne_si16(4, 3), true); + assert_eq!(ne_si16(4, 10486), true); + assert_eq!(ne_si16(4, 16514), true); + assert_eq!(ne_si16(4, 32766), true); + assert_eq!(ne_si16(4, 32767), true); + } + #[test] + fn test_476() { + assert_eq!(ne_si16(10486, -32768), true); + assert_eq!(ne_si16(10486, -32767), true); + assert_eq!(ne_si16(10486, -32547), true); + assert_eq!(ne_si16(10486, 0), true); + assert_eq!(ne_si16(10486, 1), true); + assert_eq!(ne_si16(10486, 2), true); + assert_eq!(ne_si16(10486, 3), true); + assert_eq!(ne_si16(10486, 4), true); + assert_eq!(ne_si16(10486, 16514), true); + assert_eq!(ne_si16(10486, 32766), true); + } + #[test] + fn test_477() { + assert_eq!(ne_si16(10486, 32767), true); + assert_eq!(ne_si16(16514, -32768), true); + assert_eq!(ne_si16(16514, -32767), true); + assert_eq!(ne_si16(16514, -32547), true); + assert_eq!(ne_si16(16514, 0), true); + assert_eq!(ne_si16(16514, 1), true); + assert_eq!(ne_si16(16514, 2), true); + assert_eq!(ne_si16(16514, 3), true); + assert_eq!(ne_si16(16514, 4), true); + assert_eq!(ne_si16(16514, 10486), true); + } + #[test] + fn test_478() { + assert_eq!(ne_si16(16514, 32766), true); + assert_eq!(ne_si16(16514, 32767), true); + assert_eq!(ne_si16(32766, -32768), true); + assert_eq!(ne_si16(32766, -32767), true); + assert_eq!(ne_si16(32766, -32547), true); + assert_eq!(ne_si16(32766, 0), true); + assert_eq!(ne_si16(32766, 1), true); + assert_eq!(ne_si16(32766, 2), true); + assert_eq!(ne_si16(32766, 3), true); + assert_eq!(ne_si16(32766, 4), true); + } + #[test] + fn test_479() { + assert_eq!(ne_si16(32766, 10486), true); + assert_eq!(ne_si16(32766, 16514), true); + assert_eq!(ne_si16(32766, 32767), true); + assert_eq!(ne_si16(32767, -32768), true); + assert_eq!(ne_si16(32767, -32767), true); + assert_eq!(ne_si16(32767, -32547), true); + assert_eq!(ne_si16(32767, 0), true); + assert_eq!(ne_si16(32767, 1), true); + assert_eq!(ne_si16(32767, 2), true); + assert_eq!(ne_si16(32767, 3), true); + } + #[test] + fn test_480() { + assert_eq!(ne_si16(32767, 4), true); + assert_eq!(ne_si16(32767, 10486), true); + assert_eq!(ne_si16(32767, 16514), true); + assert_eq!(ne_si16(32767, 32766), true); + assert_eq!(ne_si32(-2147483648, -2147483648), false); + assert_eq!(ne_si32(-2147483647, -2147483647), false); + assert_eq!(ne_si32(-1713183800, -1713183800), false); + assert_eq!(ne_si32(-1252582164, -1252582164), false); + assert_eq!(ne_si32(-1035405763, -1035405763), false); + assert_eq!(ne_si32(0, 0), false); + } + #[test] + fn test_481() { + assert_eq!(ne_si32(1, 1), false); + assert_eq!(ne_si32(2, 2), false); + assert_eq!(ne_si32(3, 3), false); + assert_eq!(ne_si32(4, 4), false); + assert_eq!(ne_si32(2147483646, 2147483646), false); + assert_eq!(ne_si32(2147483647, 2147483647), false); + assert_eq!(ne_si32(-2147483648, -2147483647), true); + assert_eq!(ne_si32(-2147483648, -1713183800), true); + assert_eq!(ne_si32(-2147483648, -1252582164), true); + assert_eq!(ne_si32(-2147483648, -1035405763), true); + } + #[test] + fn test_482() { + assert_eq!(ne_si32(-2147483648, 0), true); + assert_eq!(ne_si32(-2147483648, 1), true); + assert_eq!(ne_si32(-2147483648, 2), true); + assert_eq!(ne_si32(-2147483648, 3), true); + assert_eq!(ne_si32(-2147483648, 4), true); + assert_eq!(ne_si32(-2147483648, 2147483646), true); + assert_eq!(ne_si32(-2147483648, 2147483647), true); + assert_eq!(ne_si32(-2147483647, -2147483648), true); + assert_eq!(ne_si32(-2147483647, -1713183800), true); + assert_eq!(ne_si32(-2147483647, -1252582164), true); + } + #[test] + fn test_483() { + assert_eq!(ne_si32(-2147483647, -1035405763), true); + assert_eq!(ne_si32(-2147483647, 0), true); + assert_eq!(ne_si32(-2147483647, 1), true); + assert_eq!(ne_si32(-2147483647, 2), true); + assert_eq!(ne_si32(-2147483647, 3), true); + assert_eq!(ne_si32(-2147483647, 4), true); + assert_eq!(ne_si32(-2147483647, 2147483646), true); + assert_eq!(ne_si32(-2147483647, 2147483647), true); + assert_eq!(ne_si32(-1713183800, -2147483648), true); + assert_eq!(ne_si32(-1713183800, -2147483647), true); + } + #[test] + fn test_484() { + assert_eq!(ne_si32(-1713183800, -1252582164), true); + assert_eq!(ne_si32(-1713183800, -1035405763), true); + assert_eq!(ne_si32(-1713183800, 0), true); + assert_eq!(ne_si32(-1713183800, 1), true); + assert_eq!(ne_si32(-1713183800, 2), true); + assert_eq!(ne_si32(-1713183800, 3), true); + assert_eq!(ne_si32(-1713183800, 4), true); + assert_eq!(ne_si32(-1713183800, 2147483646), true); + assert_eq!(ne_si32(-1713183800, 2147483647), true); + assert_eq!(ne_si32(-1252582164, -2147483648), true); + } + #[test] + fn test_485() { + assert_eq!(ne_si32(-1252582164, -2147483647), true); + assert_eq!(ne_si32(-1252582164, -1713183800), true); + assert_eq!(ne_si32(-1252582164, -1035405763), true); + assert_eq!(ne_si32(-1252582164, 0), true); + assert_eq!(ne_si32(-1252582164, 1), true); + assert_eq!(ne_si32(-1252582164, 2), true); + assert_eq!(ne_si32(-1252582164, 3), true); + assert_eq!(ne_si32(-1252582164, 4), true); + assert_eq!(ne_si32(-1252582164, 2147483646), true); + assert_eq!(ne_si32(-1252582164, 2147483647), true); + } + #[test] + fn test_486() { + assert_eq!(ne_si32(-1035405763, -2147483648), true); + assert_eq!(ne_si32(-1035405763, -2147483647), true); + assert_eq!(ne_si32(-1035405763, -1713183800), true); + assert_eq!(ne_si32(-1035405763, -1252582164), true); + assert_eq!(ne_si32(-1035405763, 0), true); + assert_eq!(ne_si32(-1035405763, 1), true); + assert_eq!(ne_si32(-1035405763, 2), true); + assert_eq!(ne_si32(-1035405763, 3), true); + assert_eq!(ne_si32(-1035405763, 4), true); + assert_eq!(ne_si32(-1035405763, 2147483646), true); + } + #[test] + fn test_487() { + assert_eq!(ne_si32(-1035405763, 2147483647), true); + assert_eq!(ne_si32(0, -2147483648), true); + assert_eq!(ne_si32(0, -2147483647), true); + assert_eq!(ne_si32(0, -1713183800), true); + assert_eq!(ne_si32(0, -1252582164), true); + assert_eq!(ne_si32(0, -1035405763), true); + assert_eq!(ne_si32(0, 1), true); + assert_eq!(ne_si32(0, 2), true); + assert_eq!(ne_si32(0, 3), true); + assert_eq!(ne_si32(0, 4), true); + } + #[test] + fn test_488() { + assert_eq!(ne_si32(0, 2147483646), true); + assert_eq!(ne_si32(0, 2147483647), true); + assert_eq!(ne_si32(1, -2147483648), true); + assert_eq!(ne_si32(1, -2147483647), true); + assert_eq!(ne_si32(1, -1713183800), true); + assert_eq!(ne_si32(1, -1252582164), true); + assert_eq!(ne_si32(1, -1035405763), true); + assert_eq!(ne_si32(1, 0), true); + assert_eq!(ne_si32(1, 2), true); + assert_eq!(ne_si32(1, 3), true); + } + #[test] + fn test_489() { + assert_eq!(ne_si32(1, 4), true); + assert_eq!(ne_si32(1, 2147483646), true); + assert_eq!(ne_si32(1, 2147483647), true); + assert_eq!(ne_si32(2, -2147483648), true); + assert_eq!(ne_si32(2, -2147483647), true); + assert_eq!(ne_si32(2, -1713183800), true); + assert_eq!(ne_si32(2, -1252582164), true); + assert_eq!(ne_si32(2, -1035405763), true); + assert_eq!(ne_si32(2, 0), true); + assert_eq!(ne_si32(2, 1), true); + } + #[test] + fn test_490() { + assert_eq!(ne_si32(2, 3), true); + assert_eq!(ne_si32(2, 4), true); + assert_eq!(ne_si32(2, 2147483646), true); + assert_eq!(ne_si32(2, 2147483647), true); + assert_eq!(ne_si32(3, -2147483648), true); + assert_eq!(ne_si32(3, -2147483647), true); + assert_eq!(ne_si32(3, -1713183800), true); + assert_eq!(ne_si32(3, -1252582164), true); + assert_eq!(ne_si32(3, -1035405763), true); + assert_eq!(ne_si32(3, 0), true); + } + #[test] + fn test_491() { + assert_eq!(ne_si32(3, 1), true); + assert_eq!(ne_si32(3, 2), true); + assert_eq!(ne_si32(3, 4), true); + assert_eq!(ne_si32(3, 2147483646), true); + assert_eq!(ne_si32(3, 2147483647), true); + assert_eq!(ne_si32(4, -2147483648), true); + assert_eq!(ne_si32(4, -2147483647), true); + assert_eq!(ne_si32(4, -1713183800), true); + assert_eq!(ne_si32(4, -1252582164), true); + assert_eq!(ne_si32(4, -1035405763), true); + } + #[test] + fn test_492() { + assert_eq!(ne_si32(4, 0), true); + assert_eq!(ne_si32(4, 1), true); + assert_eq!(ne_si32(4, 2), true); + assert_eq!(ne_si32(4, 3), true); + assert_eq!(ne_si32(4, 2147483646), true); + assert_eq!(ne_si32(4, 2147483647), true); + assert_eq!(ne_si32(2147483646, -2147483648), true); + assert_eq!(ne_si32(2147483646, -2147483647), true); + assert_eq!(ne_si32(2147483646, -1713183800), true); + assert_eq!(ne_si32(2147483646, -1252582164), true); + } + #[test] + fn test_493() { + assert_eq!(ne_si32(2147483646, -1035405763), true); + assert_eq!(ne_si32(2147483646, 0), true); + assert_eq!(ne_si32(2147483646, 1), true); + assert_eq!(ne_si32(2147483646, 2), true); + assert_eq!(ne_si32(2147483646, 3), true); + assert_eq!(ne_si32(2147483646, 4), true); + assert_eq!(ne_si32(2147483646, 2147483647), true); + assert_eq!(ne_si32(2147483647, -2147483648), true); + assert_eq!(ne_si32(2147483647, -2147483647), true); + assert_eq!(ne_si32(2147483647, -1713183800), true); + } + #[test] + fn test_494() { + assert_eq!(ne_si32(2147483647, -1252582164), true); + assert_eq!(ne_si32(2147483647, -1035405763), true); + assert_eq!(ne_si32(2147483647, 0), true); + assert_eq!(ne_si32(2147483647, 1), true); + assert_eq!(ne_si32(2147483647, 2), true); + assert_eq!(ne_si32(2147483647, 3), true); + assert_eq!(ne_si32(2147483647, 4), true); + assert_eq!(ne_si32(2147483647, 2147483646), true); + assert_eq!(ne_si64(-9223372036854775808, -9223372036854775808), false); + assert_eq!(ne_si64(-9223372036854775807, -9223372036854775807), false); + } + #[test] + fn test_495() { + assert_eq!(ne_si64(-1741927215160008704, -1741927215160008704), false); + assert_eq!(ne_si64(-1328271339354574848, -1328271339354574848), false); + assert_eq!(ne_si64(0, 0), false); + assert_eq!(ne_si64(1, 1), false); + assert_eq!(ne_si64(2, 2), false); + assert_eq!(ne_si64(3, 3), false); + assert_eq!(ne_si64(4, 4), false); + assert_eq!(ne_si64(5577148965131116544, 5577148965131116544), false); + assert_eq!(ne_si64(9223372036854775806, 9223372036854775806), false); + assert_eq!(ne_si64(9223372036854775807, 9223372036854775807), false); + } + #[test] + fn test_496() { + assert_eq!(ne_si64(-9223372036854775808, -9223372036854775807), true); + assert_eq!(ne_si64(-9223372036854775808, -1741927215160008704), true); + assert_eq!(ne_si64(-9223372036854775808, -1328271339354574848), true); + assert_eq!(ne_si64(-9223372036854775808, 0), true); + assert_eq!(ne_si64(-9223372036854775808, 1), true); + assert_eq!(ne_si64(-9223372036854775808, 2), true); + assert_eq!(ne_si64(-9223372036854775808, 3), true); + assert_eq!(ne_si64(-9223372036854775808, 4), true); + assert_eq!(ne_si64(-9223372036854775808, 5577148965131116544), true); + assert_eq!(ne_si64(-9223372036854775808, 9223372036854775806), true); + } + #[test] + fn test_497() { + assert_eq!(ne_si64(-9223372036854775808, 9223372036854775807), true); + assert_eq!(ne_si64(-9223372036854775807, -9223372036854775808), true); + assert_eq!(ne_si64(-9223372036854775807, -1741927215160008704), true); + assert_eq!(ne_si64(-9223372036854775807, -1328271339354574848), true); + assert_eq!(ne_si64(-9223372036854775807, 0), true); + assert_eq!(ne_si64(-9223372036854775807, 1), true); + assert_eq!(ne_si64(-9223372036854775807, 2), true); + assert_eq!(ne_si64(-9223372036854775807, 3), true); + assert_eq!(ne_si64(-9223372036854775807, 4), true); + assert_eq!(ne_si64(-9223372036854775807, 5577148965131116544), true); + } + #[test] + fn test_498() { + assert_eq!(ne_si64(-9223372036854775807, 9223372036854775806), true); + assert_eq!(ne_si64(-9223372036854775807, 9223372036854775807), true); + assert_eq!(ne_si64(-1741927215160008704, -9223372036854775808), true); + assert_eq!(ne_si64(-1741927215160008704, -9223372036854775807), true); + assert_eq!(ne_si64(-1741927215160008704, -1328271339354574848), true); + assert_eq!(ne_si64(-1741927215160008704, 0), true); + assert_eq!(ne_si64(-1741927215160008704, 1), true); + assert_eq!(ne_si64(-1741927215160008704, 2), true); + assert_eq!(ne_si64(-1741927215160008704, 3), true); + assert_eq!(ne_si64(-1741927215160008704, 4), true); + } + #[test] + fn test_499() { + assert_eq!(ne_si64(-1741927215160008704, 5577148965131116544), true); + assert_eq!(ne_si64(-1741927215160008704, 9223372036854775806), true); + assert_eq!(ne_si64(-1741927215160008704, 9223372036854775807), true); + assert_eq!(ne_si64(-1328271339354574848, -9223372036854775808), true); + assert_eq!(ne_si64(-1328271339354574848, -9223372036854775807), true); + assert_eq!(ne_si64(-1328271339354574848, -1741927215160008704), true); + assert_eq!(ne_si64(-1328271339354574848, 0), true); + assert_eq!(ne_si64(-1328271339354574848, 1), true); + assert_eq!(ne_si64(-1328271339354574848, 2), true); + assert_eq!(ne_si64(-1328271339354574848, 3), true); + } + #[test] + fn test_500() { + assert_eq!(ne_si64(-1328271339354574848, 4), true); + assert_eq!(ne_si64(-1328271339354574848, 5577148965131116544), true); + assert_eq!(ne_si64(-1328271339354574848, 9223372036854775806), true); + assert_eq!(ne_si64(-1328271339354574848, 9223372036854775807), true); + assert_eq!(ne_si64(0, -9223372036854775808), true); + assert_eq!(ne_si64(0, -9223372036854775807), true); + assert_eq!(ne_si64(0, -1741927215160008704), true); + assert_eq!(ne_si64(0, -1328271339354574848), true); + assert_eq!(ne_si64(0, 1), true); + assert_eq!(ne_si64(0, 2), true); + } + #[test] + fn test_501() { + assert_eq!(ne_si64(0, 3), true); + assert_eq!(ne_si64(0, 4), true); + assert_eq!(ne_si64(0, 5577148965131116544), true); + assert_eq!(ne_si64(0, 9223372036854775806), true); + assert_eq!(ne_si64(0, 9223372036854775807), true); + assert_eq!(ne_si64(1, -9223372036854775808), true); + assert_eq!(ne_si64(1, -9223372036854775807), true); + assert_eq!(ne_si64(1, -1741927215160008704), true); + assert_eq!(ne_si64(1, -1328271339354574848), true); + assert_eq!(ne_si64(1, 0), true); + } + #[test] + fn test_502() { + assert_eq!(ne_si64(1, 2), true); + assert_eq!(ne_si64(1, 3), true); + assert_eq!(ne_si64(1, 4), true); + assert_eq!(ne_si64(1, 5577148965131116544), true); + assert_eq!(ne_si64(1, 9223372036854775806), true); + assert_eq!(ne_si64(1, 9223372036854775807), true); + assert_eq!(ne_si64(2, -9223372036854775808), true); + assert_eq!(ne_si64(2, -9223372036854775807), true); + assert_eq!(ne_si64(2, -1741927215160008704), true); + assert_eq!(ne_si64(2, -1328271339354574848), true); + } + #[test] + fn test_503() { + assert_eq!(ne_si64(2, 0), true); + assert_eq!(ne_si64(2, 1), true); + assert_eq!(ne_si64(2, 3), true); + assert_eq!(ne_si64(2, 4), true); + assert_eq!(ne_si64(2, 5577148965131116544), true); + assert_eq!(ne_si64(2, 9223372036854775806), true); + assert_eq!(ne_si64(2, 9223372036854775807), true); + assert_eq!(ne_si64(3, -9223372036854775808), true); + assert_eq!(ne_si64(3, -9223372036854775807), true); + assert_eq!(ne_si64(3, -1741927215160008704), true); + } + #[test] + fn test_504() { + assert_eq!(ne_si64(3, -1328271339354574848), true); + assert_eq!(ne_si64(3, 0), true); + assert_eq!(ne_si64(3, 1), true); + assert_eq!(ne_si64(3, 2), true); + assert_eq!(ne_si64(3, 4), true); + assert_eq!(ne_si64(3, 5577148965131116544), true); + assert_eq!(ne_si64(3, 9223372036854775806), true); + assert_eq!(ne_si64(3, 9223372036854775807), true); + assert_eq!(ne_si64(4, -9223372036854775808), true); + assert_eq!(ne_si64(4, -9223372036854775807), true); + } + #[test] + fn test_505() { + assert_eq!(ne_si64(4, -1741927215160008704), true); + assert_eq!(ne_si64(4, -1328271339354574848), true); + assert_eq!(ne_si64(4, 0), true); + assert_eq!(ne_si64(4, 1), true); + assert_eq!(ne_si64(4, 2), true); + assert_eq!(ne_si64(4, 3), true); + assert_eq!(ne_si64(4, 5577148965131116544), true); + assert_eq!(ne_si64(4, 9223372036854775806), true); + assert_eq!(ne_si64(4, 9223372036854775807), true); + assert_eq!(ne_si64(5577148965131116544, -9223372036854775808), true); + } + #[test] + fn test_506() { + assert_eq!(ne_si64(5577148965131116544, -9223372036854775807), true); + assert_eq!(ne_si64(5577148965131116544, -1741927215160008704), true); + assert_eq!(ne_si64(5577148965131116544, -1328271339354574848), true); + assert_eq!(ne_si64(5577148965131116544, 0), true); + assert_eq!(ne_si64(5577148965131116544, 1), true); + assert_eq!(ne_si64(5577148965131116544, 2), true); + assert_eq!(ne_si64(5577148965131116544, 3), true); + assert_eq!(ne_si64(5577148965131116544, 4), true); + assert_eq!(ne_si64(5577148965131116544, 9223372036854775806), true); + assert_eq!(ne_si64(5577148965131116544, 9223372036854775807), true); + } + #[test] + fn test_507() { + assert_eq!(ne_si64(9223372036854775806, -9223372036854775808), true); + assert_eq!(ne_si64(9223372036854775806, -9223372036854775807), true); + assert_eq!(ne_si64(9223372036854775806, -1741927215160008704), true); + assert_eq!(ne_si64(9223372036854775806, -1328271339354574848), true); + assert_eq!(ne_si64(9223372036854775806, 0), true); + assert_eq!(ne_si64(9223372036854775806, 1), true); + assert_eq!(ne_si64(9223372036854775806, 2), true); + assert_eq!(ne_si64(9223372036854775806, 3), true); + assert_eq!(ne_si64(9223372036854775806, 4), true); + assert_eq!(ne_si64(9223372036854775806, 5577148965131116544), true); + } + #[test] + fn test_508() { + assert_eq!(ne_si64(9223372036854775806, 9223372036854775807), true); + assert_eq!(ne_si64(9223372036854775807, -9223372036854775808), true); + assert_eq!(ne_si64(9223372036854775807, -9223372036854775807), true); + assert_eq!(ne_si64(9223372036854775807, -1741927215160008704), true); + assert_eq!(ne_si64(9223372036854775807, -1328271339354574848), true); + assert_eq!(ne_si64(9223372036854775807, 0), true); + assert_eq!(ne_si64(9223372036854775807, 1), true); + assert_eq!(ne_si64(9223372036854775807, 2), true); + assert_eq!(ne_si64(9223372036854775807, 3), true); + assert_eq!(ne_si64(9223372036854775807, 4), true); + } + #[test] + fn test_509() { + assert_eq!(ne_si64(9223372036854775807, 5577148965131116544), true); + assert_eq!(ne_si64(9223372036854775807, 9223372036854775806), true); + assert_eq!(ne_si8(-128, -128), false); + assert_eq!(ne_si8(-127, -127), false); + assert_eq!(ne_si8(0, 0), false); + assert_eq!(ne_si8(1, 1), false); + assert_eq!(ne_si8(2, 2), false); + assert_eq!(ne_si8(3, 3), false); + assert_eq!(ne_si8(4, 4), false); + assert_eq!(ne_si8(16, 16), false); + } + #[test] + fn test_510() { + assert_eq!(ne_si8(126, 126), false); + assert_eq!(ne_si8(127, 127), false); + assert_eq!(ne_si8(-128, -127), true); + assert_eq!(ne_si8(-128, 0), true); + assert_eq!(ne_si8(-128, 1), true); + assert_eq!(ne_si8(-128, 2), true); + assert_eq!(ne_si8(-128, 3), true); + assert_eq!(ne_si8(-128, 4), true); + assert_eq!(ne_si8(-128, 16), true); + assert_eq!(ne_si8(-128, 126), true); + } + #[test] + fn test_511() { + assert_eq!(ne_si8(-128, 127), true); + assert_eq!(ne_si8(-127, -128), true); + assert_eq!(ne_si8(-127, 0), true); + assert_eq!(ne_si8(-127, 1), true); + assert_eq!(ne_si8(-127, 2), true); + assert_eq!(ne_si8(-127, 3), true); + assert_eq!(ne_si8(-127, 4), true); + assert_eq!(ne_si8(-127, 16), true); + assert_eq!(ne_si8(-127, 126), true); + assert_eq!(ne_si8(-127, 127), true); + } + #[test] + fn test_512() { + assert_eq!(ne_si8(0, -128), true); + assert_eq!(ne_si8(0, -127), true); + assert_eq!(ne_si8(0, 1), true); + assert_eq!(ne_si8(0, 2), true); + assert_eq!(ne_si8(0, 3), true); + assert_eq!(ne_si8(0, 4), true); + assert_eq!(ne_si8(0, 16), true); + assert_eq!(ne_si8(0, 126), true); + assert_eq!(ne_si8(0, 127), true); + assert_eq!(ne_si8(1, -128), true); + } + #[test] + fn test_513() { + assert_eq!(ne_si8(1, -127), true); + assert_eq!(ne_si8(1, 0), true); + assert_eq!(ne_si8(1, 2), true); + assert_eq!(ne_si8(1, 3), true); + assert_eq!(ne_si8(1, 4), true); + assert_eq!(ne_si8(1, 16), true); + assert_eq!(ne_si8(1, 126), true); + assert_eq!(ne_si8(1, 127), true); + assert_eq!(ne_si8(2, -128), true); + assert_eq!(ne_si8(2, -127), true); + } + #[test] + fn test_514() { + assert_eq!(ne_si8(2, 0), true); + assert_eq!(ne_si8(2, 1), true); + assert_eq!(ne_si8(2, 3), true); + assert_eq!(ne_si8(2, 4), true); + assert_eq!(ne_si8(2, 16), true); + assert_eq!(ne_si8(2, 126), true); + assert_eq!(ne_si8(2, 127), true); + assert_eq!(ne_si8(3, -128), true); + assert_eq!(ne_si8(3, -127), true); + assert_eq!(ne_si8(3, 0), true); + } + #[test] + fn test_515() { + assert_eq!(ne_si8(3, 1), true); + assert_eq!(ne_si8(3, 2), true); + assert_eq!(ne_si8(3, 4), true); + assert_eq!(ne_si8(3, 16), true); + assert_eq!(ne_si8(3, 126), true); + assert_eq!(ne_si8(3, 127), true); + assert_eq!(ne_si8(4, -128), true); + assert_eq!(ne_si8(4, -127), true); + assert_eq!(ne_si8(4, 0), true); + assert_eq!(ne_si8(4, 1), true); + } + #[test] + fn test_516() { + assert_eq!(ne_si8(4, 2), true); + assert_eq!(ne_si8(4, 3), true); + assert_eq!(ne_si8(4, 16), true); + assert_eq!(ne_si8(4, 126), true); + assert_eq!(ne_si8(4, 127), true); + assert_eq!(ne_si8(16, -128), true); + assert_eq!(ne_si8(16, -127), true); + assert_eq!(ne_si8(16, 0), true); + assert_eq!(ne_si8(16, 1), true); + assert_eq!(ne_si8(16, 2), true); + } + #[test] + fn test_517() { + assert_eq!(ne_si8(16, 3), true); + assert_eq!(ne_si8(16, 4), true); + assert_eq!(ne_si8(16, 126), true); + assert_eq!(ne_si8(16, 127), true); + assert_eq!(ne_si8(126, -128), true); + assert_eq!(ne_si8(126, -127), true); + assert_eq!(ne_si8(126, 0), true); + assert_eq!(ne_si8(126, 1), true); + assert_eq!(ne_si8(126, 2), true); + assert_eq!(ne_si8(126, 3), true); + } + #[test] + fn test_518() { + assert_eq!(ne_si8(126, 4), true); + assert_eq!(ne_si8(126, 16), true); + assert_eq!(ne_si8(126, 127), true); + assert_eq!(ne_si8(127, -128), true); + assert_eq!(ne_si8(127, -127), true); + assert_eq!(ne_si8(127, 0), true); + assert_eq!(ne_si8(127, 1), true); + assert_eq!(ne_si8(127, 2), true); + assert_eq!(ne_si8(127, 3), true); + assert_eq!(ne_si8(127, 4), true); + } + #[test] + fn test_519() { + assert_eq!(ne_si8(127, 16), true); + assert_eq!(ne_si8(127, 126), true); + assert_eq!(ne_ui16(0, 0), false); + assert_eq!(ne_ui16(1, 1), false); + assert_eq!(ne_ui16(2, 2), false); + assert_eq!(ne_ui16(3, 3), false); + assert_eq!(ne_ui16(4, 4), false); + assert_eq!(ne_ui16(1717, 1717), false); + assert_eq!(ne_ui16(17988, 17988), false); + assert_eq!(ne_ui16(65096, 65096), false); + } + #[test] + fn test_520() { + assert_eq!(ne_ui16(65534, 65534), false); + assert_eq!(ne_ui16(65535, 65535), false); + assert_eq!(ne_ui16(0, 1), true); + assert_eq!(ne_ui16(0, 2), true); + assert_eq!(ne_ui16(0, 3), true); + assert_eq!(ne_ui16(0, 4), true); + assert_eq!(ne_ui16(0, 1717), true); + assert_eq!(ne_ui16(0, 17988), true); + assert_eq!(ne_ui16(0, 65096), true); + assert_eq!(ne_ui16(0, 65534), true); + } + #[test] + fn test_521() { + assert_eq!(ne_ui16(0, 65535), true); + assert_eq!(ne_ui16(1, 0), true); + assert_eq!(ne_ui16(1, 2), true); + assert_eq!(ne_ui16(1, 3), true); + assert_eq!(ne_ui16(1, 4), true); + assert_eq!(ne_ui16(1, 1717), true); + assert_eq!(ne_ui16(1, 17988), true); + assert_eq!(ne_ui16(1, 65096), true); + assert_eq!(ne_ui16(1, 65534), true); + assert_eq!(ne_ui16(1, 65535), true); + } + #[test] + fn test_522() { + assert_eq!(ne_ui16(2, 0), true); + assert_eq!(ne_ui16(2, 1), true); + assert_eq!(ne_ui16(2, 3), true); + assert_eq!(ne_ui16(2, 4), true); + assert_eq!(ne_ui16(2, 1717), true); + assert_eq!(ne_ui16(2, 17988), true); + assert_eq!(ne_ui16(2, 65096), true); + assert_eq!(ne_ui16(2, 65534), true); + assert_eq!(ne_ui16(2, 65535), true); + assert_eq!(ne_ui16(3, 0), true); + } + #[test] + fn test_523() { + assert_eq!(ne_ui16(3, 1), true); + assert_eq!(ne_ui16(3, 2), true); + assert_eq!(ne_ui16(3, 4), true); + assert_eq!(ne_ui16(3, 1717), true); + assert_eq!(ne_ui16(3, 17988), true); + assert_eq!(ne_ui16(3, 65096), true); + assert_eq!(ne_ui16(3, 65534), true); + assert_eq!(ne_ui16(3, 65535), true); + assert_eq!(ne_ui16(4, 0), true); + assert_eq!(ne_ui16(4, 1), true); + } + #[test] + fn test_524() { + assert_eq!(ne_ui16(4, 2), true); + assert_eq!(ne_ui16(4, 3), true); + assert_eq!(ne_ui16(4, 1717), true); + assert_eq!(ne_ui16(4, 17988), true); + assert_eq!(ne_ui16(4, 65096), true); + assert_eq!(ne_ui16(4, 65534), true); + assert_eq!(ne_ui16(4, 65535), true); + assert_eq!(ne_ui16(1717, 0), true); + assert_eq!(ne_ui16(1717, 1), true); + assert_eq!(ne_ui16(1717, 2), true); + } + #[test] + fn test_525() { + assert_eq!(ne_ui16(1717, 3), true); + assert_eq!(ne_ui16(1717, 4), true); + assert_eq!(ne_ui16(1717, 17988), true); + assert_eq!(ne_ui16(1717, 65096), true); + assert_eq!(ne_ui16(1717, 65534), true); + assert_eq!(ne_ui16(1717, 65535), true); + assert_eq!(ne_ui16(17988, 0), true); + assert_eq!(ne_ui16(17988, 1), true); + assert_eq!(ne_ui16(17988, 2), true); + assert_eq!(ne_ui16(17988, 3), true); + } + #[test] + fn test_526() { + assert_eq!(ne_ui16(17988, 4), true); + assert_eq!(ne_ui16(17988, 1717), true); + assert_eq!(ne_ui16(17988, 65096), true); + assert_eq!(ne_ui16(17988, 65534), true); + assert_eq!(ne_ui16(17988, 65535), true); + assert_eq!(ne_ui16(65096, 0), true); + assert_eq!(ne_ui16(65096, 1), true); + assert_eq!(ne_ui16(65096, 2), true); + assert_eq!(ne_ui16(65096, 3), true); + assert_eq!(ne_ui16(65096, 4), true); + } + #[test] + fn test_527() { + assert_eq!(ne_ui16(65096, 1717), true); + assert_eq!(ne_ui16(65096, 17988), true); + assert_eq!(ne_ui16(65096, 65534), true); + assert_eq!(ne_ui16(65096, 65535), true); + assert_eq!(ne_ui16(65534, 0), true); + assert_eq!(ne_ui16(65534, 1), true); + assert_eq!(ne_ui16(65534, 2), true); + assert_eq!(ne_ui16(65534, 3), true); + assert_eq!(ne_ui16(65534, 4), true); + assert_eq!(ne_ui16(65534, 1717), true); + } + #[test] + fn test_528() { + assert_eq!(ne_ui16(65534, 17988), true); + assert_eq!(ne_ui16(65534, 65096), true); + assert_eq!(ne_ui16(65534, 65535), true); + assert_eq!(ne_ui16(65535, 0), true); + assert_eq!(ne_ui16(65535, 1), true); + assert_eq!(ne_ui16(65535, 2), true); + assert_eq!(ne_ui16(65535, 3), true); + assert_eq!(ne_ui16(65535, 4), true); + assert_eq!(ne_ui16(65535, 1717), true); + assert_eq!(ne_ui16(65535, 17988), true); + } + #[test] + fn test_529() { + assert_eq!(ne_ui16(65535, 65096), true); + assert_eq!(ne_ui16(65535, 65534), true); + assert_eq!(ne_ui32(0, 0), false); + assert_eq!(ne_ui32(1, 1), false); + assert_eq!(ne_ui32(2, 2), false); + assert_eq!(ne_ui32(3, 3), false); + assert_eq!(ne_ui32(4, 4), false); + assert_eq!(ne_ui32(2119154652, 2119154652), false); + assert_eq!(ne_ui32(3002788344, 3002788344), false); + assert_eq!(ne_ui32(3482297128, 3482297128), false); + } + #[test] + fn test_530() { + assert_eq!(ne_ui32(4294967294, 4294967294), false); + assert_eq!(ne_ui32(4294967295, 4294967295), false); + assert_eq!(ne_ui32(0, 1), true); + assert_eq!(ne_ui32(0, 2), true); + assert_eq!(ne_ui32(0, 3), true); + assert_eq!(ne_ui32(0, 4), true); + assert_eq!(ne_ui32(0, 2119154652), true); + assert_eq!(ne_ui32(0, 3002788344), true); + assert_eq!(ne_ui32(0, 3482297128), true); + assert_eq!(ne_ui32(0, 4294967294), true); + } + #[test] + fn test_531() { + assert_eq!(ne_ui32(0, 4294967295), true); + assert_eq!(ne_ui32(1, 0), true); + assert_eq!(ne_ui32(1, 2), true); + assert_eq!(ne_ui32(1, 3), true); + assert_eq!(ne_ui32(1, 4), true); + assert_eq!(ne_ui32(1, 2119154652), true); + assert_eq!(ne_ui32(1, 3002788344), true); + assert_eq!(ne_ui32(1, 3482297128), true); + assert_eq!(ne_ui32(1, 4294967294), true); + assert_eq!(ne_ui32(1, 4294967295), true); + } + #[test] + fn test_532() { + assert_eq!(ne_ui32(2, 0), true); + assert_eq!(ne_ui32(2, 1), true); + assert_eq!(ne_ui32(2, 3), true); + assert_eq!(ne_ui32(2, 4), true); + assert_eq!(ne_ui32(2, 2119154652), true); + assert_eq!(ne_ui32(2, 3002788344), true); + assert_eq!(ne_ui32(2, 3482297128), true); + assert_eq!(ne_ui32(2, 4294967294), true); + assert_eq!(ne_ui32(2, 4294967295), true); + assert_eq!(ne_ui32(3, 0), true); + } + #[test] + fn test_533() { + assert_eq!(ne_ui32(3, 1), true); + assert_eq!(ne_ui32(3, 2), true); + assert_eq!(ne_ui32(3, 4), true); + assert_eq!(ne_ui32(3, 2119154652), true); + assert_eq!(ne_ui32(3, 3002788344), true); + assert_eq!(ne_ui32(3, 3482297128), true); + assert_eq!(ne_ui32(3, 4294967294), true); + assert_eq!(ne_ui32(3, 4294967295), true); + assert_eq!(ne_ui32(4, 0), true); + assert_eq!(ne_ui32(4, 1), true); + } + #[test] + fn test_534() { + assert_eq!(ne_ui32(4, 2), true); + assert_eq!(ne_ui32(4, 3), true); + assert_eq!(ne_ui32(4, 2119154652), true); + assert_eq!(ne_ui32(4, 3002788344), true); + assert_eq!(ne_ui32(4, 3482297128), true); + assert_eq!(ne_ui32(4, 4294967294), true); + assert_eq!(ne_ui32(4, 4294967295), true); + assert_eq!(ne_ui32(2119154652, 0), true); + assert_eq!(ne_ui32(2119154652, 1), true); + assert_eq!(ne_ui32(2119154652, 2), true); + } + #[test] + fn test_535() { + assert_eq!(ne_ui32(2119154652, 3), true); + assert_eq!(ne_ui32(2119154652, 4), true); + assert_eq!(ne_ui32(2119154652, 3002788344), true); + assert_eq!(ne_ui32(2119154652, 3482297128), true); + assert_eq!(ne_ui32(2119154652, 4294967294), true); + assert_eq!(ne_ui32(2119154652, 4294967295), true); + assert_eq!(ne_ui32(3002788344, 0), true); + assert_eq!(ne_ui32(3002788344, 1), true); + assert_eq!(ne_ui32(3002788344, 2), true); + assert_eq!(ne_ui32(3002788344, 3), true); + } + #[test] + fn test_536() { + assert_eq!(ne_ui32(3002788344, 4), true); + assert_eq!(ne_ui32(3002788344, 2119154652), true); + assert_eq!(ne_ui32(3002788344, 3482297128), true); + assert_eq!(ne_ui32(3002788344, 4294967294), true); + assert_eq!(ne_ui32(3002788344, 4294967295), true); + assert_eq!(ne_ui32(3482297128, 0), true); + assert_eq!(ne_ui32(3482297128, 1), true); + assert_eq!(ne_ui32(3482297128, 2), true); + assert_eq!(ne_ui32(3482297128, 3), true); + assert_eq!(ne_ui32(3482297128, 4), true); + } + #[test] + fn test_537() { + assert_eq!(ne_ui32(3482297128, 2119154652), true); + assert_eq!(ne_ui32(3482297128, 3002788344), true); + assert_eq!(ne_ui32(3482297128, 4294967294), true); + assert_eq!(ne_ui32(3482297128, 4294967295), true); + assert_eq!(ne_ui32(4294967294, 0), true); + assert_eq!(ne_ui32(4294967294, 1), true); + assert_eq!(ne_ui32(4294967294, 2), true); + assert_eq!(ne_ui32(4294967294, 3), true); + assert_eq!(ne_ui32(4294967294, 4), true); + assert_eq!(ne_ui32(4294967294, 2119154652), true); + } + #[test] + fn test_538() { + assert_eq!(ne_ui32(4294967294, 3002788344), true); + assert_eq!(ne_ui32(4294967294, 3482297128), true); + assert_eq!(ne_ui32(4294967294, 4294967295), true); + assert_eq!(ne_ui32(4294967295, 0), true); + assert_eq!(ne_ui32(4294967295, 1), true); + assert_eq!(ne_ui32(4294967295, 2), true); + assert_eq!(ne_ui32(4294967295, 3), true); + assert_eq!(ne_ui32(4294967295, 4), true); + assert_eq!(ne_ui32(4294967295, 2119154652), true); + assert_eq!(ne_ui32(4294967295, 3002788344), true); + } + #[test] + fn test_539() { + assert_eq!(ne_ui32(4294967295, 3482297128), true); + assert_eq!(ne_ui32(4294967295, 4294967294), true); + assert_eq!(ne_ui64(0, 0), false); + assert_eq!(ne_ui64(1, 1), false); + assert_eq!(ne_ui64(2, 2), false); + assert_eq!(ne_ui64(3, 3), false); + assert_eq!(ne_ui64(4, 4), false); + assert_eq!(ne_ui64(191084152064409600, 191084152064409600), false); + assert_eq!(ne_ui64(11015955194427482112, 11015955194427482112), false); + assert_eq!(ne_ui64(16990600415051759616, 16990600415051759616), false); + } + #[test] + fn test_540() { + assert_eq!(ne_ui64(18446744073709551614, 18446744073709551614), false); + assert_eq!(ne_ui64(18446744073709551615, 18446744073709551615), false); + assert_eq!(ne_ui64(0, 1), true); + assert_eq!(ne_ui64(0, 2), true); + assert_eq!(ne_ui64(0, 3), true); + assert_eq!(ne_ui64(0, 4), true); + assert_eq!(ne_ui64(0, 191084152064409600), true); + assert_eq!(ne_ui64(0, 11015955194427482112), true); + assert_eq!(ne_ui64(0, 16990600415051759616), true); + assert_eq!(ne_ui64(0, 18446744073709551614), true); + } + #[test] + fn test_541() { + assert_eq!(ne_ui64(0, 18446744073709551615), true); + assert_eq!(ne_ui64(1, 0), true); + assert_eq!(ne_ui64(1, 2), true); + assert_eq!(ne_ui64(1, 3), true); + assert_eq!(ne_ui64(1, 4), true); + assert_eq!(ne_ui64(1, 191084152064409600), true); + assert_eq!(ne_ui64(1, 11015955194427482112), true); + assert_eq!(ne_ui64(1, 16990600415051759616), true); + assert_eq!(ne_ui64(1, 18446744073709551614), true); + assert_eq!(ne_ui64(1, 18446744073709551615), true); + } + #[test] + fn test_542() { + assert_eq!(ne_ui64(2, 0), true); + assert_eq!(ne_ui64(2, 1), true); + assert_eq!(ne_ui64(2, 3), true); + assert_eq!(ne_ui64(2, 4), true); + assert_eq!(ne_ui64(2, 191084152064409600), true); + assert_eq!(ne_ui64(2, 11015955194427482112), true); + assert_eq!(ne_ui64(2, 16990600415051759616), true); + assert_eq!(ne_ui64(2, 18446744073709551614), true); + assert_eq!(ne_ui64(2, 18446744073709551615), true); + assert_eq!(ne_ui64(3, 0), true); + } + #[test] + fn test_543() { + assert_eq!(ne_ui64(3, 1), true); + assert_eq!(ne_ui64(3, 2), true); + assert_eq!(ne_ui64(3, 4), true); + assert_eq!(ne_ui64(3, 191084152064409600), true); + assert_eq!(ne_ui64(3, 11015955194427482112), true); + assert_eq!(ne_ui64(3, 16990600415051759616), true); + assert_eq!(ne_ui64(3, 18446744073709551614), true); + assert_eq!(ne_ui64(3, 18446744073709551615), true); + assert_eq!(ne_ui64(4, 0), true); + assert_eq!(ne_ui64(4, 1), true); + } + #[test] + fn test_544() { + assert_eq!(ne_ui64(4, 2), true); + assert_eq!(ne_ui64(4, 3), true); + assert_eq!(ne_ui64(4, 191084152064409600), true); + assert_eq!(ne_ui64(4, 11015955194427482112), true); + assert_eq!(ne_ui64(4, 16990600415051759616), true); + assert_eq!(ne_ui64(4, 18446744073709551614), true); + assert_eq!(ne_ui64(4, 18446744073709551615), true); + assert_eq!(ne_ui64(191084152064409600, 0), true); + assert_eq!(ne_ui64(191084152064409600, 1), true); + assert_eq!(ne_ui64(191084152064409600, 2), true); + } + #[test] + fn test_545() { + assert_eq!(ne_ui64(191084152064409600, 3), true); + assert_eq!(ne_ui64(191084152064409600, 4), true); + assert_eq!(ne_ui64(191084152064409600, 11015955194427482112), true); + assert_eq!(ne_ui64(191084152064409600, 16990600415051759616), true); + assert_eq!(ne_ui64(191084152064409600, 18446744073709551614), true); + assert_eq!(ne_ui64(191084152064409600, 18446744073709551615), true); + assert_eq!(ne_ui64(11015955194427482112, 0), true); + assert_eq!(ne_ui64(11015955194427482112, 1), true); + assert_eq!(ne_ui64(11015955194427482112, 2), true); + assert_eq!(ne_ui64(11015955194427482112, 3), true); + } + #[test] + fn test_546() { + assert_eq!(ne_ui64(11015955194427482112, 4), true); + assert_eq!(ne_ui64(11015955194427482112, 191084152064409600), true); + assert_eq!(ne_ui64(11015955194427482112, 16990600415051759616), true); + assert_eq!(ne_ui64(11015955194427482112, 18446744073709551614), true); + assert_eq!(ne_ui64(11015955194427482112, 18446744073709551615), true); + assert_eq!(ne_ui64(16990600415051759616, 0), true); + assert_eq!(ne_ui64(16990600415051759616, 1), true); + assert_eq!(ne_ui64(16990600415051759616, 2), true); + assert_eq!(ne_ui64(16990600415051759616, 3), true); + assert_eq!(ne_ui64(16990600415051759616, 4), true); + } + #[test] + fn test_547() { + assert_eq!(ne_ui64(16990600415051759616, 191084152064409600), true); + assert_eq!(ne_ui64(16990600415051759616, 11015955194427482112), true); + assert_eq!(ne_ui64(16990600415051759616, 18446744073709551614), true); + assert_eq!(ne_ui64(16990600415051759616, 18446744073709551615), true); + assert_eq!(ne_ui64(18446744073709551614, 0), true); + assert_eq!(ne_ui64(18446744073709551614, 1), true); + assert_eq!(ne_ui64(18446744073709551614, 2), true); + assert_eq!(ne_ui64(18446744073709551614, 3), true); + assert_eq!(ne_ui64(18446744073709551614, 4), true); + assert_eq!(ne_ui64(18446744073709551614, 191084152064409600), true); + } + #[test] + fn test_548() { + assert_eq!(ne_ui64(18446744073709551614, 11015955194427482112), true); + assert_eq!(ne_ui64(18446744073709551614, 16990600415051759616), true); + assert_eq!(ne_ui64(18446744073709551614, 18446744073709551615), true); + assert_eq!(ne_ui64(18446744073709551615, 0), true); + assert_eq!(ne_ui64(18446744073709551615, 1), true); + assert_eq!(ne_ui64(18446744073709551615, 2), true); + assert_eq!(ne_ui64(18446744073709551615, 3), true); + assert_eq!(ne_ui64(18446744073709551615, 4), true); + assert_eq!(ne_ui64(18446744073709551615, 191084152064409600), true); + assert_eq!(ne_ui64(18446744073709551615, 11015955194427482112), true); + } + #[test] + fn test_549() { + assert_eq!(ne_ui64(18446744073709551615, 16990600415051759616), true); + assert_eq!(ne_ui64(18446744073709551615, 18446744073709551614), true); + assert_eq!(ne_ui8(0, 0), false); + assert_eq!(ne_ui8(1, 1), false); + assert_eq!(ne_ui8(2, 2), false); + assert_eq!(ne_ui8(3, 3), false); + assert_eq!(ne_ui8(4, 4), false); + assert_eq!(ne_ui8(72, 72), false); + assert_eq!(ne_ui8(100, 100), false); + assert_eq!(ne_ui8(162, 162), false); + } + #[test] + fn test_550() { + assert_eq!(ne_ui8(254, 254), false); + assert_eq!(ne_ui8(255, 255), false); + assert_eq!(ne_ui8(0, 1), true); + assert_eq!(ne_ui8(0, 2), true); + assert_eq!(ne_ui8(0, 3), true); + assert_eq!(ne_ui8(0, 4), true); + assert_eq!(ne_ui8(0, 72), true); + assert_eq!(ne_ui8(0, 100), true); + assert_eq!(ne_ui8(0, 162), true); + assert_eq!(ne_ui8(0, 254), true); + } + #[test] + fn test_551() { + assert_eq!(ne_ui8(0, 255), true); + assert_eq!(ne_ui8(1, 0), true); + assert_eq!(ne_ui8(1, 2), true); + assert_eq!(ne_ui8(1, 3), true); + assert_eq!(ne_ui8(1, 4), true); + assert_eq!(ne_ui8(1, 72), true); + assert_eq!(ne_ui8(1, 100), true); + assert_eq!(ne_ui8(1, 162), true); + assert_eq!(ne_ui8(1, 254), true); + assert_eq!(ne_ui8(1, 255), true); + } + #[test] + fn test_552() { + assert_eq!(ne_ui8(2, 0), true); + assert_eq!(ne_ui8(2, 1), true); + assert_eq!(ne_ui8(2, 3), true); + assert_eq!(ne_ui8(2, 4), true); + assert_eq!(ne_ui8(2, 72), true); + assert_eq!(ne_ui8(2, 100), true); + assert_eq!(ne_ui8(2, 162), true); + assert_eq!(ne_ui8(2, 254), true); + assert_eq!(ne_ui8(2, 255), true); + assert_eq!(ne_ui8(3, 0), true); + } + #[test] + fn test_553() { + assert_eq!(ne_ui8(3, 1), true); + assert_eq!(ne_ui8(3, 2), true); + assert_eq!(ne_ui8(3, 4), true); + assert_eq!(ne_ui8(3, 72), true); + assert_eq!(ne_ui8(3, 100), true); + assert_eq!(ne_ui8(3, 162), true); + assert_eq!(ne_ui8(3, 254), true); + assert_eq!(ne_ui8(3, 255), true); + assert_eq!(ne_ui8(4, 0), true); + assert_eq!(ne_ui8(4, 1), true); + } + #[test] + fn test_554() { + assert_eq!(ne_ui8(4, 2), true); + assert_eq!(ne_ui8(4, 3), true); + assert_eq!(ne_ui8(4, 72), true); + assert_eq!(ne_ui8(4, 100), true); + assert_eq!(ne_ui8(4, 162), true); + assert_eq!(ne_ui8(4, 254), true); + assert_eq!(ne_ui8(4, 255), true); + assert_eq!(ne_ui8(72, 0), true); + assert_eq!(ne_ui8(72, 1), true); + assert_eq!(ne_ui8(72, 2), true); + } + #[test] + fn test_555() { + assert_eq!(ne_ui8(72, 3), true); + assert_eq!(ne_ui8(72, 4), true); + assert_eq!(ne_ui8(72, 100), true); + assert_eq!(ne_ui8(72, 162), true); + assert_eq!(ne_ui8(72, 254), true); + assert_eq!(ne_ui8(72, 255), true); + assert_eq!(ne_ui8(100, 0), true); + assert_eq!(ne_ui8(100, 1), true); + assert_eq!(ne_ui8(100, 2), true); + assert_eq!(ne_ui8(100, 3), true); + } + #[test] + fn test_556() { + assert_eq!(ne_ui8(100, 4), true); + assert_eq!(ne_ui8(100, 72), true); + assert_eq!(ne_ui8(100, 162), true); + assert_eq!(ne_ui8(100, 254), true); + assert_eq!(ne_ui8(100, 255), true); + assert_eq!(ne_ui8(162, 0), true); + assert_eq!(ne_ui8(162, 1), true); + assert_eq!(ne_ui8(162, 2), true); + assert_eq!(ne_ui8(162, 3), true); + assert_eq!(ne_ui8(162, 4), true); + } + #[test] + fn test_557() { + assert_eq!(ne_ui8(162, 72), true); + assert_eq!(ne_ui8(162, 100), true); + assert_eq!(ne_ui8(162, 254), true); + assert_eq!(ne_ui8(162, 255), true); + assert_eq!(ne_ui8(254, 0), true); + assert_eq!(ne_ui8(254, 1), true); + assert_eq!(ne_ui8(254, 2), true); + assert_eq!(ne_ui8(254, 3), true); + assert_eq!(ne_ui8(254, 4), true); + assert_eq!(ne_ui8(254, 72), true); + } + #[test] + fn test_558() { + assert_eq!(ne_ui8(254, 100), true); + assert_eq!(ne_ui8(254, 162), true); + assert_eq!(ne_ui8(254, 255), true); + assert_eq!(ne_ui8(255, 0), true); + assert_eq!(ne_ui8(255, 1), true); + assert_eq!(ne_ui8(255, 2), true); + assert_eq!(ne_ui8(255, 3), true); + assert_eq!(ne_ui8(255, 4), true); + assert_eq!(ne_ui8(255, 72), true); + assert_eq!(ne_ui8(255, 100), true); + } + #[test] + fn test_559() { + assert_eq!(ne_ui8(255, 162), true); + assert_eq!(ne_ui8(255, 254), true); + } } diff --git a/arc-mlir/src/tests/arc-to-rust/bool-ops.mlir b/arc-mlir/src/tests/arc-to-rust/bool-ops.mlir index 3b5a9c78a..57d7c9921 100644 --- a/arc-mlir/src/tests/arc-to-rust/bool-ops.mlir +++ b/arc-mlir/src/tests/arc-to-rust/bool-ops.mlir @@ -15,11 +15,11 @@ module @toplevel { %0 = arith.xori %arg0, %arg1 : i1 return %0 : i1 } - func.func @eq_i1(%a : i1, %b : i1) -> i1 attributes {rust.declare} { + func.func @eq_i1(%a : i1, %b : i1) -> i1 { %r = arith.cmpi "eq", %a, %b : i1 return %r : i1 } - func.func @ne_i1(%a : i1, %b : i1) -> i1 attributes {rust.declare} { + func.func @ne_i1(%a : i1, %b : i1) -> i1 { %r = arith.cmpi "ne", %a, %b : i1 return %r : i1 } diff --git a/arc-mlir/src/tests/arc-to-rust/bool-ops.mlir.rust-tests b/arc-mlir/src/tests/arc-to-rust/bool-ops.mlir.rust-tests index 62f30c9b6..61a9a27fd 100644 --- a/arc-mlir/src/tests/arc-to-rust/bool-ops.mlir.rust-tests +++ b/arc-mlir/src/tests/arc-to-rust/bool-ops.mlir.rust-tests @@ -1,24 +1,23 @@ #[cfg(test)] mod tests { - use crate::toplevel::*; - #[rewrite(main)] - #[test] - fn it_works() { - assert_eq!(call!(and_i1(true, true)), true); - assert_eq!(call!(or_i1(false, true)), true); - assert_eq!(call!(xor_i1(true, true)), false); - assert_eq!(call!(eq_i1(true, true)), true); - assert_eq!(call!(eq_i1(false, true)), false); - assert_eq!(call!(eq_i1(true, false)), false); - assert_eq!(call!(eq_i1(false, false)), true); - assert_eq!(call!(ne_i1(true, true)), false); - assert_eq!(call!(ne_i1(false, true)), true); - assert_eq!(call!(ne_i1(true, false)), true); - assert_eq!(call!(ne_i1(false, false)), false); - assert_eq!(call!(not_i1(false)), true); - assert_eq!(call!(not_i1(true)), false); - assert_eq!(call!(not_select_i1(false)), true); - assert_eq!(call!(not_select_i1(true)), false); - } + use crate::toplevel::*; + #[test] + fn it_works() { + assert_eq!(and_i1(true, true), true); + assert_eq!(or_i1(false, true), true); + assert_eq!(xor_i1(true, true), false); + assert_eq!(eq_i1(true, true), true); + assert_eq!(eq_i1(false, true), false); + assert_eq!(eq_i1(true, false), false); + assert_eq!(eq_i1(false, false), true); + assert_eq!(ne_i1(true, true), false); + assert_eq!(ne_i1(false, true), true); + assert_eq!(ne_i1(true, false), true); + assert_eq!(ne_i1(false, false), false); + assert_eq!(not_i1(false), true); + assert_eq!(not_i1(true), false); + assert_eq!(not_select_i1(false), true); + assert_eq!(not_select_i1(true), false); + } } diff --git a/arc-mlir/src/tests/arc-to-rust/calls-streams.mlir b/arc-mlir/src/tests/arc-to-rust/calls-streams.mlir deleted file mode 100644 index 82254d42a..000000000 --- a/arc-mlir/src/tests/arc-to-rust/calls-streams.mlir +++ /dev/null @@ -1,17 +0,0 @@ -// XFAIL: * -// RUN: arc-mlir-rust-test %t %s -rustinclude %s.rust-tests -// RUN: arc-mlir-rust-test %t-canon %s -rustinclude %s.rust-tests -canonicalize -// RUN: arc-mlir-rust-test %t-roundtrip-scf %s -rustinclude %s.rust-tests -canonicalize -remove-scf -canonicalize -to-scf -canonicalize - -module @toplevel { - - func.func private @crate_Identity() -> ((!arc.stream.source>) -> !arc.stream.source>) - - func.func @crate_main(%input_0: !arc.stream.source>) -> !arc.stream.source> { - %x_8 = constant @crate_Identity : () -> ((!arc.stream.source>) -> !arc.stream.source>) - %x_9 = call_indirect %x_8() : () -> ((!arc.stream.source>) -> !arc.stream.source>) - %x_A = call_indirect %x_9(%input_0) : (!arc.stream.source>) -> !arc.stream.source> - return %x_A : !arc.stream.source> - } - -} diff --git a/arc-mlir/src/tests/arc-to-rust/calls-streams.mlir.rust-tests b/arc-mlir/src/tests/arc-to-rust/calls-streams.mlir.rust-tests deleted file mode 100644 index cdfd9dc21..000000000 --- a/arc-mlir/src/tests/arc-to-rust/calls-streams.mlir.rust-tests +++ /dev/null @@ -1,17 +0,0 @@ -use arc_runtime::data::channels::local::multicast::Pullable; -use arc_runtime::data::channels::local::multicast::Pushable; - -#[rewrite] -pub fn an_external_fun2(i : Pullable) -> Pullable { - return i; -} - -#[rewrite] -pub fn crate_Identity() -> function!((Pullable) -> Pullable) { - return an_external_fun2; -} - -#[cfg(test)] -mod tests { - use crate::toplevel::*; -} diff --git a/arc-mlir/src/tests/arc-to-rust/calls.mlir b/arc-mlir/src/tests/arc-to-rust/calls.mlir index 4d8adf8c9..23c949b73 100644 --- a/arc-mlir/src/tests/arc-to-rust/calls.mlir +++ b/arc-mlir/src/tests/arc-to-rust/calls.mlir @@ -4,39 +4,38 @@ module @toplevel { - func.func @callee_void_void() -> () attributes { rust.declare } { + func.func @callee_void_void() -> () { return } - func.func @callee_si32_si32(%in : si32) -> si32 attributes { rust.declare } { + func.func @callee_si32_si32(%in : si32) -> si32 { return %in : si32 } - func.func @callee_si32_x2_si32(%a : si32, %b : si32) -> si32 attributes { rust.declare } { + func.func @callee_si32_x2_si32(%a : si32, %b : si32) -> si32 { return %b : si32 } func.func @callee_struct(%in : !arc.struct) - -> !arc.struct attributes { rust.declare } { + -> !arc.struct { return %in : !arc.struct } - func.func @caller0() -> () attributes { rust.declare } { + func.func @caller0() -> () { call @callee_void_void() : () -> () return } - func.func @caller1(%in : si32) -> (si32) attributes { rust.declare } { + func.func @caller1(%in : si32) -> (si32) { %r = call @callee_si32_si32(%in) : (si32) -> si32 return %r : si32 } - func.func @caller2(%in0 : si32, %in1 : si32) -> (si32) attributes { rust.declare } { + func.func @caller2(%in0 : si32, %in1 : si32) -> (si32) { %r = call @callee_si32_x2_si32(%in0, %in1) : (si32,si32) -> si32 return %r : si32 } - func.func @caller_struct(%in : !arc.struct) -> !arc.struct { %r = call @callee_struct(%in) : (!arc.struct) @@ -45,12 +44,12 @@ module @toplevel { } func.func @enumfun(%in : !arc.enum) - -> !arc.enum attributes { rust.declare } { + -> !arc.enum { return %in : !arc.enum } func.func @indir_call1(%in : !arc.enum) - -> !arc.enum attributes { rust.declare } { + -> !arc.enum { %f = constant @enumfun : (!arc.enum) -> !arc.enum %r = call_indirect %f(%in) : (!arc.enum) @@ -58,52 +57,35 @@ module @toplevel { return %r : !arc.enum } - // func.func @tensorfun(%in : tensor<5xi32>) - // -> tensor<5xi32> attributes { rust.declare } { - // return %in : tensor<5xi32> - // } - - // func.func @indir_call2(%in : tensor<5xi32>) - // -> tensor<5xi32> attributes { rust.declare } { - // %f = constant @tensorfun : (tensor<5xi32>) - // -> tensor<5xi32> - // %r = call_indirect %f(%in) : (tensor<5xi32>) - // -> tensor<5xi32> - // return %r : tensor<5xi32> - // } - - func.func private @an_external_fun0(si32) -> f32 attributes { rust.declare } - - func.func @call_external0(%in : si32) -> f32 attributes { rust.declare } { + func.func private @an_external_fun0(si32) -> f32 + func.func @call_external0(%in : si32) -> f32 { %r = call @an_external_fun0(%in) : (si32) -> f32 return %r : f32 } - func.func @call_external_indirect0(%in : si32) -> f32 attributes { rust.declare } { + func.func @call_external_indirect0(%in : si32) -> f32 { %f = constant @an_external_fun0 : (si32) -> f32 %r = call_indirect %f(%in) : (si32) -> f32 return %r : f32 } - // TODO: Try to find a way to support returning functions into Arc-Lang - // func private @an_external_fun1() -> ((si32) -> si32) attributes { rust.declare } - - // func.func @call_external1(%in : si32) -> si32 attributes { rust.declare } { - // %f = call @an_external_fun1() : () -> ((si32) -> si32) - // %r = call_indirect %f(%in) : (si32) -> si32 - // return %r : si32 - // } + func.func private @an_external_fun1() -> ((si32) -> si32) + func.func @call_external1(%in : si32) -> si32 { + %f = call @an_external_fun1() : () -> ((si32) -> si32) + %r = call_indirect %f(%in) : (si32) -> si32 + return %r : si32 + } - // func.func @call_external_indirect1(%in : si32) -> si32 attributes { rust.declare } { - // %thunk = constant @an_external_fun1 : () -> ((si32) -> si32) - // %f = call_indirect %thunk() : () -> ((si32) -> si32) - // %r = call_indirect %f(%in) : (si32) -> si32 - // return %r : si32 - // } + func.func @call_external_indirect1(%in : si32) -> si32 { + %thunk = constant @an_external_fun1 : () -> ((si32) -> si32) + %f = call_indirect %thunk() : () -> ((si32) -> si32) + %r = call_indirect %f(%in) : (si32) -> si32 + return %r : si32 + } - func.func private @an_external_fun_with_other_name0(si32) -> si32 attributes { rust.declare, "arc.rust_name" = "the_name_on_the_rust_side" } + func.func private @an_external_fun_with_other_name0(si32) -> si32 attributes { "arc.rust_name" = "the_name_on_the_rust_side" } - func.func @call_external2(%in : si32) -> si32 attributes { rust.declare } { + func.func @call_external2(%in : si32) -> si32 { %r = call @an_external_fun_with_other_name0(%in) : (si32) -> si32 return %r : si32 } @@ -113,19 +95,8 @@ module @toplevel { return %in : si32 } - func.func @call_renamed_local(%in : si32) -> si32 attributes { rust.declare } { + func.func @call_renamed_local(%in : si32) -> si32 { %r = call @a_function_called_something_else_in_rust(%in) : (si32) -> si32 return %r : si32 } - - // func private @an_external_fun3(si32) -> si32 attributes { rust.declare } - - // Async functions - func.func private @an_external_async_fun() -> si32 attributes { rust.async } - - func.func @call_external_async() -> si32 attributes { rust.declare, rust.async } { - %r = call @an_external_async_fun() : () -> si32 - return %r : si32 - } - } diff --git a/arc-mlir/src/tests/arc-to-rust/calls.mlir.rust-tests b/arc-mlir/src/tests/arc-to-rust/calls.mlir.rust-tests index 57b7cb30c..1d888275c 100644 --- a/arc-mlir/src/tests/arc-to-rust/calls.mlir.rust-tests +++ b/arc-mlir/src/tests/arc-to-rust/calls.mlir.rust-tests @@ -1,37 +1,25 @@ -#[rewrite] pub fn an_external_fun0(i: i32) -> f32 { - return 3.14; + return 3.14; } -#[rewrite] pub fn an_external_fun3(i: i32) -> i32 { - return i; + return i; } -// TODO: Try to find a way to support returning functions into Arc-Lang -// #[rewrite] -// pub fn an_external_fun1() -> function!((i32) -> i32) { -// return function!(an_external_fun3); -// } - -#[rewrite] -pub fn the_name_on_the_rust_side(i: i32) -> i32 { - return i; +pub fn an_external_fun1() -> fn(i32) -> i32 { + return an_external_fun3; } -#[rewrite] -pub async fn an_external_async_fun() -> i32 { - return 1; +pub fn the_name_on_the_rust_side(i: i32) -> i32 { + return i; } use super::*; -#[rewrite(main)] #[test] fn test() { - assert_eq!(call!(callee_si32_si32(17)), 17); - assert_eq!(call!(caller1(4711)), 4711); - assert_eq!(call!(call_external2(13)), 13); - assert_eq!(call!(call_renamed_local(14)), 14); - assert_eq!(call!(defined_in_arc(15)), 15); - assert_eq!(block_on(call!(call_external_async())), 1); + assert_eq!(callee_si32_si32(17), 17); + assert_eq!(caller1(4711), 4711); + assert_eq!(call_external2(13), 13); + assert_eq!(call_renamed_local(14), 14); + assert_eq!(defined_in_arc(15), 15); } diff --git a/arc-mlir/src/tests/arc-to-rust/enums.mlir.rust-tests b/arc-mlir/src/tests/arc-to-rust/enums.mlir.rust-tests index 5b8036712..a07460991 100644 --- a/arc-mlir/src/tests/arc-to-rust/enums.mlir.rust-tests +++ b/arc-mlir/src/tests/arc-to-rust/enums.mlir.rust-tests @@ -1,25 +1,24 @@ // Empty #[cfg(test)] mod tests { - use crate::toplevel::*; - #[rewrite(main)] - #[test] - fn it_works() { - assert_eq!(is!(Enum1ai321bf32End::a, call!(ok0())), true); - assert_eq!(is!(Enum1ai321bf32End::b, call!(ok1())), true); - assert_eq!(is!(Enum1ai32End::a, call!(ok2())), true); - assert_eq!(is!(Enum1ai321bEnum1ai32EndEnd::a, call!(ok3())), true); - assert_eq!(is!(Enum1ai321bEnum1ai32EndEnd::b, call!(ok4())), true); - let c0 : i32 = 17; - let tmp0 :Enum1ai321bf32End = enwrap!(Enum1ai321bf32End::a, c0); - let c1 : f32 = 17.0; - let tmp1 : Enum1ai321bf32End = enwrap!(Enum1ai321bf32End::b, c1); - assert_eq!(call!(access0(tmp0)), c0); - assert_eq!(call!(access1(tmp1)), c1); + use crate::toplevel::*; + #[test] + fn it_works() { + assert_eq!(matches!(ok0(), Enum1ai321bf32End::a(_)), true); + assert_eq!(matches!(ok1(), Enum1ai321bf32End::b(_)), true); + assert_eq!(matches!(ok2(), Enum1ai32End::a(_)), true); + assert_eq!(matches!(ok3(), Enum1ai321bEnum1ai32EndEnd::a(_)), true); + assert_eq!(matches!(ok4(), Enum1ai321bEnum1ai32EndEnd::b(_)), true); + let c0: i32 = 17; + let tmp0: Enum1ai321bf32End = Enum1ai321bf32End::a(c0); + let c1: f32 = 17.0; + let tmp1: Enum1ai321bf32End = Enum1ai321bf32End::b(c1); + assert_eq!(access0(tmp0), c0); + assert_eq!(access1(tmp1), c1); - let c2 : Enum1ai321bf32End = enwrap!(Enum1ai321bf32End::b, 3.14); - let c3 : Enum1ai321bf32End = enwrap!(Enum1ai321bf32End::a, 3); - assert_eq!(call!(check0(c2)), false); - assert_eq!(call!(check0(c3)), true); - } + let c2: Enum1ai321bf32End = Enum1ai321bf32End::b(3.14); + let c3: Enum1ai321bf32End = Enum1ai321bf32End::a(3); + assert_eq!(check0(c2), false); + assert_eq!(check0(c3), true); + } } diff --git a/arc-mlir/src/tests/arc-to-rust/float-tensor-arith.mlir.rust-tests b/arc-mlir/src/tests/arc-to-rust/float-tensor-arith.mlir.rust-tests deleted file mode 100644 index a11ac400b..000000000 --- a/arc-mlir/src/tests/arc-to-rust/float-tensor-arith.mlir.rust-tests +++ /dev/null @@ -1,59 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::arctorustfloattensorarith::*; - use ndarray::{Array,Dim,Ix}; - use std::rc::Rc; - - #[rewrite(main)] - #[test] - fn testf32() { - let a32:Rc>> = - Rc::new(Array::from_shape_vec((2, 2), - vec![1.0, 2.0, 3.0, 4.0]).unwrap()); - let b32:Rc>> = - Rc::new(Array::from_shape_vec((2, 2), - vec![5.0, 6.0, 7.0, 8.0]).unwrap()); - assert_eq!(*addf_tensor2x2xf32(Rc::clone(&a32), - Rc::clone(&b32)), - &*a32 + &*b32); - assert_eq!(*subf_tensor2x2xf32(Rc::clone(&a32), - Rc::clone(&b32)), - &*a32 - &*b32); - assert_eq!(*mulf_tensor2x2xf32(Rc::clone(&a32), - Rc::clone(&b32)), - &*a32 * &*b32); - assert_eq!(*divf_tensor2x2xf32(Rc::clone(&a32), - Rc::clone(&b32)), - &*a32 / &*b32); - assert_eq!(*remf_tensor2x2xf32(Rc::clone(&a32), - Rc::clone(&b32)), - &*a32 % &*b32); - } - -#[rewrite(main)] - #[test] - fn testf64() { - let a64:Rc>> = - Rc::new(Array::from_shape_vec((2, 2), - vec![1.0, 2.0, 3.0, 4.0]).unwrap()); - let b64:Rc>> = - Rc::new(Array::from_shape_vec((2, 2), - vec![5.0, 6.0, 7.0, 8.0]).unwrap()); - assert_eq!(*addf_tensor2x2xf64(Rc::clone(&a64), - Rc::clone(&b64)), - &*a64 + &*b64); - assert_eq!(*subf_tensor2x2xf64(Rc::clone(&a64), - Rc::clone(&b64)), - &*a64 - &*b64); - assert_eq!(*mulf_tensor2x2xf64(Rc::clone(&a64), - Rc::clone(&b64)), - &*a64 * &*b64); - assert_eq!(*divf_tensor2x2xf64(Rc::clone(&a64), - Rc::clone(&b64)), - &*a64 / &*b64); - assert_eq!(*remf_tensor2x2xf64(Rc::clone(&a64), - Rc::clone(&b64)), - &*a64 % &*b64); - } - -} diff --git a/arc-mlir/src/tests/arc-to-rust/foreign-calls.mlir.rust-tests b/arc-mlir/src/tests/arc-to-rust/foreign-calls.mlir.rust-tests index be8dcaeed..d723f6f83 100644 --- a/arc-mlir/src/tests/arc-to-rust/foreign-calls.mlir.rust-tests +++ b/arc-mlir/src/tests/arc-to-rust/foreign-calls.mlir.rust-tests @@ -1,17 +1,13 @@ -#[rewrite] pub fn callee_void_void() {} -#[rewrite] pub fn callee_si32_si32(x: i32) -> i32 { - return x + return x; } -#[rewrite] -pub fn callee_si32_x2_si32(a : i32, b : i32) -> i32 { - return a + b +pub fn callee_si32_x2_si32(a: i32, b: i32) -> i32 { + return a + b; } -#[rewrite] -pub fn callee_struct(x : Struct3foo3i32End) -> Struct3foo3i32End { - return x +pub fn callee_struct(x: Struct3foo3i32End) -> Struct3foo3i32End { + return x; } diff --git a/arc-mlir/src/tests/arc-to-rust/func-arguments.mlir.rust-tests b/arc-mlir/src/tests/arc-to-rust/func-arguments.mlir.rust-tests index fa7bd905d..fcbf90aaf 100644 --- a/arc-mlir/src/tests/arc-to-rust/func-arguments.mlir.rust-tests +++ b/arc-mlir/src/tests/arc-to-rust/func-arguments.mlir.rust-tests @@ -1,11 +1,10 @@ #[cfg(test)] mod tests { -use crate::arctorustfuncarguments::*; -#[rewrite(main)] -#[test] - fn it_works() { - assert_eq!(call!(zero_args()), 4711); - assert_eq!(call!(one_arg(4711)), 4711); - assert_eq!(call!(two_args(4712, 4711)), 4711); - } + use crate::arctorustfuncarguments::*; + #[test] + fn it_works() { + assert_eq!(zero_args(), 4711); + assert_eq!(one_arg(4711), 4711); + assert_eq!(two_args(4712, 4711), 4711); + } } diff --git a/arc-mlir/src/tests/arc-to-rust/ifs.mlir.rust-tests b/arc-mlir/src/tests/arc-to-rust/ifs.mlir.rust-tests index d14170b60..efa1c7fb4 100644 --- a/arc-mlir/src/tests/arc-to-rust/ifs.mlir.rust-tests +++ b/arc-mlir/src/tests/arc-to-rust/ifs.mlir.rust-tests @@ -1,18 +1,17 @@ #[cfg(test)] mod tests { - use crate::arctorustifs::*; - #[rewrite(main)] - #[test] - fn test() { - assert_eq!(call!(test_0()), 65); - assert_eq!(call!(test_1(true, 0, 1)), 0); - assert_eq!(call!(test_1(false, 0, 1)), 1); - assert_eq!(call!(test_1(true, 1, 0)), 1); - assert_eq!(call!(test_1(false, 1, 0)), 0); + use crate::arctorustifs::*; + #[test] + fn test() { + assert_eq!(test_0(), 65); + assert_eq!(test_1(true, 0, 1), 0); + assert_eq!(test_1(false, 0, 1), 1); + assert_eq!(test_1(true, 1, 0), 1); + assert_eq!(test_1(false, 1, 0), 0); - assert_eq!(call!(test_3(true, 0, 1)), 0); - assert_eq!(call!(test_3(false, 0, 1)), 1); - assert_eq!(call!(test_3(true, 1, 0)), 1); - assert_eq!(call!(test_3(false, 1, 0)), 0); - } + assert_eq!(test_3(true, 0, 1), 0); + assert_eq!(test_3(false, 0, 1), 1); + assert_eq!(test_3(true, 1, 0), 1); + assert_eq!(test_3(false, 1, 0), 0); + } } diff --git a/arc-mlir/src/tests/arc-to-rust/int-arith.mlir b/arc-mlir/src/tests/arc-to-rust/int-arith.mlir index d4becd181..8511adadb 100644 --- a/arc-mlir/src/tests/arc-to-rust/int-arith.mlir +++ b/arc-mlir/src/tests/arc-to-rust/int-arith.mlir @@ -2,204 +2,203 @@ // RUN: arc-mlir-rust-test %t-roundtrip-scf %s -rustinclude %s.rust-tests -canonicalize -remove-scf -canonicalize -to-scf -canonicalize module @arctorustintarith { -func.func @addi_ui8(%a : ui8, %b : ui8) -> ui8 { - %c = arc.addi %a, %b : ui8 - return %c : ui8 -} - -func.func @subi_ui8(%a : ui8, %b : ui8) -> ui8 { - %c = arc.subi %a, %b : ui8 - return %c : ui8 -} - -func.func @muli_ui8(%a : ui8, %b : ui8) -> ui8 { - %c = arc.muli %a, %b : ui8 - return %c : ui8 -} - -func.func @divi_ui8(%a : ui8, %b : ui8) -> ui8 { - %c = arc.divi %a, %b : ui8 - return %c : ui8 -} - -func.func @remi_ui8(%a : ui8, %b : ui8) -> ui8 { - %c = arc.remi %a, %b : ui8 - return %c : ui8 -} - -func.func @addi_ui16(%a : ui16, %b : ui16) -> ui16 { - %c = arc.addi %a, %b : ui16 - return %c : ui16 -} - -func.func @subi_ui16(%a : ui16, %b : ui16) -> ui16 { - %c = arc.subi %a, %b : ui16 - return %c : ui16 -} - -func.func @muli_ui16(%a : ui16, %b : ui16) -> ui16 { - %c = arc.muli %a, %b : ui16 - return %c : ui16 -} - -func.func @divi_ui16(%a : ui16, %b : ui16) -> ui16 { - %c = arc.divi %a, %b : ui16 - return %c : ui16 -} - -func.func @remi_ui16(%a : ui16, %b : ui16) -> ui16 { - %c = arc.remi %a, %b : ui16 - return %c : ui16 -} - -func.func @addi_ui32(%a : ui32, %b : ui32) -> ui32 { - %c = arc.addi %a, %b : ui32 - return %c : ui32 -} - -func.func @subi_ui32(%a : ui32, %b : ui32) -> ui32 { - %c = arc.subi %a, %b : ui32 - return %c : ui32 -} - -func.func @muli_ui32(%a : ui32, %b : ui32) -> ui32 { - %c = arc.muli %a, %b : ui32 - return %c : ui32 -} - -func.func @divi_ui32(%a : ui32, %b : ui32) -> ui32 { - %c = arc.divi %a, %b : ui32 - return %c : ui32 -} - -func.func @remi_ui32(%a : ui32, %b : ui32) -> ui32 { - %c = arc.remi %a, %b : ui32 - return %c : ui32 -} - -func.func @addi_ui64(%a : ui64, %b : ui64) -> ui64 { - %c = arc.addi %a, %b : ui64 - return %c : ui64 -} - -func.func @subi_ui64(%a : ui64, %b : ui64) -> ui64 { - %c = arc.subi %a, %b : ui64 - return %c : ui64 -} - -func.func @muli_ui64(%a : ui64, %b : ui64) -> ui64 { - %c = arc.muli %a, %b : ui64 - return %c : ui64 -} - -func.func @divi_ui64(%a : ui64, %b : ui64) -> ui64 { - %c = arc.divi %a, %b : ui64 - return %c : ui64 -} - -func.func @remi_ui64(%a : ui64, %b : ui64) -> ui64 { - %c = arc.remi %a, %b : ui64 - return %c : ui64 -} - -func.func @addi_si8(%a : si8, %b : si8) -> si8 { - %c = arc.addi %a, %b : si8 - return %c : si8 -} - -func.func @subi_si8(%a : si8, %b : si8) -> si8 { - %c = arc.subi %a, %b : si8 - return %c : si8 -} - -func.func @muli_si8(%a : si8, %b : si8) -> si8 { - %c = arc.muli %a, %b : si8 - return %c : si8 -} - -func.func @divi_si8(%a : si8, %b : si8) -> si8 { - %c = arc.divi %a, %b : si8 - return %c : si8 -} - -func.func @remi_si8(%a : si8, %b : si8) -> si8 { - %c = arc.remi %a, %b : si8 - return %c : si8 -} - -func.func @addi_si16(%a : si16, %b : si16) -> si16 { - %c = arc.addi %a, %b : si16 - return %c : si16 -} - -func.func @subi_si16(%a : si16, %b : si16) -> si16 { - %c = arc.subi %a, %b : si16 - return %c : si16 -} - -func.func @muli_si16(%a : si16, %b : si16) -> si16 { - %c = arc.muli %a, %b : si16 - return %c : si16 -} - -func.func @divi_si16(%a : si16, %b : si16) -> si16 { - %c = arc.divi %a, %b : si16 - return %c : si16 -} - -func.func @remi_si16(%a : si16, %b : si16) -> si16 { - %c = arc.remi %a, %b : si16 - return %c : si16 -} - -func.func @addi_si32(%a : si32, %b : si32) -> si32 { - %c = arc.addi %a, %b : si32 - return %c : si32 -} - -func.func @subi_si32(%a : si32, %b : si32) -> si32 { - %c = arc.subi %a, %b : si32 - return %c : si32 -} - -func.func @muli_si32(%a : si32, %b : si32) -> si32 { - %c = arc.muli %a, %b : si32 - return %c : si32 -} - -func.func @divi_si32(%a : si32, %b : si32) -> si32 { - %c = arc.divi %a, %b : si32 - return %c : si32 -} - -func.func @remi_si32(%a : si32, %b : si32) -> si32 { - %c = arc.remi %a, %b : si32 - return %c : si32 -} - -func.func @addi_si64(%a : si64, %b : si64) -> si64 { - %c = arc.addi %a, %b : si64 - return %c : si64 -} - -func.func @subi_si64(%a : si64, %b : si64) -> si64 { - %c = arc.subi %a, %b : si64 - return %c : si64 -} - -func.func @muli_si64(%a : si64, %b : si64) -> si64 { - %c = arc.muli %a, %b : si64 - return %c : si64 -} - -func.func @divi_si64(%a : si64, %b : si64) -> si64 { - %c = arc.divi %a, %b : si64 - return %c : si64 -} - -func.func @remi_si64(%a : si64, %b : si64) -> si64 { - %c = arc.remi %a, %b : si64 - return %c : si64 -} - + func.func @addi_ui8(%a : ui8, %b : ui8) -> ui8 { + %c = arc.addi %a, %b : ui8 + return %c : ui8 + } + + func.func @subi_ui8(%a : ui8, %b : ui8) -> ui8 { + %c = arc.subi %a, %b : ui8 + return %c : ui8 + } + + func.func @muli_ui8(%a : ui8, %b : ui8) -> ui8 { + %c = arc.muli %a, %b : ui8 + return %c : ui8 + } + + func.func @divi_ui8(%a : ui8, %b : ui8) -> ui8 { + %c = arc.divi %a, %b : ui8 + return %c : ui8 + } + + func.func @remi_ui8(%a : ui8, %b : ui8) -> ui8 { + %c = arc.remi %a, %b : ui8 + return %c : ui8 + } + + func.func @addi_ui16(%a : ui16, %b : ui16) -> ui16 { + %c = arc.addi %a, %b : ui16 + return %c : ui16 + } + + func.func @subi_ui16(%a : ui16, %b : ui16) -> ui16 { + %c = arc.subi %a, %b : ui16 + return %c : ui16 + } + + func.func @muli_ui16(%a : ui16, %b : ui16) -> ui16 { + %c = arc.muli %a, %b : ui16 + return %c : ui16 + } + + func.func @divi_ui16(%a : ui16, %b : ui16) -> ui16 { + %c = arc.divi %a, %b : ui16 + return %c : ui16 + } + + func.func @remi_ui16(%a : ui16, %b : ui16) -> ui16 { + %c = arc.remi %a, %b : ui16 + return %c : ui16 + } + + func.func @addi_ui32(%a : ui32, %b : ui32) -> ui32 { + %c = arc.addi %a, %b : ui32 + return %c : ui32 + } + + func.func @subi_ui32(%a : ui32, %b : ui32) -> ui32 { + %c = arc.subi %a, %b : ui32 + return %c : ui32 + } + + func.func @muli_ui32(%a : ui32, %b : ui32) -> ui32 { + %c = arc.muli %a, %b : ui32 + return %c : ui32 + } + + func.func @divi_ui32(%a : ui32, %b : ui32) -> ui32 { + %c = arc.divi %a, %b : ui32 + return %c : ui32 + } + + func.func @remi_ui32(%a : ui32, %b : ui32) -> ui32 { + %c = arc.remi %a, %b : ui32 + return %c : ui32 + } + + func.func @addi_ui64(%a : ui64, %b : ui64) -> ui64 { + %c = arc.addi %a, %b : ui64 + return %c : ui64 + } + + func.func @subi_ui64(%a : ui64, %b : ui64) -> ui64 { + %c = arc.subi %a, %b : ui64 + return %c : ui64 + } + + func.func @muli_ui64(%a : ui64, %b : ui64) -> ui64 { + %c = arc.muli %a, %b : ui64 + return %c : ui64 + } + + func.func @divi_ui64(%a : ui64, %b : ui64) -> ui64 { + %c = arc.divi %a, %b : ui64 + return %c : ui64 + } + + func.func @remi_ui64(%a : ui64, %b : ui64) -> ui64 { + %c = arc.remi %a, %b : ui64 + return %c : ui64 + } + + func.func @addi_si8(%a : si8, %b : si8) -> si8 { + %c = arc.addi %a, %b : si8 + return %c : si8 + } + + func.func @subi_si8(%a : si8, %b : si8) -> si8 { + %c = arc.subi %a, %b : si8 + return %c : si8 + } + + func.func @muli_si8(%a : si8, %b : si8) -> si8 { + %c = arc.muli %a, %b : si8 + return %c : si8 + } + + func.func @divi_si8(%a : si8, %b : si8) -> si8 { + %c = arc.divi %a, %b : si8 + return %c : si8 + } + + func.func @remi_si8(%a : si8, %b : si8) -> si8 { + %c = arc.remi %a, %b : si8 + return %c : si8 + } + + func.func @addi_si16(%a : si16, %b : si16) -> si16 { + %c = arc.addi %a, %b : si16 + return %c : si16 + } + + func.func @subi_si16(%a : si16, %b : si16) -> si16 { + %c = arc.subi %a, %b : si16 + return %c : si16 + } + + func.func @muli_si16(%a : si16, %b : si16) -> si16 { + %c = arc.muli %a, %b : si16 + return %c : si16 + } + + func.func @divi_si16(%a : si16, %b : si16) -> si16 { + %c = arc.divi %a, %b : si16 + return %c : si16 + } + + func.func @remi_si16(%a : si16, %b : si16) -> si16 { + %c = arc.remi %a, %b : si16 + return %c : si16 + } + + func.func @addi_si32(%a : si32, %b : si32) -> si32 { + %c = arc.addi %a, %b : si32 + return %c : si32 + } + + func.func @subi_si32(%a : si32, %b : si32) -> si32 { + %c = arc.subi %a, %b : si32 + return %c : si32 + } + + func.func @muli_si32(%a : si32, %b : si32) -> si32 { + %c = arc.muli %a, %b : si32 + return %c : si32 + } + + func.func @divi_si32(%a : si32, %b : si32) -> si32 { + %c = arc.divi %a, %b : si32 + return %c : si32 + } + + func.func @remi_si32(%a : si32, %b : si32) -> si32 { + %c = arc.remi %a, %b : si32 + return %c : si32 + } + + func.func @addi_si64(%a : si64, %b : si64) -> si64 { + %c = arc.addi %a, %b : si64 + return %c : si64 + } + + func.func @subi_si64(%a : si64, %b : si64) -> si64 { + %c = arc.subi %a, %b : si64 + return %c : si64 + } + + func.func @muli_si64(%a : si64, %b : si64) -> si64 { + %c = arc.muli %a, %b : si64 + return %c : si64 + } + + func.func @divi_si64(%a : si64, %b : si64) -> si64 { + %c = arc.divi %a, %b : si64 + return %c : si64 + } + + func.func @remi_si64(%a : si64, %b : si64) -> si64 { + %c = arc.remi %a, %b : si64 + return %c : si64 + } } diff --git a/arc-mlir/src/tests/arc-to-rust/int-arith.mlir.rust-tests b/arc-mlir/src/tests/arc-to-rust/int-arith.mlir.rust-tests index 19ec2dffa..f32e0b160 100644 --- a/arc-mlir/src/tests/arc-to-rust/int-arith.mlir.rust-tests +++ b/arc-mlir/src/tests/arc-to-rust/int-arith.mlir.rust-tests @@ -1,3397 +1,3714 @@ #[cfg(test)] mod tests { - use crate::arctorustintarith::*; - #[rewrite(main)] - #[test] - fn it_works() { -assert_eq!(call!(addi_si16(-32768, 0)), -32768); -assert_eq!(call!(addi_si16(0, -32768)), -32768); -assert_eq!(call!(addi_si16(-32768, 1)), -32767); -assert_eq!(call!(addi_si16(-32767, 0)), -32767); -assert_eq!(call!(addi_si16(0, -32767)), -32767); -assert_eq!(call!(addi_si16(1, -32768)), -32767); -assert_eq!(call!(addi_si16(-32768, 2)), -32766); -assert_eq!(call!(addi_si16(-32767, 1)), -32766); -assert_eq!(call!(addi_si16(1, -32767)), -32766); -assert_eq!(call!(addi_si16(2, -32768)), -32766); -assert_eq!(call!(addi_si16(-32768, 3)), -32765); -assert_eq!(call!(addi_si16(-32767, 2)), -32765); -assert_eq!(call!(addi_si16(2, -32767)), -32765); -assert_eq!(call!(addi_si16(3, -32768)), -32765); -assert_eq!(call!(addi_si16(-32768, 4)), -32764); -assert_eq!(call!(addi_si16(-32767, 3)), -32764); -assert_eq!(call!(addi_si16(3, -32767)), -32764); -assert_eq!(call!(addi_si16(4, -32768)), -32764); -assert_eq!(call!(addi_si16(-32767, 4)), -32763); -assert_eq!(call!(addi_si16(4, -32767)), -32763); -assert_eq!(call!(addi_si16(-32547, 0)), -32547); -assert_eq!(call!(addi_si16(0, -32547)), -32547); -assert_eq!(call!(addi_si16(-32547, 1)), -32546); -assert_eq!(call!(addi_si16(1, -32547)), -32546); -assert_eq!(call!(addi_si16(-32547, 2)), -32545); -assert_eq!(call!(addi_si16(2, -32547)), -32545); -assert_eq!(call!(addi_si16(-32547, 3)), -32544); -assert_eq!(call!(addi_si16(3, -32547)), -32544); -assert_eq!(call!(addi_si16(-32547, 4)), -32543); -assert_eq!(call!(addi_si16(4, -32547)), -32543); -assert_eq!(call!(addi_si16(-32768, 10486)), -22282); -assert_eq!(call!(addi_si16(10486, -32768)), -22282); -assert_eq!(call!(addi_si16(-32767, 10486)), -22281); -assert_eq!(call!(addi_si16(10486, -32767)), -22281); -assert_eq!(call!(addi_si16(-32547, 10486)), -22061); -assert_eq!(call!(addi_si16(10486, -32547)), -22061); -assert_eq!(call!(addi_si16(-32768, 16514)), -16254); -assert_eq!(call!(addi_si16(16514, -32768)), -16254); -assert_eq!(call!(addi_si16(-32767, 16514)), -16253); -assert_eq!(call!(addi_si16(16514, -32767)), -16253); -assert_eq!(call!(addi_si16(-32547, 16514)), -16033); -assert_eq!(call!(addi_si16(16514, -32547)), -16033); -assert_eq!(call!(addi_si16(-32768, 32766)), -2); -assert_eq!(call!(addi_si16(32766, -32768)), -2); -assert_eq!(call!(addi_si16(-32768, 32767)), -1); -assert_eq!(call!(addi_si16(-32767, 32766)), -1); -assert_eq!(call!(addi_si16(32766, -32767)), -1); -assert_eq!(call!(addi_si16(32767, -32768)), -1); -assert_eq!(call!(addi_si16(-32767, 32767)), 0); -assert_eq!(call!(addi_si16(0, 0)), 0); -assert_eq!(call!(addi_si16(32767, -32767)), 0); -assert_eq!(call!(addi_si16(0, 1)), 1); -assert_eq!(call!(addi_si16(1, 0)), 1); -assert_eq!(call!(addi_si16(0, 2)), 2); -assert_eq!(call!(addi_si16(1, 1)), 2); -assert_eq!(call!(addi_si16(2, 0)), 2); -assert_eq!(call!(addi_si16(0, 3)), 3); -assert_eq!(call!(addi_si16(1, 2)), 3); -assert_eq!(call!(addi_si16(2, 1)), 3); -assert_eq!(call!(addi_si16(3, 0)), 3); -assert_eq!(call!(addi_si16(0, 4)), 4); -assert_eq!(call!(addi_si16(1, 3)), 4); -assert_eq!(call!(addi_si16(2, 2)), 4); -assert_eq!(call!(addi_si16(3, 1)), 4); -assert_eq!(call!(addi_si16(4, 0)), 4); -assert_eq!(call!(addi_si16(1, 4)), 5); -assert_eq!(call!(addi_si16(2, 3)), 5); -assert_eq!(call!(addi_si16(3, 2)), 5); -assert_eq!(call!(addi_si16(4, 1)), 5); -assert_eq!(call!(addi_si16(2, 4)), 6); -assert_eq!(call!(addi_si16(3, 3)), 6); -assert_eq!(call!(addi_si16(4, 2)), 6); -assert_eq!(call!(addi_si16(3, 4)), 7); -assert_eq!(call!(addi_si16(4, 3)), 7); -assert_eq!(call!(addi_si16(4, 4)), 8); -assert_eq!(call!(addi_si16(-32547, 32766)), 219); -assert_eq!(call!(addi_si16(32766, -32547)), 219); -assert_eq!(call!(addi_si16(-32547, 32767)), 220); -assert_eq!(call!(addi_si16(32767, -32547)), 220); -assert_eq!(call!(addi_si16(0, 10486)), 10486); -assert_eq!(call!(addi_si16(10486, 0)), 10486); -assert_eq!(call!(addi_si16(1, 10486)), 10487); -assert_eq!(call!(addi_si16(10486, 1)), 10487); -assert_eq!(call!(addi_si16(2, 10486)), 10488); -assert_eq!(call!(addi_si16(10486, 2)), 10488); -assert_eq!(call!(addi_si16(3, 10486)), 10489); -assert_eq!(call!(addi_si16(10486, 3)), 10489); -assert_eq!(call!(addi_si16(4, 10486)), 10490); -assert_eq!(call!(addi_si16(10486, 4)), 10490); -assert_eq!(call!(addi_si16(0, 16514)), 16514); -assert_eq!(call!(addi_si16(16514, 0)), 16514); -assert_eq!(call!(addi_si16(1, 16514)), 16515); -assert_eq!(call!(addi_si16(16514, 1)), 16515); -assert_eq!(call!(addi_si16(2, 16514)), 16516); -assert_eq!(call!(addi_si16(16514, 2)), 16516); -assert_eq!(call!(addi_si16(3, 16514)), 16517); -assert_eq!(call!(addi_si16(16514, 3)), 16517); -assert_eq!(call!(addi_si16(4, 16514)), 16518); -assert_eq!(call!(addi_si16(16514, 4)), 16518); -assert_eq!(call!(addi_si16(10486, 10486)), 20972); -assert_eq!(call!(addi_si16(10486, 16514)), 27000); -assert_eq!(call!(addi_si16(16514, 10486)), 27000); -assert_eq!(call!(addi_si16(0, 32766)), 32766); -assert_eq!(call!(addi_si16(32766, 0)), 32766); -assert_eq!(call!(addi_si16(0, 32767)), 32767); -assert_eq!(call!(addi_si16(1, 32766)), 32767); -assert_eq!(call!(addi_si16(32766, 1)), 32767); -assert_eq!(call!(addi_si16(32767, 0)), 32767); -assert_eq!(call!(addi_si32(-2147483648, 0)), -2147483648); -assert_eq!(call!(addi_si32(0, -2147483648)), -2147483648); -assert_eq!(call!(addi_si32(-2147483648, 1)), -2147483647); -assert_eq!(call!(addi_si32(-2147483647, 0)), -2147483647); -assert_eq!(call!(addi_si32(0, -2147483647)), -2147483647); -assert_eq!(call!(addi_si32(1, -2147483648)), -2147483647); -assert_eq!(call!(addi_si32(-2147483648, 2)), -2147483646); -assert_eq!(call!(addi_si32(-2147483647, 1)), -2147483646); -assert_eq!(call!(addi_si32(1, -2147483647)), -2147483646); -assert_eq!(call!(addi_si32(2, -2147483648)), -2147483646); -assert_eq!(call!(addi_si32(-2147483648, 3)), -2147483645); -assert_eq!(call!(addi_si32(-2147483647, 2)), -2147483645); -assert_eq!(call!(addi_si32(2, -2147483647)), -2147483645); -assert_eq!(call!(addi_si32(3, -2147483648)), -2147483645); -assert_eq!(call!(addi_si32(-2147483648, 4)), -2147483644); -assert_eq!(call!(addi_si32(-2147483647, 3)), -2147483644); -assert_eq!(call!(addi_si32(3, -2147483647)), -2147483644); -assert_eq!(call!(addi_si32(4, -2147483648)), -2147483644); -assert_eq!(call!(addi_si32(-2147483647, 4)), -2147483643); -assert_eq!(call!(addi_si32(4, -2147483647)), -2147483643); -assert_eq!(call!(addi_si32(-1035405763, -1035405763)), -2070811526); -assert_eq!(call!(addi_si32(-1713183800, 0)), -1713183800); -assert_eq!(call!(addi_si32(0, -1713183800)), -1713183800); -assert_eq!(call!(addi_si32(-1713183800, 1)), -1713183799); -assert_eq!(call!(addi_si32(1, -1713183800)), -1713183799); -assert_eq!(call!(addi_si32(-1713183800, 2)), -1713183798); -assert_eq!(call!(addi_si32(2, -1713183800)), -1713183798); -assert_eq!(call!(addi_si32(-1713183800, 3)), -1713183797); -assert_eq!(call!(addi_si32(3, -1713183800)), -1713183797); -assert_eq!(call!(addi_si32(-1713183800, 4)), -1713183796); -assert_eq!(call!(addi_si32(4, -1713183800)), -1713183796); -assert_eq!(call!(addi_si32(-1252582164, 0)), -1252582164); -assert_eq!(call!(addi_si32(0, -1252582164)), -1252582164); -assert_eq!(call!(addi_si32(-1252582164, 1)), -1252582163); -assert_eq!(call!(addi_si32(1, -1252582164)), -1252582163); -assert_eq!(call!(addi_si32(-1252582164, 2)), -1252582162); -assert_eq!(call!(addi_si32(2, -1252582164)), -1252582162); -assert_eq!(call!(addi_si32(-1252582164, 3)), -1252582161); -assert_eq!(call!(addi_si32(3, -1252582164)), -1252582161); -assert_eq!(call!(addi_si32(-1252582164, 4)), -1252582160); -assert_eq!(call!(addi_si32(4, -1252582164)), -1252582160); -assert_eq!(call!(addi_si32(-1035405763, 0)), -1035405763); -assert_eq!(call!(addi_si32(0, -1035405763)), -1035405763); -assert_eq!(call!(addi_si32(-1035405763, 1)), -1035405762); -assert_eq!(call!(addi_si32(1, -1035405763)), -1035405762); -assert_eq!(call!(addi_si32(-1035405763, 2)), -1035405761); -assert_eq!(call!(addi_si32(2, -1035405763)), -1035405761); -assert_eq!(call!(addi_si32(-1035405763, 3)), -1035405760); -assert_eq!(call!(addi_si32(3, -1035405763)), -1035405760); -assert_eq!(call!(addi_si32(-1035405763, 4)), -1035405759); -assert_eq!(call!(addi_si32(4, -1035405763)), -1035405759); -assert_eq!(call!(addi_si32(-2147483648, 2147483646)), -2); -assert_eq!(call!(addi_si32(2147483646, -2147483648)), -2); -assert_eq!(call!(addi_si32(-2147483648, 2147483647)), -1); -assert_eq!(call!(addi_si32(-2147483647, 2147483646)), -1); -assert_eq!(call!(addi_si32(2147483646, -2147483647)), -1); -assert_eq!(call!(addi_si32(2147483647, -2147483648)), -1); -assert_eq!(call!(addi_si32(-2147483647, 2147483647)), 0); -assert_eq!(call!(addi_si32(0, 0)), 0); -assert_eq!(call!(addi_si32(2147483647, -2147483647)), 0); -assert_eq!(call!(addi_si32(0, 1)), 1); -assert_eq!(call!(addi_si32(1, 0)), 1); -assert_eq!(call!(addi_si32(0, 2)), 2); -assert_eq!(call!(addi_si32(1, 1)), 2); -assert_eq!(call!(addi_si32(2, 0)), 2); -assert_eq!(call!(addi_si32(0, 3)), 3); -assert_eq!(call!(addi_si32(1, 2)), 3); -assert_eq!(call!(addi_si32(2, 1)), 3); -assert_eq!(call!(addi_si32(3, 0)), 3); -assert_eq!(call!(addi_si32(0, 4)), 4); -assert_eq!(call!(addi_si32(1, 3)), 4); -assert_eq!(call!(addi_si32(2, 2)), 4); -assert_eq!(call!(addi_si32(3, 1)), 4); -assert_eq!(call!(addi_si32(4, 0)), 4); -assert_eq!(call!(addi_si32(1, 4)), 5); -assert_eq!(call!(addi_si32(2, 3)), 5); -assert_eq!(call!(addi_si32(3, 2)), 5); -assert_eq!(call!(addi_si32(4, 1)), 5); -assert_eq!(call!(addi_si32(2, 4)), 6); -assert_eq!(call!(addi_si32(3, 3)), 6); -assert_eq!(call!(addi_si32(4, 2)), 6); -assert_eq!(call!(addi_si32(3, 4)), 7); -assert_eq!(call!(addi_si32(4, 3)), 7); -assert_eq!(call!(addi_si32(4, 4)), 8); -assert_eq!(call!(addi_si32(-1713183800, 2147483646)), 434299846); -assert_eq!(call!(addi_si32(2147483646, -1713183800)), 434299846); -assert_eq!(call!(addi_si32(-1713183800, 2147483647)), 434299847); -assert_eq!(call!(addi_si32(2147483647, -1713183800)), 434299847); -assert_eq!(call!(addi_si32(-1252582164, 2147483646)), 894901482); -assert_eq!(call!(addi_si32(2147483646, -1252582164)), 894901482); -assert_eq!(call!(addi_si32(-1252582164, 2147483647)), 894901483); -assert_eq!(call!(addi_si32(2147483647, -1252582164)), 894901483); -assert_eq!(call!(addi_si32(-1035405763, 2147483646)), 1112077883); -assert_eq!(call!(addi_si32(2147483646, -1035405763)), 1112077883); -assert_eq!(call!(addi_si32(-1035405763, 2147483647)), 1112077884); -assert_eq!(call!(addi_si32(2147483647, -1035405763)), 1112077884); -assert_eq!(call!(addi_si32(0, 2147483646)), 2147483646); -assert_eq!(call!(addi_si32(2147483646, 0)), 2147483646); -assert_eq!(call!(addi_si32(0, 2147483647)), 2147483647); -assert_eq!(call!(addi_si32(1, 2147483646)), 2147483647); -assert_eq!(call!(addi_si32(2147483646, 1)), 2147483647); -assert_eq!(call!(addi_si32(2147483647, 0)), 2147483647); -assert_eq!(call!(addi_si64(-9223372036854775808, 0)), -9223372036854775808); -assert_eq!(call!(addi_si64(0, -9223372036854775808)), -9223372036854775808); -assert_eq!(call!(addi_si64(-9223372036854775808, 1)), -9223372036854775807); -assert_eq!(call!(addi_si64(-9223372036854775807, 0)), -9223372036854775807); -assert_eq!(call!(addi_si64(0, -9223372036854775807)), -9223372036854775807); -assert_eq!(call!(addi_si64(1, -9223372036854775808)), -9223372036854775807); -assert_eq!(call!(addi_si64(-9223372036854775808, 2)), -9223372036854775806); -assert_eq!(call!(addi_si64(-9223372036854775807, 1)), -9223372036854775806); -assert_eq!(call!(addi_si64(1, -9223372036854775807)), -9223372036854775806); -assert_eq!(call!(addi_si64(2, -9223372036854775808)), -9223372036854775806); -assert_eq!(call!(addi_si64(-9223372036854775808, 3)), -9223372036854775805); -assert_eq!(call!(addi_si64(-9223372036854775807, 2)), -9223372036854775805); -assert_eq!(call!(addi_si64(2, -9223372036854775807)), -9223372036854775805); -assert_eq!(call!(addi_si64(3, -9223372036854775808)), -9223372036854775805); -assert_eq!(call!(addi_si64(-9223372036854775808, 4)), -9223372036854775804); -assert_eq!(call!(addi_si64(-9223372036854775807, 3)), -9223372036854775804); -assert_eq!(call!(addi_si64(3, -9223372036854775807)), -9223372036854775804); -assert_eq!(call!(addi_si64(4, -9223372036854775808)), -9223372036854775804); -assert_eq!(call!(addi_si64(-9223372036854775807, 4)), -9223372036854775803); -assert_eq!(call!(addi_si64(4, -9223372036854775807)), -9223372036854775803); -assert_eq!(call!(addi_si64(-9223372036854775808, 5577148965131116544)), -3646223071723659264); -assert_eq!(call!(addi_si64(5577148965131116544, -9223372036854775808)), -3646223071723659264); -assert_eq!(call!(addi_si64(-9223372036854775807, 5577148965131116544)), -3646223071723659263); -assert_eq!(call!(addi_si64(5577148965131116544, -9223372036854775807)), -3646223071723659263); -assert_eq!(call!(addi_si64(-1741927215160008704, -1741927215160008704)), -3483854430320017408); -assert_eq!(call!(addi_si64(-1741927215160008704, -1328271339354574848)), -3070198554514583552); -assert_eq!(call!(addi_si64(-1328271339354574848, -1741927215160008704)), -3070198554514583552); -assert_eq!(call!(addi_si64(-1328271339354574848, -1328271339354574848)), -2656542678709149696); -assert_eq!(call!(addi_si64(-1741927215160008704, 0)), -1741927215160008704); -assert_eq!(call!(addi_si64(0, -1741927215160008704)), -1741927215160008704); -assert_eq!(call!(addi_si64(-1741927215160008704, 1)), -1741927215160008703); -assert_eq!(call!(addi_si64(1, -1741927215160008704)), -1741927215160008703); -assert_eq!(call!(addi_si64(-1741927215160008704, 2)), -1741927215160008702); -assert_eq!(call!(addi_si64(2, -1741927215160008704)), -1741927215160008702); -assert_eq!(call!(addi_si64(-1741927215160008704, 3)), -1741927215160008701); -assert_eq!(call!(addi_si64(3, -1741927215160008704)), -1741927215160008701); -assert_eq!(call!(addi_si64(-1741927215160008704, 4)), -1741927215160008700); -assert_eq!(call!(addi_si64(4, -1741927215160008704)), -1741927215160008700); -assert_eq!(call!(addi_si64(-1328271339354574848, 0)), -1328271339354574848); -assert_eq!(call!(addi_si64(0, -1328271339354574848)), -1328271339354574848); -assert_eq!(call!(addi_si64(-1328271339354574848, 1)), -1328271339354574847); -assert_eq!(call!(addi_si64(1, -1328271339354574848)), -1328271339354574847); -assert_eq!(call!(addi_si64(-1328271339354574848, 2)), -1328271339354574846); -assert_eq!(call!(addi_si64(2, -1328271339354574848)), -1328271339354574846); -assert_eq!(call!(addi_si64(-1328271339354574848, 3)), -1328271339354574845); -assert_eq!(call!(addi_si64(3, -1328271339354574848)), -1328271339354574845); -assert_eq!(call!(addi_si64(-1328271339354574848, 4)), -1328271339354574844); -assert_eq!(call!(addi_si64(4, -1328271339354574848)), -1328271339354574844); -assert_eq!(call!(addi_si64(-9223372036854775808, 9223372036854775806)), -2); -assert_eq!(call!(addi_si64(9223372036854775806, -9223372036854775808)), -2); -assert_eq!(call!(addi_si64(-9223372036854775808, 9223372036854775807)), -1); -assert_eq!(call!(addi_si64(-9223372036854775807, 9223372036854775806)), -1); -assert_eq!(call!(addi_si64(9223372036854775806, -9223372036854775807)), -1); -assert_eq!(call!(addi_si64(9223372036854775807, -9223372036854775808)), -1); -assert_eq!(call!(addi_si64(-9223372036854775807, 9223372036854775807)), 0); -assert_eq!(call!(addi_si64(0, 0)), 0); -assert_eq!(call!(addi_si64(9223372036854775807, -9223372036854775807)), 0); -assert_eq!(call!(addi_si64(0, 1)), 1); -assert_eq!(call!(addi_si64(1, 0)), 1); -assert_eq!(call!(addi_si64(0, 2)), 2); -assert_eq!(call!(addi_si64(1, 1)), 2); -assert_eq!(call!(addi_si64(2, 0)), 2); -assert_eq!(call!(addi_si64(0, 3)), 3); -assert_eq!(call!(addi_si64(1, 2)), 3); -assert_eq!(call!(addi_si64(2, 1)), 3); -assert_eq!(call!(addi_si64(3, 0)), 3); -assert_eq!(call!(addi_si64(0, 4)), 4); -assert_eq!(call!(addi_si64(1, 3)), 4); -assert_eq!(call!(addi_si64(2, 2)), 4); -assert_eq!(call!(addi_si64(3, 1)), 4); -assert_eq!(call!(addi_si64(4, 0)), 4); -assert_eq!(call!(addi_si64(1, 4)), 5); -assert_eq!(call!(addi_si64(2, 3)), 5); -assert_eq!(call!(addi_si64(3, 2)), 5); -assert_eq!(call!(addi_si64(4, 1)), 5); -assert_eq!(call!(addi_si64(2, 4)), 6); -assert_eq!(call!(addi_si64(3, 3)), 6); -assert_eq!(call!(addi_si64(4, 2)), 6); -assert_eq!(call!(addi_si64(3, 4)), 7); -assert_eq!(call!(addi_si64(4, 3)), 7); -assert_eq!(call!(addi_si64(4, 4)), 8); -assert_eq!(call!(addi_si64(-1741927215160008704, 5577148965131116544)), 3835221749971107840); -assert_eq!(call!(addi_si64(5577148965131116544, -1741927215160008704)), 3835221749971107840); -assert_eq!(call!(addi_si64(-1328271339354574848, 5577148965131116544)), 4248877625776541696); -assert_eq!(call!(addi_si64(5577148965131116544, -1328271339354574848)), 4248877625776541696); -assert_eq!(call!(addi_si64(0, 5577148965131116544)), 5577148965131116544); -assert_eq!(call!(addi_si64(5577148965131116544, 0)), 5577148965131116544); -assert_eq!(call!(addi_si64(1, 5577148965131116544)), 5577148965131116545); -assert_eq!(call!(addi_si64(5577148965131116544, 1)), 5577148965131116545); -assert_eq!(call!(addi_si64(2, 5577148965131116544)), 5577148965131116546); -assert_eq!(call!(addi_si64(5577148965131116544, 2)), 5577148965131116546); -assert_eq!(call!(addi_si64(3, 5577148965131116544)), 5577148965131116547); -assert_eq!(call!(addi_si64(5577148965131116544, 3)), 5577148965131116547); -assert_eq!(call!(addi_si64(4, 5577148965131116544)), 5577148965131116548); -assert_eq!(call!(addi_si64(5577148965131116544, 4)), 5577148965131116548); -assert_eq!(call!(addi_si64(-1741927215160008704, 9223372036854775806)), 7481444821694767102); -assert_eq!(call!(addi_si64(9223372036854775806, -1741927215160008704)), 7481444821694767102); -assert_eq!(call!(addi_si64(-1741927215160008704, 9223372036854775807)), 7481444821694767103); -assert_eq!(call!(addi_si64(9223372036854775807, -1741927215160008704)), 7481444821694767103); -assert_eq!(call!(addi_si64(-1328271339354574848, 9223372036854775806)), 7895100697500200958); -assert_eq!(call!(addi_si64(9223372036854775806, -1328271339354574848)), 7895100697500200958); -assert_eq!(call!(addi_si64(-1328271339354574848, 9223372036854775807)), 7895100697500200959); -assert_eq!(call!(addi_si64(9223372036854775807, -1328271339354574848)), 7895100697500200959); -assert_eq!(call!(addi_si64(0, 9223372036854775806)), 9223372036854775806); -assert_eq!(call!(addi_si64(9223372036854775806, 0)), 9223372036854775806); -assert_eq!(call!(addi_si64(0, 9223372036854775807)), 9223372036854775807); -assert_eq!(call!(addi_si64(1, 9223372036854775806)), 9223372036854775807); -assert_eq!(call!(addi_si64(9223372036854775806, 1)), 9223372036854775807); -assert_eq!(call!(addi_si64(9223372036854775807, 0)), 9223372036854775807); -assert_eq!(call!(addi_si8(-128, 0)), -128); -assert_eq!(call!(addi_si8(0, -128)), -128); -assert_eq!(call!(addi_si8(-128, 1)), -127); -assert_eq!(call!(addi_si8(-127, 0)), -127); -assert_eq!(call!(addi_si8(0, -127)), -127); -assert_eq!(call!(addi_si8(1, -128)), -127); -assert_eq!(call!(addi_si8(-128, 2)), -126); -assert_eq!(call!(addi_si8(-127, 1)), -126); -assert_eq!(call!(addi_si8(1, -127)), -126); -assert_eq!(call!(addi_si8(2, -128)), -126); -assert_eq!(call!(addi_si8(-128, 3)), -125); -assert_eq!(call!(addi_si8(-127, 2)), -125); -assert_eq!(call!(addi_si8(2, -127)), -125); -assert_eq!(call!(addi_si8(3, -128)), -125); -assert_eq!(call!(addi_si8(-128, 4)), -124); -assert_eq!(call!(addi_si8(-127, 3)), -124); -assert_eq!(call!(addi_si8(3, -127)), -124); -assert_eq!(call!(addi_si8(4, -128)), -124); -assert_eq!(call!(addi_si8(-127, 4)), -123); -assert_eq!(call!(addi_si8(4, -127)), -123); -assert_eq!(call!(addi_si8(-128, 16)), -112); -assert_eq!(call!(addi_si8(16, -128)), -112); -assert_eq!(call!(addi_si8(-127, 16)), -111); -assert_eq!(call!(addi_si8(16, -127)), -111); -assert_eq!(call!(addi_si8(-128, 126)), -2); -assert_eq!(call!(addi_si8(126, -128)), -2); -assert_eq!(call!(addi_si8(-128, 127)), -1); -assert_eq!(call!(addi_si8(-127, 126)), -1); -assert_eq!(call!(addi_si8(126, -127)), -1); -assert_eq!(call!(addi_si8(127, -128)), -1); -assert_eq!(call!(addi_si8(-127, 127)), 0); -assert_eq!(call!(addi_si8(0, 0)), 0); -assert_eq!(call!(addi_si8(127, -127)), 0); -assert_eq!(call!(addi_si8(0, 1)), 1); -assert_eq!(call!(addi_si8(1, 0)), 1); -assert_eq!(call!(addi_si8(0, 2)), 2); -assert_eq!(call!(addi_si8(1, 1)), 2); -assert_eq!(call!(addi_si8(2, 0)), 2); -assert_eq!(call!(addi_si8(0, 3)), 3); -assert_eq!(call!(addi_si8(1, 2)), 3); -assert_eq!(call!(addi_si8(2, 1)), 3); -assert_eq!(call!(addi_si8(3, 0)), 3); -assert_eq!(call!(addi_si8(0, 4)), 4); -assert_eq!(call!(addi_si8(1, 3)), 4); -assert_eq!(call!(addi_si8(2, 2)), 4); -assert_eq!(call!(addi_si8(3, 1)), 4); -assert_eq!(call!(addi_si8(4, 0)), 4); -assert_eq!(call!(addi_si8(1, 4)), 5); -assert_eq!(call!(addi_si8(2, 3)), 5); -assert_eq!(call!(addi_si8(3, 2)), 5); -assert_eq!(call!(addi_si8(4, 1)), 5); -assert_eq!(call!(addi_si8(2, 4)), 6); -assert_eq!(call!(addi_si8(3, 3)), 6); -assert_eq!(call!(addi_si8(4, 2)), 6); -assert_eq!(call!(addi_si8(3, 4)), 7); -assert_eq!(call!(addi_si8(4, 3)), 7); -assert_eq!(call!(addi_si8(4, 4)), 8); -assert_eq!(call!(addi_si8(0, 16)), 16); -assert_eq!(call!(addi_si8(16, 0)), 16); -assert_eq!(call!(addi_si8(1, 16)), 17); -assert_eq!(call!(addi_si8(16, 1)), 17); -assert_eq!(call!(addi_si8(2, 16)), 18); -assert_eq!(call!(addi_si8(16, 2)), 18); -assert_eq!(call!(addi_si8(3, 16)), 19); -assert_eq!(call!(addi_si8(16, 3)), 19); -assert_eq!(call!(addi_si8(4, 16)), 20); -assert_eq!(call!(addi_si8(16, 4)), 20); -assert_eq!(call!(addi_si8(16, 16)), 32); -assert_eq!(call!(addi_si8(0, 126)), 126); -assert_eq!(call!(addi_si8(126, 0)), 126); -assert_eq!(call!(addi_si8(0, 127)), 127); -assert_eq!(call!(addi_si8(1, 126)), 127); -assert_eq!(call!(addi_si8(126, 1)), 127); -assert_eq!(call!(addi_si8(127, 0)), 127); -assert_eq!(call!(addi_ui16(0, 0)), 0); -assert_eq!(call!(addi_ui16(0, 1)), 1); -assert_eq!(call!(addi_ui16(1, 0)), 1); -assert_eq!(call!(addi_ui16(0, 2)), 2); -assert_eq!(call!(addi_ui16(1, 1)), 2); -assert_eq!(call!(addi_ui16(2, 0)), 2); -assert_eq!(call!(addi_ui16(0, 3)), 3); -assert_eq!(call!(addi_ui16(1, 2)), 3); -assert_eq!(call!(addi_ui16(2, 1)), 3); -assert_eq!(call!(addi_ui16(3, 0)), 3); -assert_eq!(call!(addi_ui16(0, 4)), 4); -assert_eq!(call!(addi_ui16(1, 3)), 4); -assert_eq!(call!(addi_ui16(2, 2)), 4); -assert_eq!(call!(addi_ui16(3, 1)), 4); -assert_eq!(call!(addi_ui16(4, 0)), 4); -assert_eq!(call!(addi_ui16(1, 4)), 5); -assert_eq!(call!(addi_ui16(2, 3)), 5); -assert_eq!(call!(addi_ui16(3, 2)), 5); -assert_eq!(call!(addi_ui16(4, 1)), 5); -assert_eq!(call!(addi_ui16(2, 4)), 6); -assert_eq!(call!(addi_ui16(3, 3)), 6); -assert_eq!(call!(addi_ui16(4, 2)), 6); -assert_eq!(call!(addi_ui16(3, 4)), 7); -assert_eq!(call!(addi_ui16(4, 3)), 7); -assert_eq!(call!(addi_ui16(4, 4)), 8); -assert_eq!(call!(addi_ui16(0, 1717)), 1717); -assert_eq!(call!(addi_ui16(1717, 0)), 1717); -assert_eq!(call!(addi_ui16(1, 1717)), 1718); -assert_eq!(call!(addi_ui16(1717, 1)), 1718); -assert_eq!(call!(addi_ui16(2, 1717)), 1719); -assert_eq!(call!(addi_ui16(1717, 2)), 1719); -assert_eq!(call!(addi_ui16(3, 1717)), 1720); -assert_eq!(call!(addi_ui16(1717, 3)), 1720); -assert_eq!(call!(addi_ui16(4, 1717)), 1721); -assert_eq!(call!(addi_ui16(1717, 4)), 1721); -assert_eq!(call!(addi_ui16(1717, 1717)), 3434); -assert_eq!(call!(addi_ui16(0, 17988)), 17988); -assert_eq!(call!(addi_ui16(17988, 0)), 17988); -assert_eq!(call!(addi_ui16(1, 17988)), 17989); -assert_eq!(call!(addi_ui16(17988, 1)), 17989); -assert_eq!(call!(addi_ui16(2, 17988)), 17990); -assert_eq!(call!(addi_ui16(17988, 2)), 17990); -assert_eq!(call!(addi_ui16(3, 17988)), 17991); -assert_eq!(call!(addi_ui16(17988, 3)), 17991); -assert_eq!(call!(addi_ui16(4, 17988)), 17992); -assert_eq!(call!(addi_ui16(17988, 4)), 17992); -assert_eq!(call!(addi_ui16(1717, 17988)), 19705); -assert_eq!(call!(addi_ui16(17988, 1717)), 19705); -assert_eq!(call!(addi_ui16(17988, 17988)), 35976); -assert_eq!(call!(addi_ui16(0, 65096)), 65096); -assert_eq!(call!(addi_ui16(65096, 0)), 65096); -assert_eq!(call!(addi_ui16(1, 65096)), 65097); -assert_eq!(call!(addi_ui16(65096, 1)), 65097); -assert_eq!(call!(addi_ui16(2, 65096)), 65098); -assert_eq!(call!(addi_ui16(65096, 2)), 65098); -assert_eq!(call!(addi_ui16(3, 65096)), 65099); -assert_eq!(call!(addi_ui16(65096, 3)), 65099); -assert_eq!(call!(addi_ui16(4, 65096)), 65100); -assert_eq!(call!(addi_ui16(65096, 4)), 65100); -assert_eq!(call!(addi_ui16(0, 65534)), 65534); -assert_eq!(call!(addi_ui16(65534, 0)), 65534); -assert_eq!(call!(addi_ui16(0, 65535)), 65535); -assert_eq!(call!(addi_ui16(1, 65534)), 65535); -assert_eq!(call!(addi_ui16(65534, 1)), 65535); -assert_eq!(call!(addi_ui16(65535, 0)), 65535); -assert_eq!(call!(addi_ui32(0, 0)), 0); -assert_eq!(call!(addi_ui32(0, 1)), 1); -assert_eq!(call!(addi_ui32(1, 0)), 1); -assert_eq!(call!(addi_ui32(0, 2)), 2); -assert_eq!(call!(addi_ui32(1, 1)), 2); -assert_eq!(call!(addi_ui32(2, 0)), 2); -assert_eq!(call!(addi_ui32(0, 3)), 3); -assert_eq!(call!(addi_ui32(1, 2)), 3); -assert_eq!(call!(addi_ui32(2, 1)), 3); -assert_eq!(call!(addi_ui32(3, 0)), 3); -assert_eq!(call!(addi_ui32(0, 4)), 4); -assert_eq!(call!(addi_ui32(1, 3)), 4); -assert_eq!(call!(addi_ui32(2, 2)), 4); -assert_eq!(call!(addi_ui32(3, 1)), 4); -assert_eq!(call!(addi_ui32(4, 0)), 4); -assert_eq!(call!(addi_ui32(1, 4)), 5); -assert_eq!(call!(addi_ui32(2, 3)), 5); -assert_eq!(call!(addi_ui32(3, 2)), 5); -assert_eq!(call!(addi_ui32(4, 1)), 5); -assert_eq!(call!(addi_ui32(2, 4)), 6); -assert_eq!(call!(addi_ui32(3, 3)), 6); -assert_eq!(call!(addi_ui32(4, 2)), 6); -assert_eq!(call!(addi_ui32(3, 4)), 7); -assert_eq!(call!(addi_ui32(4, 3)), 7); -assert_eq!(call!(addi_ui32(4, 4)), 8); -assert_eq!(call!(addi_ui32(0, 2119154652)), 2119154652); -assert_eq!(call!(addi_ui32(2119154652, 0)), 2119154652); -assert_eq!(call!(addi_ui32(1, 2119154652)), 2119154653); -assert_eq!(call!(addi_ui32(2119154652, 1)), 2119154653); -assert_eq!(call!(addi_ui32(2, 2119154652)), 2119154654); -assert_eq!(call!(addi_ui32(2119154652, 2)), 2119154654); -assert_eq!(call!(addi_ui32(3, 2119154652)), 2119154655); -assert_eq!(call!(addi_ui32(2119154652, 3)), 2119154655); -assert_eq!(call!(addi_ui32(4, 2119154652)), 2119154656); -assert_eq!(call!(addi_ui32(2119154652, 4)), 2119154656); -assert_eq!(call!(addi_ui32(0, 3002788344)), 3002788344); -assert_eq!(call!(addi_ui32(3002788344, 0)), 3002788344); -assert_eq!(call!(addi_ui32(1, 3002788344)), 3002788345); -assert_eq!(call!(addi_ui32(3002788344, 1)), 3002788345); -assert_eq!(call!(addi_ui32(2, 3002788344)), 3002788346); -assert_eq!(call!(addi_ui32(3002788344, 2)), 3002788346); -assert_eq!(call!(addi_ui32(3, 3002788344)), 3002788347); -assert_eq!(call!(addi_ui32(3002788344, 3)), 3002788347); -assert_eq!(call!(addi_ui32(4, 3002788344)), 3002788348); -assert_eq!(call!(addi_ui32(3002788344, 4)), 3002788348); -assert_eq!(call!(addi_ui32(0, 3482297128)), 3482297128); -assert_eq!(call!(addi_ui32(3482297128, 0)), 3482297128); -assert_eq!(call!(addi_ui32(1, 3482297128)), 3482297129); -assert_eq!(call!(addi_ui32(3482297128, 1)), 3482297129); -assert_eq!(call!(addi_ui32(2, 3482297128)), 3482297130); -assert_eq!(call!(addi_ui32(3482297128, 2)), 3482297130); -assert_eq!(call!(addi_ui32(3, 3482297128)), 3482297131); -assert_eq!(call!(addi_ui32(3482297128, 3)), 3482297131); -assert_eq!(call!(addi_ui32(4, 3482297128)), 3482297132); -assert_eq!(call!(addi_ui32(3482297128, 4)), 3482297132); -assert_eq!(call!(addi_ui32(2119154652, 2119154652)), 4238309304); -assert_eq!(call!(addi_ui32(0, 4294967294)), 4294967294); -assert_eq!(call!(addi_ui32(4294967294, 0)), 4294967294); -assert_eq!(call!(addi_ui32(0, 4294967295)), 4294967295); -assert_eq!(call!(addi_ui32(1, 4294967294)), 4294967295); -assert_eq!(call!(addi_ui32(4294967294, 1)), 4294967295); -assert_eq!(call!(addi_ui32(4294967295, 0)), 4294967295); -assert_eq!(call!(addi_ui64(0, 0)), 0); -assert_eq!(call!(addi_ui64(0, 1)), 1); -assert_eq!(call!(addi_ui64(1, 0)), 1); -assert_eq!(call!(addi_ui64(0, 2)), 2); -assert_eq!(call!(addi_ui64(1, 1)), 2); -assert_eq!(call!(addi_ui64(2, 0)), 2); -assert_eq!(call!(addi_ui64(0, 3)), 3); -assert_eq!(call!(addi_ui64(1, 2)), 3); -assert_eq!(call!(addi_ui64(2, 1)), 3); -assert_eq!(call!(addi_ui64(3, 0)), 3); -assert_eq!(call!(addi_ui64(0, 4)), 4); -assert_eq!(call!(addi_ui64(1, 3)), 4); -assert_eq!(call!(addi_ui64(2, 2)), 4); -assert_eq!(call!(addi_ui64(3, 1)), 4); -assert_eq!(call!(addi_ui64(4, 0)), 4); -assert_eq!(call!(addi_ui64(1, 4)), 5); -assert_eq!(call!(addi_ui64(2, 3)), 5); -assert_eq!(call!(addi_ui64(3, 2)), 5); -assert_eq!(call!(addi_ui64(4, 1)), 5); -assert_eq!(call!(addi_ui64(2, 4)), 6); -assert_eq!(call!(addi_ui64(3, 3)), 6); -assert_eq!(call!(addi_ui64(4, 2)), 6); -assert_eq!(call!(addi_ui64(3, 4)), 7); -assert_eq!(call!(addi_ui64(4, 3)), 7); -assert_eq!(call!(addi_ui64(4, 4)), 8); -assert_eq!(call!(addi_ui64(0, 191084152064409600)), 191084152064409600); -assert_eq!(call!(addi_ui64(191084152064409600, 0)), 191084152064409600); -assert_eq!(call!(addi_ui64(1, 191084152064409600)), 191084152064409601); -assert_eq!(call!(addi_ui64(191084152064409600, 1)), 191084152064409601); -assert_eq!(call!(addi_ui64(2, 191084152064409600)), 191084152064409602); -assert_eq!(call!(addi_ui64(191084152064409600, 2)), 191084152064409602); -assert_eq!(call!(addi_ui64(3, 191084152064409600)), 191084152064409603); -assert_eq!(call!(addi_ui64(191084152064409600, 3)), 191084152064409603); -assert_eq!(call!(addi_ui64(4, 191084152064409600)), 191084152064409604); -assert_eq!(call!(addi_ui64(191084152064409600, 4)), 191084152064409604); -assert_eq!(call!(addi_ui64(191084152064409600, 191084152064409600)), 382168304128819200); -assert_eq!(call!(addi_ui64(0, 11015955194427482112)), 11015955194427482112); -assert_eq!(call!(addi_ui64(11015955194427482112, 0)), 11015955194427482112); -assert_eq!(call!(addi_ui64(1, 11015955194427482112)), 11015955194427482113); -assert_eq!(call!(addi_ui64(11015955194427482112, 1)), 11015955194427482113); -assert_eq!(call!(addi_ui64(2, 11015955194427482112)), 11015955194427482114); -assert_eq!(call!(addi_ui64(11015955194427482112, 2)), 11015955194427482114); -assert_eq!(call!(addi_ui64(3, 11015955194427482112)), 11015955194427482115); -assert_eq!(call!(addi_ui64(11015955194427482112, 3)), 11015955194427482115); -assert_eq!(call!(addi_ui64(4, 11015955194427482112)), 11015955194427482116); -assert_eq!(call!(addi_ui64(11015955194427482112, 4)), 11015955194427482116); -assert_eq!(call!(addi_ui64(191084152064409600, 11015955194427482112)), 11207039346491891712); -assert_eq!(call!(addi_ui64(11015955194427482112, 191084152064409600)), 11207039346491891712); -assert_eq!(call!(addi_ui64(0, 16990600415051759616)), 16990600415051759616); -assert_eq!(call!(addi_ui64(16990600415051759616, 0)), 16990600415051759616); -assert_eq!(call!(addi_ui64(1, 16990600415051759616)), 16990600415051759617); -assert_eq!(call!(addi_ui64(16990600415051759616, 1)), 16990600415051759617); -assert_eq!(call!(addi_ui64(2, 16990600415051759616)), 16990600415051759618); -assert_eq!(call!(addi_ui64(16990600415051759616, 2)), 16990600415051759618); -assert_eq!(call!(addi_ui64(3, 16990600415051759616)), 16990600415051759619); -assert_eq!(call!(addi_ui64(16990600415051759616, 3)), 16990600415051759619); -assert_eq!(call!(addi_ui64(4, 16990600415051759616)), 16990600415051759620); -assert_eq!(call!(addi_ui64(16990600415051759616, 4)), 16990600415051759620); -assert_eq!(call!(addi_ui64(191084152064409600, 16990600415051759616)), 17181684567116169216); -assert_eq!(call!(addi_ui64(16990600415051759616, 191084152064409600)), 17181684567116169216); -assert_eq!(call!(addi_ui64(0, 18446744073709551614)), 18446744073709551614); -assert_eq!(call!(addi_ui64(18446744073709551614, 0)), 18446744073709551614); -assert_eq!(call!(addi_ui64(0, 18446744073709551615)), 18446744073709551615); -assert_eq!(call!(addi_ui64(1, 18446744073709551614)), 18446744073709551615); -assert_eq!(call!(addi_ui64(18446744073709551614, 1)), 18446744073709551615); -assert_eq!(call!(addi_ui64(18446744073709551615, 0)), 18446744073709551615); -assert_eq!(call!(addi_ui8(0, 0)), 0); -assert_eq!(call!(addi_ui8(0, 1)), 1); -assert_eq!(call!(addi_ui8(1, 0)), 1); -assert_eq!(call!(addi_ui8(0, 2)), 2); -assert_eq!(call!(addi_ui8(1, 1)), 2); -assert_eq!(call!(addi_ui8(2, 0)), 2); -assert_eq!(call!(addi_ui8(0, 3)), 3); -assert_eq!(call!(addi_ui8(1, 2)), 3); -assert_eq!(call!(addi_ui8(2, 1)), 3); -assert_eq!(call!(addi_ui8(3, 0)), 3); -assert_eq!(call!(addi_ui8(0, 4)), 4); -assert_eq!(call!(addi_ui8(1, 3)), 4); -assert_eq!(call!(addi_ui8(2, 2)), 4); -assert_eq!(call!(addi_ui8(3, 1)), 4); -assert_eq!(call!(addi_ui8(4, 0)), 4); -assert_eq!(call!(addi_ui8(1, 4)), 5); -assert_eq!(call!(addi_ui8(2, 3)), 5); -assert_eq!(call!(addi_ui8(3, 2)), 5); -assert_eq!(call!(addi_ui8(4, 1)), 5); -assert_eq!(call!(addi_ui8(2, 4)), 6); -assert_eq!(call!(addi_ui8(3, 3)), 6); -assert_eq!(call!(addi_ui8(4, 2)), 6); -assert_eq!(call!(addi_ui8(3, 4)), 7); -assert_eq!(call!(addi_ui8(4, 3)), 7); -assert_eq!(call!(addi_ui8(4, 4)), 8); -assert_eq!(call!(addi_ui8(0, 72)), 72); -assert_eq!(call!(addi_ui8(72, 0)), 72); -assert_eq!(call!(addi_ui8(1, 72)), 73); -assert_eq!(call!(addi_ui8(72, 1)), 73); -assert_eq!(call!(addi_ui8(2, 72)), 74); -assert_eq!(call!(addi_ui8(72, 2)), 74); -assert_eq!(call!(addi_ui8(3, 72)), 75); -assert_eq!(call!(addi_ui8(72, 3)), 75); -assert_eq!(call!(addi_ui8(4, 72)), 76); -assert_eq!(call!(addi_ui8(72, 4)), 76); -assert_eq!(call!(addi_ui8(0, 100)), 100); -assert_eq!(call!(addi_ui8(100, 0)), 100); -assert_eq!(call!(addi_ui8(1, 100)), 101); -assert_eq!(call!(addi_ui8(100, 1)), 101); -assert_eq!(call!(addi_ui8(2, 100)), 102); -assert_eq!(call!(addi_ui8(100, 2)), 102); -assert_eq!(call!(addi_ui8(3, 100)), 103); -assert_eq!(call!(addi_ui8(100, 3)), 103); -assert_eq!(call!(addi_ui8(4, 100)), 104); -assert_eq!(call!(addi_ui8(100, 4)), 104); -assert_eq!(call!(addi_ui8(72, 72)), 144); -assert_eq!(call!(addi_ui8(0, 162)), 162); -assert_eq!(call!(addi_ui8(162, 0)), 162); -assert_eq!(call!(addi_ui8(1, 162)), 163); -assert_eq!(call!(addi_ui8(162, 1)), 163); -assert_eq!(call!(addi_ui8(2, 162)), 164); -assert_eq!(call!(addi_ui8(162, 2)), 164); -assert_eq!(call!(addi_ui8(3, 162)), 165); -assert_eq!(call!(addi_ui8(162, 3)), 165); -assert_eq!(call!(addi_ui8(4, 162)), 166); -assert_eq!(call!(addi_ui8(162, 4)), 166); -assert_eq!(call!(addi_ui8(72, 100)), 172); -assert_eq!(call!(addi_ui8(100, 72)), 172); -assert_eq!(call!(addi_ui8(100, 100)), 200); -assert_eq!(call!(addi_ui8(72, 162)), 234); -assert_eq!(call!(addi_ui8(162, 72)), 234); -assert_eq!(call!(addi_ui8(0, 254)), 254); -assert_eq!(call!(addi_ui8(254, 0)), 254); -assert_eq!(call!(addi_ui8(0, 255)), 255); -assert_eq!(call!(addi_ui8(1, 254)), 255); -assert_eq!(call!(addi_ui8(254, 1)), 255); -assert_eq!(call!(addi_ui8(255, 0)), 255); -assert_eq!(call!(divi_si16(-32768, 1)), -32768); -assert_eq!(call!(divi_si16(-32767, 1)), -32767); -assert_eq!(call!(divi_si16(-32547, 1)), -32547); -assert_eq!(call!(divi_si16(-32768, 2)), -16384); -assert_eq!(call!(divi_si16(-32767, 2)), -16383); -assert_eq!(call!(divi_si16(-32547, 2)), -16273); -assert_eq!(call!(divi_si16(-32768, 3)), -10922); -assert_eq!(call!(divi_si16(-32767, 3)), -10922); -assert_eq!(call!(divi_si16(-32547, 3)), -10849); -assert_eq!(call!(divi_si16(-32768, 4)), -8192); -assert_eq!(call!(divi_si16(-32767, 4)), -8191); -assert_eq!(call!(divi_si16(-32547, 4)), -8136); -assert_eq!(call!(divi_si16(-32768, 10486)), -3); -assert_eq!(call!(divi_si16(-32767, 10486)), -3); -assert_eq!(call!(divi_si16(-32547, 10486)), -3); -assert_eq!(call!(divi_si16(-32768, 16514)), -1); -assert_eq!(call!(divi_si16(-32768, 32766)), -1); -assert_eq!(call!(divi_si16(-32768, 32767)), -1); -assert_eq!(call!(divi_si16(-32767, 16514)), -1); -assert_eq!(call!(divi_si16(-32767, 32766)), -1); -assert_eq!(call!(divi_si16(-32767, 32767)), -1); -assert_eq!(call!(divi_si16(-32547, 16514)), -1); -assert_eq!(call!(divi_si16(32766, -32547)), -1); -assert_eq!(call!(divi_si16(32767, -32767)), -1); -assert_eq!(call!(divi_si16(32767, -32547)), -1); -assert_eq!(call!(divi_si16(-32767, -32768)), 0); -assert_eq!(call!(divi_si16(-32547, -32768)), 0); -assert_eq!(call!(divi_si16(-32547, -32767)), 0); -assert_eq!(call!(divi_si16(-32547, 32766)), 0); -assert_eq!(call!(divi_si16(-32547, 32767)), 0); -assert_eq!(call!(divi_si16(0, -32768)), 0); -assert_eq!(call!(divi_si16(0, -32767)), 0); -assert_eq!(call!(divi_si16(0, -32547)), 0); -assert_eq!(call!(divi_si16(0, 1)), 0); -assert_eq!(call!(divi_si16(0, 2)), 0); -assert_eq!(call!(divi_si16(0, 3)), 0); -assert_eq!(call!(divi_si16(0, 4)), 0); -assert_eq!(call!(divi_si16(0, 10486)), 0); -assert_eq!(call!(divi_si16(0, 16514)), 0); -assert_eq!(call!(divi_si16(0, 32766)), 0); -assert_eq!(call!(divi_si16(0, 32767)), 0); -assert_eq!(call!(divi_si16(1, -32768)), 0); -assert_eq!(call!(divi_si16(1, -32767)), 0); -assert_eq!(call!(divi_si16(1, -32547)), 0); -assert_eq!(call!(divi_si16(1, 2)), 0); -assert_eq!(call!(divi_si16(1, 3)), 0); -assert_eq!(call!(divi_si16(1, 4)), 0); -assert_eq!(call!(divi_si16(1, 10486)), 0); -assert_eq!(call!(divi_si16(1, 16514)), 0); -assert_eq!(call!(divi_si16(1, 32766)), 0); -assert_eq!(call!(divi_si16(1, 32767)), 0); -assert_eq!(call!(divi_si16(2, -32768)), 0); -assert_eq!(call!(divi_si16(2, -32767)), 0); -assert_eq!(call!(divi_si16(2, -32547)), 0); -assert_eq!(call!(divi_si16(2, 3)), 0); -assert_eq!(call!(divi_si16(2, 4)), 0); -assert_eq!(call!(divi_si16(2, 10486)), 0); -assert_eq!(call!(divi_si16(2, 16514)), 0); -assert_eq!(call!(divi_si16(2, 32766)), 0); -assert_eq!(call!(divi_si16(2, 32767)), 0); -assert_eq!(call!(divi_si16(3, -32768)), 0); -assert_eq!(call!(divi_si16(3, -32767)), 0); -assert_eq!(call!(divi_si16(3, -32547)), 0); -assert_eq!(call!(divi_si16(3, 4)), 0); -assert_eq!(call!(divi_si16(3, 10486)), 0); -assert_eq!(call!(divi_si16(3, 16514)), 0); -assert_eq!(call!(divi_si16(3, 32766)), 0); -assert_eq!(call!(divi_si16(3, 32767)), 0); -assert_eq!(call!(divi_si16(4, -32768)), 0); -assert_eq!(call!(divi_si16(4, -32767)), 0); -assert_eq!(call!(divi_si16(4, -32547)), 0); -assert_eq!(call!(divi_si16(4, 10486)), 0); -assert_eq!(call!(divi_si16(4, 16514)), 0); -assert_eq!(call!(divi_si16(4, 32766)), 0); -assert_eq!(call!(divi_si16(4, 32767)), 0); -assert_eq!(call!(divi_si16(10486, -32768)), 0); -assert_eq!(call!(divi_si16(10486, -32767)), 0); -assert_eq!(call!(divi_si16(10486, -32547)), 0); -assert_eq!(call!(divi_si16(10486, 16514)), 0); -assert_eq!(call!(divi_si16(10486, 32766)), 0); -assert_eq!(call!(divi_si16(10486, 32767)), 0); -assert_eq!(call!(divi_si16(16514, -32768)), 0); -assert_eq!(call!(divi_si16(16514, -32767)), 0); -assert_eq!(call!(divi_si16(16514, -32547)), 0); -assert_eq!(call!(divi_si16(16514, 32766)), 0); -assert_eq!(call!(divi_si16(16514, 32767)), 0); -assert_eq!(call!(divi_si16(32766, -32768)), 0); -assert_eq!(call!(divi_si16(32766, -32767)), 0); -assert_eq!(call!(divi_si16(32766, 32767)), 0); -assert_eq!(call!(divi_si16(32767, -32768)), 0); -assert_eq!(call!(divi_si16(-32768, -32768)), 1); -assert_eq!(call!(divi_si16(-32768, -32767)), 1); -assert_eq!(call!(divi_si16(-32768, -32547)), 1); -assert_eq!(call!(divi_si16(-32767, -32767)), 1); -assert_eq!(call!(divi_si16(-32767, -32547)), 1); -assert_eq!(call!(divi_si16(-32547, -32547)), 1); -assert_eq!(call!(divi_si16(1, 1)), 1); -assert_eq!(call!(divi_si16(2, 2)), 1); -assert_eq!(call!(divi_si16(3, 2)), 1); -assert_eq!(call!(divi_si16(3, 3)), 1); -assert_eq!(call!(divi_si16(4, 3)), 1); -assert_eq!(call!(divi_si16(4, 4)), 1); -assert_eq!(call!(divi_si16(10486, 10486)), 1); -assert_eq!(call!(divi_si16(16514, 10486)), 1); -assert_eq!(call!(divi_si16(16514, 16514)), 1); -assert_eq!(call!(divi_si16(32766, 16514)), 1); -assert_eq!(call!(divi_si16(32766, 32766)), 1); -assert_eq!(call!(divi_si16(32767, 16514)), 1); -assert_eq!(call!(divi_si16(32767, 32766)), 1); -assert_eq!(call!(divi_si16(32767, 32767)), 1); -assert_eq!(call!(divi_si16(2, 1)), 2); -assert_eq!(call!(divi_si16(4, 2)), 2); -assert_eq!(call!(divi_si16(3, 1)), 3); -assert_eq!(call!(divi_si16(32766, 10486)), 3); -assert_eq!(call!(divi_si16(32767, 10486)), 3); -assert_eq!(call!(divi_si16(4, 1)), 4); -assert_eq!(call!(divi_si16(10486, 4)), 2621); -assert_eq!(call!(divi_si16(10486, 3)), 3495); -assert_eq!(call!(divi_si16(16514, 4)), 4128); -assert_eq!(call!(divi_si16(10486, 2)), 5243); -assert_eq!(call!(divi_si16(16514, 3)), 5504); -assert_eq!(call!(divi_si16(32766, 4)), 8191); -assert_eq!(call!(divi_si16(32767, 4)), 8191); -assert_eq!(call!(divi_si16(16514, 2)), 8257); -assert_eq!(call!(divi_si16(10486, 1)), 10486); -assert_eq!(call!(divi_si16(32766, 3)), 10922); -assert_eq!(call!(divi_si16(32767, 3)), 10922); -assert_eq!(call!(divi_si16(32766, 2)), 16383); -assert_eq!(call!(divi_si16(32767, 2)), 16383); -assert_eq!(call!(divi_si16(16514, 1)), 16514); -assert_eq!(call!(divi_si16(32766, 1)), 32766); -assert_eq!(call!(divi_si16(32767, 1)), 32767); -assert_eq!(call!(divi_si32(-2147483648, 1)), -2147483648); -assert_eq!(call!(divi_si32(-2147483647, 1)), -2147483647); -assert_eq!(call!(divi_si32(-1713183800, 1)), -1713183800); -assert_eq!(call!(divi_si32(-1252582164, 1)), -1252582164); -assert_eq!(call!(divi_si32(-2147483648, 2)), -1073741824); -assert_eq!(call!(divi_si32(-2147483647, 2)), -1073741823); -assert_eq!(call!(divi_si32(-1035405763, 1)), -1035405763); -assert_eq!(call!(divi_si32(-1713183800, 2)), -856591900); -assert_eq!(call!(divi_si32(-2147483648, 3)), -715827882); -assert_eq!(call!(divi_si32(-2147483647, 3)), -715827882); -assert_eq!(call!(divi_si32(-1252582164, 2)), -626291082); -assert_eq!(call!(divi_si32(-1713183800, 3)), -571061266); -assert_eq!(call!(divi_si32(-2147483648, 4)), -536870912); -assert_eq!(call!(divi_si32(-2147483647, 4)), -536870911); -assert_eq!(call!(divi_si32(-1035405763, 2)), -517702881); -assert_eq!(call!(divi_si32(-1713183800, 4)), -428295950); -assert_eq!(call!(divi_si32(-1252582164, 3)), -417527388); -assert_eq!(call!(divi_si32(-1035405763, 3)), -345135254); -assert_eq!(call!(divi_si32(-1252582164, 4)), -313145541); -assert_eq!(call!(divi_si32(-1035405763, 4)), -258851440); -assert_eq!(call!(divi_si32(2147483646, -1035405763)), -2); -assert_eq!(call!(divi_si32(2147483647, -1035405763)), -2); -assert_eq!(call!(divi_si32(-2147483648, 2147483646)), -1); -assert_eq!(call!(divi_si32(-2147483648, 2147483647)), -1); -assert_eq!(call!(divi_si32(-2147483647, 2147483646)), -1); -assert_eq!(call!(divi_si32(-2147483647, 2147483647)), -1); -assert_eq!(call!(divi_si32(2147483646, -1713183800)), -1); -assert_eq!(call!(divi_si32(2147483646, -1252582164)), -1); -assert_eq!(call!(divi_si32(2147483647, -2147483647)), -1); -assert_eq!(call!(divi_si32(2147483647, -1713183800)), -1); -assert_eq!(call!(divi_si32(2147483647, -1252582164)), -1); -assert_eq!(call!(divi_si32(-2147483647, -2147483648)), 0); -assert_eq!(call!(divi_si32(-1713183800, -2147483648)), 0); -assert_eq!(call!(divi_si32(-1713183800, -2147483647)), 0); -assert_eq!(call!(divi_si32(-1713183800, 2147483646)), 0); -assert_eq!(call!(divi_si32(-1713183800, 2147483647)), 0); -assert_eq!(call!(divi_si32(-1252582164, -2147483648)), 0); -assert_eq!(call!(divi_si32(-1252582164, -2147483647)), 0); -assert_eq!(call!(divi_si32(-1252582164, -1713183800)), 0); -assert_eq!(call!(divi_si32(-1252582164, 2147483646)), 0); -assert_eq!(call!(divi_si32(-1252582164, 2147483647)), 0); -assert_eq!(call!(divi_si32(-1035405763, -2147483648)), 0); -assert_eq!(call!(divi_si32(-1035405763, -2147483647)), 0); -assert_eq!(call!(divi_si32(-1035405763, -1713183800)), 0); -assert_eq!(call!(divi_si32(-1035405763, -1252582164)), 0); -assert_eq!(call!(divi_si32(-1035405763, 2147483646)), 0); -assert_eq!(call!(divi_si32(-1035405763, 2147483647)), 0); -assert_eq!(call!(divi_si32(0, -2147483648)), 0); -assert_eq!(call!(divi_si32(0, -2147483647)), 0); -assert_eq!(call!(divi_si32(0, -1713183800)), 0); -assert_eq!(call!(divi_si32(0, -1252582164)), 0); -assert_eq!(call!(divi_si32(0, -1035405763)), 0); -assert_eq!(call!(divi_si32(0, 1)), 0); -assert_eq!(call!(divi_si32(0, 2)), 0); -assert_eq!(call!(divi_si32(0, 3)), 0); -assert_eq!(call!(divi_si32(0, 4)), 0); -assert_eq!(call!(divi_si32(0, 2147483646)), 0); -assert_eq!(call!(divi_si32(0, 2147483647)), 0); -assert_eq!(call!(divi_si32(1, -2147483648)), 0); -assert_eq!(call!(divi_si32(1, -2147483647)), 0); -assert_eq!(call!(divi_si32(1, -1713183800)), 0); -assert_eq!(call!(divi_si32(1, -1252582164)), 0); -assert_eq!(call!(divi_si32(1, -1035405763)), 0); -assert_eq!(call!(divi_si32(1, 2)), 0); -assert_eq!(call!(divi_si32(1, 3)), 0); -assert_eq!(call!(divi_si32(1, 4)), 0); -assert_eq!(call!(divi_si32(1, 2147483646)), 0); -assert_eq!(call!(divi_si32(1, 2147483647)), 0); -assert_eq!(call!(divi_si32(2, -2147483648)), 0); -assert_eq!(call!(divi_si32(2, -2147483647)), 0); -assert_eq!(call!(divi_si32(2, -1713183800)), 0); -assert_eq!(call!(divi_si32(2, -1252582164)), 0); -assert_eq!(call!(divi_si32(2, -1035405763)), 0); -assert_eq!(call!(divi_si32(2, 3)), 0); -assert_eq!(call!(divi_si32(2, 4)), 0); -assert_eq!(call!(divi_si32(2, 2147483646)), 0); -assert_eq!(call!(divi_si32(2, 2147483647)), 0); -assert_eq!(call!(divi_si32(3, -2147483648)), 0); -assert_eq!(call!(divi_si32(3, -2147483647)), 0); -assert_eq!(call!(divi_si32(3, -1713183800)), 0); -assert_eq!(call!(divi_si32(3, -1252582164)), 0); -assert_eq!(call!(divi_si32(3, -1035405763)), 0); -assert_eq!(call!(divi_si32(3, 4)), 0); -assert_eq!(call!(divi_si32(3, 2147483646)), 0); -assert_eq!(call!(divi_si32(3, 2147483647)), 0); -assert_eq!(call!(divi_si32(4, -2147483648)), 0); -assert_eq!(call!(divi_si32(4, -2147483647)), 0); -assert_eq!(call!(divi_si32(4, -1713183800)), 0); -assert_eq!(call!(divi_si32(4, -1252582164)), 0); -assert_eq!(call!(divi_si32(4, -1035405763)), 0); -assert_eq!(call!(divi_si32(4, 2147483646)), 0); -assert_eq!(call!(divi_si32(4, 2147483647)), 0); -assert_eq!(call!(divi_si32(2147483646, -2147483648)), 0); -assert_eq!(call!(divi_si32(2147483646, -2147483647)), 0); -assert_eq!(call!(divi_si32(2147483646, 2147483647)), 0); -assert_eq!(call!(divi_si32(2147483647, -2147483648)), 0); -assert_eq!(call!(divi_si32(-2147483648, -2147483648)), 1); -assert_eq!(call!(divi_si32(-2147483648, -2147483647)), 1); -assert_eq!(call!(divi_si32(-2147483648, -1713183800)), 1); -assert_eq!(call!(divi_si32(-2147483648, -1252582164)), 1); -assert_eq!(call!(divi_si32(-2147483647, -2147483647)), 1); -assert_eq!(call!(divi_si32(-2147483647, -1713183800)), 1); -assert_eq!(call!(divi_si32(-2147483647, -1252582164)), 1); -assert_eq!(call!(divi_si32(-1713183800, -1713183800)), 1); -assert_eq!(call!(divi_si32(-1713183800, -1252582164)), 1); -assert_eq!(call!(divi_si32(-1713183800, -1035405763)), 1); -assert_eq!(call!(divi_si32(-1252582164, -1252582164)), 1); -assert_eq!(call!(divi_si32(-1252582164, -1035405763)), 1); -assert_eq!(call!(divi_si32(-1035405763, -1035405763)), 1); -assert_eq!(call!(divi_si32(1, 1)), 1); -assert_eq!(call!(divi_si32(2, 2)), 1); -assert_eq!(call!(divi_si32(3, 2)), 1); -assert_eq!(call!(divi_si32(3, 3)), 1); -assert_eq!(call!(divi_si32(4, 3)), 1); -assert_eq!(call!(divi_si32(4, 4)), 1); -assert_eq!(call!(divi_si32(2147483646, 2147483646)), 1); -assert_eq!(call!(divi_si32(2147483647, 2147483646)), 1); -assert_eq!(call!(divi_si32(2147483647, 2147483647)), 1); -assert_eq!(call!(divi_si32(-2147483648, -1035405763)), 2); -assert_eq!(call!(divi_si32(-2147483647, -1035405763)), 2); -assert_eq!(call!(divi_si32(2, 1)), 2); -assert_eq!(call!(divi_si32(4, 2)), 2); -assert_eq!(call!(divi_si32(3, 1)), 3); -assert_eq!(call!(divi_si32(4, 1)), 4); -assert_eq!(call!(divi_si32(2147483646, 4)), 536870911); -assert_eq!(call!(divi_si32(2147483647, 4)), 536870911); -assert_eq!(call!(divi_si32(2147483646, 3)), 715827882); -assert_eq!(call!(divi_si32(2147483647, 3)), 715827882); -assert_eq!(call!(divi_si32(2147483646, 2)), 1073741823); -assert_eq!(call!(divi_si32(2147483647, 2)), 1073741823); -assert_eq!(call!(divi_si32(2147483646, 1)), 2147483646); -assert_eq!(call!(divi_si32(2147483647, 1)), 2147483647); -assert_eq!(call!(divi_si64(-9223372036854775808, 1)), -9223372036854775808); -assert_eq!(call!(divi_si64(-9223372036854775807, 1)), -9223372036854775807); -assert_eq!(call!(divi_si64(-9223372036854775808, 2)), -4611686018427387904); -assert_eq!(call!(divi_si64(-9223372036854775807, 2)), -4611686018427387903); -assert_eq!(call!(divi_si64(-9223372036854775808, 3)), -3074457345618258602); -assert_eq!(call!(divi_si64(-9223372036854775807, 3)), -3074457345618258602); -assert_eq!(call!(divi_si64(-9223372036854775808, 4)), -2305843009213693952); -assert_eq!(call!(divi_si64(-9223372036854775807, 4)), -2305843009213693951); -assert_eq!(call!(divi_si64(-1741927215160008704, 1)), -1741927215160008704); -assert_eq!(call!(divi_si64(-1328271339354574848, 1)), -1328271339354574848); -assert_eq!(call!(divi_si64(-1741927215160008704, 2)), -870963607580004352); -assert_eq!(call!(divi_si64(-1328271339354574848, 2)), -664135669677287424); -assert_eq!(call!(divi_si64(-1741927215160008704, 3)), -580642405053336234); -assert_eq!(call!(divi_si64(-1328271339354574848, 3)), -442757113118191616); -assert_eq!(call!(divi_si64(-1741927215160008704, 4)), -435481803790002176); -assert_eq!(call!(divi_si64(-1328271339354574848, 4)), -332067834838643712); -assert_eq!(call!(divi_si64(9223372036854775806, -1328271339354574848)), -6); -assert_eq!(call!(divi_si64(9223372036854775807, -1328271339354574848)), -6); -assert_eq!(call!(divi_si64(9223372036854775806, -1741927215160008704)), -5); -assert_eq!(call!(divi_si64(9223372036854775807, -1741927215160008704)), -5); -assert_eq!(call!(divi_si64(5577148965131116544, -1328271339354574848)), -4); -assert_eq!(call!(divi_si64(5577148965131116544, -1741927215160008704)), -3); -assert_eq!(call!(divi_si64(-9223372036854775808, 5577148965131116544)), -1); -assert_eq!(call!(divi_si64(-9223372036854775808, 9223372036854775806)), -1); -assert_eq!(call!(divi_si64(-9223372036854775808, 9223372036854775807)), -1); -assert_eq!(call!(divi_si64(-9223372036854775807, 5577148965131116544)), -1); -assert_eq!(call!(divi_si64(-9223372036854775807, 9223372036854775806)), -1); -assert_eq!(call!(divi_si64(-9223372036854775807, 9223372036854775807)), -1); -assert_eq!(call!(divi_si64(9223372036854775807, -9223372036854775807)), -1); -assert_eq!(call!(divi_si64(-9223372036854775807, -9223372036854775808)), 0); -assert_eq!(call!(divi_si64(-1741927215160008704, -9223372036854775808)), 0); -assert_eq!(call!(divi_si64(-1741927215160008704, -9223372036854775807)), 0); -assert_eq!(call!(divi_si64(-1741927215160008704, 5577148965131116544)), 0); -assert_eq!(call!(divi_si64(-1741927215160008704, 9223372036854775806)), 0); -assert_eq!(call!(divi_si64(-1741927215160008704, 9223372036854775807)), 0); -assert_eq!(call!(divi_si64(-1328271339354574848, -9223372036854775808)), 0); -assert_eq!(call!(divi_si64(-1328271339354574848, -9223372036854775807)), 0); -assert_eq!(call!(divi_si64(-1328271339354574848, -1741927215160008704)), 0); -assert_eq!(call!(divi_si64(-1328271339354574848, 5577148965131116544)), 0); -assert_eq!(call!(divi_si64(-1328271339354574848, 9223372036854775806)), 0); -assert_eq!(call!(divi_si64(-1328271339354574848, 9223372036854775807)), 0); -assert_eq!(call!(divi_si64(0, -9223372036854775808)), 0); -assert_eq!(call!(divi_si64(0, -9223372036854775807)), 0); -assert_eq!(call!(divi_si64(0, -1741927215160008704)), 0); -assert_eq!(call!(divi_si64(0, -1328271339354574848)), 0); -assert_eq!(call!(divi_si64(0, 1)), 0); -assert_eq!(call!(divi_si64(0, 2)), 0); -assert_eq!(call!(divi_si64(0, 3)), 0); -assert_eq!(call!(divi_si64(0, 4)), 0); -assert_eq!(call!(divi_si64(0, 5577148965131116544)), 0); -assert_eq!(call!(divi_si64(0, 9223372036854775806)), 0); -assert_eq!(call!(divi_si64(0, 9223372036854775807)), 0); -assert_eq!(call!(divi_si64(1, -9223372036854775808)), 0); -assert_eq!(call!(divi_si64(1, -9223372036854775807)), 0); -assert_eq!(call!(divi_si64(1, -1741927215160008704)), 0); -assert_eq!(call!(divi_si64(1, -1328271339354574848)), 0); -assert_eq!(call!(divi_si64(1, 2)), 0); -assert_eq!(call!(divi_si64(1, 3)), 0); -assert_eq!(call!(divi_si64(1, 4)), 0); -assert_eq!(call!(divi_si64(1, 5577148965131116544)), 0); -assert_eq!(call!(divi_si64(1, 9223372036854775806)), 0); -assert_eq!(call!(divi_si64(1, 9223372036854775807)), 0); -assert_eq!(call!(divi_si64(2, -9223372036854775808)), 0); -assert_eq!(call!(divi_si64(2, -9223372036854775807)), 0); -assert_eq!(call!(divi_si64(2, -1741927215160008704)), 0); -assert_eq!(call!(divi_si64(2, -1328271339354574848)), 0); -assert_eq!(call!(divi_si64(2, 3)), 0); -assert_eq!(call!(divi_si64(2, 4)), 0); -assert_eq!(call!(divi_si64(2, 5577148965131116544)), 0); -assert_eq!(call!(divi_si64(2, 9223372036854775806)), 0); -assert_eq!(call!(divi_si64(2, 9223372036854775807)), 0); -assert_eq!(call!(divi_si64(3, -9223372036854775808)), 0); -assert_eq!(call!(divi_si64(3, -9223372036854775807)), 0); -assert_eq!(call!(divi_si64(3, -1741927215160008704)), 0); -assert_eq!(call!(divi_si64(3, -1328271339354574848)), 0); -assert_eq!(call!(divi_si64(3, 4)), 0); -assert_eq!(call!(divi_si64(3, 5577148965131116544)), 0); -assert_eq!(call!(divi_si64(3, 9223372036854775806)), 0); -assert_eq!(call!(divi_si64(3, 9223372036854775807)), 0); -assert_eq!(call!(divi_si64(4, -9223372036854775808)), 0); -assert_eq!(call!(divi_si64(4, -9223372036854775807)), 0); -assert_eq!(call!(divi_si64(4, -1741927215160008704)), 0); -assert_eq!(call!(divi_si64(4, -1328271339354574848)), 0); -assert_eq!(call!(divi_si64(4, 5577148965131116544)), 0); -assert_eq!(call!(divi_si64(4, 9223372036854775806)), 0); -assert_eq!(call!(divi_si64(4, 9223372036854775807)), 0); -assert_eq!(call!(divi_si64(5577148965131116544, -9223372036854775808)), 0); -assert_eq!(call!(divi_si64(5577148965131116544, -9223372036854775807)), 0); -assert_eq!(call!(divi_si64(5577148965131116544, 9223372036854775806)), 0); -assert_eq!(call!(divi_si64(5577148965131116544, 9223372036854775807)), 0); -assert_eq!(call!(divi_si64(9223372036854775806, -9223372036854775808)), 0); -assert_eq!(call!(divi_si64(9223372036854775806, -9223372036854775807)), 0); -assert_eq!(call!(divi_si64(9223372036854775806, 9223372036854775807)), 0); -assert_eq!(call!(divi_si64(9223372036854775807, -9223372036854775808)), 0); -assert_eq!(call!(divi_si64(-9223372036854775808, -9223372036854775808)), 1); -assert_eq!(call!(divi_si64(-9223372036854775808, -9223372036854775807)), 1); -assert_eq!(call!(divi_si64(-9223372036854775807, -9223372036854775807)), 1); -assert_eq!(call!(divi_si64(-1741927215160008704, -1741927215160008704)), 1); -assert_eq!(call!(divi_si64(-1741927215160008704, -1328271339354574848)), 1); -assert_eq!(call!(divi_si64(-1328271339354574848, -1328271339354574848)), 1); -assert_eq!(call!(divi_si64(1, 1)), 1); -assert_eq!(call!(divi_si64(2, 2)), 1); -assert_eq!(call!(divi_si64(3, 2)), 1); -assert_eq!(call!(divi_si64(3, 3)), 1); -assert_eq!(call!(divi_si64(4, 3)), 1); -assert_eq!(call!(divi_si64(4, 4)), 1); -assert_eq!(call!(divi_si64(5577148965131116544, 5577148965131116544)), 1); -assert_eq!(call!(divi_si64(9223372036854775806, 5577148965131116544)), 1); -assert_eq!(call!(divi_si64(9223372036854775806, 9223372036854775806)), 1); -assert_eq!(call!(divi_si64(9223372036854775807, 5577148965131116544)), 1); -assert_eq!(call!(divi_si64(9223372036854775807, 9223372036854775806)), 1); -assert_eq!(call!(divi_si64(9223372036854775807, 9223372036854775807)), 1); -assert_eq!(call!(divi_si64(2, 1)), 2); -assert_eq!(call!(divi_si64(4, 2)), 2); -assert_eq!(call!(divi_si64(3, 1)), 3); -assert_eq!(call!(divi_si64(4, 1)), 4); -assert_eq!(call!(divi_si64(-9223372036854775808, -1741927215160008704)), 5); -assert_eq!(call!(divi_si64(-9223372036854775807, -1741927215160008704)), 5); -assert_eq!(call!(divi_si64(-9223372036854775808, -1328271339354574848)), 6); -assert_eq!(call!(divi_si64(-9223372036854775807, -1328271339354574848)), 6); -assert_eq!(call!(divi_si64(5577148965131116544, 4)), 1394287241282779136); -assert_eq!(call!(divi_si64(5577148965131116544, 3)), 1859049655043705514); -assert_eq!(call!(divi_si64(9223372036854775806, 4)), 2305843009213693951); -assert_eq!(call!(divi_si64(9223372036854775807, 4)), 2305843009213693951); -assert_eq!(call!(divi_si64(5577148965131116544, 2)), 2788574482565558272); -assert_eq!(call!(divi_si64(9223372036854775806, 3)), 3074457345618258602); -assert_eq!(call!(divi_si64(9223372036854775807, 3)), 3074457345618258602); -assert_eq!(call!(divi_si64(9223372036854775806, 2)), 4611686018427387903); -assert_eq!(call!(divi_si64(9223372036854775807, 2)), 4611686018427387903); -assert_eq!(call!(divi_si64(5577148965131116544, 1)), 5577148965131116544); -assert_eq!(call!(divi_si64(9223372036854775806, 1)), 9223372036854775806); -assert_eq!(call!(divi_si64(9223372036854775807, 1)), 9223372036854775807); -assert_eq!(call!(divi_si8(-128, 1)), -128); -assert_eq!(call!(divi_si8(-127, 1)), -127); -assert_eq!(call!(divi_si8(-128, 2)), -64); -assert_eq!(call!(divi_si8(-127, 2)), -63); -assert_eq!(call!(divi_si8(-128, 3)), -42); -assert_eq!(call!(divi_si8(-127, 3)), -42); -assert_eq!(call!(divi_si8(-128, 4)), -32); -assert_eq!(call!(divi_si8(-127, 4)), -31); -assert_eq!(call!(divi_si8(-128, 16)), -8); -assert_eq!(call!(divi_si8(-127, 16)), -7); -assert_eq!(call!(divi_si8(-128, 126)), -1); -assert_eq!(call!(divi_si8(-128, 127)), -1); -assert_eq!(call!(divi_si8(-127, 126)), -1); -assert_eq!(call!(divi_si8(-127, 127)), -1); -assert_eq!(call!(divi_si8(127, -127)), -1); -assert_eq!(call!(divi_si8(-127, -128)), 0); -assert_eq!(call!(divi_si8(0, -128)), 0); -assert_eq!(call!(divi_si8(0, -127)), 0); -assert_eq!(call!(divi_si8(0, 1)), 0); -assert_eq!(call!(divi_si8(0, 2)), 0); -assert_eq!(call!(divi_si8(0, 3)), 0); -assert_eq!(call!(divi_si8(0, 4)), 0); -assert_eq!(call!(divi_si8(0, 16)), 0); -assert_eq!(call!(divi_si8(0, 126)), 0); -assert_eq!(call!(divi_si8(0, 127)), 0); -assert_eq!(call!(divi_si8(1, -128)), 0); -assert_eq!(call!(divi_si8(1, -127)), 0); -assert_eq!(call!(divi_si8(1, 2)), 0); -assert_eq!(call!(divi_si8(1, 3)), 0); -assert_eq!(call!(divi_si8(1, 4)), 0); -assert_eq!(call!(divi_si8(1, 16)), 0); -assert_eq!(call!(divi_si8(1, 126)), 0); -assert_eq!(call!(divi_si8(1, 127)), 0); -assert_eq!(call!(divi_si8(2, -128)), 0); -assert_eq!(call!(divi_si8(2, -127)), 0); -assert_eq!(call!(divi_si8(2, 3)), 0); -assert_eq!(call!(divi_si8(2, 4)), 0); -assert_eq!(call!(divi_si8(2, 16)), 0); -assert_eq!(call!(divi_si8(2, 126)), 0); -assert_eq!(call!(divi_si8(2, 127)), 0); -assert_eq!(call!(divi_si8(3, -128)), 0); -assert_eq!(call!(divi_si8(3, -127)), 0); -assert_eq!(call!(divi_si8(3, 4)), 0); -assert_eq!(call!(divi_si8(3, 16)), 0); -assert_eq!(call!(divi_si8(3, 126)), 0); -assert_eq!(call!(divi_si8(3, 127)), 0); -assert_eq!(call!(divi_si8(4, -128)), 0); -assert_eq!(call!(divi_si8(4, -127)), 0); -assert_eq!(call!(divi_si8(4, 16)), 0); -assert_eq!(call!(divi_si8(4, 126)), 0); -assert_eq!(call!(divi_si8(4, 127)), 0); -assert_eq!(call!(divi_si8(16, -128)), 0); -assert_eq!(call!(divi_si8(16, -127)), 0); -assert_eq!(call!(divi_si8(16, 126)), 0); -assert_eq!(call!(divi_si8(16, 127)), 0); -assert_eq!(call!(divi_si8(126, -128)), 0); -assert_eq!(call!(divi_si8(126, -127)), 0); -assert_eq!(call!(divi_si8(126, 127)), 0); -assert_eq!(call!(divi_si8(127, -128)), 0); -assert_eq!(call!(divi_si8(-128, -128)), 1); -assert_eq!(call!(divi_si8(-128, -127)), 1); -assert_eq!(call!(divi_si8(-127, -127)), 1); -assert_eq!(call!(divi_si8(1, 1)), 1); -assert_eq!(call!(divi_si8(2, 2)), 1); -assert_eq!(call!(divi_si8(3, 2)), 1); -assert_eq!(call!(divi_si8(3, 3)), 1); -assert_eq!(call!(divi_si8(4, 3)), 1); -assert_eq!(call!(divi_si8(4, 4)), 1); -assert_eq!(call!(divi_si8(16, 16)), 1); -assert_eq!(call!(divi_si8(126, 126)), 1); -assert_eq!(call!(divi_si8(127, 126)), 1); -assert_eq!(call!(divi_si8(127, 127)), 1); -assert_eq!(call!(divi_si8(2, 1)), 2); -assert_eq!(call!(divi_si8(4, 2)), 2); -assert_eq!(call!(divi_si8(3, 1)), 3); -assert_eq!(call!(divi_si8(4, 1)), 4); -assert_eq!(call!(divi_si8(16, 4)), 4); -assert_eq!(call!(divi_si8(16, 3)), 5); -assert_eq!(call!(divi_si8(126, 16)), 7); -assert_eq!(call!(divi_si8(127, 16)), 7); -assert_eq!(call!(divi_si8(16, 2)), 8); -assert_eq!(call!(divi_si8(16, 1)), 16); -assert_eq!(call!(divi_si8(126, 4)), 31); -assert_eq!(call!(divi_si8(127, 4)), 31); -assert_eq!(call!(divi_si8(126, 3)), 42); -assert_eq!(call!(divi_si8(127, 3)), 42); -assert_eq!(call!(divi_si8(126, 2)), 63); -assert_eq!(call!(divi_si8(127, 2)), 63); -assert_eq!(call!(divi_si8(126, 1)), 126); -assert_eq!(call!(divi_si8(127, 1)), 127); -assert_eq!(call!(divi_ui16(0, 1)), 0); -assert_eq!(call!(divi_ui16(0, 2)), 0); -assert_eq!(call!(divi_ui16(0, 3)), 0); -assert_eq!(call!(divi_ui16(0, 4)), 0); -assert_eq!(call!(divi_ui16(0, 1717)), 0); -assert_eq!(call!(divi_ui16(0, 17988)), 0); -assert_eq!(call!(divi_ui16(0, 65096)), 0); -assert_eq!(call!(divi_ui16(0, 65534)), 0); -assert_eq!(call!(divi_ui16(0, 65535)), 0); -assert_eq!(call!(divi_ui16(1, 2)), 0); -assert_eq!(call!(divi_ui16(1, 3)), 0); -assert_eq!(call!(divi_ui16(1, 4)), 0); -assert_eq!(call!(divi_ui16(1, 1717)), 0); -assert_eq!(call!(divi_ui16(1, 17988)), 0); -assert_eq!(call!(divi_ui16(1, 65096)), 0); -assert_eq!(call!(divi_ui16(1, 65534)), 0); -assert_eq!(call!(divi_ui16(1, 65535)), 0); -assert_eq!(call!(divi_ui16(2, 3)), 0); -assert_eq!(call!(divi_ui16(2, 4)), 0); -assert_eq!(call!(divi_ui16(2, 1717)), 0); -assert_eq!(call!(divi_ui16(2, 17988)), 0); -assert_eq!(call!(divi_ui16(2, 65096)), 0); -assert_eq!(call!(divi_ui16(2, 65534)), 0); -assert_eq!(call!(divi_ui16(2, 65535)), 0); -assert_eq!(call!(divi_ui16(3, 4)), 0); -assert_eq!(call!(divi_ui16(3, 1717)), 0); -assert_eq!(call!(divi_ui16(3, 17988)), 0); -assert_eq!(call!(divi_ui16(3, 65096)), 0); -assert_eq!(call!(divi_ui16(3, 65534)), 0); -assert_eq!(call!(divi_ui16(3, 65535)), 0); -assert_eq!(call!(divi_ui16(4, 1717)), 0); -assert_eq!(call!(divi_ui16(4, 17988)), 0); -assert_eq!(call!(divi_ui16(4, 65096)), 0); -assert_eq!(call!(divi_ui16(4, 65534)), 0); -assert_eq!(call!(divi_ui16(4, 65535)), 0); -assert_eq!(call!(divi_ui16(1717, 17988)), 0); -assert_eq!(call!(divi_ui16(1717, 65096)), 0); -assert_eq!(call!(divi_ui16(1717, 65534)), 0); -assert_eq!(call!(divi_ui16(1717, 65535)), 0); -assert_eq!(call!(divi_ui16(17988, 65096)), 0); -assert_eq!(call!(divi_ui16(17988, 65534)), 0); -assert_eq!(call!(divi_ui16(17988, 65535)), 0); -assert_eq!(call!(divi_ui16(65096, 65534)), 0); -assert_eq!(call!(divi_ui16(65096, 65535)), 0); -assert_eq!(call!(divi_ui16(65534, 65535)), 0); -assert_eq!(call!(divi_ui16(1, 1)), 1); -assert_eq!(call!(divi_ui16(2, 2)), 1); -assert_eq!(call!(divi_ui16(3, 2)), 1); -assert_eq!(call!(divi_ui16(3, 3)), 1); -assert_eq!(call!(divi_ui16(4, 3)), 1); -assert_eq!(call!(divi_ui16(4, 4)), 1); -assert_eq!(call!(divi_ui16(1717, 1717)), 1); -assert_eq!(call!(divi_ui16(17988, 17988)), 1); -assert_eq!(call!(divi_ui16(65096, 65096)), 1); -assert_eq!(call!(divi_ui16(65534, 65096)), 1); -assert_eq!(call!(divi_ui16(65534, 65534)), 1); -assert_eq!(call!(divi_ui16(65535, 65096)), 1); -assert_eq!(call!(divi_ui16(65535, 65534)), 1); -assert_eq!(call!(divi_ui16(65535, 65535)), 1); -assert_eq!(call!(divi_ui16(2, 1)), 2); -assert_eq!(call!(divi_ui16(4, 2)), 2); -assert_eq!(call!(divi_ui16(3, 1)), 3); -assert_eq!(call!(divi_ui16(65096, 17988)), 3); -assert_eq!(call!(divi_ui16(65534, 17988)), 3); -assert_eq!(call!(divi_ui16(65535, 17988)), 3); -assert_eq!(call!(divi_ui16(4, 1)), 4); -assert_eq!(call!(divi_ui16(17988, 1717)), 10); -assert_eq!(call!(divi_ui16(65096, 1717)), 37); -assert_eq!(call!(divi_ui16(65534, 1717)), 38); -assert_eq!(call!(divi_ui16(65535, 1717)), 38); -assert_eq!(call!(divi_ui16(1717, 4)), 429); -assert_eq!(call!(divi_ui16(1717, 3)), 572); -assert_eq!(call!(divi_ui16(1717, 2)), 858); -assert_eq!(call!(divi_ui16(1717, 1)), 1717); -assert_eq!(call!(divi_ui16(17988, 4)), 4497); -assert_eq!(call!(divi_ui16(17988, 3)), 5996); -assert_eq!(call!(divi_ui16(17988, 2)), 8994); -assert_eq!(call!(divi_ui16(65096, 4)), 16274); -assert_eq!(call!(divi_ui16(65534, 4)), 16383); -assert_eq!(call!(divi_ui16(65535, 4)), 16383); -assert_eq!(call!(divi_ui16(17988, 1)), 17988); -assert_eq!(call!(divi_ui16(65096, 3)), 21698); -assert_eq!(call!(divi_ui16(65534, 3)), 21844); -assert_eq!(call!(divi_ui16(65535, 3)), 21845); -assert_eq!(call!(divi_ui16(65096, 2)), 32548); -assert_eq!(call!(divi_ui16(65534, 2)), 32767); -assert_eq!(call!(divi_ui16(65535, 2)), 32767); -assert_eq!(call!(divi_ui16(65096, 1)), 65096); -assert_eq!(call!(divi_ui16(65534, 1)), 65534); -assert_eq!(call!(divi_ui16(65535, 1)), 65535); -assert_eq!(call!(divi_ui32(0, 1)), 0); -assert_eq!(call!(divi_ui32(0, 2)), 0); -assert_eq!(call!(divi_ui32(0, 3)), 0); -assert_eq!(call!(divi_ui32(0, 4)), 0); -assert_eq!(call!(divi_ui32(0, 2119154652)), 0); -assert_eq!(call!(divi_ui32(0, 3002788344)), 0); -assert_eq!(call!(divi_ui32(0, 3482297128)), 0); -assert_eq!(call!(divi_ui32(0, 4294967294)), 0); -assert_eq!(call!(divi_ui32(0, 4294967295)), 0); -assert_eq!(call!(divi_ui32(1, 2)), 0); -assert_eq!(call!(divi_ui32(1, 3)), 0); -assert_eq!(call!(divi_ui32(1, 4)), 0); -assert_eq!(call!(divi_ui32(1, 2119154652)), 0); -assert_eq!(call!(divi_ui32(1, 3002788344)), 0); -assert_eq!(call!(divi_ui32(1, 3482297128)), 0); -assert_eq!(call!(divi_ui32(1, 4294967294)), 0); -assert_eq!(call!(divi_ui32(1, 4294967295)), 0); -assert_eq!(call!(divi_ui32(2, 3)), 0); -assert_eq!(call!(divi_ui32(2, 4)), 0); -assert_eq!(call!(divi_ui32(2, 2119154652)), 0); -assert_eq!(call!(divi_ui32(2, 3002788344)), 0); -assert_eq!(call!(divi_ui32(2, 3482297128)), 0); -assert_eq!(call!(divi_ui32(2, 4294967294)), 0); -assert_eq!(call!(divi_ui32(2, 4294967295)), 0); -assert_eq!(call!(divi_ui32(3, 4)), 0); -assert_eq!(call!(divi_ui32(3, 2119154652)), 0); -assert_eq!(call!(divi_ui32(3, 3002788344)), 0); -assert_eq!(call!(divi_ui32(3, 3482297128)), 0); -assert_eq!(call!(divi_ui32(3, 4294967294)), 0); -assert_eq!(call!(divi_ui32(3, 4294967295)), 0); -assert_eq!(call!(divi_ui32(4, 2119154652)), 0); -assert_eq!(call!(divi_ui32(4, 3002788344)), 0); -assert_eq!(call!(divi_ui32(4, 3482297128)), 0); -assert_eq!(call!(divi_ui32(4, 4294967294)), 0); -assert_eq!(call!(divi_ui32(4, 4294967295)), 0); -assert_eq!(call!(divi_ui32(2119154652, 3002788344)), 0); -assert_eq!(call!(divi_ui32(2119154652, 3482297128)), 0); -assert_eq!(call!(divi_ui32(2119154652, 4294967294)), 0); -assert_eq!(call!(divi_ui32(2119154652, 4294967295)), 0); -assert_eq!(call!(divi_ui32(3002788344, 3482297128)), 0); -assert_eq!(call!(divi_ui32(3002788344, 4294967294)), 0); -assert_eq!(call!(divi_ui32(3002788344, 4294967295)), 0); -assert_eq!(call!(divi_ui32(3482297128, 4294967294)), 0); -assert_eq!(call!(divi_ui32(3482297128, 4294967295)), 0); -assert_eq!(call!(divi_ui32(4294967294, 4294967295)), 0); -assert_eq!(call!(divi_ui32(1, 1)), 1); -assert_eq!(call!(divi_ui32(2, 2)), 1); -assert_eq!(call!(divi_ui32(3, 2)), 1); -assert_eq!(call!(divi_ui32(3, 3)), 1); -assert_eq!(call!(divi_ui32(4, 3)), 1); -assert_eq!(call!(divi_ui32(4, 4)), 1); -assert_eq!(call!(divi_ui32(2119154652, 2119154652)), 1); -assert_eq!(call!(divi_ui32(3002788344, 2119154652)), 1); -assert_eq!(call!(divi_ui32(3002788344, 3002788344)), 1); -assert_eq!(call!(divi_ui32(3482297128, 2119154652)), 1); -assert_eq!(call!(divi_ui32(3482297128, 3002788344)), 1); -assert_eq!(call!(divi_ui32(3482297128, 3482297128)), 1); -assert_eq!(call!(divi_ui32(4294967294, 3002788344)), 1); -assert_eq!(call!(divi_ui32(4294967294, 3482297128)), 1); -assert_eq!(call!(divi_ui32(4294967294, 4294967294)), 1); -assert_eq!(call!(divi_ui32(4294967295, 3002788344)), 1); -assert_eq!(call!(divi_ui32(4294967295, 3482297128)), 1); -assert_eq!(call!(divi_ui32(4294967295, 4294967294)), 1); -assert_eq!(call!(divi_ui32(4294967295, 4294967295)), 1); -assert_eq!(call!(divi_ui32(2, 1)), 2); -assert_eq!(call!(divi_ui32(4, 2)), 2); -assert_eq!(call!(divi_ui32(4294967294, 2119154652)), 2); -assert_eq!(call!(divi_ui32(4294967295, 2119154652)), 2); -assert_eq!(call!(divi_ui32(3, 1)), 3); -assert_eq!(call!(divi_ui32(4, 1)), 4); -assert_eq!(call!(divi_ui32(2119154652, 4)), 529788663); -assert_eq!(call!(divi_ui32(2119154652, 3)), 706384884); -assert_eq!(call!(divi_ui32(3002788344, 4)), 750697086); -assert_eq!(call!(divi_ui32(3482297128, 4)), 870574282); -assert_eq!(call!(divi_ui32(3002788344, 3)), 1000929448); -assert_eq!(call!(divi_ui32(2119154652, 2)), 1059577326); -assert_eq!(call!(divi_ui32(4294967294, 4)), 1073741823); -assert_eq!(call!(divi_ui32(4294967295, 4)), 1073741823); -assert_eq!(call!(divi_ui32(3482297128, 3)), 1160765709); -assert_eq!(call!(divi_ui32(4294967294, 3)), 1431655764); -assert_eq!(call!(divi_ui32(4294967295, 3)), 1431655765); -assert_eq!(call!(divi_ui32(3002788344, 2)), 1501394172); -assert_eq!(call!(divi_ui32(3482297128, 2)), 1741148564); -assert_eq!(call!(divi_ui32(2119154652, 1)), 2119154652); -assert_eq!(call!(divi_ui32(4294967294, 2)), 2147483647); -assert_eq!(call!(divi_ui32(4294967295, 2)), 2147483647); -assert_eq!(call!(divi_ui32(3002788344, 1)), 3002788344); -assert_eq!(call!(divi_ui32(3482297128, 1)), 3482297128); -assert_eq!(call!(divi_ui32(4294967294, 1)), 4294967294); -assert_eq!(call!(divi_ui32(4294967295, 1)), 4294967295); -assert_eq!(call!(divi_ui64(0, 1)), 0); -assert_eq!(call!(divi_ui64(0, 2)), 0); -assert_eq!(call!(divi_ui64(0, 3)), 0); -assert_eq!(call!(divi_ui64(0, 4)), 0); -assert_eq!(call!(divi_ui64(0, 191084152064409600)), 0); -assert_eq!(call!(divi_ui64(0, 11015955194427482112)), 0); -assert_eq!(call!(divi_ui64(0, 16990600415051759616)), 0); -assert_eq!(call!(divi_ui64(0, 18446744073709551614)), 0); -assert_eq!(call!(divi_ui64(0, 18446744073709551615)), 0); -assert_eq!(call!(divi_ui64(1, 2)), 0); -assert_eq!(call!(divi_ui64(1, 3)), 0); -assert_eq!(call!(divi_ui64(1, 4)), 0); -assert_eq!(call!(divi_ui64(1, 191084152064409600)), 0); -assert_eq!(call!(divi_ui64(1, 11015955194427482112)), 0); -assert_eq!(call!(divi_ui64(1, 16990600415051759616)), 0); -assert_eq!(call!(divi_ui64(1, 18446744073709551614)), 0); -assert_eq!(call!(divi_ui64(1, 18446744073709551615)), 0); -assert_eq!(call!(divi_ui64(2, 3)), 0); -assert_eq!(call!(divi_ui64(2, 4)), 0); -assert_eq!(call!(divi_ui64(2, 191084152064409600)), 0); -assert_eq!(call!(divi_ui64(2, 11015955194427482112)), 0); -assert_eq!(call!(divi_ui64(2, 16990600415051759616)), 0); -assert_eq!(call!(divi_ui64(2, 18446744073709551614)), 0); -assert_eq!(call!(divi_ui64(2, 18446744073709551615)), 0); -assert_eq!(call!(divi_ui64(3, 4)), 0); -assert_eq!(call!(divi_ui64(3, 191084152064409600)), 0); -assert_eq!(call!(divi_ui64(3, 11015955194427482112)), 0); -assert_eq!(call!(divi_ui64(3, 16990600415051759616)), 0); -assert_eq!(call!(divi_ui64(3, 18446744073709551614)), 0); -assert_eq!(call!(divi_ui64(3, 18446744073709551615)), 0); -assert_eq!(call!(divi_ui64(4, 191084152064409600)), 0); -assert_eq!(call!(divi_ui64(4, 11015955194427482112)), 0); -assert_eq!(call!(divi_ui64(4, 16990600415051759616)), 0); -assert_eq!(call!(divi_ui64(4, 18446744073709551614)), 0); -assert_eq!(call!(divi_ui64(4, 18446744073709551615)), 0); -assert_eq!(call!(divi_ui64(191084152064409600, 11015955194427482112)), 0); -assert_eq!(call!(divi_ui64(191084152064409600, 16990600415051759616)), 0); -assert_eq!(call!(divi_ui64(191084152064409600, 18446744073709551614)), 0); -assert_eq!(call!(divi_ui64(191084152064409600, 18446744073709551615)), 0); -assert_eq!(call!(divi_ui64(11015955194427482112, 16990600415051759616)), 0); -assert_eq!(call!(divi_ui64(11015955194427482112, 18446744073709551614)), 0); -assert_eq!(call!(divi_ui64(11015955194427482112, 18446744073709551615)), 0); -assert_eq!(call!(divi_ui64(16990600415051759616, 18446744073709551614)), 0); -assert_eq!(call!(divi_ui64(16990600415051759616, 18446744073709551615)), 0); -assert_eq!(call!(divi_ui64(18446744073709551614, 18446744073709551615)), 0); -assert_eq!(call!(divi_ui64(1, 1)), 1); -assert_eq!(call!(divi_ui64(2, 2)), 1); -assert_eq!(call!(divi_ui64(3, 2)), 1); -assert_eq!(call!(divi_ui64(3, 3)), 1); -assert_eq!(call!(divi_ui64(4, 3)), 1); -assert_eq!(call!(divi_ui64(4, 4)), 1); -assert_eq!(call!(divi_ui64(191084152064409600, 191084152064409600)), 1); -assert_eq!(call!(divi_ui64(11015955194427482112, 11015955194427482112)), 1); -assert_eq!(call!(divi_ui64(16990600415051759616, 11015955194427482112)), 1); -assert_eq!(call!(divi_ui64(16990600415051759616, 16990600415051759616)), 1); -assert_eq!(call!(divi_ui64(18446744073709551614, 11015955194427482112)), 1); -assert_eq!(call!(divi_ui64(18446744073709551614, 16990600415051759616)), 1); -assert_eq!(call!(divi_ui64(18446744073709551614, 18446744073709551614)), 1); -assert_eq!(call!(divi_ui64(18446744073709551615, 11015955194427482112)), 1); -assert_eq!(call!(divi_ui64(18446744073709551615, 16990600415051759616)), 1); -assert_eq!(call!(divi_ui64(18446744073709551615, 18446744073709551614)), 1); -assert_eq!(call!(divi_ui64(18446744073709551615, 18446744073709551615)), 1); -assert_eq!(call!(divi_ui64(2, 1)), 2); -assert_eq!(call!(divi_ui64(4, 2)), 2); -assert_eq!(call!(divi_ui64(3, 1)), 3); -assert_eq!(call!(divi_ui64(4, 1)), 4); -assert_eq!(call!(divi_ui64(11015955194427482112, 191084152064409600)), 57); -assert_eq!(call!(divi_ui64(16990600415051759616, 191084152064409600)), 88); -assert_eq!(call!(divi_ui64(18446744073709551614, 191084152064409600)), 96); -assert_eq!(call!(divi_ui64(18446744073709551615, 191084152064409600)), 96); -assert_eq!(call!(divi_ui64(191084152064409600, 4)), 47771038016102400); -assert_eq!(call!(divi_ui64(191084152064409600, 3)), 63694717354803200); -assert_eq!(call!(divi_ui64(191084152064409600, 2)), 95542076032204800); -assert_eq!(call!(divi_ui64(191084152064409600, 1)), 191084152064409600); -assert_eq!(call!(divi_ui64(11015955194427482112, 4)), 2753988798606870528); -assert_eq!(call!(divi_ui64(11015955194427482112, 3)), 3671985064809160704); -assert_eq!(call!(divi_ui64(16990600415051759616, 4)), 4247650103762939904); -assert_eq!(call!(divi_ui64(18446744073709551614, 4)), 4611686018427387903); -assert_eq!(call!(divi_ui64(18446744073709551615, 4)), 4611686018427387903); -assert_eq!(call!(divi_ui64(11015955194427482112, 2)), 5507977597213741056); -assert_eq!(call!(divi_ui64(16990600415051759616, 3)), 5663533471683919872); -assert_eq!(call!(divi_ui64(18446744073709551614, 3)), 6148914691236517204); -assert_eq!(call!(divi_ui64(18446744073709551615, 3)), 6148914691236517205); -assert_eq!(call!(divi_ui64(16990600415051759616, 2)), 8495300207525879808); -assert_eq!(call!(divi_ui64(18446744073709551614, 2)), 9223372036854775807); -assert_eq!(call!(divi_ui64(18446744073709551615, 2)), 9223372036854775807); -assert_eq!(call!(divi_ui64(11015955194427482112, 1)), 11015955194427482112); -assert_eq!(call!(divi_ui64(16990600415051759616, 1)), 16990600415051759616); -assert_eq!(call!(divi_ui64(18446744073709551614, 1)), 18446744073709551614); -assert_eq!(call!(divi_ui64(18446744073709551615, 1)), 18446744073709551615); -assert_eq!(call!(divi_ui8(0, 1)), 0); -assert_eq!(call!(divi_ui8(0, 2)), 0); -assert_eq!(call!(divi_ui8(0, 3)), 0); -assert_eq!(call!(divi_ui8(0, 4)), 0); -assert_eq!(call!(divi_ui8(0, 72)), 0); -assert_eq!(call!(divi_ui8(0, 100)), 0); -assert_eq!(call!(divi_ui8(0, 162)), 0); -assert_eq!(call!(divi_ui8(0, 254)), 0); -assert_eq!(call!(divi_ui8(0, 255)), 0); -assert_eq!(call!(divi_ui8(1, 2)), 0); -assert_eq!(call!(divi_ui8(1, 3)), 0); -assert_eq!(call!(divi_ui8(1, 4)), 0); -assert_eq!(call!(divi_ui8(1, 72)), 0); -assert_eq!(call!(divi_ui8(1, 100)), 0); -assert_eq!(call!(divi_ui8(1, 162)), 0); -assert_eq!(call!(divi_ui8(1, 254)), 0); -assert_eq!(call!(divi_ui8(1, 255)), 0); -assert_eq!(call!(divi_ui8(2, 3)), 0); -assert_eq!(call!(divi_ui8(2, 4)), 0); -assert_eq!(call!(divi_ui8(2, 72)), 0); -assert_eq!(call!(divi_ui8(2, 100)), 0); -assert_eq!(call!(divi_ui8(2, 162)), 0); -assert_eq!(call!(divi_ui8(2, 254)), 0); -assert_eq!(call!(divi_ui8(2, 255)), 0); -assert_eq!(call!(divi_ui8(3, 4)), 0); -assert_eq!(call!(divi_ui8(3, 72)), 0); -assert_eq!(call!(divi_ui8(3, 100)), 0); -assert_eq!(call!(divi_ui8(3, 162)), 0); -assert_eq!(call!(divi_ui8(3, 254)), 0); -assert_eq!(call!(divi_ui8(3, 255)), 0); -assert_eq!(call!(divi_ui8(4, 72)), 0); -assert_eq!(call!(divi_ui8(4, 100)), 0); -assert_eq!(call!(divi_ui8(4, 162)), 0); -assert_eq!(call!(divi_ui8(4, 254)), 0); -assert_eq!(call!(divi_ui8(4, 255)), 0); -assert_eq!(call!(divi_ui8(72, 100)), 0); -assert_eq!(call!(divi_ui8(72, 162)), 0); -assert_eq!(call!(divi_ui8(72, 254)), 0); -assert_eq!(call!(divi_ui8(72, 255)), 0); -assert_eq!(call!(divi_ui8(100, 162)), 0); -assert_eq!(call!(divi_ui8(100, 254)), 0); -assert_eq!(call!(divi_ui8(100, 255)), 0); -assert_eq!(call!(divi_ui8(162, 254)), 0); -assert_eq!(call!(divi_ui8(162, 255)), 0); -assert_eq!(call!(divi_ui8(254, 255)), 0); -assert_eq!(call!(divi_ui8(1, 1)), 1); -assert_eq!(call!(divi_ui8(2, 2)), 1); -assert_eq!(call!(divi_ui8(3, 2)), 1); -assert_eq!(call!(divi_ui8(3, 3)), 1); -assert_eq!(call!(divi_ui8(4, 3)), 1); -assert_eq!(call!(divi_ui8(4, 4)), 1); -assert_eq!(call!(divi_ui8(72, 72)), 1); -assert_eq!(call!(divi_ui8(100, 72)), 1); -assert_eq!(call!(divi_ui8(100, 100)), 1); -assert_eq!(call!(divi_ui8(162, 100)), 1); -assert_eq!(call!(divi_ui8(162, 162)), 1); -assert_eq!(call!(divi_ui8(254, 162)), 1); -assert_eq!(call!(divi_ui8(254, 254)), 1); -assert_eq!(call!(divi_ui8(255, 162)), 1); -assert_eq!(call!(divi_ui8(255, 254)), 1); -assert_eq!(call!(divi_ui8(255, 255)), 1); -assert_eq!(call!(divi_ui8(2, 1)), 2); -assert_eq!(call!(divi_ui8(4, 2)), 2); -assert_eq!(call!(divi_ui8(162, 72)), 2); -assert_eq!(call!(divi_ui8(254, 100)), 2); -assert_eq!(call!(divi_ui8(255, 100)), 2); -assert_eq!(call!(divi_ui8(3, 1)), 3); -assert_eq!(call!(divi_ui8(254, 72)), 3); -assert_eq!(call!(divi_ui8(255, 72)), 3); -assert_eq!(call!(divi_ui8(4, 1)), 4); -assert_eq!(call!(divi_ui8(72, 4)), 18); -assert_eq!(call!(divi_ui8(72, 3)), 24); -assert_eq!(call!(divi_ui8(100, 4)), 25); -assert_eq!(call!(divi_ui8(100, 3)), 33); -assert_eq!(call!(divi_ui8(72, 2)), 36); -assert_eq!(call!(divi_ui8(162, 4)), 40); -assert_eq!(call!(divi_ui8(100, 2)), 50); -assert_eq!(call!(divi_ui8(162, 3)), 54); -assert_eq!(call!(divi_ui8(254, 4)), 63); -assert_eq!(call!(divi_ui8(255, 4)), 63); -assert_eq!(call!(divi_ui8(72, 1)), 72); -assert_eq!(call!(divi_ui8(162, 2)), 81); -assert_eq!(call!(divi_ui8(254, 3)), 84); -assert_eq!(call!(divi_ui8(255, 3)), 85); -assert_eq!(call!(divi_ui8(100, 1)), 100); -assert_eq!(call!(divi_ui8(254, 2)), 127); -assert_eq!(call!(divi_ui8(255, 2)), 127); -assert_eq!(call!(divi_ui8(162, 1)), 162); -assert_eq!(call!(divi_ui8(254, 1)), 254); -assert_eq!(call!(divi_ui8(255, 1)), 255); -assert_eq!(call!(muli_si16(-32768, 1)), -32768); -assert_eq!(call!(muli_si16(1, -32768)), -32768); -assert_eq!(call!(muli_si16(-32767, 1)), -32767); -assert_eq!(call!(muli_si16(1, -32767)), -32767); -assert_eq!(call!(muli_si16(-32547, 1)), -32547); -assert_eq!(call!(muli_si16(1, -32547)), -32547); -assert_eq!(call!(muli_si16(-32768, 0)), 0); -assert_eq!(call!(muli_si16(-32767, 0)), 0); -assert_eq!(call!(muli_si16(-32547, 0)), 0); -assert_eq!(call!(muli_si16(0, -32768)), 0); -assert_eq!(call!(muli_si16(0, -32767)), 0); -assert_eq!(call!(muli_si16(0, -32547)), 0); -assert_eq!(call!(muli_si16(0, 0)), 0); -assert_eq!(call!(muli_si16(0, 1)), 0); -assert_eq!(call!(muli_si16(0, 2)), 0); -assert_eq!(call!(muli_si16(0, 3)), 0); -assert_eq!(call!(muli_si16(0, 4)), 0); -assert_eq!(call!(muli_si16(0, 10486)), 0); -assert_eq!(call!(muli_si16(0, 16514)), 0); -assert_eq!(call!(muli_si16(0, 32766)), 0); -assert_eq!(call!(muli_si16(0, 32767)), 0); -assert_eq!(call!(muli_si16(1, 0)), 0); -assert_eq!(call!(muli_si16(2, 0)), 0); -assert_eq!(call!(muli_si16(3, 0)), 0); -assert_eq!(call!(muli_si16(4, 0)), 0); -assert_eq!(call!(muli_si16(10486, 0)), 0); -assert_eq!(call!(muli_si16(16514, 0)), 0); -assert_eq!(call!(muli_si16(32766, 0)), 0); -assert_eq!(call!(muli_si16(32767, 0)), 0); -assert_eq!(call!(muli_si16(1, 1)), 1); -assert_eq!(call!(muli_si16(1, 2)), 2); -assert_eq!(call!(muli_si16(2, 1)), 2); -assert_eq!(call!(muli_si16(1, 3)), 3); -assert_eq!(call!(muli_si16(3, 1)), 3); -assert_eq!(call!(muli_si16(1, 4)), 4); -assert_eq!(call!(muli_si16(2, 2)), 4); -assert_eq!(call!(muli_si16(4, 1)), 4); -assert_eq!(call!(muli_si16(2, 3)), 6); -assert_eq!(call!(muli_si16(3, 2)), 6); -assert_eq!(call!(muli_si16(2, 4)), 8); -assert_eq!(call!(muli_si16(4, 2)), 8); -assert_eq!(call!(muli_si16(3, 3)), 9); -assert_eq!(call!(muli_si16(3, 4)), 12); -assert_eq!(call!(muli_si16(4, 3)), 12); -assert_eq!(call!(muli_si16(4, 4)), 16); -assert_eq!(call!(muli_si16(1, 10486)), 10486); -assert_eq!(call!(muli_si16(10486, 1)), 10486); -assert_eq!(call!(muli_si16(1, 16514)), 16514); -assert_eq!(call!(muli_si16(16514, 1)), 16514); -assert_eq!(call!(muli_si16(2, 10486)), 20972); -assert_eq!(call!(muli_si16(10486, 2)), 20972); -assert_eq!(call!(muli_si16(3, 10486)), 31458); -assert_eq!(call!(muli_si16(10486, 3)), 31458); -assert_eq!(call!(muli_si16(1, 32766)), 32766); -assert_eq!(call!(muli_si16(32766, 1)), 32766); -assert_eq!(call!(muli_si16(1, 32767)), 32767); -assert_eq!(call!(muli_si16(32767, 1)), 32767); -assert_eq!(call!(muli_si32(-2147483648, 1)), -2147483648); -assert_eq!(call!(muli_si32(1, -2147483648)), -2147483648); -assert_eq!(call!(muli_si32(-2147483647, 1)), -2147483647); -assert_eq!(call!(muli_si32(1, -2147483647)), -2147483647); -assert_eq!(call!(muli_si32(-1035405763, 2)), -2070811526); -assert_eq!(call!(muli_si32(2, -1035405763)), -2070811526); -assert_eq!(call!(muli_si32(-1713183800, 1)), -1713183800); -assert_eq!(call!(muli_si32(1, -1713183800)), -1713183800); -assert_eq!(call!(muli_si32(-1252582164, 1)), -1252582164); -assert_eq!(call!(muli_si32(1, -1252582164)), -1252582164); -assert_eq!(call!(muli_si32(-1035405763, 1)), -1035405763); -assert_eq!(call!(muli_si32(1, -1035405763)), -1035405763); -assert_eq!(call!(muli_si32(-2147483648, 0)), 0); -assert_eq!(call!(muli_si32(-2147483647, 0)), 0); -assert_eq!(call!(muli_si32(-1713183800, 0)), 0); -assert_eq!(call!(muli_si32(-1252582164, 0)), 0); -assert_eq!(call!(muli_si32(-1035405763, 0)), 0); -assert_eq!(call!(muli_si32(0, -2147483648)), 0); -assert_eq!(call!(muli_si32(0, -2147483647)), 0); -assert_eq!(call!(muli_si32(0, -1713183800)), 0); -assert_eq!(call!(muli_si32(0, -1252582164)), 0); -assert_eq!(call!(muli_si32(0, -1035405763)), 0); -assert_eq!(call!(muli_si32(0, 0)), 0); -assert_eq!(call!(muli_si32(0, 1)), 0); -assert_eq!(call!(muli_si32(0, 2)), 0); -assert_eq!(call!(muli_si32(0, 3)), 0); -assert_eq!(call!(muli_si32(0, 4)), 0); -assert_eq!(call!(muli_si32(0, 2147483646)), 0); -assert_eq!(call!(muli_si32(0, 2147483647)), 0); -assert_eq!(call!(muli_si32(1, 0)), 0); -assert_eq!(call!(muli_si32(2, 0)), 0); -assert_eq!(call!(muli_si32(3, 0)), 0); -assert_eq!(call!(muli_si32(4, 0)), 0); -assert_eq!(call!(muli_si32(2147483646, 0)), 0); -assert_eq!(call!(muli_si32(2147483647, 0)), 0); -assert_eq!(call!(muli_si32(1, 1)), 1); -assert_eq!(call!(muli_si32(1, 2)), 2); -assert_eq!(call!(muli_si32(2, 1)), 2); -assert_eq!(call!(muli_si32(1, 3)), 3); -assert_eq!(call!(muli_si32(3, 1)), 3); -assert_eq!(call!(muli_si32(1, 4)), 4); -assert_eq!(call!(muli_si32(2, 2)), 4); -assert_eq!(call!(muli_si32(4, 1)), 4); -assert_eq!(call!(muli_si32(2, 3)), 6); -assert_eq!(call!(muli_si32(3, 2)), 6); -assert_eq!(call!(muli_si32(2, 4)), 8); -assert_eq!(call!(muli_si32(4, 2)), 8); -assert_eq!(call!(muli_si32(3, 3)), 9); -assert_eq!(call!(muli_si32(3, 4)), 12); -assert_eq!(call!(muli_si32(4, 3)), 12); -assert_eq!(call!(muli_si32(4, 4)), 16); -assert_eq!(call!(muli_si32(1, 2147483646)), 2147483646); -assert_eq!(call!(muli_si32(2147483646, 1)), 2147483646); -assert_eq!(call!(muli_si32(1, 2147483647)), 2147483647); -assert_eq!(call!(muli_si32(2147483647, 1)), 2147483647); -assert_eq!(call!(muli_si64(-9223372036854775808, 1)), -9223372036854775808); -assert_eq!(call!(muli_si64(1, -9223372036854775808)), -9223372036854775808); -assert_eq!(call!(muli_si64(-9223372036854775807, 1)), -9223372036854775807); -assert_eq!(call!(muli_si64(1, -9223372036854775807)), -9223372036854775807); -assert_eq!(call!(muli_si64(-1741927215160008704, 4)), -6967708860640034816); -assert_eq!(call!(muli_si64(4, -1741927215160008704)), -6967708860640034816); -assert_eq!(call!(muli_si64(-1328271339354574848, 4)), -5313085357418299392); -assert_eq!(call!(muli_si64(4, -1328271339354574848)), -5313085357418299392); -assert_eq!(call!(muli_si64(-1741927215160008704, 3)), -5225781645480026112); -assert_eq!(call!(muli_si64(3, -1741927215160008704)), -5225781645480026112); -assert_eq!(call!(muli_si64(-1328271339354574848, 3)), -3984814018063724544); -assert_eq!(call!(muli_si64(3, -1328271339354574848)), -3984814018063724544); -assert_eq!(call!(muli_si64(-1741927215160008704, 2)), -3483854430320017408); -assert_eq!(call!(muli_si64(2, -1741927215160008704)), -3483854430320017408); -assert_eq!(call!(muli_si64(-1328271339354574848, 2)), -2656542678709149696); -assert_eq!(call!(muli_si64(2, -1328271339354574848)), -2656542678709149696); -assert_eq!(call!(muli_si64(-1741927215160008704, 1)), -1741927215160008704); -assert_eq!(call!(muli_si64(1, -1741927215160008704)), -1741927215160008704); -assert_eq!(call!(muli_si64(-1328271339354574848, 1)), -1328271339354574848); -assert_eq!(call!(muli_si64(1, -1328271339354574848)), -1328271339354574848); -assert_eq!(call!(muli_si64(-9223372036854775808, 0)), 0); -assert_eq!(call!(muli_si64(-9223372036854775807, 0)), 0); -assert_eq!(call!(muli_si64(-1741927215160008704, 0)), 0); -assert_eq!(call!(muli_si64(-1328271339354574848, 0)), 0); -assert_eq!(call!(muli_si64(0, -9223372036854775808)), 0); -assert_eq!(call!(muli_si64(0, -9223372036854775807)), 0); -assert_eq!(call!(muli_si64(0, -1741927215160008704)), 0); -assert_eq!(call!(muli_si64(0, -1328271339354574848)), 0); -assert_eq!(call!(muli_si64(0, 0)), 0); -assert_eq!(call!(muli_si64(0, 1)), 0); -assert_eq!(call!(muli_si64(0, 2)), 0); -assert_eq!(call!(muli_si64(0, 3)), 0); -assert_eq!(call!(muli_si64(0, 4)), 0); -assert_eq!(call!(muli_si64(0, 5577148965131116544)), 0); -assert_eq!(call!(muli_si64(0, 9223372036854775806)), 0); -assert_eq!(call!(muli_si64(0, 9223372036854775807)), 0); -assert_eq!(call!(muli_si64(1, 0)), 0); -assert_eq!(call!(muli_si64(2, 0)), 0); -assert_eq!(call!(muli_si64(3, 0)), 0); -assert_eq!(call!(muli_si64(4, 0)), 0); -assert_eq!(call!(muli_si64(5577148965131116544, 0)), 0); -assert_eq!(call!(muli_si64(9223372036854775806, 0)), 0); -assert_eq!(call!(muli_si64(9223372036854775807, 0)), 0); -assert_eq!(call!(muli_si64(1, 1)), 1); -assert_eq!(call!(muli_si64(1, 2)), 2); -assert_eq!(call!(muli_si64(2, 1)), 2); -assert_eq!(call!(muli_si64(1, 3)), 3); -assert_eq!(call!(muli_si64(3, 1)), 3); -assert_eq!(call!(muli_si64(1, 4)), 4); -assert_eq!(call!(muli_si64(2, 2)), 4); -assert_eq!(call!(muli_si64(4, 1)), 4); -assert_eq!(call!(muli_si64(2, 3)), 6); -assert_eq!(call!(muli_si64(3, 2)), 6); -assert_eq!(call!(muli_si64(2, 4)), 8); -assert_eq!(call!(muli_si64(4, 2)), 8); -assert_eq!(call!(muli_si64(3, 3)), 9); -assert_eq!(call!(muli_si64(3, 4)), 12); -assert_eq!(call!(muli_si64(4, 3)), 12); -assert_eq!(call!(muli_si64(4, 4)), 16); -assert_eq!(call!(muli_si64(1, 5577148965131116544)), 5577148965131116544); -assert_eq!(call!(muli_si64(5577148965131116544, 1)), 5577148965131116544); -assert_eq!(call!(muli_si64(1, 9223372036854775806)), 9223372036854775806); -assert_eq!(call!(muli_si64(9223372036854775806, 1)), 9223372036854775806); -assert_eq!(call!(muli_si64(1, 9223372036854775807)), 9223372036854775807); -assert_eq!(call!(muli_si64(9223372036854775807, 1)), 9223372036854775807); -assert_eq!(call!(muli_si8(-128, 1)), -128); -assert_eq!(call!(muli_si8(1, -128)), -128); -assert_eq!(call!(muli_si8(-127, 1)), -127); -assert_eq!(call!(muli_si8(1, -127)), -127); -assert_eq!(call!(muli_si8(-128, 0)), 0); -assert_eq!(call!(muli_si8(-127, 0)), 0); -assert_eq!(call!(muli_si8(0, -128)), 0); -assert_eq!(call!(muli_si8(0, -127)), 0); -assert_eq!(call!(muli_si8(0, 0)), 0); -assert_eq!(call!(muli_si8(0, 1)), 0); -assert_eq!(call!(muli_si8(0, 2)), 0); -assert_eq!(call!(muli_si8(0, 3)), 0); -assert_eq!(call!(muli_si8(0, 4)), 0); -assert_eq!(call!(muli_si8(0, 16)), 0); -assert_eq!(call!(muli_si8(0, 126)), 0); -assert_eq!(call!(muli_si8(0, 127)), 0); -assert_eq!(call!(muli_si8(1, 0)), 0); -assert_eq!(call!(muli_si8(2, 0)), 0); -assert_eq!(call!(muli_si8(3, 0)), 0); -assert_eq!(call!(muli_si8(4, 0)), 0); -assert_eq!(call!(muli_si8(16, 0)), 0); -assert_eq!(call!(muli_si8(126, 0)), 0); -assert_eq!(call!(muli_si8(127, 0)), 0); -assert_eq!(call!(muli_si8(1, 1)), 1); -assert_eq!(call!(muli_si8(1, 2)), 2); -assert_eq!(call!(muli_si8(2, 1)), 2); -assert_eq!(call!(muli_si8(1, 3)), 3); -assert_eq!(call!(muli_si8(3, 1)), 3); -assert_eq!(call!(muli_si8(1, 4)), 4); -assert_eq!(call!(muli_si8(2, 2)), 4); -assert_eq!(call!(muli_si8(4, 1)), 4); -assert_eq!(call!(muli_si8(2, 3)), 6); -assert_eq!(call!(muli_si8(3, 2)), 6); -assert_eq!(call!(muli_si8(2, 4)), 8); -assert_eq!(call!(muli_si8(4, 2)), 8); -assert_eq!(call!(muli_si8(3, 3)), 9); -assert_eq!(call!(muli_si8(3, 4)), 12); -assert_eq!(call!(muli_si8(4, 3)), 12); -assert_eq!(call!(muli_si8(1, 16)), 16); -assert_eq!(call!(muli_si8(4, 4)), 16); -assert_eq!(call!(muli_si8(16, 1)), 16); -assert_eq!(call!(muli_si8(2, 16)), 32); -assert_eq!(call!(muli_si8(16, 2)), 32); -assert_eq!(call!(muli_si8(3, 16)), 48); -assert_eq!(call!(muli_si8(16, 3)), 48); -assert_eq!(call!(muli_si8(4, 16)), 64); -assert_eq!(call!(muli_si8(16, 4)), 64); -assert_eq!(call!(muli_si8(1, 126)), 126); -assert_eq!(call!(muli_si8(126, 1)), 126); -assert_eq!(call!(muli_si8(1, 127)), 127); -assert_eq!(call!(muli_si8(127, 1)), 127); -assert_eq!(call!(muli_ui16(0, 0)), 0); -assert_eq!(call!(muli_ui16(0, 1)), 0); -assert_eq!(call!(muli_ui16(0, 2)), 0); -assert_eq!(call!(muli_ui16(0, 3)), 0); -assert_eq!(call!(muli_ui16(0, 4)), 0); -assert_eq!(call!(muli_ui16(0, 1717)), 0); -assert_eq!(call!(muli_ui16(0, 17988)), 0); -assert_eq!(call!(muli_ui16(0, 65096)), 0); -assert_eq!(call!(muli_ui16(0, 65534)), 0); -assert_eq!(call!(muli_ui16(0, 65535)), 0); -assert_eq!(call!(muli_ui16(1, 0)), 0); -assert_eq!(call!(muli_ui16(2, 0)), 0); -assert_eq!(call!(muli_ui16(3, 0)), 0); -assert_eq!(call!(muli_ui16(4, 0)), 0); -assert_eq!(call!(muli_ui16(1717, 0)), 0); -assert_eq!(call!(muli_ui16(17988, 0)), 0); -assert_eq!(call!(muli_ui16(65096, 0)), 0); -assert_eq!(call!(muli_ui16(65534, 0)), 0); -assert_eq!(call!(muli_ui16(65535, 0)), 0); -assert_eq!(call!(muli_ui16(1, 1)), 1); -assert_eq!(call!(muli_ui16(1, 2)), 2); -assert_eq!(call!(muli_ui16(2, 1)), 2); -assert_eq!(call!(muli_ui16(1, 3)), 3); -assert_eq!(call!(muli_ui16(3, 1)), 3); -assert_eq!(call!(muli_ui16(1, 4)), 4); -assert_eq!(call!(muli_ui16(2, 2)), 4); -assert_eq!(call!(muli_ui16(4, 1)), 4); -assert_eq!(call!(muli_ui16(2, 3)), 6); -assert_eq!(call!(muli_ui16(3, 2)), 6); -assert_eq!(call!(muli_ui16(2, 4)), 8); -assert_eq!(call!(muli_ui16(4, 2)), 8); -assert_eq!(call!(muli_ui16(3, 3)), 9); -assert_eq!(call!(muli_ui16(3, 4)), 12); -assert_eq!(call!(muli_ui16(4, 3)), 12); -assert_eq!(call!(muli_ui16(4, 4)), 16); -assert_eq!(call!(muli_ui16(1, 1717)), 1717); -assert_eq!(call!(muli_ui16(1717, 1)), 1717); -assert_eq!(call!(muli_ui16(2, 1717)), 3434); -assert_eq!(call!(muli_ui16(1717, 2)), 3434); -assert_eq!(call!(muli_ui16(3, 1717)), 5151); -assert_eq!(call!(muli_ui16(1717, 3)), 5151); -assert_eq!(call!(muli_ui16(4, 1717)), 6868); -assert_eq!(call!(muli_ui16(1717, 4)), 6868); -assert_eq!(call!(muli_ui16(1, 17988)), 17988); -assert_eq!(call!(muli_ui16(17988, 1)), 17988); -assert_eq!(call!(muli_ui16(2, 17988)), 35976); -assert_eq!(call!(muli_ui16(17988, 2)), 35976); -assert_eq!(call!(muli_ui16(3, 17988)), 53964); -assert_eq!(call!(muli_ui16(17988, 3)), 53964); -assert_eq!(call!(muli_ui16(1, 65096)), 65096); -assert_eq!(call!(muli_ui16(65096, 1)), 65096); -assert_eq!(call!(muli_ui16(1, 65534)), 65534); -assert_eq!(call!(muli_ui16(65534, 1)), 65534); -assert_eq!(call!(muli_ui16(1, 65535)), 65535); -assert_eq!(call!(muli_ui16(65535, 1)), 65535); -assert_eq!(call!(muli_ui32(0, 0)), 0); -assert_eq!(call!(muli_ui32(0, 1)), 0); -assert_eq!(call!(muli_ui32(0, 2)), 0); -assert_eq!(call!(muli_ui32(0, 3)), 0); -assert_eq!(call!(muli_ui32(0, 4)), 0); -assert_eq!(call!(muli_ui32(0, 2119154652)), 0); -assert_eq!(call!(muli_ui32(0, 3002788344)), 0); -assert_eq!(call!(muli_ui32(0, 3482297128)), 0); -assert_eq!(call!(muli_ui32(0, 4294967294)), 0); -assert_eq!(call!(muli_ui32(0, 4294967295)), 0); -assert_eq!(call!(muli_ui32(1, 0)), 0); -assert_eq!(call!(muli_ui32(2, 0)), 0); -assert_eq!(call!(muli_ui32(3, 0)), 0); -assert_eq!(call!(muli_ui32(4, 0)), 0); -assert_eq!(call!(muli_ui32(2119154652, 0)), 0); -assert_eq!(call!(muli_ui32(3002788344, 0)), 0); -assert_eq!(call!(muli_ui32(3482297128, 0)), 0); -assert_eq!(call!(muli_ui32(4294967294, 0)), 0); -assert_eq!(call!(muli_ui32(4294967295, 0)), 0); -assert_eq!(call!(muli_ui32(1, 1)), 1); -assert_eq!(call!(muli_ui32(1, 2)), 2); -assert_eq!(call!(muli_ui32(2, 1)), 2); -assert_eq!(call!(muli_ui32(1, 3)), 3); -assert_eq!(call!(muli_ui32(3, 1)), 3); -assert_eq!(call!(muli_ui32(1, 4)), 4); -assert_eq!(call!(muli_ui32(2, 2)), 4); -assert_eq!(call!(muli_ui32(4, 1)), 4); -assert_eq!(call!(muli_ui32(2, 3)), 6); -assert_eq!(call!(muli_ui32(3, 2)), 6); -assert_eq!(call!(muli_ui32(2, 4)), 8); -assert_eq!(call!(muli_ui32(4, 2)), 8); -assert_eq!(call!(muli_ui32(3, 3)), 9); -assert_eq!(call!(muli_ui32(3, 4)), 12); -assert_eq!(call!(muli_ui32(4, 3)), 12); -assert_eq!(call!(muli_ui32(4, 4)), 16); -assert_eq!(call!(muli_ui32(1, 2119154652)), 2119154652); -assert_eq!(call!(muli_ui32(2119154652, 1)), 2119154652); -assert_eq!(call!(muli_ui32(1, 3002788344)), 3002788344); -assert_eq!(call!(muli_ui32(3002788344, 1)), 3002788344); -assert_eq!(call!(muli_ui32(1, 3482297128)), 3482297128); -assert_eq!(call!(muli_ui32(3482297128, 1)), 3482297128); -assert_eq!(call!(muli_ui32(2, 2119154652)), 4238309304); -assert_eq!(call!(muli_ui32(2119154652, 2)), 4238309304); -assert_eq!(call!(muli_ui32(1, 4294967294)), 4294967294); -assert_eq!(call!(muli_ui32(4294967294, 1)), 4294967294); -assert_eq!(call!(muli_ui32(1, 4294967295)), 4294967295); -assert_eq!(call!(muli_ui32(4294967295, 1)), 4294967295); -assert_eq!(call!(muli_ui64(0, 0)), 0); -assert_eq!(call!(muli_ui64(0, 1)), 0); -assert_eq!(call!(muli_ui64(0, 2)), 0); -assert_eq!(call!(muli_ui64(0, 3)), 0); -assert_eq!(call!(muli_ui64(0, 4)), 0); -assert_eq!(call!(muli_ui64(0, 191084152064409600)), 0); -assert_eq!(call!(muli_ui64(0, 11015955194427482112)), 0); -assert_eq!(call!(muli_ui64(0, 16990600415051759616)), 0); -assert_eq!(call!(muli_ui64(0, 18446744073709551614)), 0); -assert_eq!(call!(muli_ui64(0, 18446744073709551615)), 0); -assert_eq!(call!(muli_ui64(1, 0)), 0); -assert_eq!(call!(muli_ui64(2, 0)), 0); -assert_eq!(call!(muli_ui64(3, 0)), 0); -assert_eq!(call!(muli_ui64(4, 0)), 0); -assert_eq!(call!(muli_ui64(191084152064409600, 0)), 0); -assert_eq!(call!(muli_ui64(11015955194427482112, 0)), 0); -assert_eq!(call!(muli_ui64(16990600415051759616, 0)), 0); -assert_eq!(call!(muli_ui64(18446744073709551614, 0)), 0); -assert_eq!(call!(muli_ui64(18446744073709551615, 0)), 0); -assert_eq!(call!(muli_ui64(1, 1)), 1); -assert_eq!(call!(muli_ui64(1, 2)), 2); -assert_eq!(call!(muli_ui64(2, 1)), 2); -assert_eq!(call!(muli_ui64(1, 3)), 3); -assert_eq!(call!(muli_ui64(3, 1)), 3); -assert_eq!(call!(muli_ui64(1, 4)), 4); -assert_eq!(call!(muli_ui64(2, 2)), 4); -assert_eq!(call!(muli_ui64(4, 1)), 4); -assert_eq!(call!(muli_ui64(2, 3)), 6); -assert_eq!(call!(muli_ui64(3, 2)), 6); -assert_eq!(call!(muli_ui64(2, 4)), 8); -assert_eq!(call!(muli_ui64(4, 2)), 8); -assert_eq!(call!(muli_ui64(3, 3)), 9); -assert_eq!(call!(muli_ui64(3, 4)), 12); -assert_eq!(call!(muli_ui64(4, 3)), 12); -assert_eq!(call!(muli_ui64(4, 4)), 16); -assert_eq!(call!(muli_ui64(1, 191084152064409600)), 191084152064409600); -assert_eq!(call!(muli_ui64(191084152064409600, 1)), 191084152064409600); -assert_eq!(call!(muli_ui64(2, 191084152064409600)), 382168304128819200); -assert_eq!(call!(muli_ui64(191084152064409600, 2)), 382168304128819200); -assert_eq!(call!(muli_ui64(3, 191084152064409600)), 573252456193228800); -assert_eq!(call!(muli_ui64(191084152064409600, 3)), 573252456193228800); -assert_eq!(call!(muli_ui64(4, 191084152064409600)), 764336608257638400); -assert_eq!(call!(muli_ui64(191084152064409600, 4)), 764336608257638400); -assert_eq!(call!(muli_ui64(1, 11015955194427482112)), 11015955194427482112); -assert_eq!(call!(muli_ui64(11015955194427482112, 1)), 11015955194427482112); -assert_eq!(call!(muli_ui64(1, 16990600415051759616)), 16990600415051759616); -assert_eq!(call!(muli_ui64(16990600415051759616, 1)), 16990600415051759616); -assert_eq!(call!(muli_ui64(1, 18446744073709551614)), 18446744073709551614); -assert_eq!(call!(muli_ui64(18446744073709551614, 1)), 18446744073709551614); -assert_eq!(call!(muli_ui64(1, 18446744073709551615)), 18446744073709551615); -assert_eq!(call!(muli_ui64(18446744073709551615, 1)), 18446744073709551615); -assert_eq!(call!(muli_ui8(0, 0)), 0); -assert_eq!(call!(muli_ui8(0, 1)), 0); -assert_eq!(call!(muli_ui8(0, 2)), 0); -assert_eq!(call!(muli_ui8(0, 3)), 0); -assert_eq!(call!(muli_ui8(0, 4)), 0); -assert_eq!(call!(muli_ui8(0, 72)), 0); -assert_eq!(call!(muli_ui8(0, 100)), 0); -assert_eq!(call!(muli_ui8(0, 162)), 0); -assert_eq!(call!(muli_ui8(0, 254)), 0); -assert_eq!(call!(muli_ui8(0, 255)), 0); -assert_eq!(call!(muli_ui8(1, 0)), 0); -assert_eq!(call!(muli_ui8(2, 0)), 0); -assert_eq!(call!(muli_ui8(3, 0)), 0); -assert_eq!(call!(muli_ui8(4, 0)), 0); -assert_eq!(call!(muli_ui8(72, 0)), 0); -assert_eq!(call!(muli_ui8(100, 0)), 0); -assert_eq!(call!(muli_ui8(162, 0)), 0); -assert_eq!(call!(muli_ui8(254, 0)), 0); -assert_eq!(call!(muli_ui8(255, 0)), 0); -assert_eq!(call!(muli_ui8(1, 1)), 1); -assert_eq!(call!(muli_ui8(1, 2)), 2); -assert_eq!(call!(muli_ui8(2, 1)), 2); -assert_eq!(call!(muli_ui8(1, 3)), 3); -assert_eq!(call!(muli_ui8(3, 1)), 3); -assert_eq!(call!(muli_ui8(1, 4)), 4); -assert_eq!(call!(muli_ui8(2, 2)), 4); -assert_eq!(call!(muli_ui8(4, 1)), 4); -assert_eq!(call!(muli_ui8(2, 3)), 6); -assert_eq!(call!(muli_ui8(3, 2)), 6); -assert_eq!(call!(muli_ui8(2, 4)), 8); -assert_eq!(call!(muli_ui8(4, 2)), 8); -assert_eq!(call!(muli_ui8(3, 3)), 9); -assert_eq!(call!(muli_ui8(3, 4)), 12); -assert_eq!(call!(muli_ui8(4, 3)), 12); -assert_eq!(call!(muli_ui8(4, 4)), 16); -assert_eq!(call!(muli_ui8(1, 72)), 72); -assert_eq!(call!(muli_ui8(72, 1)), 72); -assert_eq!(call!(muli_ui8(1, 100)), 100); -assert_eq!(call!(muli_ui8(100, 1)), 100); -assert_eq!(call!(muli_ui8(2, 72)), 144); -assert_eq!(call!(muli_ui8(72, 2)), 144); -assert_eq!(call!(muli_ui8(1, 162)), 162); -assert_eq!(call!(muli_ui8(162, 1)), 162); -assert_eq!(call!(muli_ui8(2, 100)), 200); -assert_eq!(call!(muli_ui8(100, 2)), 200); -assert_eq!(call!(muli_ui8(3, 72)), 216); -assert_eq!(call!(muli_ui8(72, 3)), 216); -assert_eq!(call!(muli_ui8(1, 254)), 254); -assert_eq!(call!(muli_ui8(254, 1)), 254); -assert_eq!(call!(muli_ui8(1, 255)), 255); -assert_eq!(call!(muli_ui8(255, 1)), 255); -assert_eq!(call!(remi_si16(-32767, -32768)), -32767); -assert_eq!(call!(remi_si16(-32547, -32768)), -32547); -assert_eq!(call!(remi_si16(-32547, -32767)), -32547); -assert_eq!(call!(remi_si16(-32547, 32766)), -32547); -assert_eq!(call!(remi_si16(-32547, 32767)), -32547); -assert_eq!(call!(remi_si16(-32768, 16514)), -16254); -assert_eq!(call!(remi_si16(-32767, 16514)), -16253); -assert_eq!(call!(remi_si16(-32547, 16514)), -16033); -assert_eq!(call!(remi_si16(-32768, 10486)), -1310); -assert_eq!(call!(remi_si16(-32767, 10486)), -1309); -assert_eq!(call!(remi_si16(-32547, 10486)), -1089); -assert_eq!(call!(remi_si16(-32768, -32547)), -221); -assert_eq!(call!(remi_si16(-32767, -32547)), -220); -assert_eq!(call!(remi_si16(-32767, 4)), -3); -assert_eq!(call!(remi_si16(-32547, 4)), -3); -assert_eq!(call!(remi_si16(-32768, 3)), -2); -assert_eq!(call!(remi_si16(-32768, 32766)), -2); -assert_eq!(call!(remi_si16(-32768, -32767)), -1); -assert_eq!(call!(remi_si16(-32768, 32767)), -1); -assert_eq!(call!(remi_si16(-32767, 2)), -1); -assert_eq!(call!(remi_si16(-32767, 3)), -1); -assert_eq!(call!(remi_si16(-32767, 32766)), -1); -assert_eq!(call!(remi_si16(-32547, 2)), -1); -assert_eq!(call!(remi_si16(-32768, -32768)), 0); -assert_eq!(call!(remi_si16(-32768, 1)), 0); -assert_eq!(call!(remi_si16(-32768, 2)), 0); -assert_eq!(call!(remi_si16(-32768, 4)), 0); -assert_eq!(call!(remi_si16(-32767, -32767)), 0); -assert_eq!(call!(remi_si16(-32767, 1)), 0); -assert_eq!(call!(remi_si16(-32767, 32767)), 0); -assert_eq!(call!(remi_si16(-32547, -32547)), 0); -assert_eq!(call!(remi_si16(-32547, 1)), 0); -assert_eq!(call!(remi_si16(-32547, 3)), 0); -assert_eq!(call!(remi_si16(0, -32768)), 0); -assert_eq!(call!(remi_si16(0, -32767)), 0); -assert_eq!(call!(remi_si16(0, -32547)), 0); -assert_eq!(call!(remi_si16(0, 1)), 0); -assert_eq!(call!(remi_si16(0, 2)), 0); -assert_eq!(call!(remi_si16(0, 3)), 0); -assert_eq!(call!(remi_si16(0, 4)), 0); -assert_eq!(call!(remi_si16(0, 10486)), 0); -assert_eq!(call!(remi_si16(0, 16514)), 0); -assert_eq!(call!(remi_si16(0, 32766)), 0); -assert_eq!(call!(remi_si16(0, 32767)), 0); -assert_eq!(call!(remi_si16(1, 1)), 0); -assert_eq!(call!(remi_si16(2, 1)), 0); -assert_eq!(call!(remi_si16(2, 2)), 0); -assert_eq!(call!(remi_si16(3, 1)), 0); -assert_eq!(call!(remi_si16(3, 3)), 0); -assert_eq!(call!(remi_si16(4, 1)), 0); -assert_eq!(call!(remi_si16(4, 2)), 0); -assert_eq!(call!(remi_si16(4, 4)), 0); -assert_eq!(call!(remi_si16(10486, 1)), 0); -assert_eq!(call!(remi_si16(10486, 2)), 0); -assert_eq!(call!(remi_si16(10486, 10486)), 0); -assert_eq!(call!(remi_si16(16514, 1)), 0); -assert_eq!(call!(remi_si16(16514, 2)), 0); -assert_eq!(call!(remi_si16(16514, 16514)), 0); -assert_eq!(call!(remi_si16(32766, 1)), 0); -assert_eq!(call!(remi_si16(32766, 2)), 0); -assert_eq!(call!(remi_si16(32766, 3)), 0); -assert_eq!(call!(remi_si16(32766, 32766)), 0); -assert_eq!(call!(remi_si16(32767, -32767)), 0); -assert_eq!(call!(remi_si16(32767, 1)), 0); -assert_eq!(call!(remi_si16(32767, 32767)), 0); -assert_eq!(call!(remi_si16(1, -32768)), 1); -assert_eq!(call!(remi_si16(1, -32767)), 1); -assert_eq!(call!(remi_si16(1, -32547)), 1); -assert_eq!(call!(remi_si16(1, 2)), 1); -assert_eq!(call!(remi_si16(1, 3)), 1); -assert_eq!(call!(remi_si16(1, 4)), 1); -assert_eq!(call!(remi_si16(1, 10486)), 1); -assert_eq!(call!(remi_si16(1, 16514)), 1); -assert_eq!(call!(remi_si16(1, 32766)), 1); -assert_eq!(call!(remi_si16(1, 32767)), 1); -assert_eq!(call!(remi_si16(3, 2)), 1); -assert_eq!(call!(remi_si16(4, 3)), 1); -assert_eq!(call!(remi_si16(10486, 3)), 1); -assert_eq!(call!(remi_si16(32767, 2)), 1); -assert_eq!(call!(remi_si16(32767, 3)), 1); -assert_eq!(call!(remi_si16(32767, 32766)), 1); -assert_eq!(call!(remi_si16(2, -32768)), 2); -assert_eq!(call!(remi_si16(2, -32767)), 2); -assert_eq!(call!(remi_si16(2, -32547)), 2); -assert_eq!(call!(remi_si16(2, 3)), 2); -assert_eq!(call!(remi_si16(2, 4)), 2); -assert_eq!(call!(remi_si16(2, 10486)), 2); -assert_eq!(call!(remi_si16(2, 16514)), 2); -assert_eq!(call!(remi_si16(2, 32766)), 2); -assert_eq!(call!(remi_si16(2, 32767)), 2); -assert_eq!(call!(remi_si16(10486, 4)), 2); -assert_eq!(call!(remi_si16(16514, 3)), 2); -assert_eq!(call!(remi_si16(16514, 4)), 2); -assert_eq!(call!(remi_si16(32766, 4)), 2); -assert_eq!(call!(remi_si16(3, -32768)), 3); -assert_eq!(call!(remi_si16(3, -32767)), 3); -assert_eq!(call!(remi_si16(3, -32547)), 3); -assert_eq!(call!(remi_si16(3, 4)), 3); -assert_eq!(call!(remi_si16(3, 10486)), 3); -assert_eq!(call!(remi_si16(3, 16514)), 3); -assert_eq!(call!(remi_si16(3, 32766)), 3); -assert_eq!(call!(remi_si16(3, 32767)), 3); -assert_eq!(call!(remi_si16(32767, 4)), 3); -assert_eq!(call!(remi_si16(4, -32768)), 4); -assert_eq!(call!(remi_si16(4, -32767)), 4); -assert_eq!(call!(remi_si16(4, -32547)), 4); -assert_eq!(call!(remi_si16(4, 10486)), 4); -assert_eq!(call!(remi_si16(4, 16514)), 4); -assert_eq!(call!(remi_si16(4, 32766)), 4); -assert_eq!(call!(remi_si16(4, 32767)), 4); -assert_eq!(call!(remi_si16(32766, -32547)), 219); -assert_eq!(call!(remi_si16(32767, -32547)), 220); -assert_eq!(call!(remi_si16(32766, 10486)), 1308); -assert_eq!(call!(remi_si16(32767, 10486)), 1309); -assert_eq!(call!(remi_si16(16514, 10486)), 6028); -assert_eq!(call!(remi_si16(10486, -32768)), 10486); -assert_eq!(call!(remi_si16(10486, -32767)), 10486); -assert_eq!(call!(remi_si16(10486, -32547)), 10486); -assert_eq!(call!(remi_si16(10486, 16514)), 10486); -assert_eq!(call!(remi_si16(10486, 32766)), 10486); -assert_eq!(call!(remi_si16(10486, 32767)), 10486); -assert_eq!(call!(remi_si16(32766, 16514)), 16252); -assert_eq!(call!(remi_si16(32767, 16514)), 16253); -assert_eq!(call!(remi_si16(16514, -32768)), 16514); -assert_eq!(call!(remi_si16(16514, -32767)), 16514); -assert_eq!(call!(remi_si16(16514, -32547)), 16514); -assert_eq!(call!(remi_si16(16514, 32766)), 16514); -assert_eq!(call!(remi_si16(16514, 32767)), 16514); -assert_eq!(call!(remi_si16(32766, -32768)), 32766); -assert_eq!(call!(remi_si16(32766, -32767)), 32766); -assert_eq!(call!(remi_si16(32766, 32767)), 32766); -assert_eq!(call!(remi_si16(32767, -32768)), 32767); -assert_eq!(call!(remi_si32(-2147483647, -2147483648)), -2147483647); -assert_eq!(call!(remi_si32(-1713183800, -2147483648)), -1713183800); -assert_eq!(call!(remi_si32(-1713183800, -2147483647)), -1713183800); -assert_eq!(call!(remi_si32(-1713183800, 2147483646)), -1713183800); -assert_eq!(call!(remi_si32(-1713183800, 2147483647)), -1713183800); -assert_eq!(call!(remi_si32(-1252582164, -2147483648)), -1252582164); -assert_eq!(call!(remi_si32(-1252582164, -2147483647)), -1252582164); -assert_eq!(call!(remi_si32(-1252582164, -1713183800)), -1252582164); -assert_eq!(call!(remi_si32(-1252582164, 2147483646)), -1252582164); -assert_eq!(call!(remi_si32(-1252582164, 2147483647)), -1252582164); -assert_eq!(call!(remi_si32(-1035405763, -2147483648)), -1035405763); -assert_eq!(call!(remi_si32(-1035405763, -2147483647)), -1035405763); -assert_eq!(call!(remi_si32(-1035405763, -1713183800)), -1035405763); -assert_eq!(call!(remi_si32(-1035405763, -1252582164)), -1035405763); -assert_eq!(call!(remi_si32(-1035405763, 2147483646)), -1035405763); -assert_eq!(call!(remi_si32(-1035405763, 2147483647)), -1035405763); -assert_eq!(call!(remi_si32(-2147483648, -1252582164)), -894901484); -assert_eq!(call!(remi_si32(-2147483647, -1252582164)), -894901483); -assert_eq!(call!(remi_si32(-1713183800, -1035405763)), -677778037); -assert_eq!(call!(remi_si32(-1713183800, -1252582164)), -460601636); -assert_eq!(call!(remi_si32(-2147483648, -1713183800)), -434299848); -assert_eq!(call!(remi_si32(-2147483647, -1713183800)), -434299847); -assert_eq!(call!(remi_si32(-1252582164, -1035405763)), -217176401); -assert_eq!(call!(remi_si32(-2147483648, -1035405763)), -76672122); -assert_eq!(call!(remi_si32(-2147483647, -1035405763)), -76672121); -assert_eq!(call!(remi_si32(-2147483647, 4)), -3); -assert_eq!(call!(remi_si32(-1035405763, 4)), -3); -assert_eq!(call!(remi_si32(-2147483648, 3)), -2); -assert_eq!(call!(remi_si32(-2147483648, 2147483646)), -2); -assert_eq!(call!(remi_si32(-1713183800, 3)), -2); -assert_eq!(call!(remi_si32(-2147483648, -2147483647)), -1); -assert_eq!(call!(remi_si32(-2147483648, 2147483647)), -1); -assert_eq!(call!(remi_si32(-2147483647, 2)), -1); -assert_eq!(call!(remi_si32(-2147483647, 3)), -1); -assert_eq!(call!(remi_si32(-2147483647, 2147483646)), -1); -assert_eq!(call!(remi_si32(-1035405763, 2)), -1); -assert_eq!(call!(remi_si32(-1035405763, 3)), -1); -assert_eq!(call!(remi_si32(-2147483648, -2147483648)), 0); -assert_eq!(call!(remi_si32(-2147483648, 1)), 0); -assert_eq!(call!(remi_si32(-2147483648, 2)), 0); -assert_eq!(call!(remi_si32(-2147483648, 4)), 0); -assert_eq!(call!(remi_si32(-2147483647, -2147483647)), 0); -assert_eq!(call!(remi_si32(-2147483647, 1)), 0); -assert_eq!(call!(remi_si32(-2147483647, 2147483647)), 0); -assert_eq!(call!(remi_si32(-1713183800, -1713183800)), 0); -assert_eq!(call!(remi_si32(-1713183800, 1)), 0); -assert_eq!(call!(remi_si32(-1713183800, 2)), 0); -assert_eq!(call!(remi_si32(-1713183800, 4)), 0); -assert_eq!(call!(remi_si32(-1252582164, -1252582164)), 0); -assert_eq!(call!(remi_si32(-1252582164, 1)), 0); -assert_eq!(call!(remi_si32(-1252582164, 2)), 0); -assert_eq!(call!(remi_si32(-1252582164, 3)), 0); -assert_eq!(call!(remi_si32(-1252582164, 4)), 0); -assert_eq!(call!(remi_si32(-1035405763, -1035405763)), 0); -assert_eq!(call!(remi_si32(-1035405763, 1)), 0); -assert_eq!(call!(remi_si32(0, -2147483648)), 0); -assert_eq!(call!(remi_si32(0, -2147483647)), 0); -assert_eq!(call!(remi_si32(0, -1713183800)), 0); -assert_eq!(call!(remi_si32(0, -1252582164)), 0); -assert_eq!(call!(remi_si32(0, -1035405763)), 0); -assert_eq!(call!(remi_si32(0, 1)), 0); -assert_eq!(call!(remi_si32(0, 2)), 0); -assert_eq!(call!(remi_si32(0, 3)), 0); -assert_eq!(call!(remi_si32(0, 4)), 0); -assert_eq!(call!(remi_si32(0, 2147483646)), 0); -assert_eq!(call!(remi_si32(0, 2147483647)), 0); -assert_eq!(call!(remi_si32(1, 1)), 0); -assert_eq!(call!(remi_si32(2, 1)), 0); -assert_eq!(call!(remi_si32(2, 2)), 0); -assert_eq!(call!(remi_si32(3, 1)), 0); -assert_eq!(call!(remi_si32(3, 3)), 0); -assert_eq!(call!(remi_si32(4, 1)), 0); -assert_eq!(call!(remi_si32(4, 2)), 0); -assert_eq!(call!(remi_si32(4, 4)), 0); -assert_eq!(call!(remi_si32(2147483646, 1)), 0); -assert_eq!(call!(remi_si32(2147483646, 2)), 0); -assert_eq!(call!(remi_si32(2147483646, 3)), 0); -assert_eq!(call!(remi_si32(2147483646, 2147483646)), 0); -assert_eq!(call!(remi_si32(2147483647, -2147483647)), 0); -assert_eq!(call!(remi_si32(2147483647, 1)), 0); -assert_eq!(call!(remi_si32(2147483647, 2147483647)), 0); -assert_eq!(call!(remi_si32(1, -2147483648)), 1); -assert_eq!(call!(remi_si32(1, -2147483647)), 1); -assert_eq!(call!(remi_si32(1, -1713183800)), 1); -assert_eq!(call!(remi_si32(1, -1252582164)), 1); -assert_eq!(call!(remi_si32(1, -1035405763)), 1); -assert_eq!(call!(remi_si32(1, 2)), 1); -assert_eq!(call!(remi_si32(1, 3)), 1); -assert_eq!(call!(remi_si32(1, 4)), 1); -assert_eq!(call!(remi_si32(1, 2147483646)), 1); -assert_eq!(call!(remi_si32(1, 2147483647)), 1); -assert_eq!(call!(remi_si32(3, 2)), 1); -assert_eq!(call!(remi_si32(4, 3)), 1); -assert_eq!(call!(remi_si32(2147483647, 2)), 1); -assert_eq!(call!(remi_si32(2147483647, 3)), 1); -assert_eq!(call!(remi_si32(2147483647, 2147483646)), 1); -assert_eq!(call!(remi_si32(2, -2147483648)), 2); -assert_eq!(call!(remi_si32(2, -2147483647)), 2); -assert_eq!(call!(remi_si32(2, -1713183800)), 2); -assert_eq!(call!(remi_si32(2, -1252582164)), 2); -assert_eq!(call!(remi_si32(2, -1035405763)), 2); -assert_eq!(call!(remi_si32(2, 3)), 2); -assert_eq!(call!(remi_si32(2, 4)), 2); -assert_eq!(call!(remi_si32(2, 2147483646)), 2); -assert_eq!(call!(remi_si32(2, 2147483647)), 2); -assert_eq!(call!(remi_si32(2147483646, 4)), 2); -assert_eq!(call!(remi_si32(3, -2147483648)), 3); -assert_eq!(call!(remi_si32(3, -2147483647)), 3); -assert_eq!(call!(remi_si32(3, -1713183800)), 3); -assert_eq!(call!(remi_si32(3, -1252582164)), 3); -assert_eq!(call!(remi_si32(3, -1035405763)), 3); -assert_eq!(call!(remi_si32(3, 4)), 3); -assert_eq!(call!(remi_si32(3, 2147483646)), 3); -assert_eq!(call!(remi_si32(3, 2147483647)), 3); -assert_eq!(call!(remi_si32(2147483647, 4)), 3); -assert_eq!(call!(remi_si32(4, -2147483648)), 4); -assert_eq!(call!(remi_si32(4, -2147483647)), 4); -assert_eq!(call!(remi_si32(4, -1713183800)), 4); -assert_eq!(call!(remi_si32(4, -1252582164)), 4); -assert_eq!(call!(remi_si32(4, -1035405763)), 4); -assert_eq!(call!(remi_si32(4, 2147483646)), 4); -assert_eq!(call!(remi_si32(4, 2147483647)), 4); -assert_eq!(call!(remi_si32(2147483646, -1035405763)), 76672120); -assert_eq!(call!(remi_si32(2147483647, -1035405763)), 76672121); -assert_eq!(call!(remi_si32(2147483646, -1713183800)), 434299846); -assert_eq!(call!(remi_si32(2147483647, -1713183800)), 434299847); -assert_eq!(call!(remi_si32(2147483646, -1252582164)), 894901482); -assert_eq!(call!(remi_si32(2147483647, -1252582164)), 894901483); -assert_eq!(call!(remi_si32(2147483646, -2147483648)), 2147483646); -assert_eq!(call!(remi_si32(2147483646, -2147483647)), 2147483646); -assert_eq!(call!(remi_si32(2147483646, 2147483647)), 2147483646); -assert_eq!(call!(remi_si32(2147483647, -2147483648)), 2147483647); -assert_eq!(call!(remi_si64(-9223372036854775807, -9223372036854775808)), -9223372036854775807); -assert_eq!(call!(remi_si64(-9223372036854775808, 5577148965131116544)), -3646223071723659264); -assert_eq!(call!(remi_si64(-9223372036854775807, 5577148965131116544)), -3646223071723659263); -assert_eq!(call!(remi_si64(-1741927215160008704, -9223372036854775808)), -1741927215160008704); -assert_eq!(call!(remi_si64(-1741927215160008704, -9223372036854775807)), -1741927215160008704); -assert_eq!(call!(remi_si64(-1741927215160008704, 5577148965131116544)), -1741927215160008704); -assert_eq!(call!(remi_si64(-1741927215160008704, 9223372036854775806)), -1741927215160008704); -assert_eq!(call!(remi_si64(-1741927215160008704, 9223372036854775807)), -1741927215160008704); -assert_eq!(call!(remi_si64(-1328271339354574848, -9223372036854775808)), -1328271339354574848); -assert_eq!(call!(remi_si64(-1328271339354574848, -9223372036854775807)), -1328271339354574848); -assert_eq!(call!(remi_si64(-1328271339354574848, -1741927215160008704)), -1328271339354574848); -assert_eq!(call!(remi_si64(-1328271339354574848, 5577148965131116544)), -1328271339354574848); -assert_eq!(call!(remi_si64(-1328271339354574848, 9223372036854775806)), -1328271339354574848); -assert_eq!(call!(remi_si64(-1328271339354574848, 9223372036854775807)), -1328271339354574848); -assert_eq!(call!(remi_si64(-9223372036854775808, -1328271339354574848)), -1253744000727326720); -assert_eq!(call!(remi_si64(-9223372036854775807, -1328271339354574848)), -1253744000727326719); -assert_eq!(call!(remi_si64(-9223372036854775808, -1741927215160008704)), -513735961054732288); -assert_eq!(call!(remi_si64(-9223372036854775807, -1741927215160008704)), -513735961054732287); -assert_eq!(call!(remi_si64(-1741927215160008704, -1328271339354574848)), -413655875805433856); -assert_eq!(call!(remi_si64(-9223372036854775807, 4)), -3); -assert_eq!(call!(remi_si64(-9223372036854775808, 3)), -2); -assert_eq!(call!(remi_si64(-9223372036854775808, 9223372036854775806)), -2); -assert_eq!(call!(remi_si64(-1741927215160008704, 3)), -2); -assert_eq!(call!(remi_si64(-9223372036854775808, -9223372036854775807)), -1); -assert_eq!(call!(remi_si64(-9223372036854775808, 9223372036854775807)), -1); -assert_eq!(call!(remi_si64(-9223372036854775807, 2)), -1); -assert_eq!(call!(remi_si64(-9223372036854775807, 3)), -1); -assert_eq!(call!(remi_si64(-9223372036854775807, 9223372036854775806)), -1); -assert_eq!(call!(remi_si64(-9223372036854775808, -9223372036854775808)), 0); -assert_eq!(call!(remi_si64(-9223372036854775808, 1)), 0); -assert_eq!(call!(remi_si64(-9223372036854775808, 2)), 0); -assert_eq!(call!(remi_si64(-9223372036854775808, 4)), 0); -assert_eq!(call!(remi_si64(-9223372036854775807, -9223372036854775807)), 0); -assert_eq!(call!(remi_si64(-9223372036854775807, 1)), 0); -assert_eq!(call!(remi_si64(-9223372036854775807, 9223372036854775807)), 0); -assert_eq!(call!(remi_si64(-1741927215160008704, -1741927215160008704)), 0); -assert_eq!(call!(remi_si64(-1741927215160008704, 1)), 0); -assert_eq!(call!(remi_si64(-1741927215160008704, 2)), 0); -assert_eq!(call!(remi_si64(-1741927215160008704, 4)), 0); -assert_eq!(call!(remi_si64(-1328271339354574848, -1328271339354574848)), 0); -assert_eq!(call!(remi_si64(-1328271339354574848, 1)), 0); -assert_eq!(call!(remi_si64(-1328271339354574848, 2)), 0); -assert_eq!(call!(remi_si64(-1328271339354574848, 3)), 0); -assert_eq!(call!(remi_si64(-1328271339354574848, 4)), 0); -assert_eq!(call!(remi_si64(0, -9223372036854775808)), 0); -assert_eq!(call!(remi_si64(0, -9223372036854775807)), 0); -assert_eq!(call!(remi_si64(0, -1741927215160008704)), 0); -assert_eq!(call!(remi_si64(0, -1328271339354574848)), 0); -assert_eq!(call!(remi_si64(0, 1)), 0); -assert_eq!(call!(remi_si64(0, 2)), 0); -assert_eq!(call!(remi_si64(0, 3)), 0); -assert_eq!(call!(remi_si64(0, 4)), 0); -assert_eq!(call!(remi_si64(0, 5577148965131116544)), 0); -assert_eq!(call!(remi_si64(0, 9223372036854775806)), 0); -assert_eq!(call!(remi_si64(0, 9223372036854775807)), 0); -assert_eq!(call!(remi_si64(1, 1)), 0); -assert_eq!(call!(remi_si64(2, 1)), 0); -assert_eq!(call!(remi_si64(2, 2)), 0); -assert_eq!(call!(remi_si64(3, 1)), 0); -assert_eq!(call!(remi_si64(3, 3)), 0); -assert_eq!(call!(remi_si64(4, 1)), 0); -assert_eq!(call!(remi_si64(4, 2)), 0); -assert_eq!(call!(remi_si64(4, 4)), 0); -assert_eq!(call!(remi_si64(5577148965131116544, 1)), 0); -assert_eq!(call!(remi_si64(5577148965131116544, 2)), 0); -assert_eq!(call!(remi_si64(5577148965131116544, 4)), 0); -assert_eq!(call!(remi_si64(5577148965131116544, 5577148965131116544)), 0); -assert_eq!(call!(remi_si64(9223372036854775806, 1)), 0); -assert_eq!(call!(remi_si64(9223372036854775806, 2)), 0); -assert_eq!(call!(remi_si64(9223372036854775806, 3)), 0); -assert_eq!(call!(remi_si64(9223372036854775806, 9223372036854775806)), 0); -assert_eq!(call!(remi_si64(9223372036854775807, -9223372036854775807)), 0); -assert_eq!(call!(remi_si64(9223372036854775807, 1)), 0); -assert_eq!(call!(remi_si64(9223372036854775807, 9223372036854775807)), 0); -assert_eq!(call!(remi_si64(1, -9223372036854775808)), 1); -assert_eq!(call!(remi_si64(1, -9223372036854775807)), 1); -assert_eq!(call!(remi_si64(1, -1741927215160008704)), 1); -assert_eq!(call!(remi_si64(1, -1328271339354574848)), 1); -assert_eq!(call!(remi_si64(1, 2)), 1); -assert_eq!(call!(remi_si64(1, 3)), 1); -assert_eq!(call!(remi_si64(1, 4)), 1); -assert_eq!(call!(remi_si64(1, 5577148965131116544)), 1); -assert_eq!(call!(remi_si64(1, 9223372036854775806)), 1); -assert_eq!(call!(remi_si64(1, 9223372036854775807)), 1); -assert_eq!(call!(remi_si64(3, 2)), 1); -assert_eq!(call!(remi_si64(4, 3)), 1); -assert_eq!(call!(remi_si64(9223372036854775807, 2)), 1); -assert_eq!(call!(remi_si64(9223372036854775807, 3)), 1); -assert_eq!(call!(remi_si64(9223372036854775807, 9223372036854775806)), 1); -assert_eq!(call!(remi_si64(2, -9223372036854775808)), 2); -assert_eq!(call!(remi_si64(2, -9223372036854775807)), 2); -assert_eq!(call!(remi_si64(2, -1741927215160008704)), 2); -assert_eq!(call!(remi_si64(2, -1328271339354574848)), 2); -assert_eq!(call!(remi_si64(2, 3)), 2); -assert_eq!(call!(remi_si64(2, 4)), 2); -assert_eq!(call!(remi_si64(2, 5577148965131116544)), 2); -assert_eq!(call!(remi_si64(2, 9223372036854775806)), 2); -assert_eq!(call!(remi_si64(2, 9223372036854775807)), 2); -assert_eq!(call!(remi_si64(5577148965131116544, 3)), 2); -assert_eq!(call!(remi_si64(9223372036854775806, 4)), 2); -assert_eq!(call!(remi_si64(3, -9223372036854775808)), 3); -assert_eq!(call!(remi_si64(3, -9223372036854775807)), 3); -assert_eq!(call!(remi_si64(3, -1741927215160008704)), 3); -assert_eq!(call!(remi_si64(3, -1328271339354574848)), 3); -assert_eq!(call!(remi_si64(3, 4)), 3); -assert_eq!(call!(remi_si64(3, 5577148965131116544)), 3); -assert_eq!(call!(remi_si64(3, 9223372036854775806)), 3); -assert_eq!(call!(remi_si64(3, 9223372036854775807)), 3); -assert_eq!(call!(remi_si64(9223372036854775807, 4)), 3); -assert_eq!(call!(remi_si64(4, -9223372036854775808)), 4); -assert_eq!(call!(remi_si64(4, -9223372036854775807)), 4); -assert_eq!(call!(remi_si64(4, -1741927215160008704)), 4); -assert_eq!(call!(remi_si64(4, -1328271339354574848)), 4); -assert_eq!(call!(remi_si64(4, 5577148965131116544)), 4); -assert_eq!(call!(remi_si64(4, 9223372036854775806)), 4); -assert_eq!(call!(remi_si64(4, 9223372036854775807)), 4); -assert_eq!(call!(remi_si64(5577148965131116544, -1328271339354574848)), 264063607712817152); -assert_eq!(call!(remi_si64(5577148965131116544, -1741927215160008704)), 351367319651090432); -assert_eq!(call!(remi_si64(9223372036854775806, -1741927215160008704)), 513735961054732286); -assert_eq!(call!(remi_si64(9223372036854775807, -1741927215160008704)), 513735961054732287); -assert_eq!(call!(remi_si64(9223372036854775806, -1328271339354574848)), 1253744000727326718); -assert_eq!(call!(remi_si64(9223372036854775807, -1328271339354574848)), 1253744000727326719); -assert_eq!(call!(remi_si64(9223372036854775806, 5577148965131116544)), 3646223071723659262); -assert_eq!(call!(remi_si64(9223372036854775807, 5577148965131116544)), 3646223071723659263); -assert_eq!(call!(remi_si64(5577148965131116544, -9223372036854775808)), 5577148965131116544); -assert_eq!(call!(remi_si64(5577148965131116544, -9223372036854775807)), 5577148965131116544); -assert_eq!(call!(remi_si64(5577148965131116544, 9223372036854775806)), 5577148965131116544); -assert_eq!(call!(remi_si64(5577148965131116544, 9223372036854775807)), 5577148965131116544); -assert_eq!(call!(remi_si64(9223372036854775806, -9223372036854775808)), 9223372036854775806); -assert_eq!(call!(remi_si64(9223372036854775806, -9223372036854775807)), 9223372036854775806); -assert_eq!(call!(remi_si64(9223372036854775806, 9223372036854775807)), 9223372036854775806); -assert_eq!(call!(remi_si64(9223372036854775807, -9223372036854775808)), 9223372036854775807); -assert_eq!(call!(remi_si8(-127, -128)), -127); -assert_eq!(call!(remi_si8(-127, 16)), -15); -assert_eq!(call!(remi_si8(-127, 4)), -3); -assert_eq!(call!(remi_si8(-128, 3)), -2); -assert_eq!(call!(remi_si8(-128, 126)), -2); -assert_eq!(call!(remi_si8(-128, -127)), -1); -assert_eq!(call!(remi_si8(-128, 127)), -1); -assert_eq!(call!(remi_si8(-127, 2)), -1); -assert_eq!(call!(remi_si8(-127, 3)), -1); -assert_eq!(call!(remi_si8(-127, 126)), -1); -assert_eq!(call!(remi_si8(-128, -128)), 0); -assert_eq!(call!(remi_si8(-128, 1)), 0); -assert_eq!(call!(remi_si8(-128, 2)), 0); -assert_eq!(call!(remi_si8(-128, 4)), 0); -assert_eq!(call!(remi_si8(-128, 16)), 0); -assert_eq!(call!(remi_si8(-127, -127)), 0); -assert_eq!(call!(remi_si8(-127, 1)), 0); -assert_eq!(call!(remi_si8(-127, 127)), 0); -assert_eq!(call!(remi_si8(0, -128)), 0); -assert_eq!(call!(remi_si8(0, -127)), 0); -assert_eq!(call!(remi_si8(0, 1)), 0); -assert_eq!(call!(remi_si8(0, 2)), 0); -assert_eq!(call!(remi_si8(0, 3)), 0); -assert_eq!(call!(remi_si8(0, 4)), 0); -assert_eq!(call!(remi_si8(0, 16)), 0); -assert_eq!(call!(remi_si8(0, 126)), 0); -assert_eq!(call!(remi_si8(0, 127)), 0); -assert_eq!(call!(remi_si8(1, 1)), 0); -assert_eq!(call!(remi_si8(2, 1)), 0); -assert_eq!(call!(remi_si8(2, 2)), 0); -assert_eq!(call!(remi_si8(3, 1)), 0); -assert_eq!(call!(remi_si8(3, 3)), 0); -assert_eq!(call!(remi_si8(4, 1)), 0); -assert_eq!(call!(remi_si8(4, 2)), 0); -assert_eq!(call!(remi_si8(4, 4)), 0); -assert_eq!(call!(remi_si8(16, 1)), 0); -assert_eq!(call!(remi_si8(16, 2)), 0); -assert_eq!(call!(remi_si8(16, 4)), 0); -assert_eq!(call!(remi_si8(16, 16)), 0); -assert_eq!(call!(remi_si8(126, 1)), 0); -assert_eq!(call!(remi_si8(126, 2)), 0); -assert_eq!(call!(remi_si8(126, 3)), 0); -assert_eq!(call!(remi_si8(126, 126)), 0); -assert_eq!(call!(remi_si8(127, -127)), 0); -assert_eq!(call!(remi_si8(127, 1)), 0); -assert_eq!(call!(remi_si8(127, 127)), 0); -assert_eq!(call!(remi_si8(1, -128)), 1); -assert_eq!(call!(remi_si8(1, -127)), 1); -assert_eq!(call!(remi_si8(1, 2)), 1); -assert_eq!(call!(remi_si8(1, 3)), 1); -assert_eq!(call!(remi_si8(1, 4)), 1); -assert_eq!(call!(remi_si8(1, 16)), 1); -assert_eq!(call!(remi_si8(1, 126)), 1); -assert_eq!(call!(remi_si8(1, 127)), 1); -assert_eq!(call!(remi_si8(3, 2)), 1); -assert_eq!(call!(remi_si8(4, 3)), 1); -assert_eq!(call!(remi_si8(16, 3)), 1); -assert_eq!(call!(remi_si8(127, 2)), 1); -assert_eq!(call!(remi_si8(127, 3)), 1); -assert_eq!(call!(remi_si8(127, 126)), 1); -assert_eq!(call!(remi_si8(2, -128)), 2); -assert_eq!(call!(remi_si8(2, -127)), 2); -assert_eq!(call!(remi_si8(2, 3)), 2); -assert_eq!(call!(remi_si8(2, 4)), 2); -assert_eq!(call!(remi_si8(2, 16)), 2); -assert_eq!(call!(remi_si8(2, 126)), 2); -assert_eq!(call!(remi_si8(2, 127)), 2); -assert_eq!(call!(remi_si8(126, 4)), 2); -assert_eq!(call!(remi_si8(3, -128)), 3); -assert_eq!(call!(remi_si8(3, -127)), 3); -assert_eq!(call!(remi_si8(3, 4)), 3); -assert_eq!(call!(remi_si8(3, 16)), 3); -assert_eq!(call!(remi_si8(3, 126)), 3); -assert_eq!(call!(remi_si8(3, 127)), 3); -assert_eq!(call!(remi_si8(127, 4)), 3); -assert_eq!(call!(remi_si8(4, -128)), 4); -assert_eq!(call!(remi_si8(4, -127)), 4); -assert_eq!(call!(remi_si8(4, 16)), 4); -assert_eq!(call!(remi_si8(4, 126)), 4); -assert_eq!(call!(remi_si8(4, 127)), 4); -assert_eq!(call!(remi_si8(126, 16)), 14); -assert_eq!(call!(remi_si8(127, 16)), 15); -assert_eq!(call!(remi_si8(16, -128)), 16); -assert_eq!(call!(remi_si8(16, -127)), 16); -assert_eq!(call!(remi_si8(16, 126)), 16); -assert_eq!(call!(remi_si8(16, 127)), 16); -assert_eq!(call!(remi_si8(126, -128)), 126); -assert_eq!(call!(remi_si8(126, -127)), 126); -assert_eq!(call!(remi_si8(126, 127)), 126); -assert_eq!(call!(remi_si8(127, -128)), 127); -assert_eq!(call!(remi_ui16(0, 1)), 0); -assert_eq!(call!(remi_ui16(0, 2)), 0); -assert_eq!(call!(remi_ui16(0, 3)), 0); -assert_eq!(call!(remi_ui16(0, 4)), 0); -assert_eq!(call!(remi_ui16(0, 1717)), 0); -assert_eq!(call!(remi_ui16(0, 17988)), 0); -assert_eq!(call!(remi_ui16(0, 65096)), 0); -assert_eq!(call!(remi_ui16(0, 65534)), 0); -assert_eq!(call!(remi_ui16(0, 65535)), 0); -assert_eq!(call!(remi_ui16(1, 1)), 0); -assert_eq!(call!(remi_ui16(2, 1)), 0); -assert_eq!(call!(remi_ui16(2, 2)), 0); -assert_eq!(call!(remi_ui16(3, 1)), 0); -assert_eq!(call!(remi_ui16(3, 3)), 0); -assert_eq!(call!(remi_ui16(4, 1)), 0); -assert_eq!(call!(remi_ui16(4, 2)), 0); -assert_eq!(call!(remi_ui16(4, 4)), 0); -assert_eq!(call!(remi_ui16(1717, 1)), 0); -assert_eq!(call!(remi_ui16(1717, 1717)), 0); -assert_eq!(call!(remi_ui16(17988, 1)), 0); -assert_eq!(call!(remi_ui16(17988, 2)), 0); -assert_eq!(call!(remi_ui16(17988, 3)), 0); -assert_eq!(call!(remi_ui16(17988, 4)), 0); -assert_eq!(call!(remi_ui16(17988, 17988)), 0); -assert_eq!(call!(remi_ui16(65096, 1)), 0); -assert_eq!(call!(remi_ui16(65096, 2)), 0); -assert_eq!(call!(remi_ui16(65096, 4)), 0); -assert_eq!(call!(remi_ui16(65096, 65096)), 0); -assert_eq!(call!(remi_ui16(65534, 1)), 0); -assert_eq!(call!(remi_ui16(65534, 2)), 0); -assert_eq!(call!(remi_ui16(65534, 65534)), 0); -assert_eq!(call!(remi_ui16(65535, 1)), 0); -assert_eq!(call!(remi_ui16(65535, 3)), 0); -assert_eq!(call!(remi_ui16(65535, 65535)), 0); -assert_eq!(call!(remi_ui16(1, 2)), 1); -assert_eq!(call!(remi_ui16(1, 3)), 1); -assert_eq!(call!(remi_ui16(1, 4)), 1); -assert_eq!(call!(remi_ui16(1, 1717)), 1); -assert_eq!(call!(remi_ui16(1, 17988)), 1); -assert_eq!(call!(remi_ui16(1, 65096)), 1); -assert_eq!(call!(remi_ui16(1, 65534)), 1); -assert_eq!(call!(remi_ui16(1, 65535)), 1); -assert_eq!(call!(remi_ui16(3, 2)), 1); -assert_eq!(call!(remi_ui16(4, 3)), 1); -assert_eq!(call!(remi_ui16(1717, 2)), 1); -assert_eq!(call!(remi_ui16(1717, 3)), 1); -assert_eq!(call!(remi_ui16(1717, 4)), 1); -assert_eq!(call!(remi_ui16(65535, 2)), 1); -assert_eq!(call!(remi_ui16(65535, 65534)), 1); -assert_eq!(call!(remi_ui16(2, 3)), 2); -assert_eq!(call!(remi_ui16(2, 4)), 2); -assert_eq!(call!(remi_ui16(2, 1717)), 2); -assert_eq!(call!(remi_ui16(2, 17988)), 2); -assert_eq!(call!(remi_ui16(2, 65096)), 2); -assert_eq!(call!(remi_ui16(2, 65534)), 2); -assert_eq!(call!(remi_ui16(2, 65535)), 2); -assert_eq!(call!(remi_ui16(65096, 3)), 2); -assert_eq!(call!(remi_ui16(65534, 3)), 2); -assert_eq!(call!(remi_ui16(65534, 4)), 2); -assert_eq!(call!(remi_ui16(3, 4)), 3); -assert_eq!(call!(remi_ui16(3, 1717)), 3); -assert_eq!(call!(remi_ui16(3, 17988)), 3); -assert_eq!(call!(remi_ui16(3, 65096)), 3); -assert_eq!(call!(remi_ui16(3, 65534)), 3); -assert_eq!(call!(remi_ui16(3, 65535)), 3); -assert_eq!(call!(remi_ui16(65535, 4)), 3); -assert_eq!(call!(remi_ui16(4, 1717)), 4); -assert_eq!(call!(remi_ui16(4, 17988)), 4); -assert_eq!(call!(remi_ui16(4, 65096)), 4); -assert_eq!(call!(remi_ui16(4, 65534)), 4); -assert_eq!(call!(remi_ui16(4, 65535)), 4); -assert_eq!(call!(remi_ui16(65534, 1717)), 288); -assert_eq!(call!(remi_ui16(65535, 1717)), 289); -assert_eq!(call!(remi_ui16(65534, 65096)), 438); -assert_eq!(call!(remi_ui16(65535, 65096)), 439); -assert_eq!(call!(remi_ui16(17988, 1717)), 818); -assert_eq!(call!(remi_ui16(65096, 1717)), 1567); -assert_eq!(call!(remi_ui16(1717, 17988)), 1717); -assert_eq!(call!(remi_ui16(1717, 65096)), 1717); -assert_eq!(call!(remi_ui16(1717, 65534)), 1717); -assert_eq!(call!(remi_ui16(1717, 65535)), 1717); -assert_eq!(call!(remi_ui16(65096, 17988)), 11132); -assert_eq!(call!(remi_ui16(65534, 17988)), 11570); -assert_eq!(call!(remi_ui16(65535, 17988)), 11571); -assert_eq!(call!(remi_ui16(17988, 65096)), 17988); -assert_eq!(call!(remi_ui16(17988, 65534)), 17988); -assert_eq!(call!(remi_ui16(17988, 65535)), 17988); -assert_eq!(call!(remi_ui16(65096, 65534)), 65096); -assert_eq!(call!(remi_ui16(65096, 65535)), 65096); -assert_eq!(call!(remi_ui16(65534, 65535)), 65534); -assert_eq!(call!(remi_ui32(0, 1)), 0); -assert_eq!(call!(remi_ui32(0, 2)), 0); -assert_eq!(call!(remi_ui32(0, 3)), 0); -assert_eq!(call!(remi_ui32(0, 4)), 0); -assert_eq!(call!(remi_ui32(0, 2119154652)), 0); -assert_eq!(call!(remi_ui32(0, 3002788344)), 0); -assert_eq!(call!(remi_ui32(0, 3482297128)), 0); -assert_eq!(call!(remi_ui32(0, 4294967294)), 0); -assert_eq!(call!(remi_ui32(0, 4294967295)), 0); -assert_eq!(call!(remi_ui32(1, 1)), 0); -assert_eq!(call!(remi_ui32(2, 1)), 0); -assert_eq!(call!(remi_ui32(2, 2)), 0); -assert_eq!(call!(remi_ui32(3, 1)), 0); -assert_eq!(call!(remi_ui32(3, 3)), 0); -assert_eq!(call!(remi_ui32(4, 1)), 0); -assert_eq!(call!(remi_ui32(4, 2)), 0); -assert_eq!(call!(remi_ui32(4, 4)), 0); -assert_eq!(call!(remi_ui32(2119154652, 1)), 0); -assert_eq!(call!(remi_ui32(2119154652, 2)), 0); -assert_eq!(call!(remi_ui32(2119154652, 3)), 0); -assert_eq!(call!(remi_ui32(2119154652, 4)), 0); -assert_eq!(call!(remi_ui32(2119154652, 2119154652)), 0); -assert_eq!(call!(remi_ui32(3002788344, 1)), 0); -assert_eq!(call!(remi_ui32(3002788344, 2)), 0); -assert_eq!(call!(remi_ui32(3002788344, 3)), 0); -assert_eq!(call!(remi_ui32(3002788344, 4)), 0); -assert_eq!(call!(remi_ui32(3002788344, 3002788344)), 0); -assert_eq!(call!(remi_ui32(3482297128, 1)), 0); -assert_eq!(call!(remi_ui32(3482297128, 2)), 0); -assert_eq!(call!(remi_ui32(3482297128, 4)), 0); -assert_eq!(call!(remi_ui32(3482297128, 3482297128)), 0); -assert_eq!(call!(remi_ui32(4294967294, 1)), 0); -assert_eq!(call!(remi_ui32(4294967294, 2)), 0); -assert_eq!(call!(remi_ui32(4294967294, 4294967294)), 0); -assert_eq!(call!(remi_ui32(4294967295, 1)), 0); -assert_eq!(call!(remi_ui32(4294967295, 3)), 0); -assert_eq!(call!(remi_ui32(4294967295, 4294967295)), 0); -assert_eq!(call!(remi_ui32(1, 2)), 1); -assert_eq!(call!(remi_ui32(1, 3)), 1); -assert_eq!(call!(remi_ui32(1, 4)), 1); -assert_eq!(call!(remi_ui32(1, 2119154652)), 1); -assert_eq!(call!(remi_ui32(1, 3002788344)), 1); -assert_eq!(call!(remi_ui32(1, 3482297128)), 1); -assert_eq!(call!(remi_ui32(1, 4294967294)), 1); -assert_eq!(call!(remi_ui32(1, 4294967295)), 1); -assert_eq!(call!(remi_ui32(3, 2)), 1); -assert_eq!(call!(remi_ui32(4, 3)), 1); -assert_eq!(call!(remi_ui32(3482297128, 3)), 1); -assert_eq!(call!(remi_ui32(4294967295, 2)), 1); -assert_eq!(call!(remi_ui32(4294967295, 4294967294)), 1); -assert_eq!(call!(remi_ui32(2, 3)), 2); -assert_eq!(call!(remi_ui32(2, 4)), 2); -assert_eq!(call!(remi_ui32(2, 2119154652)), 2); -assert_eq!(call!(remi_ui32(2, 3002788344)), 2); -assert_eq!(call!(remi_ui32(2, 3482297128)), 2); -assert_eq!(call!(remi_ui32(2, 4294967294)), 2); -assert_eq!(call!(remi_ui32(2, 4294967295)), 2); -assert_eq!(call!(remi_ui32(4294967294, 3)), 2); -assert_eq!(call!(remi_ui32(4294967294, 4)), 2); -assert_eq!(call!(remi_ui32(3, 4)), 3); -assert_eq!(call!(remi_ui32(3, 2119154652)), 3); -assert_eq!(call!(remi_ui32(3, 3002788344)), 3); -assert_eq!(call!(remi_ui32(3, 3482297128)), 3); -assert_eq!(call!(remi_ui32(3, 4294967294)), 3); -assert_eq!(call!(remi_ui32(3, 4294967295)), 3); -assert_eq!(call!(remi_ui32(4294967295, 4)), 3); -assert_eq!(call!(remi_ui32(4, 2119154652)), 4); -assert_eq!(call!(remi_ui32(4, 3002788344)), 4); -assert_eq!(call!(remi_ui32(4, 3482297128)), 4); -assert_eq!(call!(remi_ui32(4, 4294967294)), 4); -assert_eq!(call!(remi_ui32(4, 4294967295)), 4); -assert_eq!(call!(remi_ui32(4294967294, 2119154652)), 56657990); -assert_eq!(call!(remi_ui32(4294967295, 2119154652)), 56657991); -assert_eq!(call!(remi_ui32(3482297128, 3002788344)), 479508784); -assert_eq!(call!(remi_ui32(4294967294, 3482297128)), 812670166); -assert_eq!(call!(remi_ui32(4294967295, 3482297128)), 812670167); -assert_eq!(call!(remi_ui32(3002788344, 2119154652)), 883633692); -assert_eq!(call!(remi_ui32(4294967294, 3002788344)), 1292178950); -assert_eq!(call!(remi_ui32(4294967295, 3002788344)), 1292178951); -assert_eq!(call!(remi_ui32(3482297128, 2119154652)), 1363142476); -assert_eq!(call!(remi_ui32(2119154652, 3002788344)), 2119154652); -assert_eq!(call!(remi_ui32(2119154652, 3482297128)), 2119154652); -assert_eq!(call!(remi_ui32(2119154652, 4294967294)), 2119154652); -assert_eq!(call!(remi_ui32(2119154652, 4294967295)), 2119154652); -assert_eq!(call!(remi_ui32(3002788344, 3482297128)), 3002788344); -assert_eq!(call!(remi_ui32(3002788344, 4294967294)), 3002788344); -assert_eq!(call!(remi_ui32(3002788344, 4294967295)), 3002788344); -assert_eq!(call!(remi_ui32(3482297128, 4294967294)), 3482297128); -assert_eq!(call!(remi_ui32(3482297128, 4294967295)), 3482297128); -assert_eq!(call!(remi_ui32(4294967294, 4294967295)), 4294967294); -assert_eq!(call!(remi_ui64(0, 1)), 0); -assert_eq!(call!(remi_ui64(0, 2)), 0); -assert_eq!(call!(remi_ui64(0, 3)), 0); -assert_eq!(call!(remi_ui64(0, 4)), 0); -assert_eq!(call!(remi_ui64(0, 191084152064409600)), 0); -assert_eq!(call!(remi_ui64(0, 11015955194427482112)), 0); -assert_eq!(call!(remi_ui64(0, 16990600415051759616)), 0); -assert_eq!(call!(remi_ui64(0, 18446744073709551614)), 0); -assert_eq!(call!(remi_ui64(0, 18446744073709551615)), 0); -assert_eq!(call!(remi_ui64(1, 1)), 0); -assert_eq!(call!(remi_ui64(2, 1)), 0); -assert_eq!(call!(remi_ui64(2, 2)), 0); -assert_eq!(call!(remi_ui64(3, 1)), 0); -assert_eq!(call!(remi_ui64(3, 3)), 0); -assert_eq!(call!(remi_ui64(4, 1)), 0); -assert_eq!(call!(remi_ui64(4, 2)), 0); -assert_eq!(call!(remi_ui64(4, 4)), 0); -assert_eq!(call!(remi_ui64(191084152064409600, 1)), 0); -assert_eq!(call!(remi_ui64(191084152064409600, 2)), 0); -assert_eq!(call!(remi_ui64(191084152064409600, 3)), 0); -assert_eq!(call!(remi_ui64(191084152064409600, 4)), 0); -assert_eq!(call!(remi_ui64(191084152064409600, 191084152064409600)), 0); -assert_eq!(call!(remi_ui64(11015955194427482112, 1)), 0); -assert_eq!(call!(remi_ui64(11015955194427482112, 2)), 0); -assert_eq!(call!(remi_ui64(11015955194427482112, 3)), 0); -assert_eq!(call!(remi_ui64(11015955194427482112, 4)), 0); -assert_eq!(call!(remi_ui64(11015955194427482112, 11015955194427482112)), 0); -assert_eq!(call!(remi_ui64(16990600415051759616, 1)), 0); -assert_eq!(call!(remi_ui64(16990600415051759616, 2)), 0); -assert_eq!(call!(remi_ui64(16990600415051759616, 3)), 0); -assert_eq!(call!(remi_ui64(16990600415051759616, 4)), 0); -assert_eq!(call!(remi_ui64(16990600415051759616, 16990600415051759616)), 0); -assert_eq!(call!(remi_ui64(18446744073709551614, 1)), 0); -assert_eq!(call!(remi_ui64(18446744073709551614, 2)), 0); -assert_eq!(call!(remi_ui64(18446744073709551614, 18446744073709551614)), 0); -assert_eq!(call!(remi_ui64(18446744073709551615, 1)), 0); -assert_eq!(call!(remi_ui64(18446744073709551615, 3)), 0); -assert_eq!(call!(remi_ui64(18446744073709551615, 18446744073709551615)), 0); -assert_eq!(call!(remi_ui64(1, 2)), 1); -assert_eq!(call!(remi_ui64(1, 3)), 1); -assert_eq!(call!(remi_ui64(1, 4)), 1); -assert_eq!(call!(remi_ui64(1, 191084152064409600)), 1); -assert_eq!(call!(remi_ui64(1, 11015955194427482112)), 1); -assert_eq!(call!(remi_ui64(1, 16990600415051759616)), 1); -assert_eq!(call!(remi_ui64(1, 18446744073709551614)), 1); -assert_eq!(call!(remi_ui64(1, 18446744073709551615)), 1); -assert_eq!(call!(remi_ui64(3, 2)), 1); -assert_eq!(call!(remi_ui64(4, 3)), 1); -assert_eq!(call!(remi_ui64(18446744073709551615, 2)), 1); -assert_eq!(call!(remi_ui64(18446744073709551615, 18446744073709551614)), 1); -assert_eq!(call!(remi_ui64(2, 3)), 2); -assert_eq!(call!(remi_ui64(2, 4)), 2); -assert_eq!(call!(remi_ui64(2, 191084152064409600)), 2); -assert_eq!(call!(remi_ui64(2, 11015955194427482112)), 2); -assert_eq!(call!(remi_ui64(2, 16990600415051759616)), 2); -assert_eq!(call!(remi_ui64(2, 18446744073709551614)), 2); -assert_eq!(call!(remi_ui64(2, 18446744073709551615)), 2); -assert_eq!(call!(remi_ui64(18446744073709551614, 3)), 2); -assert_eq!(call!(remi_ui64(18446744073709551614, 4)), 2); -assert_eq!(call!(remi_ui64(3, 4)), 3); -assert_eq!(call!(remi_ui64(3, 191084152064409600)), 3); -assert_eq!(call!(remi_ui64(3, 11015955194427482112)), 3); -assert_eq!(call!(remi_ui64(3, 16990600415051759616)), 3); -assert_eq!(call!(remi_ui64(3, 18446744073709551614)), 3); -assert_eq!(call!(remi_ui64(3, 18446744073709551615)), 3); -assert_eq!(call!(remi_ui64(18446744073709551615, 4)), 3); -assert_eq!(call!(remi_ui64(4, 191084152064409600)), 4); -assert_eq!(call!(remi_ui64(4, 11015955194427482112)), 4); -assert_eq!(call!(remi_ui64(4, 16990600415051759616)), 4); -assert_eq!(call!(remi_ui64(4, 18446744073709551614)), 4); -assert_eq!(call!(remi_ui64(4, 18446744073709551615)), 4); -assert_eq!(call!(remi_ui64(18446744073709551614, 191084152064409600)), 102665475526230014); -assert_eq!(call!(remi_ui64(18446744073709551615, 191084152064409600)), 102665475526230015); -assert_eq!(call!(remi_ui64(11015955194427482112, 191084152064409600)), 124158526756134912); -assert_eq!(call!(remi_ui64(16990600415051759616, 191084152064409600)), 175195033383714816); -assert_eq!(call!(remi_ui64(191084152064409600, 11015955194427482112)), 191084152064409600); -assert_eq!(call!(remi_ui64(191084152064409600, 16990600415051759616)), 191084152064409600); -assert_eq!(call!(remi_ui64(191084152064409600, 18446744073709551614)), 191084152064409600); -assert_eq!(call!(remi_ui64(191084152064409600, 18446744073709551615)), 191084152064409600); -assert_eq!(call!(remi_ui64(18446744073709551614, 16990600415051759616)), 1456143658657791998); -assert_eq!(call!(remi_ui64(18446744073709551615, 16990600415051759616)), 1456143658657791999); -assert_eq!(call!(remi_ui64(16990600415051759616, 11015955194427482112)), 5974645220624277504); -assert_eq!(call!(remi_ui64(18446744073709551614, 11015955194427482112)), 7430788879282069502); -assert_eq!(call!(remi_ui64(18446744073709551615, 11015955194427482112)), 7430788879282069503); -assert_eq!(call!(remi_ui64(11015955194427482112, 16990600415051759616)), 11015955194427482112); -assert_eq!(call!(remi_ui64(11015955194427482112, 18446744073709551614)), 11015955194427482112); -assert_eq!(call!(remi_ui64(11015955194427482112, 18446744073709551615)), 11015955194427482112); -assert_eq!(call!(remi_ui64(16990600415051759616, 18446744073709551614)), 16990600415051759616); -assert_eq!(call!(remi_ui64(16990600415051759616, 18446744073709551615)), 16990600415051759616); -assert_eq!(call!(remi_ui64(18446744073709551614, 18446744073709551615)), 18446744073709551614); -assert_eq!(call!(remi_ui8(0, 1)), 0); -assert_eq!(call!(remi_ui8(0, 2)), 0); -assert_eq!(call!(remi_ui8(0, 3)), 0); -assert_eq!(call!(remi_ui8(0, 4)), 0); -assert_eq!(call!(remi_ui8(0, 72)), 0); -assert_eq!(call!(remi_ui8(0, 100)), 0); -assert_eq!(call!(remi_ui8(0, 162)), 0); -assert_eq!(call!(remi_ui8(0, 254)), 0); -assert_eq!(call!(remi_ui8(0, 255)), 0); -assert_eq!(call!(remi_ui8(1, 1)), 0); -assert_eq!(call!(remi_ui8(2, 1)), 0); -assert_eq!(call!(remi_ui8(2, 2)), 0); -assert_eq!(call!(remi_ui8(3, 1)), 0); -assert_eq!(call!(remi_ui8(3, 3)), 0); -assert_eq!(call!(remi_ui8(4, 1)), 0); -assert_eq!(call!(remi_ui8(4, 2)), 0); -assert_eq!(call!(remi_ui8(4, 4)), 0); -assert_eq!(call!(remi_ui8(72, 1)), 0); -assert_eq!(call!(remi_ui8(72, 2)), 0); -assert_eq!(call!(remi_ui8(72, 3)), 0); -assert_eq!(call!(remi_ui8(72, 4)), 0); -assert_eq!(call!(remi_ui8(72, 72)), 0); -assert_eq!(call!(remi_ui8(100, 1)), 0); -assert_eq!(call!(remi_ui8(100, 2)), 0); -assert_eq!(call!(remi_ui8(100, 4)), 0); -assert_eq!(call!(remi_ui8(100, 100)), 0); -assert_eq!(call!(remi_ui8(162, 1)), 0); -assert_eq!(call!(remi_ui8(162, 2)), 0); -assert_eq!(call!(remi_ui8(162, 3)), 0); -assert_eq!(call!(remi_ui8(162, 162)), 0); -assert_eq!(call!(remi_ui8(254, 1)), 0); -assert_eq!(call!(remi_ui8(254, 2)), 0); -assert_eq!(call!(remi_ui8(254, 254)), 0); -assert_eq!(call!(remi_ui8(255, 1)), 0); -assert_eq!(call!(remi_ui8(255, 3)), 0); -assert_eq!(call!(remi_ui8(255, 255)), 0); -assert_eq!(call!(remi_ui8(1, 2)), 1); -assert_eq!(call!(remi_ui8(1, 3)), 1); -assert_eq!(call!(remi_ui8(1, 4)), 1); -assert_eq!(call!(remi_ui8(1, 72)), 1); -assert_eq!(call!(remi_ui8(1, 100)), 1); -assert_eq!(call!(remi_ui8(1, 162)), 1); -assert_eq!(call!(remi_ui8(1, 254)), 1); -assert_eq!(call!(remi_ui8(1, 255)), 1); -assert_eq!(call!(remi_ui8(3, 2)), 1); -assert_eq!(call!(remi_ui8(4, 3)), 1); -assert_eq!(call!(remi_ui8(100, 3)), 1); -assert_eq!(call!(remi_ui8(255, 2)), 1); -assert_eq!(call!(remi_ui8(255, 254)), 1); -assert_eq!(call!(remi_ui8(2, 3)), 2); -assert_eq!(call!(remi_ui8(2, 4)), 2); -assert_eq!(call!(remi_ui8(2, 72)), 2); -assert_eq!(call!(remi_ui8(2, 100)), 2); -assert_eq!(call!(remi_ui8(2, 162)), 2); -assert_eq!(call!(remi_ui8(2, 254)), 2); -assert_eq!(call!(remi_ui8(2, 255)), 2); -assert_eq!(call!(remi_ui8(162, 4)), 2); -assert_eq!(call!(remi_ui8(254, 3)), 2); -assert_eq!(call!(remi_ui8(254, 4)), 2); -assert_eq!(call!(remi_ui8(3, 4)), 3); -assert_eq!(call!(remi_ui8(3, 72)), 3); -assert_eq!(call!(remi_ui8(3, 100)), 3); -assert_eq!(call!(remi_ui8(3, 162)), 3); -assert_eq!(call!(remi_ui8(3, 254)), 3); -assert_eq!(call!(remi_ui8(3, 255)), 3); -assert_eq!(call!(remi_ui8(255, 4)), 3); -assert_eq!(call!(remi_ui8(4, 72)), 4); -assert_eq!(call!(remi_ui8(4, 100)), 4); -assert_eq!(call!(remi_ui8(4, 162)), 4); -assert_eq!(call!(remi_ui8(4, 254)), 4); -assert_eq!(call!(remi_ui8(4, 255)), 4); -assert_eq!(call!(remi_ui8(162, 72)), 18); -assert_eq!(call!(remi_ui8(100, 72)), 28); -assert_eq!(call!(remi_ui8(254, 72)), 38); -assert_eq!(call!(remi_ui8(255, 72)), 39); -assert_eq!(call!(remi_ui8(254, 100)), 54); -assert_eq!(call!(remi_ui8(255, 100)), 55); -assert_eq!(call!(remi_ui8(162, 100)), 62); -assert_eq!(call!(remi_ui8(72, 100)), 72); -assert_eq!(call!(remi_ui8(72, 162)), 72); -assert_eq!(call!(remi_ui8(72, 254)), 72); -assert_eq!(call!(remi_ui8(72, 255)), 72); -assert_eq!(call!(remi_ui8(254, 162)), 92); -assert_eq!(call!(remi_ui8(255, 162)), 93); -assert_eq!(call!(remi_ui8(100, 162)), 100); -assert_eq!(call!(remi_ui8(100, 254)), 100); -assert_eq!(call!(remi_ui8(100, 255)), 100); -assert_eq!(call!(remi_ui8(162, 254)), 162); -assert_eq!(call!(remi_ui8(162, 255)), 162); -assert_eq!(call!(remi_ui8(254, 255)), 254); -assert_eq!(call!(subi_si16(-32768, 0)), -32768); -assert_eq!(call!(subi_si16(-32767, 1)), -32768); -assert_eq!(call!(subi_si16(-32767, 0)), -32767); -assert_eq!(call!(subi_si16(0, 32767)), -32767); -assert_eq!(call!(subi_si16(0, 32766)), -32766); -assert_eq!(call!(subi_si16(1, 32767)), -32766); -assert_eq!(call!(subi_si16(1, 32766)), -32765); -assert_eq!(call!(subi_si16(2, 32767)), -32765); -assert_eq!(call!(subi_si16(2, 32766)), -32764); -assert_eq!(call!(subi_si16(3, 32767)), -32764); -assert_eq!(call!(subi_si16(3, 32766)), -32763); -assert_eq!(call!(subi_si16(4, 32767)), -32763); -assert_eq!(call!(subi_si16(4, 32766)), -32762); -assert_eq!(call!(subi_si16(-32547, 4)), -32551); -assert_eq!(call!(subi_si16(-32547, 3)), -32550); -assert_eq!(call!(subi_si16(-32547, 2)), -32549); -assert_eq!(call!(subi_si16(-32547, 1)), -32548); -assert_eq!(call!(subi_si16(-32547, 0)), -32547); -assert_eq!(call!(subi_si16(10486, 32767)), -22281); -assert_eq!(call!(subi_si16(10486, 32766)), -22280); -assert_eq!(call!(subi_si16(0, 16514)), -16514); -assert_eq!(call!(subi_si16(1, 16514)), -16513); -assert_eq!(call!(subi_si16(2, 16514)), -16512); -assert_eq!(call!(subi_si16(3, 16514)), -16511); -assert_eq!(call!(subi_si16(4, 16514)), -16510); -assert_eq!(call!(subi_si16(16514, 32767)), -16253); -assert_eq!(call!(subi_si16(16514, 32766)), -16252); -assert_eq!(call!(subi_si16(0, 10486)), -10486); -assert_eq!(call!(subi_si16(1, 10486)), -10485); -assert_eq!(call!(subi_si16(2, 10486)), -10484); -assert_eq!(call!(subi_si16(3, 10486)), -10483); -assert_eq!(call!(subi_si16(4, 10486)), -10482); -assert_eq!(call!(subi_si16(10486, 16514)), -6028); -assert_eq!(call!(subi_si16(-32768, -32547)), -221); -assert_eq!(call!(subi_si16(-32767, -32547)), -220); -assert_eq!(call!(subi_si16(0, 4)), -4); -assert_eq!(call!(subi_si16(0, 3)), -3); -assert_eq!(call!(subi_si16(1, 4)), -3); -assert_eq!(call!(subi_si16(0, 2)), -2); -assert_eq!(call!(subi_si16(1, 3)), -2); -assert_eq!(call!(subi_si16(2, 4)), -2); -assert_eq!(call!(subi_si16(-32768, -32767)), -1); -assert_eq!(call!(subi_si16(0, 1)), -1); -assert_eq!(call!(subi_si16(1, 2)), -1); -assert_eq!(call!(subi_si16(2, 3)), -1); -assert_eq!(call!(subi_si16(3, 4)), -1); -assert_eq!(call!(subi_si16(32766, 32767)), -1); -assert_eq!(call!(subi_si16(-32768, -32768)), 0); -assert_eq!(call!(subi_si16(-32767, -32767)), 0); -assert_eq!(call!(subi_si16(-32547, -32547)), 0); -assert_eq!(call!(subi_si16(0, 0)), 0); -assert_eq!(call!(subi_si16(1, 1)), 0); -assert_eq!(call!(subi_si16(2, 2)), 0); -assert_eq!(call!(subi_si16(3, 3)), 0); -assert_eq!(call!(subi_si16(4, 4)), 0); -assert_eq!(call!(subi_si16(10486, 10486)), 0); -assert_eq!(call!(subi_si16(16514, 16514)), 0); -assert_eq!(call!(subi_si16(32766, 32766)), 0); -assert_eq!(call!(subi_si16(32767, 32767)), 0); -assert_eq!(call!(subi_si16(-32767, -32768)), 1); -assert_eq!(call!(subi_si16(1, 0)), 1); -assert_eq!(call!(subi_si16(2, 1)), 1); -assert_eq!(call!(subi_si16(3, 2)), 1); -assert_eq!(call!(subi_si16(4, 3)), 1); -assert_eq!(call!(subi_si16(32767, 32766)), 1); -assert_eq!(call!(subi_si16(2, 0)), 2); -assert_eq!(call!(subi_si16(3, 1)), 2); -assert_eq!(call!(subi_si16(4, 2)), 2); -assert_eq!(call!(subi_si16(3, 0)), 3); -assert_eq!(call!(subi_si16(4, 1)), 3); -assert_eq!(call!(subi_si16(4, 0)), 4); -assert_eq!(call!(subi_si16(-32547, -32767)), 220); -assert_eq!(call!(subi_si16(-32547, -32768)), 221); -assert_eq!(call!(subi_si16(16514, 10486)), 6028); -assert_eq!(call!(subi_si16(10486, 4)), 10482); -assert_eq!(call!(subi_si16(10486, 3)), 10483); -assert_eq!(call!(subi_si16(10486, 2)), 10484); -assert_eq!(call!(subi_si16(10486, 1)), 10485); -assert_eq!(call!(subi_si16(10486, 0)), 10486); -assert_eq!(call!(subi_si16(32766, 16514)), 16252); -assert_eq!(call!(subi_si16(32767, 16514)), 16253); -assert_eq!(call!(subi_si16(16514, 4)), 16510); -assert_eq!(call!(subi_si16(16514, 3)), 16511); -assert_eq!(call!(subi_si16(16514, 2)), 16512); -assert_eq!(call!(subi_si16(16514, 1)), 16513); -assert_eq!(call!(subi_si16(16514, 0)), 16514); -assert_eq!(call!(subi_si16(32766, 10486)), 22280); -assert_eq!(call!(subi_si16(32767, 10486)), 22281); -assert_eq!(call!(subi_si16(0, -32547)), 32547); -assert_eq!(call!(subi_si16(1, -32547)), 32548); -assert_eq!(call!(subi_si16(2, -32547)), 32549); -assert_eq!(call!(subi_si16(3, -32547)), 32550); -assert_eq!(call!(subi_si16(4, -32547)), 32551); -assert_eq!(call!(subi_si16(32766, 4)), 32762); -assert_eq!(call!(subi_si16(32766, 3)), 32763); -assert_eq!(call!(subi_si16(32767, 4)), 32763); -assert_eq!(call!(subi_si16(32766, 2)), 32764); -assert_eq!(call!(subi_si16(32767, 3)), 32764); -assert_eq!(call!(subi_si16(32766, 1)), 32765); -assert_eq!(call!(subi_si16(32767, 2)), 32765); -assert_eq!(call!(subi_si16(32766, 0)), 32766); -assert_eq!(call!(subi_si16(32767, 1)), 32766); -assert_eq!(call!(subi_si16(0, -32767)), 32767); -assert_eq!(call!(subi_si16(32767, 0)), 32767); -assert_eq!(call!(subi_si32(-2147483648, 0)), -2147483648); -assert_eq!(call!(subi_si32(-2147483647, 1)), -2147483648); -assert_eq!(call!(subi_si32(-2147483647, 0)), -2147483647); -assert_eq!(call!(subi_si32(0, 2147483647)), -2147483647); -assert_eq!(call!(subi_si32(0, 2147483646)), -2147483646); -assert_eq!(call!(subi_si32(1, 2147483647)), -2147483646); -assert_eq!(call!(subi_si32(1, 2147483646)), -2147483645); -assert_eq!(call!(subi_si32(2, 2147483647)), -2147483645); -assert_eq!(call!(subi_si32(2, 2147483646)), -2147483644); -assert_eq!(call!(subi_si32(3, 2147483647)), -2147483644); -assert_eq!(call!(subi_si32(3, 2147483646)), -2147483643); -assert_eq!(call!(subi_si32(4, 2147483647)), -2147483643); -assert_eq!(call!(subi_si32(4, 2147483646)), -2147483642); -assert_eq!(call!(subi_si32(-1713183800, 4)), -1713183804); -assert_eq!(call!(subi_si32(-1713183800, 3)), -1713183803); -assert_eq!(call!(subi_si32(-1713183800, 2)), -1713183802); -assert_eq!(call!(subi_si32(-1713183800, 1)), -1713183801); -assert_eq!(call!(subi_si32(-1713183800, 0)), -1713183800); -assert_eq!(call!(subi_si32(-1252582164, 4)), -1252582168); -assert_eq!(call!(subi_si32(-1252582164, 3)), -1252582167); -assert_eq!(call!(subi_si32(-1252582164, 2)), -1252582166); -assert_eq!(call!(subi_si32(-1252582164, 1)), -1252582165); -assert_eq!(call!(subi_si32(-1252582164, 0)), -1252582164); -assert_eq!(call!(subi_si32(-2147483648, -1035405763)), -1112077885); -assert_eq!(call!(subi_si32(-2147483647, -1035405763)), -1112077884); -assert_eq!(call!(subi_si32(-1035405763, 4)), -1035405767); -assert_eq!(call!(subi_si32(-1035405763, 3)), -1035405766); -assert_eq!(call!(subi_si32(-1035405763, 2)), -1035405765); -assert_eq!(call!(subi_si32(-1035405763, 1)), -1035405764); -assert_eq!(call!(subi_si32(-1035405763, 0)), -1035405763); -assert_eq!(call!(subi_si32(-2147483648, -1252582164)), -894901484); -assert_eq!(call!(subi_si32(-2147483647, -1252582164)), -894901483); -assert_eq!(call!(subi_si32(-1713183800, -1035405763)), -677778037); -assert_eq!(call!(subi_si32(-1713183800, -1252582164)), -460601636); -assert_eq!(call!(subi_si32(-2147483648, -1713183800)), -434299848); -assert_eq!(call!(subi_si32(-2147483647, -1713183800)), -434299847); -assert_eq!(call!(subi_si32(-1252582164, -1035405763)), -217176401); -assert_eq!(call!(subi_si32(0, 4)), -4); -assert_eq!(call!(subi_si32(0, 3)), -3); -assert_eq!(call!(subi_si32(1, 4)), -3); -assert_eq!(call!(subi_si32(0, 2)), -2); -assert_eq!(call!(subi_si32(1, 3)), -2); -assert_eq!(call!(subi_si32(2, 4)), -2); -assert_eq!(call!(subi_si32(-2147483648, -2147483647)), -1); -assert_eq!(call!(subi_si32(0, 1)), -1); -assert_eq!(call!(subi_si32(1, 2)), -1); -assert_eq!(call!(subi_si32(2, 3)), -1); -assert_eq!(call!(subi_si32(3, 4)), -1); -assert_eq!(call!(subi_si32(2147483646, 2147483647)), -1); -assert_eq!(call!(subi_si32(-2147483648, -2147483648)), 0); -assert_eq!(call!(subi_si32(-2147483647, -2147483647)), 0); -assert_eq!(call!(subi_si32(-1713183800, -1713183800)), 0); -assert_eq!(call!(subi_si32(-1252582164, -1252582164)), 0); -assert_eq!(call!(subi_si32(-1035405763, -1035405763)), 0); -assert_eq!(call!(subi_si32(0, 0)), 0); -assert_eq!(call!(subi_si32(1, 1)), 0); -assert_eq!(call!(subi_si32(2, 2)), 0); -assert_eq!(call!(subi_si32(3, 3)), 0); -assert_eq!(call!(subi_si32(4, 4)), 0); -assert_eq!(call!(subi_si32(2147483646, 2147483646)), 0); -assert_eq!(call!(subi_si32(2147483647, 2147483647)), 0); -assert_eq!(call!(subi_si32(-2147483647, -2147483648)), 1); -assert_eq!(call!(subi_si32(1, 0)), 1); -assert_eq!(call!(subi_si32(2, 1)), 1); -assert_eq!(call!(subi_si32(3, 2)), 1); -assert_eq!(call!(subi_si32(4, 3)), 1); -assert_eq!(call!(subi_si32(2147483647, 2147483646)), 1); -assert_eq!(call!(subi_si32(2, 0)), 2); -assert_eq!(call!(subi_si32(3, 1)), 2); -assert_eq!(call!(subi_si32(4, 2)), 2); -assert_eq!(call!(subi_si32(3, 0)), 3); -assert_eq!(call!(subi_si32(4, 1)), 3); -assert_eq!(call!(subi_si32(4, 0)), 4); -assert_eq!(call!(subi_si32(-1035405763, -1252582164)), 217176401); -assert_eq!(call!(subi_si32(-1713183800, -2147483647)), 434299847); -assert_eq!(call!(subi_si32(-1713183800, -2147483648)), 434299848); -assert_eq!(call!(subi_si32(-1252582164, -1713183800)), 460601636); -assert_eq!(call!(subi_si32(-1035405763, -1713183800)), 677778037); -assert_eq!(call!(subi_si32(-1252582164, -2147483647)), 894901483); -assert_eq!(call!(subi_si32(-1252582164, -2147483648)), 894901484); -assert_eq!(call!(subi_si32(0, -1035405763)), 1035405763); -assert_eq!(call!(subi_si32(1, -1035405763)), 1035405764); -assert_eq!(call!(subi_si32(2, -1035405763)), 1035405765); -assert_eq!(call!(subi_si32(3, -1035405763)), 1035405766); -assert_eq!(call!(subi_si32(4, -1035405763)), 1035405767); -assert_eq!(call!(subi_si32(-1035405763, -2147483647)), 1112077884); -assert_eq!(call!(subi_si32(-1035405763, -2147483648)), 1112077885); -assert_eq!(call!(subi_si32(0, -1252582164)), 1252582164); -assert_eq!(call!(subi_si32(1, -1252582164)), 1252582165); -assert_eq!(call!(subi_si32(2, -1252582164)), 1252582166); -assert_eq!(call!(subi_si32(3, -1252582164)), 1252582167); -assert_eq!(call!(subi_si32(4, -1252582164)), 1252582168); -assert_eq!(call!(subi_si32(0, -1713183800)), 1713183800); -assert_eq!(call!(subi_si32(1, -1713183800)), 1713183801); -assert_eq!(call!(subi_si32(2, -1713183800)), 1713183802); -assert_eq!(call!(subi_si32(3, -1713183800)), 1713183803); -assert_eq!(call!(subi_si32(4, -1713183800)), 1713183804); -assert_eq!(call!(subi_si32(2147483646, 4)), 2147483642); -assert_eq!(call!(subi_si32(2147483646, 3)), 2147483643); -assert_eq!(call!(subi_si32(2147483647, 4)), 2147483643); -assert_eq!(call!(subi_si32(2147483646, 2)), 2147483644); -assert_eq!(call!(subi_si32(2147483647, 3)), 2147483644); -assert_eq!(call!(subi_si32(2147483646, 1)), 2147483645); -assert_eq!(call!(subi_si32(2147483647, 2)), 2147483645); -assert_eq!(call!(subi_si32(2147483646, 0)), 2147483646); -assert_eq!(call!(subi_si32(2147483647, 1)), 2147483646); -assert_eq!(call!(subi_si32(0, -2147483647)), 2147483647); -assert_eq!(call!(subi_si32(2147483647, 0)), 2147483647); -assert_eq!(call!(subi_si64(-9223372036854775808, 0)), -9223372036854775808); -assert_eq!(call!(subi_si64(-9223372036854775807, 1)), -9223372036854775808); -assert_eq!(call!(subi_si64(-9223372036854775807, 0)), -9223372036854775807); -assert_eq!(call!(subi_si64(0, 9223372036854775807)), -9223372036854775807); -assert_eq!(call!(subi_si64(0, 9223372036854775806)), -9223372036854775806); -assert_eq!(call!(subi_si64(1, 9223372036854775807)), -9223372036854775806); -assert_eq!(call!(subi_si64(1, 9223372036854775806)), -9223372036854775805); -assert_eq!(call!(subi_si64(2, 9223372036854775807)), -9223372036854775805); -assert_eq!(call!(subi_si64(2, 9223372036854775806)), -9223372036854775804); -assert_eq!(call!(subi_si64(3, 9223372036854775807)), -9223372036854775804); -assert_eq!(call!(subi_si64(3, 9223372036854775806)), -9223372036854775803); -assert_eq!(call!(subi_si64(4, 9223372036854775807)), -9223372036854775803); -assert_eq!(call!(subi_si64(4, 9223372036854775806)), -9223372036854775802); -assert_eq!(call!(subi_si64(-9223372036854775808, -1328271339354574848)), -7895100697500200960); -assert_eq!(call!(subi_si64(-9223372036854775807, -1328271339354574848)), -7895100697500200959); -assert_eq!(call!(subi_si64(-9223372036854775808, -1741927215160008704)), -7481444821694767104); -assert_eq!(call!(subi_si64(-9223372036854775807, -1741927215160008704)), -7481444821694767103); -assert_eq!(call!(subi_si64(-1741927215160008704, 5577148965131116544)), -7319076180291125248); -assert_eq!(call!(subi_si64(-1328271339354574848, 5577148965131116544)), -6905420304485691392); -assert_eq!(call!(subi_si64(0, 5577148965131116544)), -5577148965131116544); -assert_eq!(call!(subi_si64(1, 5577148965131116544)), -5577148965131116543); -assert_eq!(call!(subi_si64(2, 5577148965131116544)), -5577148965131116542); -assert_eq!(call!(subi_si64(3, 5577148965131116544)), -5577148965131116541); -assert_eq!(call!(subi_si64(4, 5577148965131116544)), -5577148965131116540); -assert_eq!(call!(subi_si64(5577148965131116544, 9223372036854775807)), -3646223071723659263); -assert_eq!(call!(subi_si64(5577148965131116544, 9223372036854775806)), -3646223071723659262); -assert_eq!(call!(subi_si64(-1741927215160008704, 4)), -1741927215160008708); -assert_eq!(call!(subi_si64(-1741927215160008704, 3)), -1741927215160008707); -assert_eq!(call!(subi_si64(-1741927215160008704, 2)), -1741927215160008706); -assert_eq!(call!(subi_si64(-1741927215160008704, 1)), -1741927215160008705); -assert_eq!(call!(subi_si64(-1741927215160008704, 0)), -1741927215160008704); -assert_eq!(call!(subi_si64(-1328271339354574848, 4)), -1328271339354574852); -assert_eq!(call!(subi_si64(-1328271339354574848, 3)), -1328271339354574851); -assert_eq!(call!(subi_si64(-1328271339354574848, 2)), -1328271339354574850); -assert_eq!(call!(subi_si64(-1328271339354574848, 1)), -1328271339354574849); -assert_eq!(call!(subi_si64(-1328271339354574848, 0)), -1328271339354574848); -assert_eq!(call!(subi_si64(-1741927215160008704, -1328271339354574848)), -413655875805433856); -assert_eq!(call!(subi_si64(0, 4)), -4); -assert_eq!(call!(subi_si64(0, 3)), -3); -assert_eq!(call!(subi_si64(1, 4)), -3); -assert_eq!(call!(subi_si64(0, 2)), -2); -assert_eq!(call!(subi_si64(1, 3)), -2); -assert_eq!(call!(subi_si64(2, 4)), -2); -assert_eq!(call!(subi_si64(-9223372036854775808, -9223372036854775807)), -1); -assert_eq!(call!(subi_si64(0, 1)), -1); -assert_eq!(call!(subi_si64(1, 2)), -1); -assert_eq!(call!(subi_si64(2, 3)), -1); -assert_eq!(call!(subi_si64(3, 4)), -1); -assert_eq!(call!(subi_si64(9223372036854775806, 9223372036854775807)), -1); -assert_eq!(call!(subi_si64(-9223372036854775808, -9223372036854775808)), 0); -assert_eq!(call!(subi_si64(-9223372036854775807, -9223372036854775807)), 0); -assert_eq!(call!(subi_si64(-1741927215160008704, -1741927215160008704)), 0); -assert_eq!(call!(subi_si64(-1328271339354574848, -1328271339354574848)), 0); -assert_eq!(call!(subi_si64(0, 0)), 0); -assert_eq!(call!(subi_si64(1, 1)), 0); -assert_eq!(call!(subi_si64(2, 2)), 0); -assert_eq!(call!(subi_si64(3, 3)), 0); -assert_eq!(call!(subi_si64(4, 4)), 0); -assert_eq!(call!(subi_si64(5577148965131116544, 5577148965131116544)), 0); -assert_eq!(call!(subi_si64(9223372036854775806, 9223372036854775806)), 0); -assert_eq!(call!(subi_si64(9223372036854775807, 9223372036854775807)), 0); -assert_eq!(call!(subi_si64(-9223372036854775807, -9223372036854775808)), 1); -assert_eq!(call!(subi_si64(1, 0)), 1); -assert_eq!(call!(subi_si64(2, 1)), 1); -assert_eq!(call!(subi_si64(3, 2)), 1); -assert_eq!(call!(subi_si64(4, 3)), 1); -assert_eq!(call!(subi_si64(9223372036854775807, 9223372036854775806)), 1); -assert_eq!(call!(subi_si64(2, 0)), 2); -assert_eq!(call!(subi_si64(3, 1)), 2); -assert_eq!(call!(subi_si64(4, 2)), 2); -assert_eq!(call!(subi_si64(3, 0)), 3); -assert_eq!(call!(subi_si64(4, 1)), 3); -assert_eq!(call!(subi_si64(4, 0)), 4); -assert_eq!(call!(subi_si64(-1328271339354574848, -1741927215160008704)), 413655875805433856); -assert_eq!(call!(subi_si64(0, -1328271339354574848)), 1328271339354574848); -assert_eq!(call!(subi_si64(1, -1328271339354574848)), 1328271339354574849); -assert_eq!(call!(subi_si64(2, -1328271339354574848)), 1328271339354574850); -assert_eq!(call!(subi_si64(3, -1328271339354574848)), 1328271339354574851); -assert_eq!(call!(subi_si64(4, -1328271339354574848)), 1328271339354574852); -assert_eq!(call!(subi_si64(0, -1741927215160008704)), 1741927215160008704); -assert_eq!(call!(subi_si64(1, -1741927215160008704)), 1741927215160008705); -assert_eq!(call!(subi_si64(2, -1741927215160008704)), 1741927215160008706); -assert_eq!(call!(subi_si64(3, -1741927215160008704)), 1741927215160008707); -assert_eq!(call!(subi_si64(4, -1741927215160008704)), 1741927215160008708); -assert_eq!(call!(subi_si64(9223372036854775806, 5577148965131116544)), 3646223071723659262); -assert_eq!(call!(subi_si64(9223372036854775807, 5577148965131116544)), 3646223071723659263); -assert_eq!(call!(subi_si64(5577148965131116544, 4)), 5577148965131116540); -assert_eq!(call!(subi_si64(5577148965131116544, 3)), 5577148965131116541); -assert_eq!(call!(subi_si64(5577148965131116544, 2)), 5577148965131116542); -assert_eq!(call!(subi_si64(5577148965131116544, 1)), 5577148965131116543); -assert_eq!(call!(subi_si64(5577148965131116544, 0)), 5577148965131116544); -assert_eq!(call!(subi_si64(5577148965131116544, -1328271339354574848)), 6905420304485691392); -assert_eq!(call!(subi_si64(5577148965131116544, -1741927215160008704)), 7319076180291125248); -assert_eq!(call!(subi_si64(-1741927215160008704, -9223372036854775807)), 7481444821694767103); -assert_eq!(call!(subi_si64(-1741927215160008704, -9223372036854775808)), 7481444821694767104); -assert_eq!(call!(subi_si64(-1328271339354574848, -9223372036854775807)), 7895100697500200959); -assert_eq!(call!(subi_si64(-1328271339354574848, -9223372036854775808)), 7895100697500200960); -assert_eq!(call!(subi_si64(9223372036854775806, 4)), 9223372036854775802); -assert_eq!(call!(subi_si64(9223372036854775806, 3)), 9223372036854775803); -assert_eq!(call!(subi_si64(9223372036854775807, 4)), 9223372036854775803); -assert_eq!(call!(subi_si64(9223372036854775806, 2)), 9223372036854775804); -assert_eq!(call!(subi_si64(9223372036854775807, 3)), 9223372036854775804); -assert_eq!(call!(subi_si64(9223372036854775806, 1)), 9223372036854775805); -assert_eq!(call!(subi_si64(9223372036854775807, 2)), 9223372036854775805); -assert_eq!(call!(subi_si64(9223372036854775806, 0)), 9223372036854775806); -assert_eq!(call!(subi_si64(9223372036854775807, 1)), 9223372036854775806); -assert_eq!(call!(subi_si64(0, -9223372036854775807)), 9223372036854775807); -assert_eq!(call!(subi_si64(9223372036854775807, 0)), 9223372036854775807); -assert_eq!(call!(subi_si8(-128, 0)), -128); -assert_eq!(call!(subi_si8(-127, 1)), -128); -assert_eq!(call!(subi_si8(-127, 0)), -127); -assert_eq!(call!(subi_si8(0, 127)), -127); -assert_eq!(call!(subi_si8(0, 126)), -126); -assert_eq!(call!(subi_si8(1, 127)), -126); -assert_eq!(call!(subi_si8(1, 126)), -125); -assert_eq!(call!(subi_si8(2, 127)), -125); -assert_eq!(call!(subi_si8(2, 126)), -124); -assert_eq!(call!(subi_si8(3, 127)), -124); -assert_eq!(call!(subi_si8(3, 126)), -123); -assert_eq!(call!(subi_si8(4, 127)), -123); -assert_eq!(call!(subi_si8(4, 126)), -122); -assert_eq!(call!(subi_si8(16, 127)), -111); -assert_eq!(call!(subi_si8(16, 126)), -110); -assert_eq!(call!(subi_si8(0, 16)), -16); -assert_eq!(call!(subi_si8(1, 16)), -15); -assert_eq!(call!(subi_si8(2, 16)), -14); -assert_eq!(call!(subi_si8(3, 16)), -13); -assert_eq!(call!(subi_si8(4, 16)), -12); -assert_eq!(call!(subi_si8(0, 4)), -4); -assert_eq!(call!(subi_si8(0, 3)), -3); -assert_eq!(call!(subi_si8(1, 4)), -3); -assert_eq!(call!(subi_si8(0, 2)), -2); -assert_eq!(call!(subi_si8(1, 3)), -2); -assert_eq!(call!(subi_si8(2, 4)), -2); -assert_eq!(call!(subi_si8(-128, -127)), -1); -assert_eq!(call!(subi_si8(0, 1)), -1); -assert_eq!(call!(subi_si8(1, 2)), -1); -assert_eq!(call!(subi_si8(2, 3)), -1); -assert_eq!(call!(subi_si8(3, 4)), -1); -assert_eq!(call!(subi_si8(126, 127)), -1); -assert_eq!(call!(subi_si8(-128, -128)), 0); -assert_eq!(call!(subi_si8(-127, -127)), 0); -assert_eq!(call!(subi_si8(0, 0)), 0); -assert_eq!(call!(subi_si8(1, 1)), 0); -assert_eq!(call!(subi_si8(2, 2)), 0); -assert_eq!(call!(subi_si8(3, 3)), 0); -assert_eq!(call!(subi_si8(4, 4)), 0); -assert_eq!(call!(subi_si8(16, 16)), 0); -assert_eq!(call!(subi_si8(126, 126)), 0); -assert_eq!(call!(subi_si8(127, 127)), 0); -assert_eq!(call!(subi_si8(-127, -128)), 1); -assert_eq!(call!(subi_si8(1, 0)), 1); -assert_eq!(call!(subi_si8(2, 1)), 1); -assert_eq!(call!(subi_si8(3, 2)), 1); -assert_eq!(call!(subi_si8(4, 3)), 1); -assert_eq!(call!(subi_si8(127, 126)), 1); -assert_eq!(call!(subi_si8(2, 0)), 2); -assert_eq!(call!(subi_si8(3, 1)), 2); -assert_eq!(call!(subi_si8(4, 2)), 2); -assert_eq!(call!(subi_si8(3, 0)), 3); -assert_eq!(call!(subi_si8(4, 1)), 3); -assert_eq!(call!(subi_si8(4, 0)), 4); -assert_eq!(call!(subi_si8(16, 4)), 12); -assert_eq!(call!(subi_si8(16, 3)), 13); -assert_eq!(call!(subi_si8(16, 2)), 14); -assert_eq!(call!(subi_si8(16, 1)), 15); -assert_eq!(call!(subi_si8(16, 0)), 16); -assert_eq!(call!(subi_si8(126, 16)), 110); -assert_eq!(call!(subi_si8(127, 16)), 111); -assert_eq!(call!(subi_si8(126, 4)), 122); -assert_eq!(call!(subi_si8(126, 3)), 123); -assert_eq!(call!(subi_si8(127, 4)), 123); -assert_eq!(call!(subi_si8(126, 2)), 124); -assert_eq!(call!(subi_si8(127, 3)), 124); -assert_eq!(call!(subi_si8(126, 1)), 125); -assert_eq!(call!(subi_si8(127, 2)), 125); -assert_eq!(call!(subi_si8(126, 0)), 126); -assert_eq!(call!(subi_si8(127, 1)), 126); -assert_eq!(call!(subi_si8(0, -127)), 127); -assert_eq!(call!(subi_si8(127, 0)), 127); -assert_eq!(call!(subi_ui16(0, 0)), 0); -assert_eq!(call!(subi_ui16(1, 1)), 0); -assert_eq!(call!(subi_ui16(2, 2)), 0); -assert_eq!(call!(subi_ui16(3, 3)), 0); -assert_eq!(call!(subi_ui16(4, 4)), 0); -assert_eq!(call!(subi_ui16(1717, 1717)), 0); -assert_eq!(call!(subi_ui16(17988, 17988)), 0); -assert_eq!(call!(subi_ui16(65096, 65096)), 0); -assert_eq!(call!(subi_ui16(65534, 65534)), 0); -assert_eq!(call!(subi_ui16(65535, 65535)), 0); -assert_eq!(call!(subi_ui16(1, 0)), 1); -assert_eq!(call!(subi_ui16(2, 1)), 1); -assert_eq!(call!(subi_ui16(3, 2)), 1); -assert_eq!(call!(subi_ui16(4, 3)), 1); -assert_eq!(call!(subi_ui16(65535, 65534)), 1); -assert_eq!(call!(subi_ui16(2, 0)), 2); -assert_eq!(call!(subi_ui16(3, 1)), 2); -assert_eq!(call!(subi_ui16(4, 2)), 2); -assert_eq!(call!(subi_ui16(3, 0)), 3); -assert_eq!(call!(subi_ui16(4, 1)), 3); -assert_eq!(call!(subi_ui16(4, 0)), 4); -assert_eq!(call!(subi_ui16(65534, 65096)), 438); -assert_eq!(call!(subi_ui16(65535, 65096)), 439); -assert_eq!(call!(subi_ui16(1717, 4)), 1713); -assert_eq!(call!(subi_ui16(1717, 3)), 1714); -assert_eq!(call!(subi_ui16(1717, 2)), 1715); -assert_eq!(call!(subi_ui16(1717, 1)), 1716); -assert_eq!(call!(subi_ui16(1717, 0)), 1717); -assert_eq!(call!(subi_ui16(17988, 1717)), 16271); -assert_eq!(call!(subi_ui16(17988, 4)), 17984); -assert_eq!(call!(subi_ui16(17988, 3)), 17985); -assert_eq!(call!(subi_ui16(17988, 2)), 17986); -assert_eq!(call!(subi_ui16(17988, 1)), 17987); -assert_eq!(call!(subi_ui16(17988, 0)), 17988); -assert_eq!(call!(subi_ui16(65096, 17988)), 47108); -assert_eq!(call!(subi_ui16(65534, 17988)), 47546); -assert_eq!(call!(subi_ui16(65535, 17988)), 47547); -assert_eq!(call!(subi_ui16(65096, 1717)), 63379); -assert_eq!(call!(subi_ui16(65534, 1717)), 63817); -assert_eq!(call!(subi_ui16(65535, 1717)), 63818); -assert_eq!(call!(subi_ui16(65096, 4)), 65092); -assert_eq!(call!(subi_ui16(65096, 3)), 65093); -assert_eq!(call!(subi_ui16(65096, 2)), 65094); -assert_eq!(call!(subi_ui16(65096, 1)), 65095); -assert_eq!(call!(subi_ui16(65096, 0)), 65096); -assert_eq!(call!(subi_ui16(65534, 4)), 65530); -assert_eq!(call!(subi_ui16(65534, 3)), 65531); -assert_eq!(call!(subi_ui16(65535, 4)), 65531); -assert_eq!(call!(subi_ui16(65534, 2)), 65532); -assert_eq!(call!(subi_ui16(65535, 3)), 65532); -assert_eq!(call!(subi_ui16(65534, 1)), 65533); -assert_eq!(call!(subi_ui16(65535, 2)), 65533); -assert_eq!(call!(subi_ui16(65534, 0)), 65534); -assert_eq!(call!(subi_ui16(65535, 1)), 65534); -assert_eq!(call!(subi_ui16(65535, 0)), 65535); -assert_eq!(call!(subi_ui32(0, 0)), 0); -assert_eq!(call!(subi_ui32(1, 1)), 0); -assert_eq!(call!(subi_ui32(2, 2)), 0); -assert_eq!(call!(subi_ui32(3, 3)), 0); -assert_eq!(call!(subi_ui32(4, 4)), 0); -assert_eq!(call!(subi_ui32(2119154652, 2119154652)), 0); -assert_eq!(call!(subi_ui32(3002788344, 3002788344)), 0); -assert_eq!(call!(subi_ui32(3482297128, 3482297128)), 0); -assert_eq!(call!(subi_ui32(4294967294, 4294967294)), 0); -assert_eq!(call!(subi_ui32(4294967295, 4294967295)), 0); -assert_eq!(call!(subi_ui32(1, 0)), 1); -assert_eq!(call!(subi_ui32(2, 1)), 1); -assert_eq!(call!(subi_ui32(3, 2)), 1); -assert_eq!(call!(subi_ui32(4, 3)), 1); -assert_eq!(call!(subi_ui32(4294967295, 4294967294)), 1); -assert_eq!(call!(subi_ui32(2, 0)), 2); -assert_eq!(call!(subi_ui32(3, 1)), 2); -assert_eq!(call!(subi_ui32(4, 2)), 2); -assert_eq!(call!(subi_ui32(3, 0)), 3); -assert_eq!(call!(subi_ui32(4, 1)), 3); -assert_eq!(call!(subi_ui32(4, 0)), 4); -assert_eq!(call!(subi_ui32(3482297128, 3002788344)), 479508784); -assert_eq!(call!(subi_ui32(4294967294, 3482297128)), 812670166); -assert_eq!(call!(subi_ui32(4294967295, 3482297128)), 812670167); -assert_eq!(call!(subi_ui32(3002788344, 2119154652)), 883633692); -assert_eq!(call!(subi_ui32(4294967294, 3002788344)), 1292178950); -assert_eq!(call!(subi_ui32(4294967295, 3002788344)), 1292178951); -assert_eq!(call!(subi_ui32(3482297128, 2119154652)), 1363142476); -assert_eq!(call!(subi_ui32(2119154652, 4)), 2119154648); -assert_eq!(call!(subi_ui32(2119154652, 3)), 2119154649); -assert_eq!(call!(subi_ui32(2119154652, 2)), 2119154650); -assert_eq!(call!(subi_ui32(2119154652, 1)), 2119154651); -assert_eq!(call!(subi_ui32(2119154652, 0)), 2119154652); -assert_eq!(call!(subi_ui32(4294967294, 2119154652)), 2175812642); -assert_eq!(call!(subi_ui32(4294967295, 2119154652)), 2175812643); -assert_eq!(call!(subi_ui32(3002788344, 4)), 3002788340); -assert_eq!(call!(subi_ui32(3002788344, 3)), 3002788341); -assert_eq!(call!(subi_ui32(3002788344, 2)), 3002788342); -assert_eq!(call!(subi_ui32(3002788344, 1)), 3002788343); -assert_eq!(call!(subi_ui32(3002788344, 0)), 3002788344); -assert_eq!(call!(subi_ui32(3482297128, 4)), 3482297124); -assert_eq!(call!(subi_ui32(3482297128, 3)), 3482297125); -assert_eq!(call!(subi_ui32(3482297128, 2)), 3482297126); -assert_eq!(call!(subi_ui32(3482297128, 1)), 3482297127); -assert_eq!(call!(subi_ui32(3482297128, 0)), 3482297128); -assert_eq!(call!(subi_ui32(4294967294, 4)), 4294967290); -assert_eq!(call!(subi_ui32(4294967294, 3)), 4294967291); -assert_eq!(call!(subi_ui32(4294967295, 4)), 4294967291); -assert_eq!(call!(subi_ui32(4294967294, 2)), 4294967292); -assert_eq!(call!(subi_ui32(4294967295, 3)), 4294967292); -assert_eq!(call!(subi_ui32(4294967294, 1)), 4294967293); -assert_eq!(call!(subi_ui32(4294967295, 2)), 4294967293); -assert_eq!(call!(subi_ui32(4294967294, 0)), 4294967294); -assert_eq!(call!(subi_ui32(4294967295, 1)), 4294967294); -assert_eq!(call!(subi_ui32(4294967295, 0)), 4294967295); -assert_eq!(call!(subi_ui64(0, 0)), 0); -assert_eq!(call!(subi_ui64(1, 1)), 0); -assert_eq!(call!(subi_ui64(2, 2)), 0); -assert_eq!(call!(subi_ui64(3, 3)), 0); -assert_eq!(call!(subi_ui64(4, 4)), 0); -assert_eq!(call!(subi_ui64(191084152064409600, 191084152064409600)), 0); -assert_eq!(call!(subi_ui64(11015955194427482112, 11015955194427482112)), 0); -assert_eq!(call!(subi_ui64(16990600415051759616, 16990600415051759616)), 0); -assert_eq!(call!(subi_ui64(18446744073709551614, 18446744073709551614)), 0); -assert_eq!(call!(subi_ui64(18446744073709551615, 18446744073709551615)), 0); -assert_eq!(call!(subi_ui64(1, 0)), 1); -assert_eq!(call!(subi_ui64(2, 1)), 1); -assert_eq!(call!(subi_ui64(3, 2)), 1); -assert_eq!(call!(subi_ui64(4, 3)), 1); -assert_eq!(call!(subi_ui64(18446744073709551615, 18446744073709551614)), 1); -assert_eq!(call!(subi_ui64(2, 0)), 2); -assert_eq!(call!(subi_ui64(3, 1)), 2); -assert_eq!(call!(subi_ui64(4, 2)), 2); -assert_eq!(call!(subi_ui64(3, 0)), 3); -assert_eq!(call!(subi_ui64(4, 1)), 3); -assert_eq!(call!(subi_ui64(4, 0)), 4); -assert_eq!(call!(subi_ui64(191084152064409600, 4)), 191084152064409596); -assert_eq!(call!(subi_ui64(191084152064409600, 3)), 191084152064409597); -assert_eq!(call!(subi_ui64(191084152064409600, 2)), 191084152064409598); -assert_eq!(call!(subi_ui64(191084152064409600, 1)), 191084152064409599); -assert_eq!(call!(subi_ui64(191084152064409600, 0)), 191084152064409600); -assert_eq!(call!(subi_ui64(18446744073709551614, 16990600415051759616)), 1456143658657791998); -assert_eq!(call!(subi_ui64(18446744073709551615, 16990600415051759616)), 1456143658657791999); -assert_eq!(call!(subi_ui64(16990600415051759616, 11015955194427482112)), 5974645220624277504); -assert_eq!(call!(subi_ui64(18446744073709551614, 11015955194427482112)), 7430788879282069502); -assert_eq!(call!(subi_ui64(18446744073709551615, 11015955194427482112)), 7430788879282069503); -assert_eq!(call!(subi_ui64(11015955194427482112, 191084152064409600)), 10824871042363072512); -assert_eq!(call!(subi_ui64(11015955194427482112, 4)), 11015955194427482108); -assert_eq!(call!(subi_ui64(11015955194427482112, 3)), 11015955194427482109); -assert_eq!(call!(subi_ui64(11015955194427482112, 2)), 11015955194427482110); -assert_eq!(call!(subi_ui64(11015955194427482112, 1)), 11015955194427482111); -assert_eq!(call!(subi_ui64(11015955194427482112, 0)), 11015955194427482112); -assert_eq!(call!(subi_ui64(16990600415051759616, 191084152064409600)), 16799516262987350016); -assert_eq!(call!(subi_ui64(16990600415051759616, 4)), 16990600415051759612); -assert_eq!(call!(subi_ui64(16990600415051759616, 3)), 16990600415051759613); -assert_eq!(call!(subi_ui64(16990600415051759616, 2)), 16990600415051759614); -assert_eq!(call!(subi_ui64(16990600415051759616, 1)), 16990600415051759615); -assert_eq!(call!(subi_ui64(16990600415051759616, 0)), 16990600415051759616); -assert_eq!(call!(subi_ui64(18446744073709551614, 191084152064409600)), 18255659921645142014); -assert_eq!(call!(subi_ui64(18446744073709551615, 191084152064409600)), 18255659921645142015); -assert_eq!(call!(subi_ui64(18446744073709551614, 4)), 18446744073709551610); -assert_eq!(call!(subi_ui64(18446744073709551614, 3)), 18446744073709551611); -assert_eq!(call!(subi_ui64(18446744073709551615, 4)), 18446744073709551611); -assert_eq!(call!(subi_ui64(18446744073709551614, 2)), 18446744073709551612); -assert_eq!(call!(subi_ui64(18446744073709551615, 3)), 18446744073709551612); -assert_eq!(call!(subi_ui64(18446744073709551614, 1)), 18446744073709551613); -assert_eq!(call!(subi_ui64(18446744073709551615, 2)), 18446744073709551613); -assert_eq!(call!(subi_ui64(18446744073709551614, 0)), 18446744073709551614); -assert_eq!(call!(subi_ui64(18446744073709551615, 1)), 18446744073709551614); -assert_eq!(call!(subi_ui64(18446744073709551615, 0)), 18446744073709551615); -assert_eq!(call!(subi_ui8(0, 0)), 0); -assert_eq!(call!(subi_ui8(1, 1)), 0); -assert_eq!(call!(subi_ui8(2, 2)), 0); -assert_eq!(call!(subi_ui8(3, 3)), 0); -assert_eq!(call!(subi_ui8(4, 4)), 0); -assert_eq!(call!(subi_ui8(72, 72)), 0); -assert_eq!(call!(subi_ui8(100, 100)), 0); -assert_eq!(call!(subi_ui8(162, 162)), 0); -assert_eq!(call!(subi_ui8(254, 254)), 0); -assert_eq!(call!(subi_ui8(255, 255)), 0); -assert_eq!(call!(subi_ui8(1, 0)), 1); -assert_eq!(call!(subi_ui8(2, 1)), 1); -assert_eq!(call!(subi_ui8(3, 2)), 1); -assert_eq!(call!(subi_ui8(4, 3)), 1); -assert_eq!(call!(subi_ui8(255, 254)), 1); -assert_eq!(call!(subi_ui8(2, 0)), 2); -assert_eq!(call!(subi_ui8(3, 1)), 2); -assert_eq!(call!(subi_ui8(4, 2)), 2); -assert_eq!(call!(subi_ui8(3, 0)), 3); -assert_eq!(call!(subi_ui8(4, 1)), 3); -assert_eq!(call!(subi_ui8(4, 0)), 4); -assert_eq!(call!(subi_ui8(100, 72)), 28); -assert_eq!(call!(subi_ui8(162, 100)), 62); -assert_eq!(call!(subi_ui8(72, 4)), 68); -assert_eq!(call!(subi_ui8(72, 3)), 69); -assert_eq!(call!(subi_ui8(72, 2)), 70); -assert_eq!(call!(subi_ui8(72, 1)), 71); -assert_eq!(call!(subi_ui8(72, 0)), 72); -assert_eq!(call!(subi_ui8(162, 72)), 90); -assert_eq!(call!(subi_ui8(254, 162)), 92); -assert_eq!(call!(subi_ui8(255, 162)), 93); -assert_eq!(call!(subi_ui8(100, 4)), 96); -assert_eq!(call!(subi_ui8(100, 3)), 97); -assert_eq!(call!(subi_ui8(100, 2)), 98); -assert_eq!(call!(subi_ui8(100, 1)), 99); -assert_eq!(call!(subi_ui8(100, 0)), 100); -assert_eq!(call!(subi_ui8(254, 100)), 154); -assert_eq!(call!(subi_ui8(255, 100)), 155); -assert_eq!(call!(subi_ui8(162, 4)), 158); -assert_eq!(call!(subi_ui8(162, 3)), 159); -assert_eq!(call!(subi_ui8(162, 2)), 160); -assert_eq!(call!(subi_ui8(162, 1)), 161); -assert_eq!(call!(subi_ui8(162, 0)), 162); -assert_eq!(call!(subi_ui8(254, 72)), 182); -assert_eq!(call!(subi_ui8(255, 72)), 183); -assert_eq!(call!(subi_ui8(254, 4)), 250); -assert_eq!(call!(subi_ui8(254, 3)), 251); -assert_eq!(call!(subi_ui8(255, 4)), 251); -assert_eq!(call!(subi_ui8(254, 2)), 252); -assert_eq!(call!(subi_ui8(255, 3)), 252); -assert_eq!(call!(subi_ui8(254, 1)), 253); -assert_eq!(call!(subi_ui8(255, 2)), 253); -assert_eq!(call!(subi_ui8(254, 0)), 254); -assert_eq!(call!(subi_ui8(255, 1)), 254); -assert_eq!(call!(subi_ui8(255, 0)), 255); -} + use crate::arctorustintarith::*; + #[test] + fn it_works() { + assert_eq!(addi_si16(-32768, 0), -32768); + assert_eq!(addi_si16(0, -32768), -32768); + assert_eq!(addi_si16(-32768, 1), -32767); + assert_eq!(addi_si16(-32767, 0), -32767); + assert_eq!(addi_si16(0, -32767), -32767); + assert_eq!(addi_si16(1, -32768), -32767); + assert_eq!(addi_si16(-32768, 2), -32766); + assert_eq!(addi_si16(-32767, 1), -32766); + assert_eq!(addi_si16(1, -32767), -32766); + assert_eq!(addi_si16(2, -32768), -32766); + assert_eq!(addi_si16(-32768, 3), -32765); + assert_eq!(addi_si16(-32767, 2), -32765); + assert_eq!(addi_si16(2, -32767), -32765); + assert_eq!(addi_si16(3, -32768), -32765); + assert_eq!(addi_si16(-32768, 4), -32764); + assert_eq!(addi_si16(-32767, 3), -32764); + assert_eq!(addi_si16(3, -32767), -32764); + assert_eq!(addi_si16(4, -32768), -32764); + assert_eq!(addi_si16(-32767, 4), -32763); + assert_eq!(addi_si16(4, -32767), -32763); + assert_eq!(addi_si16(-32547, 0), -32547); + assert_eq!(addi_si16(0, -32547), -32547); + assert_eq!(addi_si16(-32547, 1), -32546); + assert_eq!(addi_si16(1, -32547), -32546); + assert_eq!(addi_si16(-32547, 2), -32545); + assert_eq!(addi_si16(2, -32547), -32545); + assert_eq!(addi_si16(-32547, 3), -32544); + assert_eq!(addi_si16(3, -32547), -32544); + assert_eq!(addi_si16(-32547, 4), -32543); + assert_eq!(addi_si16(4, -32547), -32543); + assert_eq!(addi_si16(-32768, 10486), -22282); + assert_eq!(addi_si16(10486, -32768), -22282); + assert_eq!(addi_si16(-32767, 10486), -22281); + assert_eq!(addi_si16(10486, -32767), -22281); + assert_eq!(addi_si16(-32547, 10486), -22061); + assert_eq!(addi_si16(10486, -32547), -22061); + assert_eq!(addi_si16(-32768, 16514), -16254); + assert_eq!(addi_si16(16514, -32768), -16254); + assert_eq!(addi_si16(-32767, 16514), -16253); + assert_eq!(addi_si16(16514, -32767), -16253); + assert_eq!(addi_si16(-32547, 16514), -16033); + assert_eq!(addi_si16(16514, -32547), -16033); + assert_eq!(addi_si16(-32768, 32766), -2); + assert_eq!(addi_si16(32766, -32768), -2); + assert_eq!(addi_si16(-32768, 32767), -1); + assert_eq!(addi_si16(-32767, 32766), -1); + assert_eq!(addi_si16(32766, -32767), -1); + assert_eq!(addi_si16(32767, -32768), -1); + assert_eq!(addi_si16(-32767, 32767), 0); + assert_eq!(addi_si16(0, 0), 0); + assert_eq!(addi_si16(32767, -32767), 0); + assert_eq!(addi_si16(0, 1), 1); + assert_eq!(addi_si16(1, 0), 1); + assert_eq!(addi_si16(0, 2), 2); + assert_eq!(addi_si16(1, 1), 2); + assert_eq!(addi_si16(2, 0), 2); + assert_eq!(addi_si16(0, 3), 3); + assert_eq!(addi_si16(1, 2), 3); + assert_eq!(addi_si16(2, 1), 3); + assert_eq!(addi_si16(3, 0), 3); + assert_eq!(addi_si16(0, 4), 4); + assert_eq!(addi_si16(1, 3), 4); + assert_eq!(addi_si16(2, 2), 4); + assert_eq!(addi_si16(3, 1), 4); + assert_eq!(addi_si16(4, 0), 4); + assert_eq!(addi_si16(1, 4), 5); + assert_eq!(addi_si16(2, 3), 5); + assert_eq!(addi_si16(3, 2), 5); + assert_eq!(addi_si16(4, 1), 5); + assert_eq!(addi_si16(2, 4), 6); + assert_eq!(addi_si16(3, 3), 6); + assert_eq!(addi_si16(4, 2), 6); + assert_eq!(addi_si16(3, 4), 7); + assert_eq!(addi_si16(4, 3), 7); + assert_eq!(addi_si16(4, 4), 8); + assert_eq!(addi_si16(-32547, 32766), 219); + assert_eq!(addi_si16(32766, -32547), 219); + assert_eq!(addi_si16(-32547, 32767), 220); + assert_eq!(addi_si16(32767, -32547), 220); + assert_eq!(addi_si16(0, 10486), 10486); + assert_eq!(addi_si16(10486, 0), 10486); + assert_eq!(addi_si16(1, 10486), 10487); + assert_eq!(addi_si16(10486, 1), 10487); + assert_eq!(addi_si16(2, 10486), 10488); + assert_eq!(addi_si16(10486, 2), 10488); + assert_eq!(addi_si16(3, 10486), 10489); + assert_eq!(addi_si16(10486, 3), 10489); + assert_eq!(addi_si16(4, 10486), 10490); + assert_eq!(addi_si16(10486, 4), 10490); + assert_eq!(addi_si16(0, 16514), 16514); + assert_eq!(addi_si16(16514, 0), 16514); + assert_eq!(addi_si16(1, 16514), 16515); + assert_eq!(addi_si16(16514, 1), 16515); + assert_eq!(addi_si16(2, 16514), 16516); + assert_eq!(addi_si16(16514, 2), 16516); + assert_eq!(addi_si16(3, 16514), 16517); + assert_eq!(addi_si16(16514, 3), 16517); + assert_eq!(addi_si16(4, 16514), 16518); + assert_eq!(addi_si16(16514, 4), 16518); + assert_eq!(addi_si16(10486, 10486), 20972); + assert_eq!(addi_si16(10486, 16514), 27000); + assert_eq!(addi_si16(16514, 10486), 27000); + assert_eq!(addi_si16(0, 32766), 32766); + assert_eq!(addi_si16(32766, 0), 32766); + assert_eq!(addi_si16(0, 32767), 32767); + assert_eq!(addi_si16(1, 32766), 32767); + assert_eq!(addi_si16(32766, 1), 32767); + assert_eq!(addi_si16(32767, 0), 32767); + assert_eq!(addi_si32(-2147483648, 0), -2147483648); + assert_eq!(addi_si32(0, -2147483648), -2147483648); + assert_eq!(addi_si32(-2147483648, 1), -2147483647); + assert_eq!(addi_si32(-2147483647, 0), -2147483647); + assert_eq!(addi_si32(0, -2147483647), -2147483647); + assert_eq!(addi_si32(1, -2147483648), -2147483647); + assert_eq!(addi_si32(-2147483648, 2), -2147483646); + assert_eq!(addi_si32(-2147483647, 1), -2147483646); + assert_eq!(addi_si32(1, -2147483647), -2147483646); + assert_eq!(addi_si32(2, -2147483648), -2147483646); + assert_eq!(addi_si32(-2147483648, 3), -2147483645); + assert_eq!(addi_si32(-2147483647, 2), -2147483645); + assert_eq!(addi_si32(2, -2147483647), -2147483645); + assert_eq!(addi_si32(3, -2147483648), -2147483645); + assert_eq!(addi_si32(-2147483648, 4), -2147483644); + assert_eq!(addi_si32(-2147483647, 3), -2147483644); + assert_eq!(addi_si32(3, -2147483647), -2147483644); + assert_eq!(addi_si32(4, -2147483648), -2147483644); + assert_eq!(addi_si32(-2147483647, 4), -2147483643); + assert_eq!(addi_si32(4, -2147483647), -2147483643); + assert_eq!(addi_si32(-1035405763, -1035405763), -2070811526); + assert_eq!(addi_si32(-1713183800, 0), -1713183800); + assert_eq!(addi_si32(0, -1713183800), -1713183800); + assert_eq!(addi_si32(-1713183800, 1), -1713183799); + assert_eq!(addi_si32(1, -1713183800), -1713183799); + assert_eq!(addi_si32(-1713183800, 2), -1713183798); + assert_eq!(addi_si32(2, -1713183800), -1713183798); + assert_eq!(addi_si32(-1713183800, 3), -1713183797); + assert_eq!(addi_si32(3, -1713183800), -1713183797); + assert_eq!(addi_si32(-1713183800, 4), -1713183796); + assert_eq!(addi_si32(4, -1713183800), -1713183796); + assert_eq!(addi_si32(-1252582164, 0), -1252582164); + assert_eq!(addi_si32(0, -1252582164), -1252582164); + assert_eq!(addi_si32(-1252582164, 1), -1252582163); + assert_eq!(addi_si32(1, -1252582164), -1252582163); + assert_eq!(addi_si32(-1252582164, 2), -1252582162); + assert_eq!(addi_si32(2, -1252582164), -1252582162); + assert_eq!(addi_si32(-1252582164, 3), -1252582161); + assert_eq!(addi_si32(3, -1252582164), -1252582161); + assert_eq!(addi_si32(-1252582164, 4), -1252582160); + assert_eq!(addi_si32(4, -1252582164), -1252582160); + assert_eq!(addi_si32(-1035405763, 0), -1035405763); + assert_eq!(addi_si32(0, -1035405763), -1035405763); + assert_eq!(addi_si32(-1035405763, 1), -1035405762); + assert_eq!(addi_si32(1, -1035405763), -1035405762); + assert_eq!(addi_si32(-1035405763, 2), -1035405761); + assert_eq!(addi_si32(2, -1035405763), -1035405761); + assert_eq!(addi_si32(-1035405763, 3), -1035405760); + assert_eq!(addi_si32(3, -1035405763), -1035405760); + assert_eq!(addi_si32(-1035405763, 4), -1035405759); + assert_eq!(addi_si32(4, -1035405763), -1035405759); + assert_eq!(addi_si32(-2147483648, 2147483646), -2); + assert_eq!(addi_si32(2147483646, -2147483648), -2); + assert_eq!(addi_si32(-2147483648, 2147483647), -1); + assert_eq!(addi_si32(-2147483647, 2147483646), -1); + assert_eq!(addi_si32(2147483646, -2147483647), -1); + assert_eq!(addi_si32(2147483647, -2147483648), -1); + assert_eq!(addi_si32(-2147483647, 2147483647), 0); + assert_eq!(addi_si32(0, 0), 0); + assert_eq!(addi_si32(2147483647, -2147483647), 0); + assert_eq!(addi_si32(0, 1), 1); + assert_eq!(addi_si32(1, 0), 1); + assert_eq!(addi_si32(0, 2), 2); + assert_eq!(addi_si32(1, 1), 2); + assert_eq!(addi_si32(2, 0), 2); + assert_eq!(addi_si32(0, 3), 3); + assert_eq!(addi_si32(1, 2), 3); + assert_eq!(addi_si32(2, 1), 3); + assert_eq!(addi_si32(3, 0), 3); + assert_eq!(addi_si32(0, 4), 4); + assert_eq!(addi_si32(1, 3), 4); + assert_eq!(addi_si32(2, 2), 4); + assert_eq!(addi_si32(3, 1), 4); + assert_eq!(addi_si32(4, 0), 4); + assert_eq!(addi_si32(1, 4), 5); + assert_eq!(addi_si32(2, 3), 5); + assert_eq!(addi_si32(3, 2), 5); + assert_eq!(addi_si32(4, 1), 5); + assert_eq!(addi_si32(2, 4), 6); + assert_eq!(addi_si32(3, 3), 6); + assert_eq!(addi_si32(4, 2), 6); + assert_eq!(addi_si32(3, 4), 7); + assert_eq!(addi_si32(4, 3), 7); + assert_eq!(addi_si32(4, 4), 8); + assert_eq!(addi_si32(-1713183800, 2147483646), 434299846); + assert_eq!(addi_si32(2147483646, -1713183800), 434299846); + assert_eq!(addi_si32(-1713183800, 2147483647), 434299847); + assert_eq!(addi_si32(2147483647, -1713183800), 434299847); + assert_eq!(addi_si32(-1252582164, 2147483646), 894901482); + assert_eq!(addi_si32(2147483646, -1252582164), 894901482); + assert_eq!(addi_si32(-1252582164, 2147483647), 894901483); + assert_eq!(addi_si32(2147483647, -1252582164), 894901483); + assert_eq!(addi_si32(-1035405763, 2147483646), 1112077883); + assert_eq!(addi_si32(2147483646, -1035405763), 1112077883); + assert_eq!(addi_si32(-1035405763, 2147483647), 1112077884); + assert_eq!(addi_si32(2147483647, -1035405763), 1112077884); + assert_eq!(addi_si32(0, 2147483646), 2147483646); + assert_eq!(addi_si32(2147483646, 0), 2147483646); + assert_eq!(addi_si32(0, 2147483647), 2147483647); + assert_eq!(addi_si32(1, 2147483646), 2147483647); + assert_eq!(addi_si32(2147483646, 1), 2147483647); + assert_eq!(addi_si32(2147483647, 0), 2147483647); + assert_eq!(addi_si64(-9223372036854775808, 0), -9223372036854775808); + assert_eq!(addi_si64(0, -9223372036854775808), -9223372036854775808); + assert_eq!(addi_si64(-9223372036854775808, 1), -9223372036854775807); + assert_eq!(addi_si64(-9223372036854775807, 0), -9223372036854775807); + assert_eq!(addi_si64(0, -9223372036854775807), -9223372036854775807); + assert_eq!(addi_si64(1, -9223372036854775808), -9223372036854775807); + assert_eq!(addi_si64(-9223372036854775808, 2), -9223372036854775806); + assert_eq!(addi_si64(-9223372036854775807, 1), -9223372036854775806); + assert_eq!(addi_si64(1, -9223372036854775807), -9223372036854775806); + assert_eq!(addi_si64(2, -9223372036854775808), -9223372036854775806); + assert_eq!(addi_si64(-9223372036854775808, 3), -9223372036854775805); + assert_eq!(addi_si64(-9223372036854775807, 2), -9223372036854775805); + assert_eq!(addi_si64(2, -9223372036854775807), -9223372036854775805); + assert_eq!(addi_si64(3, -9223372036854775808), -9223372036854775805); + assert_eq!(addi_si64(-9223372036854775808, 4), -9223372036854775804); + assert_eq!(addi_si64(-9223372036854775807, 3), -9223372036854775804); + assert_eq!(addi_si64(3, -9223372036854775807), -9223372036854775804); + assert_eq!(addi_si64(4, -9223372036854775808), -9223372036854775804); + assert_eq!(addi_si64(-9223372036854775807, 4), -9223372036854775803); + assert_eq!(addi_si64(4, -9223372036854775807), -9223372036854775803); + assert_eq!( + addi_si64(-9223372036854775808, 5577148965131116544), + -3646223071723659264 + ); + assert_eq!( + addi_si64(5577148965131116544, -9223372036854775808), + -3646223071723659264 + ); + assert_eq!( + addi_si64(-9223372036854775807, 5577148965131116544), + -3646223071723659263 + ); + assert_eq!( + addi_si64(5577148965131116544, -9223372036854775807), + -3646223071723659263 + ); + assert_eq!( + addi_si64(-1741927215160008704, -1741927215160008704), + -3483854430320017408 + ); + assert_eq!( + addi_si64(-1741927215160008704, -1328271339354574848), + -3070198554514583552 + ); + assert_eq!( + addi_si64(-1328271339354574848, -1741927215160008704), + -3070198554514583552 + ); + assert_eq!( + addi_si64(-1328271339354574848, -1328271339354574848), + -2656542678709149696 + ); + assert_eq!(addi_si64(-1741927215160008704, 0), -1741927215160008704); + assert_eq!(addi_si64(0, -1741927215160008704), -1741927215160008704); + assert_eq!(addi_si64(-1741927215160008704, 1), -1741927215160008703); + assert_eq!(addi_si64(1, -1741927215160008704), -1741927215160008703); + assert_eq!(addi_si64(-1741927215160008704, 2), -1741927215160008702); + assert_eq!(addi_si64(2, -1741927215160008704), -1741927215160008702); + assert_eq!(addi_si64(-1741927215160008704, 3), -1741927215160008701); + assert_eq!(addi_si64(3, -1741927215160008704), -1741927215160008701); + assert_eq!(addi_si64(-1741927215160008704, 4), -1741927215160008700); + assert_eq!(addi_si64(4, -1741927215160008704), -1741927215160008700); + assert_eq!(addi_si64(-1328271339354574848, 0), -1328271339354574848); + assert_eq!(addi_si64(0, -1328271339354574848), -1328271339354574848); + assert_eq!(addi_si64(-1328271339354574848, 1), -1328271339354574847); + assert_eq!(addi_si64(1, -1328271339354574848), -1328271339354574847); + assert_eq!(addi_si64(-1328271339354574848, 2), -1328271339354574846); + assert_eq!(addi_si64(2, -1328271339354574848), -1328271339354574846); + assert_eq!(addi_si64(-1328271339354574848, 3), -1328271339354574845); + assert_eq!(addi_si64(3, -1328271339354574848), -1328271339354574845); + assert_eq!(addi_si64(-1328271339354574848, 4), -1328271339354574844); + assert_eq!(addi_si64(4, -1328271339354574848), -1328271339354574844); + assert_eq!(addi_si64(-9223372036854775808, 9223372036854775806), -2); + assert_eq!(addi_si64(9223372036854775806, -9223372036854775808), -2); + assert_eq!(addi_si64(-9223372036854775808, 9223372036854775807), -1); + assert_eq!(addi_si64(-9223372036854775807, 9223372036854775806), -1); + assert_eq!(addi_si64(9223372036854775806, -9223372036854775807), -1); + assert_eq!(addi_si64(9223372036854775807, -9223372036854775808), -1); + assert_eq!(addi_si64(-9223372036854775807, 9223372036854775807), 0); + assert_eq!(addi_si64(0, 0), 0); + assert_eq!(addi_si64(9223372036854775807, -9223372036854775807), 0); + assert_eq!(addi_si64(0, 1), 1); + assert_eq!(addi_si64(1, 0), 1); + assert_eq!(addi_si64(0, 2), 2); + assert_eq!(addi_si64(1, 1), 2); + assert_eq!(addi_si64(2, 0), 2); + assert_eq!(addi_si64(0, 3), 3); + assert_eq!(addi_si64(1, 2), 3); + assert_eq!(addi_si64(2, 1), 3); + assert_eq!(addi_si64(3, 0), 3); + assert_eq!(addi_si64(0, 4), 4); + assert_eq!(addi_si64(1, 3), 4); + assert_eq!(addi_si64(2, 2), 4); + assert_eq!(addi_si64(3, 1), 4); + assert_eq!(addi_si64(4, 0), 4); + assert_eq!(addi_si64(1, 4), 5); + assert_eq!(addi_si64(2, 3), 5); + assert_eq!(addi_si64(3, 2), 5); + assert_eq!(addi_si64(4, 1), 5); + assert_eq!(addi_si64(2, 4), 6); + assert_eq!(addi_si64(3, 3), 6); + assert_eq!(addi_si64(4, 2), 6); + assert_eq!(addi_si64(3, 4), 7); + assert_eq!(addi_si64(4, 3), 7); + assert_eq!(addi_si64(4, 4), 8); + assert_eq!( + addi_si64(-1741927215160008704, 5577148965131116544), + 3835221749971107840 + ); + assert_eq!( + addi_si64(5577148965131116544, -1741927215160008704), + 3835221749971107840 + ); + assert_eq!( + addi_si64(-1328271339354574848, 5577148965131116544), + 4248877625776541696 + ); + assert_eq!( + addi_si64(5577148965131116544, -1328271339354574848), + 4248877625776541696 + ); + assert_eq!(addi_si64(0, 5577148965131116544), 5577148965131116544); + assert_eq!(addi_si64(5577148965131116544, 0), 5577148965131116544); + assert_eq!(addi_si64(1, 5577148965131116544), 5577148965131116545); + assert_eq!(addi_si64(5577148965131116544, 1), 5577148965131116545); + assert_eq!(addi_si64(2, 5577148965131116544), 5577148965131116546); + assert_eq!(addi_si64(5577148965131116544, 2), 5577148965131116546); + assert_eq!(addi_si64(3, 5577148965131116544), 5577148965131116547); + assert_eq!(addi_si64(5577148965131116544, 3), 5577148965131116547); + assert_eq!(addi_si64(4, 5577148965131116544), 5577148965131116548); + assert_eq!(addi_si64(5577148965131116544, 4), 5577148965131116548); + assert_eq!( + addi_si64(-1741927215160008704, 9223372036854775806), + 7481444821694767102 + ); + assert_eq!( + addi_si64(9223372036854775806, -1741927215160008704), + 7481444821694767102 + ); + assert_eq!( + addi_si64(-1741927215160008704, 9223372036854775807), + 7481444821694767103 + ); + assert_eq!( + addi_si64(9223372036854775807, -1741927215160008704), + 7481444821694767103 + ); + assert_eq!( + addi_si64(-1328271339354574848, 9223372036854775806), + 7895100697500200958 + ); + assert_eq!( + addi_si64(9223372036854775806, -1328271339354574848), + 7895100697500200958 + ); + assert_eq!( + addi_si64(-1328271339354574848, 9223372036854775807), + 7895100697500200959 + ); + assert_eq!( + addi_si64(9223372036854775807, -1328271339354574848), + 7895100697500200959 + ); + assert_eq!(addi_si64(0, 9223372036854775806), 9223372036854775806); + assert_eq!(addi_si64(9223372036854775806, 0), 9223372036854775806); + assert_eq!(addi_si64(0, 9223372036854775807), 9223372036854775807); + assert_eq!(addi_si64(1, 9223372036854775806), 9223372036854775807); + assert_eq!(addi_si64(9223372036854775806, 1), 9223372036854775807); + assert_eq!(addi_si64(9223372036854775807, 0), 9223372036854775807); + assert_eq!(addi_si8(-128, 0), -128); + assert_eq!(addi_si8(0, -128), -128); + assert_eq!(addi_si8(-128, 1), -127); + assert_eq!(addi_si8(-127, 0), -127); + assert_eq!(addi_si8(0, -127), -127); + assert_eq!(addi_si8(1, -128), -127); + assert_eq!(addi_si8(-128, 2), -126); + assert_eq!(addi_si8(-127, 1), -126); + assert_eq!(addi_si8(1, -127), -126); + assert_eq!(addi_si8(2, -128), -126); + assert_eq!(addi_si8(-128, 3), -125); + assert_eq!(addi_si8(-127, 2), -125); + assert_eq!(addi_si8(2, -127), -125); + assert_eq!(addi_si8(3, -128), -125); + assert_eq!(addi_si8(-128, 4), -124); + assert_eq!(addi_si8(-127, 3), -124); + assert_eq!(addi_si8(3, -127), -124); + assert_eq!(addi_si8(4, -128), -124); + assert_eq!(addi_si8(-127, 4), -123); + assert_eq!(addi_si8(4, -127), -123); + assert_eq!(addi_si8(-128, 16), -112); + assert_eq!(addi_si8(16, -128), -112); + assert_eq!(addi_si8(-127, 16), -111); + assert_eq!(addi_si8(16, -127), -111); + assert_eq!(addi_si8(-128, 126), -2); + assert_eq!(addi_si8(126, -128), -2); + assert_eq!(addi_si8(-128, 127), -1); + assert_eq!(addi_si8(-127, 126), -1); + assert_eq!(addi_si8(126, -127), -1); + assert_eq!(addi_si8(127, -128), -1); + assert_eq!(addi_si8(-127, 127), 0); + assert_eq!(addi_si8(0, 0), 0); + assert_eq!(addi_si8(127, -127), 0); + assert_eq!(addi_si8(0, 1), 1); + assert_eq!(addi_si8(1, 0), 1); + assert_eq!(addi_si8(0, 2), 2); + assert_eq!(addi_si8(1, 1), 2); + assert_eq!(addi_si8(2, 0), 2); + assert_eq!(addi_si8(0, 3), 3); + assert_eq!(addi_si8(1, 2), 3); + assert_eq!(addi_si8(2, 1), 3); + assert_eq!(addi_si8(3, 0), 3); + assert_eq!(addi_si8(0, 4), 4); + assert_eq!(addi_si8(1, 3), 4); + assert_eq!(addi_si8(2, 2), 4); + assert_eq!(addi_si8(3, 1), 4); + assert_eq!(addi_si8(4, 0), 4); + assert_eq!(addi_si8(1, 4), 5); + assert_eq!(addi_si8(2, 3), 5); + assert_eq!(addi_si8(3, 2), 5); + assert_eq!(addi_si8(4, 1), 5); + assert_eq!(addi_si8(2, 4), 6); + assert_eq!(addi_si8(3, 3), 6); + assert_eq!(addi_si8(4, 2), 6); + assert_eq!(addi_si8(3, 4), 7); + assert_eq!(addi_si8(4, 3), 7); + assert_eq!(addi_si8(4, 4), 8); + assert_eq!(addi_si8(0, 16), 16); + assert_eq!(addi_si8(16, 0), 16); + assert_eq!(addi_si8(1, 16), 17); + assert_eq!(addi_si8(16, 1), 17); + assert_eq!(addi_si8(2, 16), 18); + assert_eq!(addi_si8(16, 2), 18); + assert_eq!(addi_si8(3, 16), 19); + assert_eq!(addi_si8(16, 3), 19); + assert_eq!(addi_si8(4, 16), 20); + assert_eq!(addi_si8(16, 4), 20); + assert_eq!(addi_si8(16, 16), 32); + assert_eq!(addi_si8(0, 126), 126); + assert_eq!(addi_si8(126, 0), 126); + assert_eq!(addi_si8(0, 127), 127); + assert_eq!(addi_si8(1, 126), 127); + assert_eq!(addi_si8(126, 1), 127); + assert_eq!(addi_si8(127, 0), 127); + assert_eq!(addi_ui16(0, 0), 0); + assert_eq!(addi_ui16(0, 1), 1); + assert_eq!(addi_ui16(1, 0), 1); + assert_eq!(addi_ui16(0, 2), 2); + assert_eq!(addi_ui16(1, 1), 2); + assert_eq!(addi_ui16(2, 0), 2); + assert_eq!(addi_ui16(0, 3), 3); + assert_eq!(addi_ui16(1, 2), 3); + assert_eq!(addi_ui16(2, 1), 3); + assert_eq!(addi_ui16(3, 0), 3); + assert_eq!(addi_ui16(0, 4), 4); + assert_eq!(addi_ui16(1, 3), 4); + assert_eq!(addi_ui16(2, 2), 4); + assert_eq!(addi_ui16(3, 1), 4); + assert_eq!(addi_ui16(4, 0), 4); + assert_eq!(addi_ui16(1, 4), 5); + assert_eq!(addi_ui16(2, 3), 5); + assert_eq!(addi_ui16(3, 2), 5); + assert_eq!(addi_ui16(4, 1), 5); + assert_eq!(addi_ui16(2, 4), 6); + assert_eq!(addi_ui16(3, 3), 6); + assert_eq!(addi_ui16(4, 2), 6); + assert_eq!(addi_ui16(3, 4), 7); + assert_eq!(addi_ui16(4, 3), 7); + assert_eq!(addi_ui16(4, 4), 8); + assert_eq!(addi_ui16(0, 1717), 1717); + assert_eq!(addi_ui16(1717, 0), 1717); + assert_eq!(addi_ui16(1, 1717), 1718); + assert_eq!(addi_ui16(1717, 1), 1718); + assert_eq!(addi_ui16(2, 1717), 1719); + assert_eq!(addi_ui16(1717, 2), 1719); + assert_eq!(addi_ui16(3, 1717), 1720); + assert_eq!(addi_ui16(1717, 3), 1720); + assert_eq!(addi_ui16(4, 1717), 1721); + assert_eq!(addi_ui16(1717, 4), 1721); + assert_eq!(addi_ui16(1717, 1717), 3434); + assert_eq!(addi_ui16(0, 17988), 17988); + assert_eq!(addi_ui16(17988, 0), 17988); + assert_eq!(addi_ui16(1, 17988), 17989); + assert_eq!(addi_ui16(17988, 1), 17989); + assert_eq!(addi_ui16(2, 17988), 17990); + assert_eq!(addi_ui16(17988, 2), 17990); + assert_eq!(addi_ui16(3, 17988), 17991); + assert_eq!(addi_ui16(17988, 3), 17991); + assert_eq!(addi_ui16(4, 17988), 17992); + assert_eq!(addi_ui16(17988, 4), 17992); + assert_eq!(addi_ui16(1717, 17988), 19705); + assert_eq!(addi_ui16(17988, 1717), 19705); + assert_eq!(addi_ui16(17988, 17988), 35976); + assert_eq!(addi_ui16(0, 65096), 65096); + assert_eq!(addi_ui16(65096, 0), 65096); + assert_eq!(addi_ui16(1, 65096), 65097); + assert_eq!(addi_ui16(65096, 1), 65097); + assert_eq!(addi_ui16(2, 65096), 65098); + assert_eq!(addi_ui16(65096, 2), 65098); + assert_eq!(addi_ui16(3, 65096), 65099); + assert_eq!(addi_ui16(65096, 3), 65099); + assert_eq!(addi_ui16(4, 65096), 65100); + assert_eq!(addi_ui16(65096, 4), 65100); + assert_eq!(addi_ui16(0, 65534), 65534); + assert_eq!(addi_ui16(65534, 0), 65534); + assert_eq!(addi_ui16(0, 65535), 65535); + assert_eq!(addi_ui16(1, 65534), 65535); + assert_eq!(addi_ui16(65534, 1), 65535); + assert_eq!(addi_ui16(65535, 0), 65535); + assert_eq!(addi_ui32(0, 0), 0); + assert_eq!(addi_ui32(0, 1), 1); + assert_eq!(addi_ui32(1, 0), 1); + assert_eq!(addi_ui32(0, 2), 2); + assert_eq!(addi_ui32(1, 1), 2); + assert_eq!(addi_ui32(2, 0), 2); + assert_eq!(addi_ui32(0, 3), 3); + assert_eq!(addi_ui32(1, 2), 3); + assert_eq!(addi_ui32(2, 1), 3); + assert_eq!(addi_ui32(3, 0), 3); + assert_eq!(addi_ui32(0, 4), 4); + assert_eq!(addi_ui32(1, 3), 4); + assert_eq!(addi_ui32(2, 2), 4); + assert_eq!(addi_ui32(3, 1), 4); + assert_eq!(addi_ui32(4, 0), 4); + assert_eq!(addi_ui32(1, 4), 5); + assert_eq!(addi_ui32(2, 3), 5); + assert_eq!(addi_ui32(3, 2), 5); + assert_eq!(addi_ui32(4, 1), 5); + assert_eq!(addi_ui32(2, 4), 6); + assert_eq!(addi_ui32(3, 3), 6); + assert_eq!(addi_ui32(4, 2), 6); + assert_eq!(addi_ui32(3, 4), 7); + assert_eq!(addi_ui32(4, 3), 7); + assert_eq!(addi_ui32(4, 4), 8); + assert_eq!(addi_ui32(0, 2119154652), 2119154652); + assert_eq!(addi_ui32(2119154652, 0), 2119154652); + assert_eq!(addi_ui32(1, 2119154652), 2119154653); + assert_eq!(addi_ui32(2119154652, 1), 2119154653); + assert_eq!(addi_ui32(2, 2119154652), 2119154654); + assert_eq!(addi_ui32(2119154652, 2), 2119154654); + assert_eq!(addi_ui32(3, 2119154652), 2119154655); + assert_eq!(addi_ui32(2119154652, 3), 2119154655); + assert_eq!(addi_ui32(4, 2119154652), 2119154656); + assert_eq!(addi_ui32(2119154652, 4), 2119154656); + assert_eq!(addi_ui32(0, 3002788344), 3002788344); + assert_eq!(addi_ui32(3002788344, 0), 3002788344); + assert_eq!(addi_ui32(1, 3002788344), 3002788345); + assert_eq!(addi_ui32(3002788344, 1), 3002788345); + assert_eq!(addi_ui32(2, 3002788344), 3002788346); + assert_eq!(addi_ui32(3002788344, 2), 3002788346); + assert_eq!(addi_ui32(3, 3002788344), 3002788347); + assert_eq!(addi_ui32(3002788344, 3), 3002788347); + assert_eq!(addi_ui32(4, 3002788344), 3002788348); + assert_eq!(addi_ui32(3002788344, 4), 3002788348); + assert_eq!(addi_ui32(0, 3482297128), 3482297128); + assert_eq!(addi_ui32(3482297128, 0), 3482297128); + assert_eq!(addi_ui32(1, 3482297128), 3482297129); + assert_eq!(addi_ui32(3482297128, 1), 3482297129); + assert_eq!(addi_ui32(2, 3482297128), 3482297130); + assert_eq!(addi_ui32(3482297128, 2), 3482297130); + assert_eq!(addi_ui32(3, 3482297128), 3482297131); + assert_eq!(addi_ui32(3482297128, 3), 3482297131); + assert_eq!(addi_ui32(4, 3482297128), 3482297132); + assert_eq!(addi_ui32(3482297128, 4), 3482297132); + assert_eq!(addi_ui32(2119154652, 2119154652), 4238309304); + assert_eq!(addi_ui32(0, 4294967294), 4294967294); + assert_eq!(addi_ui32(4294967294, 0), 4294967294); + assert_eq!(addi_ui32(0, 4294967295), 4294967295); + assert_eq!(addi_ui32(1, 4294967294), 4294967295); + assert_eq!(addi_ui32(4294967294, 1), 4294967295); + assert_eq!(addi_ui32(4294967295, 0), 4294967295); + assert_eq!(addi_ui64(0, 0), 0); + assert_eq!(addi_ui64(0, 1), 1); + assert_eq!(addi_ui64(1, 0), 1); + assert_eq!(addi_ui64(0, 2), 2); + assert_eq!(addi_ui64(1, 1), 2); + assert_eq!(addi_ui64(2, 0), 2); + assert_eq!(addi_ui64(0, 3), 3); + assert_eq!(addi_ui64(1, 2), 3); + assert_eq!(addi_ui64(2, 1), 3); + assert_eq!(addi_ui64(3, 0), 3); + assert_eq!(addi_ui64(0, 4), 4); + assert_eq!(addi_ui64(1, 3), 4); + assert_eq!(addi_ui64(2, 2), 4); + assert_eq!(addi_ui64(3, 1), 4); + assert_eq!(addi_ui64(4, 0), 4); + assert_eq!(addi_ui64(1, 4), 5); + assert_eq!(addi_ui64(2, 3), 5); + assert_eq!(addi_ui64(3, 2), 5); + assert_eq!(addi_ui64(4, 1), 5); + assert_eq!(addi_ui64(2, 4), 6); + assert_eq!(addi_ui64(3, 3), 6); + assert_eq!(addi_ui64(4, 2), 6); + assert_eq!(addi_ui64(3, 4), 7); + assert_eq!(addi_ui64(4, 3), 7); + assert_eq!(addi_ui64(4, 4), 8); + assert_eq!(addi_ui64(0, 191084152064409600), 191084152064409600); + assert_eq!(addi_ui64(191084152064409600, 0), 191084152064409600); + assert_eq!(addi_ui64(1, 191084152064409600), 191084152064409601); + assert_eq!(addi_ui64(191084152064409600, 1), 191084152064409601); + assert_eq!(addi_ui64(2, 191084152064409600), 191084152064409602); + assert_eq!(addi_ui64(191084152064409600, 2), 191084152064409602); + assert_eq!(addi_ui64(3, 191084152064409600), 191084152064409603); + assert_eq!(addi_ui64(191084152064409600, 3), 191084152064409603); + assert_eq!(addi_ui64(4, 191084152064409600), 191084152064409604); + assert_eq!(addi_ui64(191084152064409600, 4), 191084152064409604); + assert_eq!( + addi_ui64(191084152064409600, 191084152064409600), + 382168304128819200 + ); + assert_eq!(addi_ui64(0, 11015955194427482112), 11015955194427482112); + assert_eq!(addi_ui64(11015955194427482112, 0), 11015955194427482112); + assert_eq!(addi_ui64(1, 11015955194427482112), 11015955194427482113); + assert_eq!(addi_ui64(11015955194427482112, 1), 11015955194427482113); + assert_eq!(addi_ui64(2, 11015955194427482112), 11015955194427482114); + assert_eq!(addi_ui64(11015955194427482112, 2), 11015955194427482114); + assert_eq!(addi_ui64(3, 11015955194427482112), 11015955194427482115); + assert_eq!(addi_ui64(11015955194427482112, 3), 11015955194427482115); + assert_eq!(addi_ui64(4, 11015955194427482112), 11015955194427482116); + assert_eq!(addi_ui64(11015955194427482112, 4), 11015955194427482116); + assert_eq!( + addi_ui64(191084152064409600, 11015955194427482112), + 11207039346491891712 + ); + assert_eq!( + addi_ui64(11015955194427482112, 191084152064409600), + 11207039346491891712 + ); + assert_eq!(addi_ui64(0, 16990600415051759616), 16990600415051759616); + assert_eq!(addi_ui64(16990600415051759616, 0), 16990600415051759616); + assert_eq!(addi_ui64(1, 16990600415051759616), 16990600415051759617); + assert_eq!(addi_ui64(16990600415051759616, 1), 16990600415051759617); + assert_eq!(addi_ui64(2, 16990600415051759616), 16990600415051759618); + assert_eq!(addi_ui64(16990600415051759616, 2), 16990600415051759618); + assert_eq!(addi_ui64(3, 16990600415051759616), 16990600415051759619); + assert_eq!(addi_ui64(16990600415051759616, 3), 16990600415051759619); + assert_eq!(addi_ui64(4, 16990600415051759616), 16990600415051759620); + assert_eq!(addi_ui64(16990600415051759616, 4), 16990600415051759620); + assert_eq!( + addi_ui64(191084152064409600, 16990600415051759616), + 17181684567116169216 + ); + assert_eq!( + addi_ui64(16990600415051759616, 191084152064409600), + 17181684567116169216 + ); + assert_eq!(addi_ui64(0, 18446744073709551614), 18446744073709551614); + assert_eq!(addi_ui64(18446744073709551614, 0), 18446744073709551614); + assert_eq!(addi_ui64(0, 18446744073709551615), 18446744073709551615); + assert_eq!(addi_ui64(1, 18446744073709551614), 18446744073709551615); + assert_eq!(addi_ui64(18446744073709551614, 1), 18446744073709551615); + assert_eq!(addi_ui64(18446744073709551615, 0), 18446744073709551615); + assert_eq!(addi_ui8(0, 0), 0); + assert_eq!(addi_ui8(0, 1), 1); + assert_eq!(addi_ui8(1, 0), 1); + assert_eq!(addi_ui8(0, 2), 2); + assert_eq!(addi_ui8(1, 1), 2); + assert_eq!(addi_ui8(2, 0), 2); + assert_eq!(addi_ui8(0, 3), 3); + assert_eq!(addi_ui8(1, 2), 3); + assert_eq!(addi_ui8(2, 1), 3); + assert_eq!(addi_ui8(3, 0), 3); + assert_eq!(addi_ui8(0, 4), 4); + assert_eq!(addi_ui8(1, 3), 4); + assert_eq!(addi_ui8(2, 2), 4); + assert_eq!(addi_ui8(3, 1), 4); + assert_eq!(addi_ui8(4, 0), 4); + assert_eq!(addi_ui8(1, 4), 5); + assert_eq!(addi_ui8(2, 3), 5); + assert_eq!(addi_ui8(3, 2), 5); + assert_eq!(addi_ui8(4, 1), 5); + assert_eq!(addi_ui8(2, 4), 6); + assert_eq!(addi_ui8(3, 3), 6); + assert_eq!(addi_ui8(4, 2), 6); + assert_eq!(addi_ui8(3, 4), 7); + assert_eq!(addi_ui8(4, 3), 7); + assert_eq!(addi_ui8(4, 4), 8); + assert_eq!(addi_ui8(0, 72), 72); + assert_eq!(addi_ui8(72, 0), 72); + assert_eq!(addi_ui8(1, 72), 73); + assert_eq!(addi_ui8(72, 1), 73); + assert_eq!(addi_ui8(2, 72), 74); + assert_eq!(addi_ui8(72, 2), 74); + assert_eq!(addi_ui8(3, 72), 75); + assert_eq!(addi_ui8(72, 3), 75); + assert_eq!(addi_ui8(4, 72), 76); + assert_eq!(addi_ui8(72, 4), 76); + assert_eq!(addi_ui8(0, 100), 100); + assert_eq!(addi_ui8(100, 0), 100); + assert_eq!(addi_ui8(1, 100), 101); + assert_eq!(addi_ui8(100, 1), 101); + assert_eq!(addi_ui8(2, 100), 102); + assert_eq!(addi_ui8(100, 2), 102); + assert_eq!(addi_ui8(3, 100), 103); + assert_eq!(addi_ui8(100, 3), 103); + assert_eq!(addi_ui8(4, 100), 104); + assert_eq!(addi_ui8(100, 4), 104); + assert_eq!(addi_ui8(72, 72), 144); + assert_eq!(addi_ui8(0, 162), 162); + assert_eq!(addi_ui8(162, 0), 162); + assert_eq!(addi_ui8(1, 162), 163); + assert_eq!(addi_ui8(162, 1), 163); + assert_eq!(addi_ui8(2, 162), 164); + assert_eq!(addi_ui8(162, 2), 164); + assert_eq!(addi_ui8(3, 162), 165); + assert_eq!(addi_ui8(162, 3), 165); + assert_eq!(addi_ui8(4, 162), 166); + assert_eq!(addi_ui8(162, 4), 166); + assert_eq!(addi_ui8(72, 100), 172); + assert_eq!(addi_ui8(100, 72), 172); + assert_eq!(addi_ui8(100, 100), 200); + assert_eq!(addi_ui8(72, 162), 234); + assert_eq!(addi_ui8(162, 72), 234); + assert_eq!(addi_ui8(0, 254), 254); + assert_eq!(addi_ui8(254, 0), 254); + assert_eq!(addi_ui8(0, 255), 255); + assert_eq!(addi_ui8(1, 254), 255); + assert_eq!(addi_ui8(254, 1), 255); + assert_eq!(addi_ui8(255, 0), 255); + assert_eq!(divi_si16(-32768, 1), -32768); + assert_eq!(divi_si16(-32767, 1), -32767); + assert_eq!(divi_si16(-32547, 1), -32547); + assert_eq!(divi_si16(-32768, 2), -16384); + assert_eq!(divi_si16(-32767, 2), -16383); + assert_eq!(divi_si16(-32547, 2), -16273); + assert_eq!(divi_si16(-32768, 3), -10922); + assert_eq!(divi_si16(-32767, 3), -10922); + assert_eq!(divi_si16(-32547, 3), -10849); + assert_eq!(divi_si16(-32768, 4), -8192); + assert_eq!(divi_si16(-32767, 4), -8191); + assert_eq!(divi_si16(-32547, 4), -8136); + assert_eq!(divi_si16(-32768, 10486), -3); + assert_eq!(divi_si16(-32767, 10486), -3); + assert_eq!(divi_si16(-32547, 10486), -3); + assert_eq!(divi_si16(-32768, 16514), -1); + assert_eq!(divi_si16(-32768, 32766), -1); + assert_eq!(divi_si16(-32768, 32767), -1); + assert_eq!(divi_si16(-32767, 16514), -1); + assert_eq!(divi_si16(-32767, 32766), -1); + assert_eq!(divi_si16(-32767, 32767), -1); + assert_eq!(divi_si16(-32547, 16514), -1); + assert_eq!(divi_si16(32766, -32547), -1); + assert_eq!(divi_si16(32767, -32767), -1); + assert_eq!(divi_si16(32767, -32547), -1); + assert_eq!(divi_si16(-32767, -32768), 0); + assert_eq!(divi_si16(-32547, -32768), 0); + assert_eq!(divi_si16(-32547, -32767), 0); + assert_eq!(divi_si16(-32547, 32766), 0); + assert_eq!(divi_si16(-32547, 32767), 0); + assert_eq!(divi_si16(0, -32768), 0); + assert_eq!(divi_si16(0, -32767), 0); + assert_eq!(divi_si16(0, -32547), 0); + assert_eq!(divi_si16(0, 1), 0); + assert_eq!(divi_si16(0, 2), 0); + assert_eq!(divi_si16(0, 3), 0); + assert_eq!(divi_si16(0, 4), 0); + assert_eq!(divi_si16(0, 10486), 0); + assert_eq!(divi_si16(0, 16514), 0); + assert_eq!(divi_si16(0, 32766), 0); + assert_eq!(divi_si16(0, 32767), 0); + assert_eq!(divi_si16(1, -32768), 0); + assert_eq!(divi_si16(1, -32767), 0); + assert_eq!(divi_si16(1, -32547), 0); + assert_eq!(divi_si16(1, 2), 0); + assert_eq!(divi_si16(1, 3), 0); + assert_eq!(divi_si16(1, 4), 0); + assert_eq!(divi_si16(1, 10486), 0); + assert_eq!(divi_si16(1, 16514), 0); + assert_eq!(divi_si16(1, 32766), 0); + assert_eq!(divi_si16(1, 32767), 0); + assert_eq!(divi_si16(2, -32768), 0); + assert_eq!(divi_si16(2, -32767), 0); + assert_eq!(divi_si16(2, -32547), 0); + assert_eq!(divi_si16(2, 3), 0); + assert_eq!(divi_si16(2, 4), 0); + assert_eq!(divi_si16(2, 10486), 0); + assert_eq!(divi_si16(2, 16514), 0); + assert_eq!(divi_si16(2, 32766), 0); + assert_eq!(divi_si16(2, 32767), 0); + assert_eq!(divi_si16(3, -32768), 0); + assert_eq!(divi_si16(3, -32767), 0); + assert_eq!(divi_si16(3, -32547), 0); + assert_eq!(divi_si16(3, 4), 0); + assert_eq!(divi_si16(3, 10486), 0); + assert_eq!(divi_si16(3, 16514), 0); + assert_eq!(divi_si16(3, 32766), 0); + assert_eq!(divi_si16(3, 32767), 0); + assert_eq!(divi_si16(4, -32768), 0); + assert_eq!(divi_si16(4, -32767), 0); + assert_eq!(divi_si16(4, -32547), 0); + assert_eq!(divi_si16(4, 10486), 0); + assert_eq!(divi_si16(4, 16514), 0); + assert_eq!(divi_si16(4, 32766), 0); + assert_eq!(divi_si16(4, 32767), 0); + assert_eq!(divi_si16(10486, -32768), 0); + assert_eq!(divi_si16(10486, -32767), 0); + assert_eq!(divi_si16(10486, -32547), 0); + assert_eq!(divi_si16(10486, 16514), 0); + assert_eq!(divi_si16(10486, 32766), 0); + assert_eq!(divi_si16(10486, 32767), 0); + assert_eq!(divi_si16(16514, -32768), 0); + assert_eq!(divi_si16(16514, -32767), 0); + assert_eq!(divi_si16(16514, -32547), 0); + assert_eq!(divi_si16(16514, 32766), 0); + assert_eq!(divi_si16(16514, 32767), 0); + assert_eq!(divi_si16(32766, -32768), 0); + assert_eq!(divi_si16(32766, -32767), 0); + assert_eq!(divi_si16(32766, 32767), 0); + assert_eq!(divi_si16(32767, -32768), 0); + assert_eq!(divi_si16(-32768, -32768), 1); + assert_eq!(divi_si16(-32768, -32767), 1); + assert_eq!(divi_si16(-32768, -32547), 1); + assert_eq!(divi_si16(-32767, -32767), 1); + assert_eq!(divi_si16(-32767, -32547), 1); + assert_eq!(divi_si16(-32547, -32547), 1); + assert_eq!(divi_si16(1, 1), 1); + assert_eq!(divi_si16(2, 2), 1); + assert_eq!(divi_si16(3, 2), 1); + assert_eq!(divi_si16(3, 3), 1); + assert_eq!(divi_si16(4, 3), 1); + assert_eq!(divi_si16(4, 4), 1); + assert_eq!(divi_si16(10486, 10486), 1); + assert_eq!(divi_si16(16514, 10486), 1); + assert_eq!(divi_si16(16514, 16514), 1); + assert_eq!(divi_si16(32766, 16514), 1); + assert_eq!(divi_si16(32766, 32766), 1); + assert_eq!(divi_si16(32767, 16514), 1); + assert_eq!(divi_si16(32767, 32766), 1); + assert_eq!(divi_si16(32767, 32767), 1); + assert_eq!(divi_si16(2, 1), 2); + assert_eq!(divi_si16(4, 2), 2); + assert_eq!(divi_si16(3, 1), 3); + assert_eq!(divi_si16(32766, 10486), 3); + assert_eq!(divi_si16(32767, 10486), 3); + assert_eq!(divi_si16(4, 1), 4); + assert_eq!(divi_si16(10486, 4), 2621); + assert_eq!(divi_si16(10486, 3), 3495); + assert_eq!(divi_si16(16514, 4), 4128); + assert_eq!(divi_si16(10486, 2), 5243); + assert_eq!(divi_si16(16514, 3), 5504); + assert_eq!(divi_si16(32766, 4), 8191); + assert_eq!(divi_si16(32767, 4), 8191); + assert_eq!(divi_si16(16514, 2), 8257); + assert_eq!(divi_si16(10486, 1), 10486); + assert_eq!(divi_si16(32766, 3), 10922); + assert_eq!(divi_si16(32767, 3), 10922); + assert_eq!(divi_si16(32766, 2), 16383); + assert_eq!(divi_si16(32767, 2), 16383); + assert_eq!(divi_si16(16514, 1), 16514); + assert_eq!(divi_si16(32766, 1), 32766); + assert_eq!(divi_si16(32767, 1), 32767); + assert_eq!(divi_si32(-2147483648, 1), -2147483648); + assert_eq!(divi_si32(-2147483647, 1), -2147483647); + assert_eq!(divi_si32(-1713183800, 1), -1713183800); + assert_eq!(divi_si32(-1252582164, 1), -1252582164); + assert_eq!(divi_si32(-2147483648, 2), -1073741824); + assert_eq!(divi_si32(-2147483647, 2), -1073741823); + assert_eq!(divi_si32(-1035405763, 1), -1035405763); + assert_eq!(divi_si32(-1713183800, 2), -856591900); + assert_eq!(divi_si32(-2147483648, 3), -715827882); + assert_eq!(divi_si32(-2147483647, 3), -715827882); + assert_eq!(divi_si32(-1252582164, 2), -626291082); + assert_eq!(divi_si32(-1713183800, 3), -571061266); + assert_eq!(divi_si32(-2147483648, 4), -536870912); + assert_eq!(divi_si32(-2147483647, 4), -536870911); + assert_eq!(divi_si32(-1035405763, 2), -517702881); + assert_eq!(divi_si32(-1713183800, 4), -428295950); + assert_eq!(divi_si32(-1252582164, 3), -417527388); + assert_eq!(divi_si32(-1035405763, 3), -345135254); + assert_eq!(divi_si32(-1252582164, 4), -313145541); + assert_eq!(divi_si32(-1035405763, 4), -258851440); + assert_eq!(divi_si32(2147483646, -1035405763), -2); + assert_eq!(divi_si32(2147483647, -1035405763), -2); + assert_eq!(divi_si32(-2147483648, 2147483646), -1); + assert_eq!(divi_si32(-2147483648, 2147483647), -1); + assert_eq!(divi_si32(-2147483647, 2147483646), -1); + assert_eq!(divi_si32(-2147483647, 2147483647), -1); + assert_eq!(divi_si32(2147483646, -1713183800), -1); + assert_eq!(divi_si32(2147483646, -1252582164), -1); + assert_eq!(divi_si32(2147483647, -2147483647), -1); + assert_eq!(divi_si32(2147483647, -1713183800), -1); + assert_eq!(divi_si32(2147483647, -1252582164), -1); + assert_eq!(divi_si32(-2147483647, -2147483648), 0); + assert_eq!(divi_si32(-1713183800, -2147483648), 0); + assert_eq!(divi_si32(-1713183800, -2147483647), 0); + assert_eq!(divi_si32(-1713183800, 2147483646), 0); + assert_eq!(divi_si32(-1713183800, 2147483647), 0); + assert_eq!(divi_si32(-1252582164, -2147483648), 0); + assert_eq!(divi_si32(-1252582164, -2147483647), 0); + assert_eq!(divi_si32(-1252582164, -1713183800), 0); + assert_eq!(divi_si32(-1252582164, 2147483646), 0); + assert_eq!(divi_si32(-1252582164, 2147483647), 0); + assert_eq!(divi_si32(-1035405763, -2147483648), 0); + assert_eq!(divi_si32(-1035405763, -2147483647), 0); + assert_eq!(divi_si32(-1035405763, -1713183800), 0); + assert_eq!(divi_si32(-1035405763, -1252582164), 0); + assert_eq!(divi_si32(-1035405763, 2147483646), 0); + assert_eq!(divi_si32(-1035405763, 2147483647), 0); + assert_eq!(divi_si32(0, -2147483648), 0); + assert_eq!(divi_si32(0, -2147483647), 0); + assert_eq!(divi_si32(0, -1713183800), 0); + assert_eq!(divi_si32(0, -1252582164), 0); + assert_eq!(divi_si32(0, -1035405763), 0); + assert_eq!(divi_si32(0, 1), 0); + assert_eq!(divi_si32(0, 2), 0); + assert_eq!(divi_si32(0, 3), 0); + assert_eq!(divi_si32(0, 4), 0); + assert_eq!(divi_si32(0, 2147483646), 0); + assert_eq!(divi_si32(0, 2147483647), 0); + assert_eq!(divi_si32(1, -2147483648), 0); + assert_eq!(divi_si32(1, -2147483647), 0); + assert_eq!(divi_si32(1, -1713183800), 0); + assert_eq!(divi_si32(1, -1252582164), 0); + assert_eq!(divi_si32(1, -1035405763), 0); + assert_eq!(divi_si32(1, 2), 0); + assert_eq!(divi_si32(1, 3), 0); + assert_eq!(divi_si32(1, 4), 0); + assert_eq!(divi_si32(1, 2147483646), 0); + assert_eq!(divi_si32(1, 2147483647), 0); + assert_eq!(divi_si32(2, -2147483648), 0); + assert_eq!(divi_si32(2, -2147483647), 0); + assert_eq!(divi_si32(2, -1713183800), 0); + assert_eq!(divi_si32(2, -1252582164), 0); + assert_eq!(divi_si32(2, -1035405763), 0); + assert_eq!(divi_si32(2, 3), 0); + assert_eq!(divi_si32(2, 4), 0); + assert_eq!(divi_si32(2, 2147483646), 0); + assert_eq!(divi_si32(2, 2147483647), 0); + assert_eq!(divi_si32(3, -2147483648), 0); + assert_eq!(divi_si32(3, -2147483647), 0); + assert_eq!(divi_si32(3, -1713183800), 0); + assert_eq!(divi_si32(3, -1252582164), 0); + assert_eq!(divi_si32(3, -1035405763), 0); + assert_eq!(divi_si32(3, 4), 0); + assert_eq!(divi_si32(3, 2147483646), 0); + assert_eq!(divi_si32(3, 2147483647), 0); + assert_eq!(divi_si32(4, -2147483648), 0); + assert_eq!(divi_si32(4, -2147483647), 0); + assert_eq!(divi_si32(4, -1713183800), 0); + assert_eq!(divi_si32(4, -1252582164), 0); + assert_eq!(divi_si32(4, -1035405763), 0); + assert_eq!(divi_si32(4, 2147483646), 0); + assert_eq!(divi_si32(4, 2147483647), 0); + assert_eq!(divi_si32(2147483646, -2147483648), 0); + assert_eq!(divi_si32(2147483646, -2147483647), 0); + assert_eq!(divi_si32(2147483646, 2147483647), 0); + assert_eq!(divi_si32(2147483647, -2147483648), 0); + assert_eq!(divi_si32(-2147483648, -2147483648), 1); + assert_eq!(divi_si32(-2147483648, -2147483647), 1); + assert_eq!(divi_si32(-2147483648, -1713183800), 1); + assert_eq!(divi_si32(-2147483648, -1252582164), 1); + assert_eq!(divi_si32(-2147483647, -2147483647), 1); + assert_eq!(divi_si32(-2147483647, -1713183800), 1); + assert_eq!(divi_si32(-2147483647, -1252582164), 1); + assert_eq!(divi_si32(-1713183800, -1713183800), 1); + assert_eq!(divi_si32(-1713183800, -1252582164), 1); + assert_eq!(divi_si32(-1713183800, -1035405763), 1); + assert_eq!(divi_si32(-1252582164, -1252582164), 1); + assert_eq!(divi_si32(-1252582164, -1035405763), 1); + assert_eq!(divi_si32(-1035405763, -1035405763), 1); + assert_eq!(divi_si32(1, 1), 1); + assert_eq!(divi_si32(2, 2), 1); + assert_eq!(divi_si32(3, 2), 1); + assert_eq!(divi_si32(3, 3), 1); + assert_eq!(divi_si32(4, 3), 1); + assert_eq!(divi_si32(4, 4), 1); + assert_eq!(divi_si32(2147483646, 2147483646), 1); + assert_eq!(divi_si32(2147483647, 2147483646), 1); + assert_eq!(divi_si32(2147483647, 2147483647), 1); + assert_eq!(divi_si32(-2147483648, -1035405763), 2); + assert_eq!(divi_si32(-2147483647, -1035405763), 2); + assert_eq!(divi_si32(2, 1), 2); + assert_eq!(divi_si32(4, 2), 2); + assert_eq!(divi_si32(3, 1), 3); + assert_eq!(divi_si32(4, 1), 4); + assert_eq!(divi_si32(2147483646, 4), 536870911); + assert_eq!(divi_si32(2147483647, 4), 536870911); + assert_eq!(divi_si32(2147483646, 3), 715827882); + assert_eq!(divi_si32(2147483647, 3), 715827882); + assert_eq!(divi_si32(2147483646, 2), 1073741823); + assert_eq!(divi_si32(2147483647, 2), 1073741823); + assert_eq!(divi_si32(2147483646, 1), 2147483646); + assert_eq!(divi_si32(2147483647, 1), 2147483647); + assert_eq!(divi_si64(-9223372036854775808, 1), -9223372036854775808); + assert_eq!(divi_si64(-9223372036854775807, 1), -9223372036854775807); + assert_eq!(divi_si64(-9223372036854775808, 2), -4611686018427387904); + assert_eq!(divi_si64(-9223372036854775807, 2), -4611686018427387903); + assert_eq!(divi_si64(-9223372036854775808, 3), -3074457345618258602); + assert_eq!(divi_si64(-9223372036854775807, 3), -3074457345618258602); + assert_eq!(divi_si64(-9223372036854775808, 4), -2305843009213693952); + assert_eq!(divi_si64(-9223372036854775807, 4), -2305843009213693951); + assert_eq!(divi_si64(-1741927215160008704, 1), -1741927215160008704); + assert_eq!(divi_si64(-1328271339354574848, 1), -1328271339354574848); + assert_eq!(divi_si64(-1741927215160008704, 2), -870963607580004352); + assert_eq!(divi_si64(-1328271339354574848, 2), -664135669677287424); + assert_eq!(divi_si64(-1741927215160008704, 3), -580642405053336234); + assert_eq!(divi_si64(-1328271339354574848, 3), -442757113118191616); + assert_eq!(divi_si64(-1741927215160008704, 4), -435481803790002176); + assert_eq!(divi_si64(-1328271339354574848, 4), -332067834838643712); + assert_eq!(divi_si64(9223372036854775806, -1328271339354574848), -6); + assert_eq!(divi_si64(9223372036854775807, -1328271339354574848), -6); + assert_eq!(divi_si64(9223372036854775806, -1741927215160008704), -5); + assert_eq!(divi_si64(9223372036854775807, -1741927215160008704), -5); + assert_eq!(divi_si64(5577148965131116544, -1328271339354574848), -4); + assert_eq!(divi_si64(5577148965131116544, -1741927215160008704), -3); + assert_eq!(divi_si64(-9223372036854775808, 5577148965131116544), -1); + assert_eq!(divi_si64(-9223372036854775808, 9223372036854775806), -1); + assert_eq!(divi_si64(-9223372036854775808, 9223372036854775807), -1); + assert_eq!(divi_si64(-9223372036854775807, 5577148965131116544), -1); + assert_eq!(divi_si64(-9223372036854775807, 9223372036854775806), -1); + assert_eq!(divi_si64(-9223372036854775807, 9223372036854775807), -1); + assert_eq!(divi_si64(9223372036854775807, -9223372036854775807), -1); + assert_eq!(divi_si64(-9223372036854775807, -9223372036854775808), 0); + assert_eq!(divi_si64(-1741927215160008704, -9223372036854775808), 0); + assert_eq!(divi_si64(-1741927215160008704, -9223372036854775807), 0); + assert_eq!(divi_si64(-1741927215160008704, 5577148965131116544), 0); + assert_eq!(divi_si64(-1741927215160008704, 9223372036854775806), 0); + assert_eq!(divi_si64(-1741927215160008704, 9223372036854775807), 0); + assert_eq!(divi_si64(-1328271339354574848, -9223372036854775808), 0); + assert_eq!(divi_si64(-1328271339354574848, -9223372036854775807), 0); + assert_eq!(divi_si64(-1328271339354574848, -1741927215160008704), 0); + assert_eq!(divi_si64(-1328271339354574848, 5577148965131116544), 0); + assert_eq!(divi_si64(-1328271339354574848, 9223372036854775806), 0); + assert_eq!(divi_si64(-1328271339354574848, 9223372036854775807), 0); + assert_eq!(divi_si64(0, -9223372036854775808), 0); + assert_eq!(divi_si64(0, -9223372036854775807), 0); + assert_eq!(divi_si64(0, -1741927215160008704), 0); + assert_eq!(divi_si64(0, -1328271339354574848), 0); + assert_eq!(divi_si64(0, 1), 0); + assert_eq!(divi_si64(0, 2), 0); + assert_eq!(divi_si64(0, 3), 0); + assert_eq!(divi_si64(0, 4), 0); + assert_eq!(divi_si64(0, 5577148965131116544), 0); + assert_eq!(divi_si64(0, 9223372036854775806), 0); + assert_eq!(divi_si64(0, 9223372036854775807), 0); + assert_eq!(divi_si64(1, -9223372036854775808), 0); + assert_eq!(divi_si64(1, -9223372036854775807), 0); + assert_eq!(divi_si64(1, -1741927215160008704), 0); + assert_eq!(divi_si64(1, -1328271339354574848), 0); + assert_eq!(divi_si64(1, 2), 0); + assert_eq!(divi_si64(1, 3), 0); + assert_eq!(divi_si64(1, 4), 0); + assert_eq!(divi_si64(1, 5577148965131116544), 0); + assert_eq!(divi_si64(1, 9223372036854775806), 0); + assert_eq!(divi_si64(1, 9223372036854775807), 0); + assert_eq!(divi_si64(2, -9223372036854775808), 0); + assert_eq!(divi_si64(2, -9223372036854775807), 0); + assert_eq!(divi_si64(2, -1741927215160008704), 0); + assert_eq!(divi_si64(2, -1328271339354574848), 0); + assert_eq!(divi_si64(2, 3), 0); + assert_eq!(divi_si64(2, 4), 0); + assert_eq!(divi_si64(2, 5577148965131116544), 0); + assert_eq!(divi_si64(2, 9223372036854775806), 0); + assert_eq!(divi_si64(2, 9223372036854775807), 0); + assert_eq!(divi_si64(3, -9223372036854775808), 0); + assert_eq!(divi_si64(3, -9223372036854775807), 0); + assert_eq!(divi_si64(3, -1741927215160008704), 0); + assert_eq!(divi_si64(3, -1328271339354574848), 0); + assert_eq!(divi_si64(3, 4), 0); + assert_eq!(divi_si64(3, 5577148965131116544), 0); + assert_eq!(divi_si64(3, 9223372036854775806), 0); + assert_eq!(divi_si64(3, 9223372036854775807), 0); + assert_eq!(divi_si64(4, -9223372036854775808), 0); + assert_eq!(divi_si64(4, -9223372036854775807), 0); + assert_eq!(divi_si64(4, -1741927215160008704), 0); + assert_eq!(divi_si64(4, -1328271339354574848), 0); + assert_eq!(divi_si64(4, 5577148965131116544), 0); + assert_eq!(divi_si64(4, 9223372036854775806), 0); + assert_eq!(divi_si64(4, 9223372036854775807), 0); + assert_eq!(divi_si64(5577148965131116544, -9223372036854775808), 0); + assert_eq!(divi_si64(5577148965131116544, -9223372036854775807), 0); + assert_eq!(divi_si64(5577148965131116544, 9223372036854775806), 0); + assert_eq!(divi_si64(5577148965131116544, 9223372036854775807), 0); + assert_eq!(divi_si64(9223372036854775806, -9223372036854775808), 0); + assert_eq!(divi_si64(9223372036854775806, -9223372036854775807), 0); + assert_eq!(divi_si64(9223372036854775806, 9223372036854775807), 0); + assert_eq!(divi_si64(9223372036854775807, -9223372036854775808), 0); + assert_eq!(divi_si64(-9223372036854775808, -9223372036854775808), 1); + assert_eq!(divi_si64(-9223372036854775808, -9223372036854775807), 1); + assert_eq!(divi_si64(-9223372036854775807, -9223372036854775807), 1); + assert_eq!(divi_si64(-1741927215160008704, -1741927215160008704), 1); + assert_eq!(divi_si64(-1741927215160008704, -1328271339354574848), 1); + assert_eq!(divi_si64(-1328271339354574848, -1328271339354574848), 1); + assert_eq!(divi_si64(1, 1), 1); + assert_eq!(divi_si64(2, 2), 1); + assert_eq!(divi_si64(3, 2), 1); + assert_eq!(divi_si64(3, 3), 1); + assert_eq!(divi_si64(4, 3), 1); + assert_eq!(divi_si64(4, 4), 1); + assert_eq!(divi_si64(5577148965131116544, 5577148965131116544), 1); + assert_eq!(divi_si64(9223372036854775806, 5577148965131116544), 1); + assert_eq!(divi_si64(9223372036854775806, 9223372036854775806), 1); + assert_eq!(divi_si64(9223372036854775807, 5577148965131116544), 1); + assert_eq!(divi_si64(9223372036854775807, 9223372036854775806), 1); + assert_eq!(divi_si64(9223372036854775807, 9223372036854775807), 1); + assert_eq!(divi_si64(2, 1), 2); + assert_eq!(divi_si64(4, 2), 2); + assert_eq!(divi_si64(3, 1), 3); + assert_eq!(divi_si64(4, 1), 4); + assert_eq!(divi_si64(-9223372036854775808, -1741927215160008704), 5); + assert_eq!(divi_si64(-9223372036854775807, -1741927215160008704), 5); + assert_eq!(divi_si64(-9223372036854775808, -1328271339354574848), 6); + assert_eq!(divi_si64(-9223372036854775807, -1328271339354574848), 6); + assert_eq!(divi_si64(5577148965131116544, 4), 1394287241282779136); + assert_eq!(divi_si64(5577148965131116544, 3), 1859049655043705514); + assert_eq!(divi_si64(9223372036854775806, 4), 2305843009213693951); + assert_eq!(divi_si64(9223372036854775807, 4), 2305843009213693951); + assert_eq!(divi_si64(5577148965131116544, 2), 2788574482565558272); + assert_eq!(divi_si64(9223372036854775806, 3), 3074457345618258602); + assert_eq!(divi_si64(9223372036854775807, 3), 3074457345618258602); + assert_eq!(divi_si64(9223372036854775806, 2), 4611686018427387903); + assert_eq!(divi_si64(9223372036854775807, 2), 4611686018427387903); + assert_eq!(divi_si64(5577148965131116544, 1), 5577148965131116544); + assert_eq!(divi_si64(9223372036854775806, 1), 9223372036854775806); + assert_eq!(divi_si64(9223372036854775807, 1), 9223372036854775807); + assert_eq!(divi_si8(-128, 1), -128); + assert_eq!(divi_si8(-127, 1), -127); + assert_eq!(divi_si8(-128, 2), -64); + assert_eq!(divi_si8(-127, 2), -63); + assert_eq!(divi_si8(-128, 3), -42); + assert_eq!(divi_si8(-127, 3), -42); + assert_eq!(divi_si8(-128, 4), -32); + assert_eq!(divi_si8(-127, 4), -31); + assert_eq!(divi_si8(-128, 16), -8); + assert_eq!(divi_si8(-127, 16), -7); + assert_eq!(divi_si8(-128, 126), -1); + assert_eq!(divi_si8(-128, 127), -1); + assert_eq!(divi_si8(-127, 126), -1); + assert_eq!(divi_si8(-127, 127), -1); + assert_eq!(divi_si8(127, -127), -1); + assert_eq!(divi_si8(-127, -128), 0); + assert_eq!(divi_si8(0, -128), 0); + assert_eq!(divi_si8(0, -127), 0); + assert_eq!(divi_si8(0, 1), 0); + assert_eq!(divi_si8(0, 2), 0); + assert_eq!(divi_si8(0, 3), 0); + assert_eq!(divi_si8(0, 4), 0); + assert_eq!(divi_si8(0, 16), 0); + assert_eq!(divi_si8(0, 126), 0); + assert_eq!(divi_si8(0, 127), 0); + assert_eq!(divi_si8(1, -128), 0); + assert_eq!(divi_si8(1, -127), 0); + assert_eq!(divi_si8(1, 2), 0); + assert_eq!(divi_si8(1, 3), 0); + assert_eq!(divi_si8(1, 4), 0); + assert_eq!(divi_si8(1, 16), 0); + assert_eq!(divi_si8(1, 126), 0); + assert_eq!(divi_si8(1, 127), 0); + assert_eq!(divi_si8(2, -128), 0); + assert_eq!(divi_si8(2, -127), 0); + assert_eq!(divi_si8(2, 3), 0); + assert_eq!(divi_si8(2, 4), 0); + assert_eq!(divi_si8(2, 16), 0); + assert_eq!(divi_si8(2, 126), 0); + assert_eq!(divi_si8(2, 127), 0); + assert_eq!(divi_si8(3, -128), 0); + assert_eq!(divi_si8(3, -127), 0); + assert_eq!(divi_si8(3, 4), 0); + assert_eq!(divi_si8(3, 16), 0); + assert_eq!(divi_si8(3, 126), 0); + assert_eq!(divi_si8(3, 127), 0); + assert_eq!(divi_si8(4, -128), 0); + assert_eq!(divi_si8(4, -127), 0); + assert_eq!(divi_si8(4, 16), 0); + assert_eq!(divi_si8(4, 126), 0); + assert_eq!(divi_si8(4, 127), 0); + assert_eq!(divi_si8(16, -128), 0); + assert_eq!(divi_si8(16, -127), 0); + assert_eq!(divi_si8(16, 126), 0); + assert_eq!(divi_si8(16, 127), 0); + assert_eq!(divi_si8(126, -128), 0); + assert_eq!(divi_si8(126, -127), 0); + assert_eq!(divi_si8(126, 127), 0); + assert_eq!(divi_si8(127, -128), 0); + assert_eq!(divi_si8(-128, -128), 1); + assert_eq!(divi_si8(-128, -127), 1); + assert_eq!(divi_si8(-127, -127), 1); + assert_eq!(divi_si8(1, 1), 1); + assert_eq!(divi_si8(2, 2), 1); + assert_eq!(divi_si8(3, 2), 1); + assert_eq!(divi_si8(3, 3), 1); + assert_eq!(divi_si8(4, 3), 1); + assert_eq!(divi_si8(4, 4), 1); + assert_eq!(divi_si8(16, 16), 1); + assert_eq!(divi_si8(126, 126), 1); + assert_eq!(divi_si8(127, 126), 1); + assert_eq!(divi_si8(127, 127), 1); + assert_eq!(divi_si8(2, 1), 2); + assert_eq!(divi_si8(4, 2), 2); + assert_eq!(divi_si8(3, 1), 3); + assert_eq!(divi_si8(4, 1), 4); + assert_eq!(divi_si8(16, 4), 4); + assert_eq!(divi_si8(16, 3), 5); + assert_eq!(divi_si8(126, 16), 7); + assert_eq!(divi_si8(127, 16), 7); + assert_eq!(divi_si8(16, 2), 8); + assert_eq!(divi_si8(16, 1), 16); + assert_eq!(divi_si8(126, 4), 31); + assert_eq!(divi_si8(127, 4), 31); + assert_eq!(divi_si8(126, 3), 42); + assert_eq!(divi_si8(127, 3), 42); + assert_eq!(divi_si8(126, 2), 63); + assert_eq!(divi_si8(127, 2), 63); + assert_eq!(divi_si8(126, 1), 126); + assert_eq!(divi_si8(127, 1), 127); + assert_eq!(divi_ui16(0, 1), 0); + assert_eq!(divi_ui16(0, 2), 0); + assert_eq!(divi_ui16(0, 3), 0); + assert_eq!(divi_ui16(0, 4), 0); + assert_eq!(divi_ui16(0, 1717), 0); + assert_eq!(divi_ui16(0, 17988), 0); + assert_eq!(divi_ui16(0, 65096), 0); + assert_eq!(divi_ui16(0, 65534), 0); + assert_eq!(divi_ui16(0, 65535), 0); + assert_eq!(divi_ui16(1, 2), 0); + assert_eq!(divi_ui16(1, 3), 0); + assert_eq!(divi_ui16(1, 4), 0); + assert_eq!(divi_ui16(1, 1717), 0); + assert_eq!(divi_ui16(1, 17988), 0); + assert_eq!(divi_ui16(1, 65096), 0); + assert_eq!(divi_ui16(1, 65534), 0); + assert_eq!(divi_ui16(1, 65535), 0); + assert_eq!(divi_ui16(2, 3), 0); + assert_eq!(divi_ui16(2, 4), 0); + assert_eq!(divi_ui16(2, 1717), 0); + assert_eq!(divi_ui16(2, 17988), 0); + assert_eq!(divi_ui16(2, 65096), 0); + assert_eq!(divi_ui16(2, 65534), 0); + assert_eq!(divi_ui16(2, 65535), 0); + assert_eq!(divi_ui16(3, 4), 0); + assert_eq!(divi_ui16(3, 1717), 0); + assert_eq!(divi_ui16(3, 17988), 0); + assert_eq!(divi_ui16(3, 65096), 0); + assert_eq!(divi_ui16(3, 65534), 0); + assert_eq!(divi_ui16(3, 65535), 0); + assert_eq!(divi_ui16(4, 1717), 0); + assert_eq!(divi_ui16(4, 17988), 0); + assert_eq!(divi_ui16(4, 65096), 0); + assert_eq!(divi_ui16(4, 65534), 0); + assert_eq!(divi_ui16(4, 65535), 0); + assert_eq!(divi_ui16(1717, 17988), 0); + assert_eq!(divi_ui16(1717, 65096), 0); + assert_eq!(divi_ui16(1717, 65534), 0); + assert_eq!(divi_ui16(1717, 65535), 0); + assert_eq!(divi_ui16(17988, 65096), 0); + assert_eq!(divi_ui16(17988, 65534), 0); + assert_eq!(divi_ui16(17988, 65535), 0); + assert_eq!(divi_ui16(65096, 65534), 0); + assert_eq!(divi_ui16(65096, 65535), 0); + assert_eq!(divi_ui16(65534, 65535), 0); + assert_eq!(divi_ui16(1, 1), 1); + assert_eq!(divi_ui16(2, 2), 1); + assert_eq!(divi_ui16(3, 2), 1); + assert_eq!(divi_ui16(3, 3), 1); + assert_eq!(divi_ui16(4, 3), 1); + assert_eq!(divi_ui16(4, 4), 1); + assert_eq!(divi_ui16(1717, 1717), 1); + assert_eq!(divi_ui16(17988, 17988), 1); + assert_eq!(divi_ui16(65096, 65096), 1); + assert_eq!(divi_ui16(65534, 65096), 1); + assert_eq!(divi_ui16(65534, 65534), 1); + assert_eq!(divi_ui16(65535, 65096), 1); + assert_eq!(divi_ui16(65535, 65534), 1); + assert_eq!(divi_ui16(65535, 65535), 1); + assert_eq!(divi_ui16(2, 1), 2); + assert_eq!(divi_ui16(4, 2), 2); + assert_eq!(divi_ui16(3, 1), 3); + assert_eq!(divi_ui16(65096, 17988), 3); + assert_eq!(divi_ui16(65534, 17988), 3); + assert_eq!(divi_ui16(65535, 17988), 3); + assert_eq!(divi_ui16(4, 1), 4); + assert_eq!(divi_ui16(17988, 1717), 10); + assert_eq!(divi_ui16(65096, 1717), 37); + assert_eq!(divi_ui16(65534, 1717), 38); + assert_eq!(divi_ui16(65535, 1717), 38); + assert_eq!(divi_ui16(1717, 4), 429); + assert_eq!(divi_ui16(1717, 3), 572); + assert_eq!(divi_ui16(1717, 2), 858); + assert_eq!(divi_ui16(1717, 1), 1717); + assert_eq!(divi_ui16(17988, 4), 4497); + assert_eq!(divi_ui16(17988, 3), 5996); + assert_eq!(divi_ui16(17988, 2), 8994); + assert_eq!(divi_ui16(65096, 4), 16274); + assert_eq!(divi_ui16(65534, 4), 16383); + assert_eq!(divi_ui16(65535, 4), 16383); + assert_eq!(divi_ui16(17988, 1), 17988); + assert_eq!(divi_ui16(65096, 3), 21698); + assert_eq!(divi_ui16(65534, 3), 21844); + assert_eq!(divi_ui16(65535, 3), 21845); + assert_eq!(divi_ui16(65096, 2), 32548); + assert_eq!(divi_ui16(65534, 2), 32767); + assert_eq!(divi_ui16(65535, 2), 32767); + assert_eq!(divi_ui16(65096, 1), 65096); + assert_eq!(divi_ui16(65534, 1), 65534); + assert_eq!(divi_ui16(65535, 1), 65535); + assert_eq!(divi_ui32(0, 1), 0); + assert_eq!(divi_ui32(0, 2), 0); + assert_eq!(divi_ui32(0, 3), 0); + assert_eq!(divi_ui32(0, 4), 0); + assert_eq!(divi_ui32(0, 2119154652), 0); + assert_eq!(divi_ui32(0, 3002788344), 0); + assert_eq!(divi_ui32(0, 3482297128), 0); + assert_eq!(divi_ui32(0, 4294967294), 0); + assert_eq!(divi_ui32(0, 4294967295), 0); + assert_eq!(divi_ui32(1, 2), 0); + assert_eq!(divi_ui32(1, 3), 0); + assert_eq!(divi_ui32(1, 4), 0); + assert_eq!(divi_ui32(1, 2119154652), 0); + assert_eq!(divi_ui32(1, 3002788344), 0); + assert_eq!(divi_ui32(1, 3482297128), 0); + assert_eq!(divi_ui32(1, 4294967294), 0); + assert_eq!(divi_ui32(1, 4294967295), 0); + assert_eq!(divi_ui32(2, 3), 0); + assert_eq!(divi_ui32(2, 4), 0); + assert_eq!(divi_ui32(2, 2119154652), 0); + assert_eq!(divi_ui32(2, 3002788344), 0); + assert_eq!(divi_ui32(2, 3482297128), 0); + assert_eq!(divi_ui32(2, 4294967294), 0); + assert_eq!(divi_ui32(2, 4294967295), 0); + assert_eq!(divi_ui32(3, 4), 0); + assert_eq!(divi_ui32(3, 2119154652), 0); + assert_eq!(divi_ui32(3, 3002788344), 0); + assert_eq!(divi_ui32(3, 3482297128), 0); + assert_eq!(divi_ui32(3, 4294967294), 0); + assert_eq!(divi_ui32(3, 4294967295), 0); + assert_eq!(divi_ui32(4, 2119154652), 0); + assert_eq!(divi_ui32(4, 3002788344), 0); + assert_eq!(divi_ui32(4, 3482297128), 0); + assert_eq!(divi_ui32(4, 4294967294), 0); + assert_eq!(divi_ui32(4, 4294967295), 0); + assert_eq!(divi_ui32(2119154652, 3002788344), 0); + assert_eq!(divi_ui32(2119154652, 3482297128), 0); + assert_eq!(divi_ui32(2119154652, 4294967294), 0); + assert_eq!(divi_ui32(2119154652, 4294967295), 0); + assert_eq!(divi_ui32(3002788344, 3482297128), 0); + assert_eq!(divi_ui32(3002788344, 4294967294), 0); + assert_eq!(divi_ui32(3002788344, 4294967295), 0); + assert_eq!(divi_ui32(3482297128, 4294967294), 0); + assert_eq!(divi_ui32(3482297128, 4294967295), 0); + assert_eq!(divi_ui32(4294967294, 4294967295), 0); + assert_eq!(divi_ui32(1, 1), 1); + assert_eq!(divi_ui32(2, 2), 1); + assert_eq!(divi_ui32(3, 2), 1); + assert_eq!(divi_ui32(3, 3), 1); + assert_eq!(divi_ui32(4, 3), 1); + assert_eq!(divi_ui32(4, 4), 1); + assert_eq!(divi_ui32(2119154652, 2119154652), 1); + assert_eq!(divi_ui32(3002788344, 2119154652), 1); + assert_eq!(divi_ui32(3002788344, 3002788344), 1); + assert_eq!(divi_ui32(3482297128, 2119154652), 1); + assert_eq!(divi_ui32(3482297128, 3002788344), 1); + assert_eq!(divi_ui32(3482297128, 3482297128), 1); + assert_eq!(divi_ui32(4294967294, 3002788344), 1); + assert_eq!(divi_ui32(4294967294, 3482297128), 1); + assert_eq!(divi_ui32(4294967294, 4294967294), 1); + assert_eq!(divi_ui32(4294967295, 3002788344), 1); + assert_eq!(divi_ui32(4294967295, 3482297128), 1); + assert_eq!(divi_ui32(4294967295, 4294967294), 1); + assert_eq!(divi_ui32(4294967295, 4294967295), 1); + assert_eq!(divi_ui32(2, 1), 2); + assert_eq!(divi_ui32(4, 2), 2); + assert_eq!(divi_ui32(4294967294, 2119154652), 2); + assert_eq!(divi_ui32(4294967295, 2119154652), 2); + assert_eq!(divi_ui32(3, 1), 3); + assert_eq!(divi_ui32(4, 1), 4); + assert_eq!(divi_ui32(2119154652, 4), 529788663); + assert_eq!(divi_ui32(2119154652, 3), 706384884); + assert_eq!(divi_ui32(3002788344, 4), 750697086); + assert_eq!(divi_ui32(3482297128, 4), 870574282); + assert_eq!(divi_ui32(3002788344, 3), 1000929448); + assert_eq!(divi_ui32(2119154652, 2), 1059577326); + assert_eq!(divi_ui32(4294967294, 4), 1073741823); + assert_eq!(divi_ui32(4294967295, 4), 1073741823); + assert_eq!(divi_ui32(3482297128, 3), 1160765709); + assert_eq!(divi_ui32(4294967294, 3), 1431655764); + assert_eq!(divi_ui32(4294967295, 3), 1431655765); + assert_eq!(divi_ui32(3002788344, 2), 1501394172); + assert_eq!(divi_ui32(3482297128, 2), 1741148564); + assert_eq!(divi_ui32(2119154652, 1), 2119154652); + assert_eq!(divi_ui32(4294967294, 2), 2147483647); + assert_eq!(divi_ui32(4294967295, 2), 2147483647); + assert_eq!(divi_ui32(3002788344, 1), 3002788344); + assert_eq!(divi_ui32(3482297128, 1), 3482297128); + assert_eq!(divi_ui32(4294967294, 1), 4294967294); + assert_eq!(divi_ui32(4294967295, 1), 4294967295); + assert_eq!(divi_ui64(0, 1), 0); + assert_eq!(divi_ui64(0, 2), 0); + assert_eq!(divi_ui64(0, 3), 0); + assert_eq!(divi_ui64(0, 4), 0); + assert_eq!(divi_ui64(0, 191084152064409600), 0); + assert_eq!(divi_ui64(0, 11015955194427482112), 0); + assert_eq!(divi_ui64(0, 16990600415051759616), 0); + assert_eq!(divi_ui64(0, 18446744073709551614), 0); + assert_eq!(divi_ui64(0, 18446744073709551615), 0); + assert_eq!(divi_ui64(1, 2), 0); + assert_eq!(divi_ui64(1, 3), 0); + assert_eq!(divi_ui64(1, 4), 0); + assert_eq!(divi_ui64(1, 191084152064409600), 0); + assert_eq!(divi_ui64(1, 11015955194427482112), 0); + assert_eq!(divi_ui64(1, 16990600415051759616), 0); + assert_eq!(divi_ui64(1, 18446744073709551614), 0); + assert_eq!(divi_ui64(1, 18446744073709551615), 0); + assert_eq!(divi_ui64(2, 3), 0); + assert_eq!(divi_ui64(2, 4), 0); + assert_eq!(divi_ui64(2, 191084152064409600), 0); + assert_eq!(divi_ui64(2, 11015955194427482112), 0); + assert_eq!(divi_ui64(2, 16990600415051759616), 0); + assert_eq!(divi_ui64(2, 18446744073709551614), 0); + assert_eq!(divi_ui64(2, 18446744073709551615), 0); + assert_eq!(divi_ui64(3, 4), 0); + assert_eq!(divi_ui64(3, 191084152064409600), 0); + assert_eq!(divi_ui64(3, 11015955194427482112), 0); + assert_eq!(divi_ui64(3, 16990600415051759616), 0); + assert_eq!(divi_ui64(3, 18446744073709551614), 0); + assert_eq!(divi_ui64(3, 18446744073709551615), 0); + assert_eq!(divi_ui64(4, 191084152064409600), 0); + assert_eq!(divi_ui64(4, 11015955194427482112), 0); + assert_eq!(divi_ui64(4, 16990600415051759616), 0); + assert_eq!(divi_ui64(4, 18446744073709551614), 0); + assert_eq!(divi_ui64(4, 18446744073709551615), 0); + assert_eq!(divi_ui64(191084152064409600, 11015955194427482112), 0); + assert_eq!(divi_ui64(191084152064409600, 16990600415051759616), 0); + assert_eq!(divi_ui64(191084152064409600, 18446744073709551614), 0); + assert_eq!(divi_ui64(191084152064409600, 18446744073709551615), 0); + assert_eq!(divi_ui64(11015955194427482112, 16990600415051759616), 0); + assert_eq!(divi_ui64(11015955194427482112, 18446744073709551614), 0); + assert_eq!(divi_ui64(11015955194427482112, 18446744073709551615), 0); + assert_eq!(divi_ui64(16990600415051759616, 18446744073709551614), 0); + assert_eq!(divi_ui64(16990600415051759616, 18446744073709551615), 0); + assert_eq!(divi_ui64(18446744073709551614, 18446744073709551615), 0); + assert_eq!(divi_ui64(1, 1), 1); + assert_eq!(divi_ui64(2, 2), 1); + assert_eq!(divi_ui64(3, 2), 1); + assert_eq!(divi_ui64(3, 3), 1); + assert_eq!(divi_ui64(4, 3), 1); + assert_eq!(divi_ui64(4, 4), 1); + assert_eq!(divi_ui64(191084152064409600, 191084152064409600), 1); + assert_eq!(divi_ui64(11015955194427482112, 11015955194427482112), 1); + assert_eq!(divi_ui64(16990600415051759616, 11015955194427482112), 1); + assert_eq!(divi_ui64(16990600415051759616, 16990600415051759616), 1); + assert_eq!(divi_ui64(18446744073709551614, 11015955194427482112), 1); + assert_eq!(divi_ui64(18446744073709551614, 16990600415051759616), 1); + assert_eq!(divi_ui64(18446744073709551614, 18446744073709551614), 1); + assert_eq!(divi_ui64(18446744073709551615, 11015955194427482112), 1); + assert_eq!(divi_ui64(18446744073709551615, 16990600415051759616), 1); + assert_eq!(divi_ui64(18446744073709551615, 18446744073709551614), 1); + assert_eq!(divi_ui64(18446744073709551615, 18446744073709551615), 1); + assert_eq!(divi_ui64(2, 1), 2); + assert_eq!(divi_ui64(4, 2), 2); + assert_eq!(divi_ui64(3, 1), 3); + assert_eq!(divi_ui64(4, 1), 4); + assert_eq!(divi_ui64(11015955194427482112, 191084152064409600), 57); + assert_eq!(divi_ui64(16990600415051759616, 191084152064409600), 88); + assert_eq!(divi_ui64(18446744073709551614, 191084152064409600), 96); + assert_eq!(divi_ui64(18446744073709551615, 191084152064409600), 96); + assert_eq!(divi_ui64(191084152064409600, 4), 47771038016102400); + assert_eq!(divi_ui64(191084152064409600, 3), 63694717354803200); + assert_eq!(divi_ui64(191084152064409600, 2), 95542076032204800); + assert_eq!(divi_ui64(191084152064409600, 1), 191084152064409600); + assert_eq!(divi_ui64(11015955194427482112, 4), 2753988798606870528); + assert_eq!(divi_ui64(11015955194427482112, 3), 3671985064809160704); + assert_eq!(divi_ui64(16990600415051759616, 4), 4247650103762939904); + assert_eq!(divi_ui64(18446744073709551614, 4), 4611686018427387903); + assert_eq!(divi_ui64(18446744073709551615, 4), 4611686018427387903); + assert_eq!(divi_ui64(11015955194427482112, 2), 5507977597213741056); + assert_eq!(divi_ui64(16990600415051759616, 3), 5663533471683919872); + assert_eq!(divi_ui64(18446744073709551614, 3), 6148914691236517204); + assert_eq!(divi_ui64(18446744073709551615, 3), 6148914691236517205); + assert_eq!(divi_ui64(16990600415051759616, 2), 8495300207525879808); + assert_eq!(divi_ui64(18446744073709551614, 2), 9223372036854775807); + assert_eq!(divi_ui64(18446744073709551615, 2), 9223372036854775807); + assert_eq!(divi_ui64(11015955194427482112, 1), 11015955194427482112); + assert_eq!(divi_ui64(16990600415051759616, 1), 16990600415051759616); + assert_eq!(divi_ui64(18446744073709551614, 1), 18446744073709551614); + assert_eq!(divi_ui64(18446744073709551615, 1), 18446744073709551615); + assert_eq!(divi_ui8(0, 1), 0); + assert_eq!(divi_ui8(0, 2), 0); + assert_eq!(divi_ui8(0, 3), 0); + assert_eq!(divi_ui8(0, 4), 0); + assert_eq!(divi_ui8(0, 72), 0); + assert_eq!(divi_ui8(0, 100), 0); + assert_eq!(divi_ui8(0, 162), 0); + assert_eq!(divi_ui8(0, 254), 0); + assert_eq!(divi_ui8(0, 255), 0); + assert_eq!(divi_ui8(1, 2), 0); + assert_eq!(divi_ui8(1, 3), 0); + assert_eq!(divi_ui8(1, 4), 0); + assert_eq!(divi_ui8(1, 72), 0); + assert_eq!(divi_ui8(1, 100), 0); + assert_eq!(divi_ui8(1, 162), 0); + assert_eq!(divi_ui8(1, 254), 0); + assert_eq!(divi_ui8(1, 255), 0); + assert_eq!(divi_ui8(2, 3), 0); + assert_eq!(divi_ui8(2, 4), 0); + assert_eq!(divi_ui8(2, 72), 0); + assert_eq!(divi_ui8(2, 100), 0); + assert_eq!(divi_ui8(2, 162), 0); + assert_eq!(divi_ui8(2, 254), 0); + assert_eq!(divi_ui8(2, 255), 0); + assert_eq!(divi_ui8(3, 4), 0); + assert_eq!(divi_ui8(3, 72), 0); + assert_eq!(divi_ui8(3, 100), 0); + assert_eq!(divi_ui8(3, 162), 0); + assert_eq!(divi_ui8(3, 254), 0); + assert_eq!(divi_ui8(3, 255), 0); + assert_eq!(divi_ui8(4, 72), 0); + assert_eq!(divi_ui8(4, 100), 0); + assert_eq!(divi_ui8(4, 162), 0); + assert_eq!(divi_ui8(4, 254), 0); + assert_eq!(divi_ui8(4, 255), 0); + assert_eq!(divi_ui8(72, 100), 0); + assert_eq!(divi_ui8(72, 162), 0); + assert_eq!(divi_ui8(72, 254), 0); + assert_eq!(divi_ui8(72, 255), 0); + assert_eq!(divi_ui8(100, 162), 0); + assert_eq!(divi_ui8(100, 254), 0); + assert_eq!(divi_ui8(100, 255), 0); + assert_eq!(divi_ui8(162, 254), 0); + assert_eq!(divi_ui8(162, 255), 0); + assert_eq!(divi_ui8(254, 255), 0); + assert_eq!(divi_ui8(1, 1), 1); + assert_eq!(divi_ui8(2, 2), 1); + assert_eq!(divi_ui8(3, 2), 1); + assert_eq!(divi_ui8(3, 3), 1); + assert_eq!(divi_ui8(4, 3), 1); + assert_eq!(divi_ui8(4, 4), 1); + assert_eq!(divi_ui8(72, 72), 1); + assert_eq!(divi_ui8(100, 72), 1); + assert_eq!(divi_ui8(100, 100), 1); + assert_eq!(divi_ui8(162, 100), 1); + assert_eq!(divi_ui8(162, 162), 1); + assert_eq!(divi_ui8(254, 162), 1); + assert_eq!(divi_ui8(254, 254), 1); + assert_eq!(divi_ui8(255, 162), 1); + assert_eq!(divi_ui8(255, 254), 1); + assert_eq!(divi_ui8(255, 255), 1); + assert_eq!(divi_ui8(2, 1), 2); + assert_eq!(divi_ui8(4, 2), 2); + assert_eq!(divi_ui8(162, 72), 2); + assert_eq!(divi_ui8(254, 100), 2); + assert_eq!(divi_ui8(255, 100), 2); + assert_eq!(divi_ui8(3, 1), 3); + assert_eq!(divi_ui8(254, 72), 3); + assert_eq!(divi_ui8(255, 72), 3); + assert_eq!(divi_ui8(4, 1), 4); + assert_eq!(divi_ui8(72, 4), 18); + assert_eq!(divi_ui8(72, 3), 24); + assert_eq!(divi_ui8(100, 4), 25); + assert_eq!(divi_ui8(100, 3), 33); + assert_eq!(divi_ui8(72, 2), 36); + assert_eq!(divi_ui8(162, 4), 40); + assert_eq!(divi_ui8(100, 2), 50); + assert_eq!(divi_ui8(162, 3), 54); + assert_eq!(divi_ui8(254, 4), 63); + assert_eq!(divi_ui8(255, 4), 63); + assert_eq!(divi_ui8(72, 1), 72); + assert_eq!(divi_ui8(162, 2), 81); + assert_eq!(divi_ui8(254, 3), 84); + assert_eq!(divi_ui8(255, 3), 85); + assert_eq!(divi_ui8(100, 1), 100); + assert_eq!(divi_ui8(254, 2), 127); + assert_eq!(divi_ui8(255, 2), 127); + assert_eq!(divi_ui8(162, 1), 162); + assert_eq!(divi_ui8(254, 1), 254); + assert_eq!(divi_ui8(255, 1), 255); + assert_eq!(muli_si16(-32768, 1), -32768); + assert_eq!(muli_si16(1, -32768), -32768); + assert_eq!(muli_si16(-32767, 1), -32767); + assert_eq!(muli_si16(1, -32767), -32767); + assert_eq!(muli_si16(-32547, 1), -32547); + assert_eq!(muli_si16(1, -32547), -32547); + assert_eq!(muli_si16(-32768, 0), 0); + assert_eq!(muli_si16(-32767, 0), 0); + assert_eq!(muli_si16(-32547, 0), 0); + assert_eq!(muli_si16(0, -32768), 0); + assert_eq!(muli_si16(0, -32767), 0); + assert_eq!(muli_si16(0, -32547), 0); + assert_eq!(muli_si16(0, 0), 0); + assert_eq!(muli_si16(0, 1), 0); + assert_eq!(muli_si16(0, 2), 0); + assert_eq!(muli_si16(0, 3), 0); + assert_eq!(muli_si16(0, 4), 0); + assert_eq!(muli_si16(0, 10486), 0); + assert_eq!(muli_si16(0, 16514), 0); + assert_eq!(muli_si16(0, 32766), 0); + assert_eq!(muli_si16(0, 32767), 0); + assert_eq!(muli_si16(1, 0), 0); + assert_eq!(muli_si16(2, 0), 0); + assert_eq!(muli_si16(3, 0), 0); + assert_eq!(muli_si16(4, 0), 0); + assert_eq!(muli_si16(10486, 0), 0); + assert_eq!(muli_si16(16514, 0), 0); + assert_eq!(muli_si16(32766, 0), 0); + assert_eq!(muli_si16(32767, 0), 0); + assert_eq!(muli_si16(1, 1), 1); + assert_eq!(muli_si16(1, 2), 2); + assert_eq!(muli_si16(2, 1), 2); + assert_eq!(muli_si16(1, 3), 3); + assert_eq!(muli_si16(3, 1), 3); + assert_eq!(muli_si16(1, 4), 4); + assert_eq!(muli_si16(2, 2), 4); + assert_eq!(muli_si16(4, 1), 4); + assert_eq!(muli_si16(2, 3), 6); + assert_eq!(muli_si16(3, 2), 6); + assert_eq!(muli_si16(2, 4), 8); + assert_eq!(muli_si16(4, 2), 8); + assert_eq!(muli_si16(3, 3), 9); + assert_eq!(muli_si16(3, 4), 12); + assert_eq!(muli_si16(4, 3), 12); + assert_eq!(muli_si16(4, 4), 16); + assert_eq!(muli_si16(1, 10486), 10486); + assert_eq!(muli_si16(10486, 1), 10486); + assert_eq!(muli_si16(1, 16514), 16514); + assert_eq!(muli_si16(16514, 1), 16514); + assert_eq!(muli_si16(2, 10486), 20972); + assert_eq!(muli_si16(10486, 2), 20972); + assert_eq!(muli_si16(3, 10486), 31458); + assert_eq!(muli_si16(10486, 3), 31458); + assert_eq!(muli_si16(1, 32766), 32766); + assert_eq!(muli_si16(32766, 1), 32766); + assert_eq!(muli_si16(1, 32767), 32767); + assert_eq!(muli_si16(32767, 1), 32767); + assert_eq!(muli_si32(-2147483648, 1), -2147483648); + assert_eq!(muli_si32(1, -2147483648), -2147483648); + assert_eq!(muli_si32(-2147483647, 1), -2147483647); + assert_eq!(muli_si32(1, -2147483647), -2147483647); + assert_eq!(muli_si32(-1035405763, 2), -2070811526); + assert_eq!(muli_si32(2, -1035405763), -2070811526); + assert_eq!(muli_si32(-1713183800, 1), -1713183800); + assert_eq!(muli_si32(1, -1713183800), -1713183800); + assert_eq!(muli_si32(-1252582164, 1), -1252582164); + assert_eq!(muli_si32(1, -1252582164), -1252582164); + assert_eq!(muli_si32(-1035405763, 1), -1035405763); + assert_eq!(muli_si32(1, -1035405763), -1035405763); + assert_eq!(muli_si32(-2147483648, 0), 0); + assert_eq!(muli_si32(-2147483647, 0), 0); + assert_eq!(muli_si32(-1713183800, 0), 0); + assert_eq!(muli_si32(-1252582164, 0), 0); + assert_eq!(muli_si32(-1035405763, 0), 0); + assert_eq!(muli_si32(0, -2147483648), 0); + assert_eq!(muli_si32(0, -2147483647), 0); + assert_eq!(muli_si32(0, -1713183800), 0); + assert_eq!(muli_si32(0, -1252582164), 0); + assert_eq!(muli_si32(0, -1035405763), 0); + assert_eq!(muli_si32(0, 0), 0); + assert_eq!(muli_si32(0, 1), 0); + assert_eq!(muli_si32(0, 2), 0); + assert_eq!(muli_si32(0, 3), 0); + assert_eq!(muli_si32(0, 4), 0); + assert_eq!(muli_si32(0, 2147483646), 0); + assert_eq!(muli_si32(0, 2147483647), 0); + assert_eq!(muli_si32(1, 0), 0); + assert_eq!(muli_si32(2, 0), 0); + assert_eq!(muli_si32(3, 0), 0); + assert_eq!(muli_si32(4, 0), 0); + assert_eq!(muli_si32(2147483646, 0), 0); + assert_eq!(muli_si32(2147483647, 0), 0); + assert_eq!(muli_si32(1, 1), 1); + assert_eq!(muli_si32(1, 2), 2); + assert_eq!(muli_si32(2, 1), 2); + assert_eq!(muli_si32(1, 3), 3); + assert_eq!(muli_si32(3, 1), 3); + assert_eq!(muli_si32(1, 4), 4); + assert_eq!(muli_si32(2, 2), 4); + assert_eq!(muli_si32(4, 1), 4); + assert_eq!(muli_si32(2, 3), 6); + assert_eq!(muli_si32(3, 2), 6); + assert_eq!(muli_si32(2, 4), 8); + assert_eq!(muli_si32(4, 2), 8); + assert_eq!(muli_si32(3, 3), 9); + assert_eq!(muli_si32(3, 4), 12); + assert_eq!(muli_si32(4, 3), 12); + assert_eq!(muli_si32(4, 4), 16); + assert_eq!(muli_si32(1, 2147483646), 2147483646); + assert_eq!(muli_si32(2147483646, 1), 2147483646); + assert_eq!(muli_si32(1, 2147483647), 2147483647); + assert_eq!(muli_si32(2147483647, 1), 2147483647); + assert_eq!(muli_si64(-9223372036854775808, 1), -9223372036854775808); + assert_eq!(muli_si64(1, -9223372036854775808), -9223372036854775808); + assert_eq!(muli_si64(-9223372036854775807, 1), -9223372036854775807); + assert_eq!(muli_si64(1, -9223372036854775807), -9223372036854775807); + assert_eq!(muli_si64(-1741927215160008704, 4), -6967708860640034816); + assert_eq!(muli_si64(4, -1741927215160008704), -6967708860640034816); + assert_eq!(muli_si64(-1328271339354574848, 4), -5313085357418299392); + assert_eq!(muli_si64(4, -1328271339354574848), -5313085357418299392); + assert_eq!(muli_si64(-1741927215160008704, 3), -5225781645480026112); + assert_eq!(muli_si64(3, -1741927215160008704), -5225781645480026112); + assert_eq!(muli_si64(-1328271339354574848, 3), -3984814018063724544); + assert_eq!(muli_si64(3, -1328271339354574848), -3984814018063724544); + assert_eq!(muli_si64(-1741927215160008704, 2), -3483854430320017408); + assert_eq!(muli_si64(2, -1741927215160008704), -3483854430320017408); + assert_eq!(muli_si64(-1328271339354574848, 2), -2656542678709149696); + assert_eq!(muli_si64(2, -1328271339354574848), -2656542678709149696); + assert_eq!(muli_si64(-1741927215160008704, 1), -1741927215160008704); + assert_eq!(muli_si64(1, -1741927215160008704), -1741927215160008704); + assert_eq!(muli_si64(-1328271339354574848, 1), -1328271339354574848); + assert_eq!(muli_si64(1, -1328271339354574848), -1328271339354574848); + assert_eq!(muli_si64(-9223372036854775808, 0), 0); + assert_eq!(muli_si64(-9223372036854775807, 0), 0); + assert_eq!(muli_si64(-1741927215160008704, 0), 0); + assert_eq!(muli_si64(-1328271339354574848, 0), 0); + assert_eq!(muli_si64(0, -9223372036854775808), 0); + assert_eq!(muli_si64(0, -9223372036854775807), 0); + assert_eq!(muli_si64(0, -1741927215160008704), 0); + assert_eq!(muli_si64(0, -1328271339354574848), 0); + assert_eq!(muli_si64(0, 0), 0); + assert_eq!(muli_si64(0, 1), 0); + assert_eq!(muli_si64(0, 2), 0); + assert_eq!(muli_si64(0, 3), 0); + assert_eq!(muli_si64(0, 4), 0); + assert_eq!(muli_si64(0, 5577148965131116544), 0); + assert_eq!(muli_si64(0, 9223372036854775806), 0); + assert_eq!(muli_si64(0, 9223372036854775807), 0); + assert_eq!(muli_si64(1, 0), 0); + assert_eq!(muli_si64(2, 0), 0); + assert_eq!(muli_si64(3, 0), 0); + assert_eq!(muli_si64(4, 0), 0); + assert_eq!(muli_si64(5577148965131116544, 0), 0); + assert_eq!(muli_si64(9223372036854775806, 0), 0); + assert_eq!(muli_si64(9223372036854775807, 0), 0); + assert_eq!(muli_si64(1, 1), 1); + assert_eq!(muli_si64(1, 2), 2); + assert_eq!(muli_si64(2, 1), 2); + assert_eq!(muli_si64(1, 3), 3); + assert_eq!(muli_si64(3, 1), 3); + assert_eq!(muli_si64(1, 4), 4); + assert_eq!(muli_si64(2, 2), 4); + assert_eq!(muli_si64(4, 1), 4); + assert_eq!(muli_si64(2, 3), 6); + assert_eq!(muli_si64(3, 2), 6); + assert_eq!(muli_si64(2, 4), 8); + assert_eq!(muli_si64(4, 2), 8); + assert_eq!(muli_si64(3, 3), 9); + assert_eq!(muli_si64(3, 4), 12); + assert_eq!(muli_si64(4, 3), 12); + assert_eq!(muli_si64(4, 4), 16); + assert_eq!(muli_si64(1, 5577148965131116544), 5577148965131116544); + assert_eq!(muli_si64(5577148965131116544, 1), 5577148965131116544); + assert_eq!(muli_si64(1, 9223372036854775806), 9223372036854775806); + assert_eq!(muli_si64(9223372036854775806, 1), 9223372036854775806); + assert_eq!(muli_si64(1, 9223372036854775807), 9223372036854775807); + assert_eq!(muli_si64(9223372036854775807, 1), 9223372036854775807); + assert_eq!(muli_si8(-128, 1), -128); + assert_eq!(muli_si8(1, -128), -128); + assert_eq!(muli_si8(-127, 1), -127); + assert_eq!(muli_si8(1, -127), -127); + assert_eq!(muli_si8(-128, 0), 0); + assert_eq!(muli_si8(-127, 0), 0); + assert_eq!(muli_si8(0, -128), 0); + assert_eq!(muli_si8(0, -127), 0); + assert_eq!(muli_si8(0, 0), 0); + assert_eq!(muli_si8(0, 1), 0); + assert_eq!(muli_si8(0, 2), 0); + assert_eq!(muli_si8(0, 3), 0); + assert_eq!(muli_si8(0, 4), 0); + assert_eq!(muli_si8(0, 16), 0); + assert_eq!(muli_si8(0, 126), 0); + assert_eq!(muli_si8(0, 127), 0); + assert_eq!(muli_si8(1, 0), 0); + assert_eq!(muli_si8(2, 0), 0); + assert_eq!(muli_si8(3, 0), 0); + assert_eq!(muli_si8(4, 0), 0); + assert_eq!(muli_si8(16, 0), 0); + assert_eq!(muli_si8(126, 0), 0); + assert_eq!(muli_si8(127, 0), 0); + assert_eq!(muli_si8(1, 1), 1); + assert_eq!(muli_si8(1, 2), 2); + assert_eq!(muli_si8(2, 1), 2); + assert_eq!(muli_si8(1, 3), 3); + assert_eq!(muli_si8(3, 1), 3); + assert_eq!(muli_si8(1, 4), 4); + assert_eq!(muli_si8(2, 2), 4); + assert_eq!(muli_si8(4, 1), 4); + assert_eq!(muli_si8(2, 3), 6); + assert_eq!(muli_si8(3, 2), 6); + assert_eq!(muli_si8(2, 4), 8); + assert_eq!(muli_si8(4, 2), 8); + assert_eq!(muli_si8(3, 3), 9); + assert_eq!(muli_si8(3, 4), 12); + assert_eq!(muli_si8(4, 3), 12); + assert_eq!(muli_si8(1, 16), 16); + assert_eq!(muli_si8(4, 4), 16); + assert_eq!(muli_si8(16, 1), 16); + assert_eq!(muli_si8(2, 16), 32); + assert_eq!(muli_si8(16, 2), 32); + assert_eq!(muli_si8(3, 16), 48); + assert_eq!(muli_si8(16, 3), 48); + assert_eq!(muli_si8(4, 16), 64); + assert_eq!(muli_si8(16, 4), 64); + assert_eq!(muli_si8(1, 126), 126); + assert_eq!(muli_si8(126, 1), 126); + assert_eq!(muli_si8(1, 127), 127); + assert_eq!(muli_si8(127, 1), 127); + assert_eq!(muli_ui16(0, 0), 0); + assert_eq!(muli_ui16(0, 1), 0); + assert_eq!(muli_ui16(0, 2), 0); + assert_eq!(muli_ui16(0, 3), 0); + assert_eq!(muli_ui16(0, 4), 0); + assert_eq!(muli_ui16(0, 1717), 0); + assert_eq!(muli_ui16(0, 17988), 0); + assert_eq!(muli_ui16(0, 65096), 0); + assert_eq!(muli_ui16(0, 65534), 0); + assert_eq!(muli_ui16(0, 65535), 0); + assert_eq!(muli_ui16(1, 0), 0); + assert_eq!(muli_ui16(2, 0), 0); + assert_eq!(muli_ui16(3, 0), 0); + assert_eq!(muli_ui16(4, 0), 0); + assert_eq!(muli_ui16(1717, 0), 0); + assert_eq!(muli_ui16(17988, 0), 0); + assert_eq!(muli_ui16(65096, 0), 0); + assert_eq!(muli_ui16(65534, 0), 0); + assert_eq!(muli_ui16(65535, 0), 0); + assert_eq!(muli_ui16(1, 1), 1); + assert_eq!(muli_ui16(1, 2), 2); + assert_eq!(muli_ui16(2, 1), 2); + assert_eq!(muli_ui16(1, 3), 3); + assert_eq!(muli_ui16(3, 1), 3); + assert_eq!(muli_ui16(1, 4), 4); + assert_eq!(muli_ui16(2, 2), 4); + assert_eq!(muli_ui16(4, 1), 4); + assert_eq!(muli_ui16(2, 3), 6); + assert_eq!(muli_ui16(3, 2), 6); + assert_eq!(muli_ui16(2, 4), 8); + assert_eq!(muli_ui16(4, 2), 8); + assert_eq!(muli_ui16(3, 3), 9); + assert_eq!(muli_ui16(3, 4), 12); + assert_eq!(muli_ui16(4, 3), 12); + assert_eq!(muli_ui16(4, 4), 16); + assert_eq!(muli_ui16(1, 1717), 1717); + assert_eq!(muli_ui16(1717, 1), 1717); + assert_eq!(muli_ui16(2, 1717), 3434); + assert_eq!(muli_ui16(1717, 2), 3434); + assert_eq!(muli_ui16(3, 1717), 5151); + assert_eq!(muli_ui16(1717, 3), 5151); + assert_eq!(muli_ui16(4, 1717), 6868); + assert_eq!(muli_ui16(1717, 4), 6868); + assert_eq!(muli_ui16(1, 17988), 17988); + assert_eq!(muli_ui16(17988, 1), 17988); + assert_eq!(muli_ui16(2, 17988), 35976); + assert_eq!(muli_ui16(17988, 2), 35976); + assert_eq!(muli_ui16(3, 17988), 53964); + assert_eq!(muli_ui16(17988, 3), 53964); + assert_eq!(muli_ui16(1, 65096), 65096); + assert_eq!(muli_ui16(65096, 1), 65096); + assert_eq!(muli_ui16(1, 65534), 65534); + assert_eq!(muli_ui16(65534, 1), 65534); + assert_eq!(muli_ui16(1, 65535), 65535); + assert_eq!(muli_ui16(65535, 1), 65535); + assert_eq!(muli_ui32(0, 0), 0); + assert_eq!(muli_ui32(0, 1), 0); + assert_eq!(muli_ui32(0, 2), 0); + assert_eq!(muli_ui32(0, 3), 0); + assert_eq!(muli_ui32(0, 4), 0); + assert_eq!(muli_ui32(0, 2119154652), 0); + assert_eq!(muli_ui32(0, 3002788344), 0); + assert_eq!(muli_ui32(0, 3482297128), 0); + assert_eq!(muli_ui32(0, 4294967294), 0); + assert_eq!(muli_ui32(0, 4294967295), 0); + assert_eq!(muli_ui32(1, 0), 0); + assert_eq!(muli_ui32(2, 0), 0); + assert_eq!(muli_ui32(3, 0), 0); + assert_eq!(muli_ui32(4, 0), 0); + assert_eq!(muli_ui32(2119154652, 0), 0); + assert_eq!(muli_ui32(3002788344, 0), 0); + assert_eq!(muli_ui32(3482297128, 0), 0); + assert_eq!(muli_ui32(4294967294, 0), 0); + assert_eq!(muli_ui32(4294967295, 0), 0); + assert_eq!(muli_ui32(1, 1), 1); + assert_eq!(muli_ui32(1, 2), 2); + assert_eq!(muli_ui32(2, 1), 2); + assert_eq!(muli_ui32(1, 3), 3); + assert_eq!(muli_ui32(3, 1), 3); + assert_eq!(muli_ui32(1, 4), 4); + assert_eq!(muli_ui32(2, 2), 4); + assert_eq!(muli_ui32(4, 1), 4); + assert_eq!(muli_ui32(2, 3), 6); + assert_eq!(muli_ui32(3, 2), 6); + assert_eq!(muli_ui32(2, 4), 8); + assert_eq!(muli_ui32(4, 2), 8); + assert_eq!(muli_ui32(3, 3), 9); + assert_eq!(muli_ui32(3, 4), 12); + assert_eq!(muli_ui32(4, 3), 12); + assert_eq!(muli_ui32(4, 4), 16); + assert_eq!(muli_ui32(1, 2119154652), 2119154652); + assert_eq!(muli_ui32(2119154652, 1), 2119154652); + assert_eq!(muli_ui32(1, 3002788344), 3002788344); + assert_eq!(muli_ui32(3002788344, 1), 3002788344); + assert_eq!(muli_ui32(1, 3482297128), 3482297128); + assert_eq!(muli_ui32(3482297128, 1), 3482297128); + assert_eq!(muli_ui32(2, 2119154652), 4238309304); + assert_eq!(muli_ui32(2119154652, 2), 4238309304); + assert_eq!(muli_ui32(1, 4294967294), 4294967294); + assert_eq!(muli_ui32(4294967294, 1), 4294967294); + assert_eq!(muli_ui32(1, 4294967295), 4294967295); + assert_eq!(muli_ui32(4294967295, 1), 4294967295); + assert_eq!(muli_ui64(0, 0), 0); + assert_eq!(muli_ui64(0, 1), 0); + assert_eq!(muli_ui64(0, 2), 0); + assert_eq!(muli_ui64(0, 3), 0); + assert_eq!(muli_ui64(0, 4), 0); + assert_eq!(muli_ui64(0, 191084152064409600), 0); + assert_eq!(muli_ui64(0, 11015955194427482112), 0); + assert_eq!(muli_ui64(0, 16990600415051759616), 0); + assert_eq!(muli_ui64(0, 18446744073709551614), 0); + assert_eq!(muli_ui64(0, 18446744073709551615), 0); + assert_eq!(muli_ui64(1, 0), 0); + assert_eq!(muli_ui64(2, 0), 0); + assert_eq!(muli_ui64(3, 0), 0); + assert_eq!(muli_ui64(4, 0), 0); + assert_eq!(muli_ui64(191084152064409600, 0), 0); + assert_eq!(muli_ui64(11015955194427482112, 0), 0); + assert_eq!(muli_ui64(16990600415051759616, 0), 0); + assert_eq!(muli_ui64(18446744073709551614, 0), 0); + assert_eq!(muli_ui64(18446744073709551615, 0), 0); + assert_eq!(muli_ui64(1, 1), 1); + assert_eq!(muli_ui64(1, 2), 2); + assert_eq!(muli_ui64(2, 1), 2); + assert_eq!(muli_ui64(1, 3), 3); + assert_eq!(muli_ui64(3, 1), 3); + assert_eq!(muli_ui64(1, 4), 4); + assert_eq!(muli_ui64(2, 2), 4); + assert_eq!(muli_ui64(4, 1), 4); + assert_eq!(muli_ui64(2, 3), 6); + assert_eq!(muli_ui64(3, 2), 6); + assert_eq!(muli_ui64(2, 4), 8); + assert_eq!(muli_ui64(4, 2), 8); + assert_eq!(muli_ui64(3, 3), 9); + assert_eq!(muli_ui64(3, 4), 12); + assert_eq!(muli_ui64(4, 3), 12); + assert_eq!(muli_ui64(4, 4), 16); + assert_eq!(muli_ui64(1, 191084152064409600), 191084152064409600); + assert_eq!(muli_ui64(191084152064409600, 1), 191084152064409600); + assert_eq!(muli_ui64(2, 191084152064409600), 382168304128819200); + assert_eq!(muli_ui64(191084152064409600, 2), 382168304128819200); + assert_eq!(muli_ui64(3, 191084152064409600), 573252456193228800); + assert_eq!(muli_ui64(191084152064409600, 3), 573252456193228800); + assert_eq!(muli_ui64(4, 191084152064409600), 764336608257638400); + assert_eq!(muli_ui64(191084152064409600, 4), 764336608257638400); + assert_eq!(muli_ui64(1, 11015955194427482112), 11015955194427482112); + assert_eq!(muli_ui64(11015955194427482112, 1), 11015955194427482112); + assert_eq!(muli_ui64(1, 16990600415051759616), 16990600415051759616); + assert_eq!(muli_ui64(16990600415051759616, 1), 16990600415051759616); + assert_eq!(muli_ui64(1, 18446744073709551614), 18446744073709551614); + assert_eq!(muli_ui64(18446744073709551614, 1), 18446744073709551614); + assert_eq!(muli_ui64(1, 18446744073709551615), 18446744073709551615); + assert_eq!(muli_ui64(18446744073709551615, 1), 18446744073709551615); + assert_eq!(muli_ui8(0, 0), 0); + assert_eq!(muli_ui8(0, 1), 0); + assert_eq!(muli_ui8(0, 2), 0); + assert_eq!(muli_ui8(0, 3), 0); + assert_eq!(muli_ui8(0, 4), 0); + assert_eq!(muli_ui8(0, 72), 0); + assert_eq!(muli_ui8(0, 100), 0); + assert_eq!(muli_ui8(0, 162), 0); + assert_eq!(muli_ui8(0, 254), 0); + assert_eq!(muli_ui8(0, 255), 0); + assert_eq!(muli_ui8(1, 0), 0); + assert_eq!(muli_ui8(2, 0), 0); + assert_eq!(muli_ui8(3, 0), 0); + assert_eq!(muli_ui8(4, 0), 0); + assert_eq!(muli_ui8(72, 0), 0); + assert_eq!(muli_ui8(100, 0), 0); + assert_eq!(muli_ui8(162, 0), 0); + assert_eq!(muli_ui8(254, 0), 0); + assert_eq!(muli_ui8(255, 0), 0); + assert_eq!(muli_ui8(1, 1), 1); + assert_eq!(muli_ui8(1, 2), 2); + assert_eq!(muli_ui8(2, 1), 2); + assert_eq!(muli_ui8(1, 3), 3); + assert_eq!(muli_ui8(3, 1), 3); + assert_eq!(muli_ui8(1, 4), 4); + assert_eq!(muli_ui8(2, 2), 4); + assert_eq!(muli_ui8(4, 1), 4); + assert_eq!(muli_ui8(2, 3), 6); + assert_eq!(muli_ui8(3, 2), 6); + assert_eq!(muli_ui8(2, 4), 8); + assert_eq!(muli_ui8(4, 2), 8); + assert_eq!(muli_ui8(3, 3), 9); + assert_eq!(muli_ui8(3, 4), 12); + assert_eq!(muli_ui8(4, 3), 12); + assert_eq!(muli_ui8(4, 4), 16); + assert_eq!(muli_ui8(1, 72), 72); + assert_eq!(muli_ui8(72, 1), 72); + assert_eq!(muli_ui8(1, 100), 100); + assert_eq!(muli_ui8(100, 1), 100); + assert_eq!(muli_ui8(2, 72), 144); + assert_eq!(muli_ui8(72, 2), 144); + assert_eq!(muli_ui8(1, 162), 162); + assert_eq!(muli_ui8(162, 1), 162); + assert_eq!(muli_ui8(2, 100), 200); + assert_eq!(muli_ui8(100, 2), 200); + assert_eq!(muli_ui8(3, 72), 216); + assert_eq!(muli_ui8(72, 3), 216); + assert_eq!(muli_ui8(1, 254), 254); + assert_eq!(muli_ui8(254, 1), 254); + assert_eq!(muli_ui8(1, 255), 255); + assert_eq!(muli_ui8(255, 1), 255); + assert_eq!(remi_si16(-32767, -32768), -32767); + assert_eq!(remi_si16(-32547, -32768), -32547); + assert_eq!(remi_si16(-32547, -32767), -32547); + assert_eq!(remi_si16(-32547, 32766), -32547); + assert_eq!(remi_si16(-32547, 32767), -32547); + assert_eq!(remi_si16(-32768, 16514), -16254); + assert_eq!(remi_si16(-32767, 16514), -16253); + assert_eq!(remi_si16(-32547, 16514), -16033); + assert_eq!(remi_si16(-32768, 10486), -1310); + assert_eq!(remi_si16(-32767, 10486), -1309); + assert_eq!(remi_si16(-32547, 10486), -1089); + assert_eq!(remi_si16(-32768, -32547), -221); + assert_eq!(remi_si16(-32767, -32547), -220); + assert_eq!(remi_si16(-32767, 4), -3); + assert_eq!(remi_si16(-32547, 4), -3); + assert_eq!(remi_si16(-32768, 3), -2); + assert_eq!(remi_si16(-32768, 32766), -2); + assert_eq!(remi_si16(-32768, -32767), -1); + assert_eq!(remi_si16(-32768, 32767), -1); + assert_eq!(remi_si16(-32767, 2), -1); + assert_eq!(remi_si16(-32767, 3), -1); + assert_eq!(remi_si16(-32767, 32766), -1); + assert_eq!(remi_si16(-32547, 2), -1); + assert_eq!(remi_si16(-32768, -32768), 0); + assert_eq!(remi_si16(-32768, 1), 0); + assert_eq!(remi_si16(-32768, 2), 0); + assert_eq!(remi_si16(-32768, 4), 0); + assert_eq!(remi_si16(-32767, -32767), 0); + assert_eq!(remi_si16(-32767, 1), 0); + assert_eq!(remi_si16(-32767, 32767), 0); + assert_eq!(remi_si16(-32547, -32547), 0); + assert_eq!(remi_si16(-32547, 1), 0); + assert_eq!(remi_si16(-32547, 3), 0); + assert_eq!(remi_si16(0, -32768), 0); + assert_eq!(remi_si16(0, -32767), 0); + assert_eq!(remi_si16(0, -32547), 0); + assert_eq!(remi_si16(0, 1), 0); + assert_eq!(remi_si16(0, 2), 0); + assert_eq!(remi_si16(0, 3), 0); + assert_eq!(remi_si16(0, 4), 0); + assert_eq!(remi_si16(0, 10486), 0); + assert_eq!(remi_si16(0, 16514), 0); + assert_eq!(remi_si16(0, 32766), 0); + assert_eq!(remi_si16(0, 32767), 0); + assert_eq!(remi_si16(1, 1), 0); + assert_eq!(remi_si16(2, 1), 0); + assert_eq!(remi_si16(2, 2), 0); + assert_eq!(remi_si16(3, 1), 0); + assert_eq!(remi_si16(3, 3), 0); + assert_eq!(remi_si16(4, 1), 0); + assert_eq!(remi_si16(4, 2), 0); + assert_eq!(remi_si16(4, 4), 0); + assert_eq!(remi_si16(10486, 1), 0); + assert_eq!(remi_si16(10486, 2), 0); + assert_eq!(remi_si16(10486, 10486), 0); + assert_eq!(remi_si16(16514, 1), 0); + assert_eq!(remi_si16(16514, 2), 0); + assert_eq!(remi_si16(16514, 16514), 0); + assert_eq!(remi_si16(32766, 1), 0); + assert_eq!(remi_si16(32766, 2), 0); + assert_eq!(remi_si16(32766, 3), 0); + assert_eq!(remi_si16(32766, 32766), 0); + assert_eq!(remi_si16(32767, -32767), 0); + assert_eq!(remi_si16(32767, 1), 0); + assert_eq!(remi_si16(32767, 32767), 0); + assert_eq!(remi_si16(1, -32768), 1); + assert_eq!(remi_si16(1, -32767), 1); + assert_eq!(remi_si16(1, -32547), 1); + assert_eq!(remi_si16(1, 2), 1); + assert_eq!(remi_si16(1, 3), 1); + assert_eq!(remi_si16(1, 4), 1); + assert_eq!(remi_si16(1, 10486), 1); + assert_eq!(remi_si16(1, 16514), 1); + assert_eq!(remi_si16(1, 32766), 1); + assert_eq!(remi_si16(1, 32767), 1); + assert_eq!(remi_si16(3, 2), 1); + assert_eq!(remi_si16(4, 3), 1); + assert_eq!(remi_si16(10486, 3), 1); + assert_eq!(remi_si16(32767, 2), 1); + assert_eq!(remi_si16(32767, 3), 1); + assert_eq!(remi_si16(32767, 32766), 1); + assert_eq!(remi_si16(2, -32768), 2); + assert_eq!(remi_si16(2, -32767), 2); + assert_eq!(remi_si16(2, -32547), 2); + assert_eq!(remi_si16(2, 3), 2); + assert_eq!(remi_si16(2, 4), 2); + assert_eq!(remi_si16(2, 10486), 2); + assert_eq!(remi_si16(2, 16514), 2); + assert_eq!(remi_si16(2, 32766), 2); + assert_eq!(remi_si16(2, 32767), 2); + assert_eq!(remi_si16(10486, 4), 2); + assert_eq!(remi_si16(16514, 3), 2); + assert_eq!(remi_si16(16514, 4), 2); + assert_eq!(remi_si16(32766, 4), 2); + assert_eq!(remi_si16(3, -32768), 3); + assert_eq!(remi_si16(3, -32767), 3); + assert_eq!(remi_si16(3, -32547), 3); + assert_eq!(remi_si16(3, 4), 3); + assert_eq!(remi_si16(3, 10486), 3); + assert_eq!(remi_si16(3, 16514), 3); + assert_eq!(remi_si16(3, 32766), 3); + assert_eq!(remi_si16(3, 32767), 3); + assert_eq!(remi_si16(32767, 4), 3); + assert_eq!(remi_si16(4, -32768), 4); + assert_eq!(remi_si16(4, -32767), 4); + assert_eq!(remi_si16(4, -32547), 4); + assert_eq!(remi_si16(4, 10486), 4); + assert_eq!(remi_si16(4, 16514), 4); + assert_eq!(remi_si16(4, 32766), 4); + assert_eq!(remi_si16(4, 32767), 4); + assert_eq!(remi_si16(32766, -32547), 219); + assert_eq!(remi_si16(32767, -32547), 220); + assert_eq!(remi_si16(32766, 10486), 1308); + assert_eq!(remi_si16(32767, 10486), 1309); + assert_eq!(remi_si16(16514, 10486), 6028); + assert_eq!(remi_si16(10486, -32768), 10486); + assert_eq!(remi_si16(10486, -32767), 10486); + assert_eq!(remi_si16(10486, -32547), 10486); + assert_eq!(remi_si16(10486, 16514), 10486); + assert_eq!(remi_si16(10486, 32766), 10486); + assert_eq!(remi_si16(10486, 32767), 10486); + assert_eq!(remi_si16(32766, 16514), 16252); + assert_eq!(remi_si16(32767, 16514), 16253); + assert_eq!(remi_si16(16514, -32768), 16514); + assert_eq!(remi_si16(16514, -32767), 16514); + assert_eq!(remi_si16(16514, -32547), 16514); + assert_eq!(remi_si16(16514, 32766), 16514); + assert_eq!(remi_si16(16514, 32767), 16514); + assert_eq!(remi_si16(32766, -32768), 32766); + assert_eq!(remi_si16(32766, -32767), 32766); + assert_eq!(remi_si16(32766, 32767), 32766); + assert_eq!(remi_si16(32767, -32768), 32767); + assert_eq!(remi_si32(-2147483647, -2147483648), -2147483647); + assert_eq!(remi_si32(-1713183800, -2147483648), -1713183800); + assert_eq!(remi_si32(-1713183800, -2147483647), -1713183800); + assert_eq!(remi_si32(-1713183800, 2147483646), -1713183800); + assert_eq!(remi_si32(-1713183800, 2147483647), -1713183800); + assert_eq!(remi_si32(-1252582164, -2147483648), -1252582164); + assert_eq!(remi_si32(-1252582164, -2147483647), -1252582164); + assert_eq!(remi_si32(-1252582164, -1713183800), -1252582164); + assert_eq!(remi_si32(-1252582164, 2147483646), -1252582164); + assert_eq!(remi_si32(-1252582164, 2147483647), -1252582164); + assert_eq!(remi_si32(-1035405763, -2147483648), -1035405763); + assert_eq!(remi_si32(-1035405763, -2147483647), -1035405763); + assert_eq!(remi_si32(-1035405763, -1713183800), -1035405763); + assert_eq!(remi_si32(-1035405763, -1252582164), -1035405763); + assert_eq!(remi_si32(-1035405763, 2147483646), -1035405763); + assert_eq!(remi_si32(-1035405763, 2147483647), -1035405763); + assert_eq!(remi_si32(-2147483648, -1252582164), -894901484); + assert_eq!(remi_si32(-2147483647, -1252582164), -894901483); + assert_eq!(remi_si32(-1713183800, -1035405763), -677778037); + assert_eq!(remi_si32(-1713183800, -1252582164), -460601636); + assert_eq!(remi_si32(-2147483648, -1713183800), -434299848); + assert_eq!(remi_si32(-2147483647, -1713183800), -434299847); + assert_eq!(remi_si32(-1252582164, -1035405763), -217176401); + assert_eq!(remi_si32(-2147483648, -1035405763), -76672122); + assert_eq!(remi_si32(-2147483647, -1035405763), -76672121); + assert_eq!(remi_si32(-2147483647, 4), -3); + assert_eq!(remi_si32(-1035405763, 4), -3); + assert_eq!(remi_si32(-2147483648, 3), -2); + assert_eq!(remi_si32(-2147483648, 2147483646), -2); + assert_eq!(remi_si32(-1713183800, 3), -2); + assert_eq!(remi_si32(-2147483648, -2147483647), -1); + assert_eq!(remi_si32(-2147483648, 2147483647), -1); + assert_eq!(remi_si32(-2147483647, 2), -1); + assert_eq!(remi_si32(-2147483647, 3), -1); + assert_eq!(remi_si32(-2147483647, 2147483646), -1); + assert_eq!(remi_si32(-1035405763, 2), -1); + assert_eq!(remi_si32(-1035405763, 3), -1); + assert_eq!(remi_si32(-2147483648, -2147483648), 0); + assert_eq!(remi_si32(-2147483648, 1), 0); + assert_eq!(remi_si32(-2147483648, 2), 0); + assert_eq!(remi_si32(-2147483648, 4), 0); + assert_eq!(remi_si32(-2147483647, -2147483647), 0); + assert_eq!(remi_si32(-2147483647, 1), 0); + assert_eq!(remi_si32(-2147483647, 2147483647), 0); + assert_eq!(remi_si32(-1713183800, -1713183800), 0); + assert_eq!(remi_si32(-1713183800, 1), 0); + assert_eq!(remi_si32(-1713183800, 2), 0); + assert_eq!(remi_si32(-1713183800, 4), 0); + assert_eq!(remi_si32(-1252582164, -1252582164), 0); + assert_eq!(remi_si32(-1252582164, 1), 0); + assert_eq!(remi_si32(-1252582164, 2), 0); + assert_eq!(remi_si32(-1252582164, 3), 0); + assert_eq!(remi_si32(-1252582164, 4), 0); + assert_eq!(remi_si32(-1035405763, -1035405763), 0); + assert_eq!(remi_si32(-1035405763, 1), 0); + assert_eq!(remi_si32(0, -2147483648), 0); + assert_eq!(remi_si32(0, -2147483647), 0); + assert_eq!(remi_si32(0, -1713183800), 0); + assert_eq!(remi_si32(0, -1252582164), 0); + assert_eq!(remi_si32(0, -1035405763), 0); + assert_eq!(remi_si32(0, 1), 0); + assert_eq!(remi_si32(0, 2), 0); + assert_eq!(remi_si32(0, 3), 0); + assert_eq!(remi_si32(0, 4), 0); + assert_eq!(remi_si32(0, 2147483646), 0); + assert_eq!(remi_si32(0, 2147483647), 0); + assert_eq!(remi_si32(1, 1), 0); + assert_eq!(remi_si32(2, 1), 0); + assert_eq!(remi_si32(2, 2), 0); + assert_eq!(remi_si32(3, 1), 0); + assert_eq!(remi_si32(3, 3), 0); + assert_eq!(remi_si32(4, 1), 0); + assert_eq!(remi_si32(4, 2), 0); + assert_eq!(remi_si32(4, 4), 0); + assert_eq!(remi_si32(2147483646, 1), 0); + assert_eq!(remi_si32(2147483646, 2), 0); + assert_eq!(remi_si32(2147483646, 3), 0); + assert_eq!(remi_si32(2147483646, 2147483646), 0); + assert_eq!(remi_si32(2147483647, -2147483647), 0); + assert_eq!(remi_si32(2147483647, 1), 0); + assert_eq!(remi_si32(2147483647, 2147483647), 0); + assert_eq!(remi_si32(1, -2147483648), 1); + assert_eq!(remi_si32(1, -2147483647), 1); + assert_eq!(remi_si32(1, -1713183800), 1); + assert_eq!(remi_si32(1, -1252582164), 1); + assert_eq!(remi_si32(1, -1035405763), 1); + assert_eq!(remi_si32(1, 2), 1); + assert_eq!(remi_si32(1, 3), 1); + assert_eq!(remi_si32(1, 4), 1); + assert_eq!(remi_si32(1, 2147483646), 1); + assert_eq!(remi_si32(1, 2147483647), 1); + assert_eq!(remi_si32(3, 2), 1); + assert_eq!(remi_si32(4, 3), 1); + assert_eq!(remi_si32(2147483647, 2), 1); + assert_eq!(remi_si32(2147483647, 3), 1); + assert_eq!(remi_si32(2147483647, 2147483646), 1); + assert_eq!(remi_si32(2, -2147483648), 2); + assert_eq!(remi_si32(2, -2147483647), 2); + assert_eq!(remi_si32(2, -1713183800), 2); + assert_eq!(remi_si32(2, -1252582164), 2); + assert_eq!(remi_si32(2, -1035405763), 2); + assert_eq!(remi_si32(2, 3), 2); + assert_eq!(remi_si32(2, 4), 2); + assert_eq!(remi_si32(2, 2147483646), 2); + assert_eq!(remi_si32(2, 2147483647), 2); + assert_eq!(remi_si32(2147483646, 4), 2); + assert_eq!(remi_si32(3, -2147483648), 3); + assert_eq!(remi_si32(3, -2147483647), 3); + assert_eq!(remi_si32(3, -1713183800), 3); + assert_eq!(remi_si32(3, -1252582164), 3); + assert_eq!(remi_si32(3, -1035405763), 3); + assert_eq!(remi_si32(3, 4), 3); + assert_eq!(remi_si32(3, 2147483646), 3); + assert_eq!(remi_si32(3, 2147483647), 3); + assert_eq!(remi_si32(2147483647, 4), 3); + assert_eq!(remi_si32(4, -2147483648), 4); + assert_eq!(remi_si32(4, -2147483647), 4); + assert_eq!(remi_si32(4, -1713183800), 4); + assert_eq!(remi_si32(4, -1252582164), 4); + assert_eq!(remi_si32(4, -1035405763), 4); + assert_eq!(remi_si32(4, 2147483646), 4); + assert_eq!(remi_si32(4, 2147483647), 4); + assert_eq!(remi_si32(2147483646, -1035405763), 76672120); + assert_eq!(remi_si32(2147483647, -1035405763), 76672121); + assert_eq!(remi_si32(2147483646, -1713183800), 434299846); + assert_eq!(remi_si32(2147483647, -1713183800), 434299847); + assert_eq!(remi_si32(2147483646, -1252582164), 894901482); + assert_eq!(remi_si32(2147483647, -1252582164), 894901483); + assert_eq!(remi_si32(2147483646, -2147483648), 2147483646); + assert_eq!(remi_si32(2147483646, -2147483647), 2147483646); + assert_eq!(remi_si32(2147483646, 2147483647), 2147483646); + assert_eq!(remi_si32(2147483647, -2147483648), 2147483647); + assert_eq!( + remi_si64(-9223372036854775807, -9223372036854775808), + -9223372036854775807 + ); + assert_eq!( + remi_si64(-9223372036854775808, 5577148965131116544), + -3646223071723659264 + ); + assert_eq!( + remi_si64(-9223372036854775807, 5577148965131116544), + -3646223071723659263 + ); + assert_eq!( + remi_si64(-1741927215160008704, -9223372036854775808), + -1741927215160008704 + ); + assert_eq!( + remi_si64(-1741927215160008704, -9223372036854775807), + -1741927215160008704 + ); + assert_eq!( + remi_si64(-1741927215160008704, 5577148965131116544), + -1741927215160008704 + ); + assert_eq!( + remi_si64(-1741927215160008704, 9223372036854775806), + -1741927215160008704 + ); + assert_eq!( + remi_si64(-1741927215160008704, 9223372036854775807), + -1741927215160008704 + ); + assert_eq!( + remi_si64(-1328271339354574848, -9223372036854775808), + -1328271339354574848 + ); + assert_eq!( + remi_si64(-1328271339354574848, -9223372036854775807), + -1328271339354574848 + ); + assert_eq!( + remi_si64(-1328271339354574848, -1741927215160008704), + -1328271339354574848 + ); + assert_eq!( + remi_si64(-1328271339354574848, 5577148965131116544), + -1328271339354574848 + ); + assert_eq!( + remi_si64(-1328271339354574848, 9223372036854775806), + -1328271339354574848 + ); + assert_eq!( + remi_si64(-1328271339354574848, 9223372036854775807), + -1328271339354574848 + ); + assert_eq!( + remi_si64(-9223372036854775808, -1328271339354574848), + -1253744000727326720 + ); + assert_eq!( + remi_si64(-9223372036854775807, -1328271339354574848), + -1253744000727326719 + ); + assert_eq!( + remi_si64(-9223372036854775808, -1741927215160008704), + -513735961054732288 + ); + assert_eq!( + remi_si64(-9223372036854775807, -1741927215160008704), + -513735961054732287 + ); + assert_eq!( + remi_si64(-1741927215160008704, -1328271339354574848), + -413655875805433856 + ); + assert_eq!(remi_si64(-9223372036854775807, 4), -3); + assert_eq!(remi_si64(-9223372036854775808, 3), -2); + assert_eq!(remi_si64(-9223372036854775808, 9223372036854775806), -2); + assert_eq!(remi_si64(-1741927215160008704, 3), -2); + assert_eq!(remi_si64(-9223372036854775808, -9223372036854775807), -1); + assert_eq!(remi_si64(-9223372036854775808, 9223372036854775807), -1); + assert_eq!(remi_si64(-9223372036854775807, 2), -1); + assert_eq!(remi_si64(-9223372036854775807, 3), -1); + assert_eq!(remi_si64(-9223372036854775807, 9223372036854775806), -1); + assert_eq!(remi_si64(-9223372036854775808, -9223372036854775808), 0); + assert_eq!(remi_si64(-9223372036854775808, 1), 0); + assert_eq!(remi_si64(-9223372036854775808, 2), 0); + assert_eq!(remi_si64(-9223372036854775808, 4), 0); + assert_eq!(remi_si64(-9223372036854775807, -9223372036854775807), 0); + assert_eq!(remi_si64(-9223372036854775807, 1), 0); + assert_eq!(remi_si64(-9223372036854775807, 9223372036854775807), 0); + assert_eq!(remi_si64(-1741927215160008704, -1741927215160008704), 0); + assert_eq!(remi_si64(-1741927215160008704, 1), 0); + assert_eq!(remi_si64(-1741927215160008704, 2), 0); + assert_eq!(remi_si64(-1741927215160008704, 4), 0); + assert_eq!(remi_si64(-1328271339354574848, -1328271339354574848), 0); + assert_eq!(remi_si64(-1328271339354574848, 1), 0); + assert_eq!(remi_si64(-1328271339354574848, 2), 0); + assert_eq!(remi_si64(-1328271339354574848, 3), 0); + assert_eq!(remi_si64(-1328271339354574848, 4), 0); + assert_eq!(remi_si64(0, -9223372036854775808), 0); + assert_eq!(remi_si64(0, -9223372036854775807), 0); + assert_eq!(remi_si64(0, -1741927215160008704), 0); + assert_eq!(remi_si64(0, -1328271339354574848), 0); + assert_eq!(remi_si64(0, 1), 0); + assert_eq!(remi_si64(0, 2), 0); + assert_eq!(remi_si64(0, 3), 0); + assert_eq!(remi_si64(0, 4), 0); + assert_eq!(remi_si64(0, 5577148965131116544), 0); + assert_eq!(remi_si64(0, 9223372036854775806), 0); + assert_eq!(remi_si64(0, 9223372036854775807), 0); + assert_eq!(remi_si64(1, 1), 0); + assert_eq!(remi_si64(2, 1), 0); + assert_eq!(remi_si64(2, 2), 0); + assert_eq!(remi_si64(3, 1), 0); + assert_eq!(remi_si64(3, 3), 0); + assert_eq!(remi_si64(4, 1), 0); + assert_eq!(remi_si64(4, 2), 0); + assert_eq!(remi_si64(4, 4), 0); + assert_eq!(remi_si64(5577148965131116544, 1), 0); + assert_eq!(remi_si64(5577148965131116544, 2), 0); + assert_eq!(remi_si64(5577148965131116544, 4), 0); + assert_eq!(remi_si64(5577148965131116544, 5577148965131116544), 0); + assert_eq!(remi_si64(9223372036854775806, 1), 0); + assert_eq!(remi_si64(9223372036854775806, 2), 0); + assert_eq!(remi_si64(9223372036854775806, 3), 0); + assert_eq!(remi_si64(9223372036854775806, 9223372036854775806), 0); + assert_eq!(remi_si64(9223372036854775807, -9223372036854775807), 0); + assert_eq!(remi_si64(9223372036854775807, 1), 0); + assert_eq!(remi_si64(9223372036854775807, 9223372036854775807), 0); + assert_eq!(remi_si64(1, -9223372036854775808), 1); + assert_eq!(remi_si64(1, -9223372036854775807), 1); + assert_eq!(remi_si64(1, -1741927215160008704), 1); + assert_eq!(remi_si64(1, -1328271339354574848), 1); + assert_eq!(remi_si64(1, 2), 1); + assert_eq!(remi_si64(1, 3), 1); + assert_eq!(remi_si64(1, 4), 1); + assert_eq!(remi_si64(1, 5577148965131116544), 1); + assert_eq!(remi_si64(1, 9223372036854775806), 1); + assert_eq!(remi_si64(1, 9223372036854775807), 1); + assert_eq!(remi_si64(3, 2), 1); + assert_eq!(remi_si64(4, 3), 1); + assert_eq!(remi_si64(9223372036854775807, 2), 1); + assert_eq!(remi_si64(9223372036854775807, 3), 1); + assert_eq!(remi_si64(9223372036854775807, 9223372036854775806), 1); + assert_eq!(remi_si64(2, -9223372036854775808), 2); + assert_eq!(remi_si64(2, -9223372036854775807), 2); + assert_eq!(remi_si64(2, -1741927215160008704), 2); + assert_eq!(remi_si64(2, -1328271339354574848), 2); + assert_eq!(remi_si64(2, 3), 2); + assert_eq!(remi_si64(2, 4), 2); + assert_eq!(remi_si64(2, 5577148965131116544), 2); + assert_eq!(remi_si64(2, 9223372036854775806), 2); + assert_eq!(remi_si64(2, 9223372036854775807), 2); + assert_eq!(remi_si64(5577148965131116544, 3), 2); + assert_eq!(remi_si64(9223372036854775806, 4), 2); + assert_eq!(remi_si64(3, -9223372036854775808), 3); + assert_eq!(remi_si64(3, -9223372036854775807), 3); + assert_eq!(remi_si64(3, -1741927215160008704), 3); + assert_eq!(remi_si64(3, -1328271339354574848), 3); + assert_eq!(remi_si64(3, 4), 3); + assert_eq!(remi_si64(3, 5577148965131116544), 3); + assert_eq!(remi_si64(3, 9223372036854775806), 3); + assert_eq!(remi_si64(3, 9223372036854775807), 3); + assert_eq!(remi_si64(9223372036854775807, 4), 3); + assert_eq!(remi_si64(4, -9223372036854775808), 4); + assert_eq!(remi_si64(4, -9223372036854775807), 4); + assert_eq!(remi_si64(4, -1741927215160008704), 4); + assert_eq!(remi_si64(4, -1328271339354574848), 4); + assert_eq!(remi_si64(4, 5577148965131116544), 4); + assert_eq!(remi_si64(4, 9223372036854775806), 4); + assert_eq!(remi_si64(4, 9223372036854775807), 4); + assert_eq!( + remi_si64(5577148965131116544, -1328271339354574848), + 264063607712817152 + ); + assert_eq!( + remi_si64(5577148965131116544, -1741927215160008704), + 351367319651090432 + ); + assert_eq!( + remi_si64(9223372036854775806, -1741927215160008704), + 513735961054732286 + ); + assert_eq!( + remi_si64(9223372036854775807, -1741927215160008704), + 513735961054732287 + ); + assert_eq!( + remi_si64(9223372036854775806, -1328271339354574848), + 1253744000727326718 + ); + assert_eq!( + remi_si64(9223372036854775807, -1328271339354574848), + 1253744000727326719 + ); + assert_eq!( + remi_si64(9223372036854775806, 5577148965131116544), + 3646223071723659262 + ); + assert_eq!( + remi_si64(9223372036854775807, 5577148965131116544), + 3646223071723659263 + ); + assert_eq!( + remi_si64(5577148965131116544, -9223372036854775808), + 5577148965131116544 + ); + assert_eq!( + remi_si64(5577148965131116544, -9223372036854775807), + 5577148965131116544 + ); + assert_eq!( + remi_si64(5577148965131116544, 9223372036854775806), + 5577148965131116544 + ); + assert_eq!( + remi_si64(5577148965131116544, 9223372036854775807), + 5577148965131116544 + ); + assert_eq!( + remi_si64(9223372036854775806, -9223372036854775808), + 9223372036854775806 + ); + assert_eq!( + remi_si64(9223372036854775806, -9223372036854775807), + 9223372036854775806 + ); + assert_eq!( + remi_si64(9223372036854775806, 9223372036854775807), + 9223372036854775806 + ); + assert_eq!( + remi_si64(9223372036854775807, -9223372036854775808), + 9223372036854775807 + ); + assert_eq!(remi_si8(-127, -128), -127); + assert_eq!(remi_si8(-127, 16), -15); + assert_eq!(remi_si8(-127, 4), -3); + assert_eq!(remi_si8(-128, 3), -2); + assert_eq!(remi_si8(-128, 126), -2); + assert_eq!(remi_si8(-128, -127), -1); + assert_eq!(remi_si8(-128, 127), -1); + assert_eq!(remi_si8(-127, 2), -1); + assert_eq!(remi_si8(-127, 3), -1); + assert_eq!(remi_si8(-127, 126), -1); + assert_eq!(remi_si8(-128, -128), 0); + assert_eq!(remi_si8(-128, 1), 0); + assert_eq!(remi_si8(-128, 2), 0); + assert_eq!(remi_si8(-128, 4), 0); + assert_eq!(remi_si8(-128, 16), 0); + assert_eq!(remi_si8(-127, -127), 0); + assert_eq!(remi_si8(-127, 1), 0); + assert_eq!(remi_si8(-127, 127), 0); + assert_eq!(remi_si8(0, -128), 0); + assert_eq!(remi_si8(0, -127), 0); + assert_eq!(remi_si8(0, 1), 0); + assert_eq!(remi_si8(0, 2), 0); + assert_eq!(remi_si8(0, 3), 0); + assert_eq!(remi_si8(0, 4), 0); + assert_eq!(remi_si8(0, 16), 0); + assert_eq!(remi_si8(0, 126), 0); + assert_eq!(remi_si8(0, 127), 0); + assert_eq!(remi_si8(1, 1), 0); + assert_eq!(remi_si8(2, 1), 0); + assert_eq!(remi_si8(2, 2), 0); + assert_eq!(remi_si8(3, 1), 0); + assert_eq!(remi_si8(3, 3), 0); + assert_eq!(remi_si8(4, 1), 0); + assert_eq!(remi_si8(4, 2), 0); + assert_eq!(remi_si8(4, 4), 0); + assert_eq!(remi_si8(16, 1), 0); + assert_eq!(remi_si8(16, 2), 0); + assert_eq!(remi_si8(16, 4), 0); + assert_eq!(remi_si8(16, 16), 0); + assert_eq!(remi_si8(126, 1), 0); + assert_eq!(remi_si8(126, 2), 0); + assert_eq!(remi_si8(126, 3), 0); + assert_eq!(remi_si8(126, 126), 0); + assert_eq!(remi_si8(127, -127), 0); + assert_eq!(remi_si8(127, 1), 0); + assert_eq!(remi_si8(127, 127), 0); + assert_eq!(remi_si8(1, -128), 1); + assert_eq!(remi_si8(1, -127), 1); + assert_eq!(remi_si8(1, 2), 1); + assert_eq!(remi_si8(1, 3), 1); + assert_eq!(remi_si8(1, 4), 1); + assert_eq!(remi_si8(1, 16), 1); + assert_eq!(remi_si8(1, 126), 1); + assert_eq!(remi_si8(1, 127), 1); + assert_eq!(remi_si8(3, 2), 1); + assert_eq!(remi_si8(4, 3), 1); + assert_eq!(remi_si8(16, 3), 1); + assert_eq!(remi_si8(127, 2), 1); + assert_eq!(remi_si8(127, 3), 1); + assert_eq!(remi_si8(127, 126), 1); + assert_eq!(remi_si8(2, -128), 2); + assert_eq!(remi_si8(2, -127), 2); + assert_eq!(remi_si8(2, 3), 2); + assert_eq!(remi_si8(2, 4), 2); + assert_eq!(remi_si8(2, 16), 2); + assert_eq!(remi_si8(2, 126), 2); + assert_eq!(remi_si8(2, 127), 2); + assert_eq!(remi_si8(126, 4), 2); + assert_eq!(remi_si8(3, -128), 3); + assert_eq!(remi_si8(3, -127), 3); + assert_eq!(remi_si8(3, 4), 3); + assert_eq!(remi_si8(3, 16), 3); + assert_eq!(remi_si8(3, 126), 3); + assert_eq!(remi_si8(3, 127), 3); + assert_eq!(remi_si8(127, 4), 3); + assert_eq!(remi_si8(4, -128), 4); + assert_eq!(remi_si8(4, -127), 4); + assert_eq!(remi_si8(4, 16), 4); + assert_eq!(remi_si8(4, 126), 4); + assert_eq!(remi_si8(4, 127), 4); + assert_eq!(remi_si8(126, 16), 14); + assert_eq!(remi_si8(127, 16), 15); + assert_eq!(remi_si8(16, -128), 16); + assert_eq!(remi_si8(16, -127), 16); + assert_eq!(remi_si8(16, 126), 16); + assert_eq!(remi_si8(16, 127), 16); + assert_eq!(remi_si8(126, -128), 126); + assert_eq!(remi_si8(126, -127), 126); + assert_eq!(remi_si8(126, 127), 126); + assert_eq!(remi_si8(127, -128), 127); + assert_eq!(remi_ui16(0, 1), 0); + assert_eq!(remi_ui16(0, 2), 0); + assert_eq!(remi_ui16(0, 3), 0); + assert_eq!(remi_ui16(0, 4), 0); + assert_eq!(remi_ui16(0, 1717), 0); + assert_eq!(remi_ui16(0, 17988), 0); + assert_eq!(remi_ui16(0, 65096), 0); + assert_eq!(remi_ui16(0, 65534), 0); + assert_eq!(remi_ui16(0, 65535), 0); + assert_eq!(remi_ui16(1, 1), 0); + assert_eq!(remi_ui16(2, 1), 0); + assert_eq!(remi_ui16(2, 2), 0); + assert_eq!(remi_ui16(3, 1), 0); + assert_eq!(remi_ui16(3, 3), 0); + assert_eq!(remi_ui16(4, 1), 0); + assert_eq!(remi_ui16(4, 2), 0); + assert_eq!(remi_ui16(4, 4), 0); + assert_eq!(remi_ui16(1717, 1), 0); + assert_eq!(remi_ui16(1717, 1717), 0); + assert_eq!(remi_ui16(17988, 1), 0); + assert_eq!(remi_ui16(17988, 2), 0); + assert_eq!(remi_ui16(17988, 3), 0); + assert_eq!(remi_ui16(17988, 4), 0); + assert_eq!(remi_ui16(17988, 17988), 0); + assert_eq!(remi_ui16(65096, 1), 0); + assert_eq!(remi_ui16(65096, 2), 0); + assert_eq!(remi_ui16(65096, 4), 0); + assert_eq!(remi_ui16(65096, 65096), 0); + assert_eq!(remi_ui16(65534, 1), 0); + assert_eq!(remi_ui16(65534, 2), 0); + assert_eq!(remi_ui16(65534, 65534), 0); + assert_eq!(remi_ui16(65535, 1), 0); + assert_eq!(remi_ui16(65535, 3), 0); + assert_eq!(remi_ui16(65535, 65535), 0); + assert_eq!(remi_ui16(1, 2), 1); + assert_eq!(remi_ui16(1, 3), 1); + assert_eq!(remi_ui16(1, 4), 1); + assert_eq!(remi_ui16(1, 1717), 1); + assert_eq!(remi_ui16(1, 17988), 1); + assert_eq!(remi_ui16(1, 65096), 1); + assert_eq!(remi_ui16(1, 65534), 1); + assert_eq!(remi_ui16(1, 65535), 1); + assert_eq!(remi_ui16(3, 2), 1); + assert_eq!(remi_ui16(4, 3), 1); + assert_eq!(remi_ui16(1717, 2), 1); + assert_eq!(remi_ui16(1717, 3), 1); + assert_eq!(remi_ui16(1717, 4), 1); + assert_eq!(remi_ui16(65535, 2), 1); + assert_eq!(remi_ui16(65535, 65534), 1); + assert_eq!(remi_ui16(2, 3), 2); + assert_eq!(remi_ui16(2, 4), 2); + assert_eq!(remi_ui16(2, 1717), 2); + assert_eq!(remi_ui16(2, 17988), 2); + assert_eq!(remi_ui16(2, 65096), 2); + assert_eq!(remi_ui16(2, 65534), 2); + assert_eq!(remi_ui16(2, 65535), 2); + assert_eq!(remi_ui16(65096, 3), 2); + assert_eq!(remi_ui16(65534, 3), 2); + assert_eq!(remi_ui16(65534, 4), 2); + assert_eq!(remi_ui16(3, 4), 3); + assert_eq!(remi_ui16(3, 1717), 3); + assert_eq!(remi_ui16(3, 17988), 3); + assert_eq!(remi_ui16(3, 65096), 3); + assert_eq!(remi_ui16(3, 65534), 3); + assert_eq!(remi_ui16(3, 65535), 3); + assert_eq!(remi_ui16(65535, 4), 3); + assert_eq!(remi_ui16(4, 1717), 4); + assert_eq!(remi_ui16(4, 17988), 4); + assert_eq!(remi_ui16(4, 65096), 4); + assert_eq!(remi_ui16(4, 65534), 4); + assert_eq!(remi_ui16(4, 65535), 4); + assert_eq!(remi_ui16(65534, 1717), 288); + assert_eq!(remi_ui16(65535, 1717), 289); + assert_eq!(remi_ui16(65534, 65096), 438); + assert_eq!(remi_ui16(65535, 65096), 439); + assert_eq!(remi_ui16(17988, 1717), 818); + assert_eq!(remi_ui16(65096, 1717), 1567); + assert_eq!(remi_ui16(1717, 17988), 1717); + assert_eq!(remi_ui16(1717, 65096), 1717); + assert_eq!(remi_ui16(1717, 65534), 1717); + assert_eq!(remi_ui16(1717, 65535), 1717); + assert_eq!(remi_ui16(65096, 17988), 11132); + assert_eq!(remi_ui16(65534, 17988), 11570); + assert_eq!(remi_ui16(65535, 17988), 11571); + assert_eq!(remi_ui16(17988, 65096), 17988); + assert_eq!(remi_ui16(17988, 65534), 17988); + assert_eq!(remi_ui16(17988, 65535), 17988); + assert_eq!(remi_ui16(65096, 65534), 65096); + assert_eq!(remi_ui16(65096, 65535), 65096); + assert_eq!(remi_ui16(65534, 65535), 65534); + assert_eq!(remi_ui32(0, 1), 0); + assert_eq!(remi_ui32(0, 2), 0); + assert_eq!(remi_ui32(0, 3), 0); + assert_eq!(remi_ui32(0, 4), 0); + assert_eq!(remi_ui32(0, 2119154652), 0); + assert_eq!(remi_ui32(0, 3002788344), 0); + assert_eq!(remi_ui32(0, 3482297128), 0); + assert_eq!(remi_ui32(0, 4294967294), 0); + assert_eq!(remi_ui32(0, 4294967295), 0); + assert_eq!(remi_ui32(1, 1), 0); + assert_eq!(remi_ui32(2, 1), 0); + assert_eq!(remi_ui32(2, 2), 0); + assert_eq!(remi_ui32(3, 1), 0); + assert_eq!(remi_ui32(3, 3), 0); + assert_eq!(remi_ui32(4, 1), 0); + assert_eq!(remi_ui32(4, 2), 0); + assert_eq!(remi_ui32(4, 4), 0); + assert_eq!(remi_ui32(2119154652, 1), 0); + assert_eq!(remi_ui32(2119154652, 2), 0); + assert_eq!(remi_ui32(2119154652, 3), 0); + assert_eq!(remi_ui32(2119154652, 4), 0); + assert_eq!(remi_ui32(2119154652, 2119154652), 0); + assert_eq!(remi_ui32(3002788344, 1), 0); + assert_eq!(remi_ui32(3002788344, 2), 0); + assert_eq!(remi_ui32(3002788344, 3), 0); + assert_eq!(remi_ui32(3002788344, 4), 0); + assert_eq!(remi_ui32(3002788344, 3002788344), 0); + assert_eq!(remi_ui32(3482297128, 1), 0); + assert_eq!(remi_ui32(3482297128, 2), 0); + assert_eq!(remi_ui32(3482297128, 4), 0); + assert_eq!(remi_ui32(3482297128, 3482297128), 0); + assert_eq!(remi_ui32(4294967294, 1), 0); + assert_eq!(remi_ui32(4294967294, 2), 0); + assert_eq!(remi_ui32(4294967294, 4294967294), 0); + assert_eq!(remi_ui32(4294967295, 1), 0); + assert_eq!(remi_ui32(4294967295, 3), 0); + assert_eq!(remi_ui32(4294967295, 4294967295), 0); + assert_eq!(remi_ui32(1, 2), 1); + assert_eq!(remi_ui32(1, 3), 1); + assert_eq!(remi_ui32(1, 4), 1); + assert_eq!(remi_ui32(1, 2119154652), 1); + assert_eq!(remi_ui32(1, 3002788344), 1); + assert_eq!(remi_ui32(1, 3482297128), 1); + assert_eq!(remi_ui32(1, 4294967294), 1); + assert_eq!(remi_ui32(1, 4294967295), 1); + assert_eq!(remi_ui32(3, 2), 1); + assert_eq!(remi_ui32(4, 3), 1); + assert_eq!(remi_ui32(3482297128, 3), 1); + assert_eq!(remi_ui32(4294967295, 2), 1); + assert_eq!(remi_ui32(4294967295, 4294967294), 1); + assert_eq!(remi_ui32(2, 3), 2); + assert_eq!(remi_ui32(2, 4), 2); + assert_eq!(remi_ui32(2, 2119154652), 2); + assert_eq!(remi_ui32(2, 3002788344), 2); + assert_eq!(remi_ui32(2, 3482297128), 2); + assert_eq!(remi_ui32(2, 4294967294), 2); + assert_eq!(remi_ui32(2, 4294967295), 2); + assert_eq!(remi_ui32(4294967294, 3), 2); + assert_eq!(remi_ui32(4294967294, 4), 2); + assert_eq!(remi_ui32(3, 4), 3); + assert_eq!(remi_ui32(3, 2119154652), 3); + assert_eq!(remi_ui32(3, 3002788344), 3); + assert_eq!(remi_ui32(3, 3482297128), 3); + assert_eq!(remi_ui32(3, 4294967294), 3); + assert_eq!(remi_ui32(3, 4294967295), 3); + assert_eq!(remi_ui32(4294967295, 4), 3); + assert_eq!(remi_ui32(4, 2119154652), 4); + assert_eq!(remi_ui32(4, 3002788344), 4); + assert_eq!(remi_ui32(4, 3482297128), 4); + assert_eq!(remi_ui32(4, 4294967294), 4); + assert_eq!(remi_ui32(4, 4294967295), 4); + assert_eq!(remi_ui32(4294967294, 2119154652), 56657990); + assert_eq!(remi_ui32(4294967295, 2119154652), 56657991); + assert_eq!(remi_ui32(3482297128, 3002788344), 479508784); + assert_eq!(remi_ui32(4294967294, 3482297128), 812670166); + assert_eq!(remi_ui32(4294967295, 3482297128), 812670167); + assert_eq!(remi_ui32(3002788344, 2119154652), 883633692); + assert_eq!(remi_ui32(4294967294, 3002788344), 1292178950); + assert_eq!(remi_ui32(4294967295, 3002788344), 1292178951); + assert_eq!(remi_ui32(3482297128, 2119154652), 1363142476); + assert_eq!(remi_ui32(2119154652, 3002788344), 2119154652); + assert_eq!(remi_ui32(2119154652, 3482297128), 2119154652); + assert_eq!(remi_ui32(2119154652, 4294967294), 2119154652); + assert_eq!(remi_ui32(2119154652, 4294967295), 2119154652); + assert_eq!(remi_ui32(3002788344, 3482297128), 3002788344); + assert_eq!(remi_ui32(3002788344, 4294967294), 3002788344); + assert_eq!(remi_ui32(3002788344, 4294967295), 3002788344); + assert_eq!(remi_ui32(3482297128, 4294967294), 3482297128); + assert_eq!(remi_ui32(3482297128, 4294967295), 3482297128); + assert_eq!(remi_ui32(4294967294, 4294967295), 4294967294); + assert_eq!(remi_ui64(0, 1), 0); + assert_eq!(remi_ui64(0, 2), 0); + assert_eq!(remi_ui64(0, 3), 0); + assert_eq!(remi_ui64(0, 4), 0); + assert_eq!(remi_ui64(0, 191084152064409600), 0); + assert_eq!(remi_ui64(0, 11015955194427482112), 0); + assert_eq!(remi_ui64(0, 16990600415051759616), 0); + assert_eq!(remi_ui64(0, 18446744073709551614), 0); + assert_eq!(remi_ui64(0, 18446744073709551615), 0); + assert_eq!(remi_ui64(1, 1), 0); + assert_eq!(remi_ui64(2, 1), 0); + assert_eq!(remi_ui64(2, 2), 0); + assert_eq!(remi_ui64(3, 1), 0); + assert_eq!(remi_ui64(3, 3), 0); + assert_eq!(remi_ui64(4, 1), 0); + assert_eq!(remi_ui64(4, 2), 0); + assert_eq!(remi_ui64(4, 4), 0); + assert_eq!(remi_ui64(191084152064409600, 1), 0); + assert_eq!(remi_ui64(191084152064409600, 2), 0); + assert_eq!(remi_ui64(191084152064409600, 3), 0); + assert_eq!(remi_ui64(191084152064409600, 4), 0); + assert_eq!(remi_ui64(191084152064409600, 191084152064409600), 0); + assert_eq!(remi_ui64(11015955194427482112, 1), 0); + assert_eq!(remi_ui64(11015955194427482112, 2), 0); + assert_eq!(remi_ui64(11015955194427482112, 3), 0); + assert_eq!(remi_ui64(11015955194427482112, 4), 0); + assert_eq!(remi_ui64(11015955194427482112, 11015955194427482112), 0); + assert_eq!(remi_ui64(16990600415051759616, 1), 0); + assert_eq!(remi_ui64(16990600415051759616, 2), 0); + assert_eq!(remi_ui64(16990600415051759616, 3), 0); + assert_eq!(remi_ui64(16990600415051759616, 4), 0); + assert_eq!(remi_ui64(16990600415051759616, 16990600415051759616), 0); + assert_eq!(remi_ui64(18446744073709551614, 1), 0); + assert_eq!(remi_ui64(18446744073709551614, 2), 0); + assert_eq!(remi_ui64(18446744073709551614, 18446744073709551614), 0); + assert_eq!(remi_ui64(18446744073709551615, 1), 0); + assert_eq!(remi_ui64(18446744073709551615, 3), 0); + assert_eq!(remi_ui64(18446744073709551615, 18446744073709551615), 0); + assert_eq!(remi_ui64(1, 2), 1); + assert_eq!(remi_ui64(1, 3), 1); + assert_eq!(remi_ui64(1, 4), 1); + assert_eq!(remi_ui64(1, 191084152064409600), 1); + assert_eq!(remi_ui64(1, 11015955194427482112), 1); + assert_eq!(remi_ui64(1, 16990600415051759616), 1); + assert_eq!(remi_ui64(1, 18446744073709551614), 1); + assert_eq!(remi_ui64(1, 18446744073709551615), 1); + assert_eq!(remi_ui64(3, 2), 1); + assert_eq!(remi_ui64(4, 3), 1); + assert_eq!(remi_ui64(18446744073709551615, 2), 1); + assert_eq!(remi_ui64(18446744073709551615, 18446744073709551614), 1); + assert_eq!(remi_ui64(2, 3), 2); + assert_eq!(remi_ui64(2, 4), 2); + assert_eq!(remi_ui64(2, 191084152064409600), 2); + assert_eq!(remi_ui64(2, 11015955194427482112), 2); + assert_eq!(remi_ui64(2, 16990600415051759616), 2); + assert_eq!(remi_ui64(2, 18446744073709551614), 2); + assert_eq!(remi_ui64(2, 18446744073709551615), 2); + assert_eq!(remi_ui64(18446744073709551614, 3), 2); + assert_eq!(remi_ui64(18446744073709551614, 4), 2); + assert_eq!(remi_ui64(3, 4), 3); + assert_eq!(remi_ui64(3, 191084152064409600), 3); + assert_eq!(remi_ui64(3, 11015955194427482112), 3); + assert_eq!(remi_ui64(3, 16990600415051759616), 3); + assert_eq!(remi_ui64(3, 18446744073709551614), 3); + assert_eq!(remi_ui64(3, 18446744073709551615), 3); + assert_eq!(remi_ui64(18446744073709551615, 4), 3); + assert_eq!(remi_ui64(4, 191084152064409600), 4); + assert_eq!(remi_ui64(4, 11015955194427482112), 4); + assert_eq!(remi_ui64(4, 16990600415051759616), 4); + assert_eq!(remi_ui64(4, 18446744073709551614), 4); + assert_eq!(remi_ui64(4, 18446744073709551615), 4); + assert_eq!( + remi_ui64(18446744073709551614, 191084152064409600), + 102665475526230014 + ); + assert_eq!( + remi_ui64(18446744073709551615, 191084152064409600), + 102665475526230015 + ); + assert_eq!( + remi_ui64(11015955194427482112, 191084152064409600), + 124158526756134912 + ); + assert_eq!( + remi_ui64(16990600415051759616, 191084152064409600), + 175195033383714816 + ); + assert_eq!( + remi_ui64(191084152064409600, 11015955194427482112), + 191084152064409600 + ); + assert_eq!( + remi_ui64(191084152064409600, 16990600415051759616), + 191084152064409600 + ); + assert_eq!( + remi_ui64(191084152064409600, 18446744073709551614), + 191084152064409600 + ); + assert_eq!( + remi_ui64(191084152064409600, 18446744073709551615), + 191084152064409600 + ); + assert_eq!( + remi_ui64(18446744073709551614, 16990600415051759616), + 1456143658657791998 + ); + assert_eq!( + remi_ui64(18446744073709551615, 16990600415051759616), + 1456143658657791999 + ); + assert_eq!( + remi_ui64(16990600415051759616, 11015955194427482112), + 5974645220624277504 + ); + assert_eq!( + remi_ui64(18446744073709551614, 11015955194427482112), + 7430788879282069502 + ); + assert_eq!( + remi_ui64(18446744073709551615, 11015955194427482112), + 7430788879282069503 + ); + assert_eq!( + remi_ui64(11015955194427482112, 16990600415051759616), + 11015955194427482112 + ); + assert_eq!( + remi_ui64(11015955194427482112, 18446744073709551614), + 11015955194427482112 + ); + assert_eq!( + remi_ui64(11015955194427482112, 18446744073709551615), + 11015955194427482112 + ); + assert_eq!( + remi_ui64(16990600415051759616, 18446744073709551614), + 16990600415051759616 + ); + assert_eq!( + remi_ui64(16990600415051759616, 18446744073709551615), + 16990600415051759616 + ); + assert_eq!( + remi_ui64(18446744073709551614, 18446744073709551615), + 18446744073709551614 + ); + assert_eq!(remi_ui8(0, 1), 0); + assert_eq!(remi_ui8(0, 2), 0); + assert_eq!(remi_ui8(0, 3), 0); + assert_eq!(remi_ui8(0, 4), 0); + assert_eq!(remi_ui8(0, 72), 0); + assert_eq!(remi_ui8(0, 100), 0); + assert_eq!(remi_ui8(0, 162), 0); + assert_eq!(remi_ui8(0, 254), 0); + assert_eq!(remi_ui8(0, 255), 0); + assert_eq!(remi_ui8(1, 1), 0); + assert_eq!(remi_ui8(2, 1), 0); + assert_eq!(remi_ui8(2, 2), 0); + assert_eq!(remi_ui8(3, 1), 0); + assert_eq!(remi_ui8(3, 3), 0); + assert_eq!(remi_ui8(4, 1), 0); + assert_eq!(remi_ui8(4, 2), 0); + assert_eq!(remi_ui8(4, 4), 0); + assert_eq!(remi_ui8(72, 1), 0); + assert_eq!(remi_ui8(72, 2), 0); + assert_eq!(remi_ui8(72, 3), 0); + assert_eq!(remi_ui8(72, 4), 0); + assert_eq!(remi_ui8(72, 72), 0); + assert_eq!(remi_ui8(100, 1), 0); + assert_eq!(remi_ui8(100, 2), 0); + assert_eq!(remi_ui8(100, 4), 0); + assert_eq!(remi_ui8(100, 100), 0); + assert_eq!(remi_ui8(162, 1), 0); + assert_eq!(remi_ui8(162, 2), 0); + assert_eq!(remi_ui8(162, 3), 0); + assert_eq!(remi_ui8(162, 162), 0); + assert_eq!(remi_ui8(254, 1), 0); + assert_eq!(remi_ui8(254, 2), 0); + assert_eq!(remi_ui8(254, 254), 0); + assert_eq!(remi_ui8(255, 1), 0); + assert_eq!(remi_ui8(255, 3), 0); + assert_eq!(remi_ui8(255, 255), 0); + assert_eq!(remi_ui8(1, 2), 1); + assert_eq!(remi_ui8(1, 3), 1); + assert_eq!(remi_ui8(1, 4), 1); + assert_eq!(remi_ui8(1, 72), 1); + assert_eq!(remi_ui8(1, 100), 1); + assert_eq!(remi_ui8(1, 162), 1); + assert_eq!(remi_ui8(1, 254), 1); + assert_eq!(remi_ui8(1, 255), 1); + assert_eq!(remi_ui8(3, 2), 1); + assert_eq!(remi_ui8(4, 3), 1); + assert_eq!(remi_ui8(100, 3), 1); + assert_eq!(remi_ui8(255, 2), 1); + assert_eq!(remi_ui8(255, 254), 1); + assert_eq!(remi_ui8(2, 3), 2); + assert_eq!(remi_ui8(2, 4), 2); + assert_eq!(remi_ui8(2, 72), 2); + assert_eq!(remi_ui8(2, 100), 2); + assert_eq!(remi_ui8(2, 162), 2); + assert_eq!(remi_ui8(2, 254), 2); + assert_eq!(remi_ui8(2, 255), 2); + assert_eq!(remi_ui8(162, 4), 2); + assert_eq!(remi_ui8(254, 3), 2); + assert_eq!(remi_ui8(254, 4), 2); + assert_eq!(remi_ui8(3, 4), 3); + assert_eq!(remi_ui8(3, 72), 3); + assert_eq!(remi_ui8(3, 100), 3); + assert_eq!(remi_ui8(3, 162), 3); + assert_eq!(remi_ui8(3, 254), 3); + assert_eq!(remi_ui8(3, 255), 3); + assert_eq!(remi_ui8(255, 4), 3); + assert_eq!(remi_ui8(4, 72), 4); + assert_eq!(remi_ui8(4, 100), 4); + assert_eq!(remi_ui8(4, 162), 4); + assert_eq!(remi_ui8(4, 254), 4); + assert_eq!(remi_ui8(4, 255), 4); + assert_eq!(remi_ui8(162, 72), 18); + assert_eq!(remi_ui8(100, 72), 28); + assert_eq!(remi_ui8(254, 72), 38); + assert_eq!(remi_ui8(255, 72), 39); + assert_eq!(remi_ui8(254, 100), 54); + assert_eq!(remi_ui8(255, 100), 55); + assert_eq!(remi_ui8(162, 100), 62); + assert_eq!(remi_ui8(72, 100), 72); + assert_eq!(remi_ui8(72, 162), 72); + assert_eq!(remi_ui8(72, 254), 72); + assert_eq!(remi_ui8(72, 255), 72); + assert_eq!(remi_ui8(254, 162), 92); + assert_eq!(remi_ui8(255, 162), 93); + assert_eq!(remi_ui8(100, 162), 100); + assert_eq!(remi_ui8(100, 254), 100); + assert_eq!(remi_ui8(100, 255), 100); + assert_eq!(remi_ui8(162, 254), 162); + assert_eq!(remi_ui8(162, 255), 162); + assert_eq!(remi_ui8(254, 255), 254); + assert_eq!(subi_si16(-32768, 0), -32768); + assert_eq!(subi_si16(-32767, 1), -32768); + assert_eq!(subi_si16(-32767, 0), -32767); + assert_eq!(subi_si16(0, 32767), -32767); + assert_eq!(subi_si16(0, 32766), -32766); + assert_eq!(subi_si16(1, 32767), -32766); + assert_eq!(subi_si16(1, 32766), -32765); + assert_eq!(subi_si16(2, 32767), -32765); + assert_eq!(subi_si16(2, 32766), -32764); + assert_eq!(subi_si16(3, 32767), -32764); + assert_eq!(subi_si16(3, 32766), -32763); + assert_eq!(subi_si16(4, 32767), -32763); + assert_eq!(subi_si16(4, 32766), -32762); + assert_eq!(subi_si16(-32547, 4), -32551); + assert_eq!(subi_si16(-32547, 3), -32550); + assert_eq!(subi_si16(-32547, 2), -32549); + assert_eq!(subi_si16(-32547, 1), -32548); + assert_eq!(subi_si16(-32547, 0), -32547); + assert_eq!(subi_si16(10486, 32767), -22281); + assert_eq!(subi_si16(10486, 32766), -22280); + assert_eq!(subi_si16(0, 16514), -16514); + assert_eq!(subi_si16(1, 16514), -16513); + assert_eq!(subi_si16(2, 16514), -16512); + assert_eq!(subi_si16(3, 16514), -16511); + assert_eq!(subi_si16(4, 16514), -16510); + assert_eq!(subi_si16(16514, 32767), -16253); + assert_eq!(subi_si16(16514, 32766), -16252); + assert_eq!(subi_si16(0, 10486), -10486); + assert_eq!(subi_si16(1, 10486), -10485); + assert_eq!(subi_si16(2, 10486), -10484); + assert_eq!(subi_si16(3, 10486), -10483); + assert_eq!(subi_si16(4, 10486), -10482); + assert_eq!(subi_si16(10486, 16514), -6028); + assert_eq!(subi_si16(-32768, -32547), -221); + assert_eq!(subi_si16(-32767, -32547), -220); + assert_eq!(subi_si16(0, 4), -4); + assert_eq!(subi_si16(0, 3), -3); + assert_eq!(subi_si16(1, 4), -3); + assert_eq!(subi_si16(0, 2), -2); + assert_eq!(subi_si16(1, 3), -2); + assert_eq!(subi_si16(2, 4), -2); + assert_eq!(subi_si16(-32768, -32767), -1); + assert_eq!(subi_si16(0, 1), -1); + assert_eq!(subi_si16(1, 2), -1); + assert_eq!(subi_si16(2, 3), -1); + assert_eq!(subi_si16(3, 4), -1); + assert_eq!(subi_si16(32766, 32767), -1); + assert_eq!(subi_si16(-32768, -32768), 0); + assert_eq!(subi_si16(-32767, -32767), 0); + assert_eq!(subi_si16(-32547, -32547), 0); + assert_eq!(subi_si16(0, 0), 0); + assert_eq!(subi_si16(1, 1), 0); + assert_eq!(subi_si16(2, 2), 0); + assert_eq!(subi_si16(3, 3), 0); + assert_eq!(subi_si16(4, 4), 0); + assert_eq!(subi_si16(10486, 10486), 0); + assert_eq!(subi_si16(16514, 16514), 0); + assert_eq!(subi_si16(32766, 32766), 0); + assert_eq!(subi_si16(32767, 32767), 0); + assert_eq!(subi_si16(-32767, -32768), 1); + assert_eq!(subi_si16(1, 0), 1); + assert_eq!(subi_si16(2, 1), 1); + assert_eq!(subi_si16(3, 2), 1); + assert_eq!(subi_si16(4, 3), 1); + assert_eq!(subi_si16(32767, 32766), 1); + assert_eq!(subi_si16(2, 0), 2); + assert_eq!(subi_si16(3, 1), 2); + assert_eq!(subi_si16(4, 2), 2); + assert_eq!(subi_si16(3, 0), 3); + assert_eq!(subi_si16(4, 1), 3); + assert_eq!(subi_si16(4, 0), 4); + assert_eq!(subi_si16(-32547, -32767), 220); + assert_eq!(subi_si16(-32547, -32768), 221); + assert_eq!(subi_si16(16514, 10486), 6028); + assert_eq!(subi_si16(10486, 4), 10482); + assert_eq!(subi_si16(10486, 3), 10483); + assert_eq!(subi_si16(10486, 2), 10484); + assert_eq!(subi_si16(10486, 1), 10485); + assert_eq!(subi_si16(10486, 0), 10486); + assert_eq!(subi_si16(32766, 16514), 16252); + assert_eq!(subi_si16(32767, 16514), 16253); + assert_eq!(subi_si16(16514, 4), 16510); + assert_eq!(subi_si16(16514, 3), 16511); + assert_eq!(subi_si16(16514, 2), 16512); + assert_eq!(subi_si16(16514, 1), 16513); + assert_eq!(subi_si16(16514, 0), 16514); + assert_eq!(subi_si16(32766, 10486), 22280); + assert_eq!(subi_si16(32767, 10486), 22281); + assert_eq!(subi_si16(0, -32547), 32547); + assert_eq!(subi_si16(1, -32547), 32548); + assert_eq!(subi_si16(2, -32547), 32549); + assert_eq!(subi_si16(3, -32547), 32550); + assert_eq!(subi_si16(4, -32547), 32551); + assert_eq!(subi_si16(32766, 4), 32762); + assert_eq!(subi_si16(32766, 3), 32763); + assert_eq!(subi_si16(32767, 4), 32763); + assert_eq!(subi_si16(32766, 2), 32764); + assert_eq!(subi_si16(32767, 3), 32764); + assert_eq!(subi_si16(32766, 1), 32765); + assert_eq!(subi_si16(32767, 2), 32765); + assert_eq!(subi_si16(32766, 0), 32766); + assert_eq!(subi_si16(32767, 1), 32766); + assert_eq!(subi_si16(0, -32767), 32767); + assert_eq!(subi_si16(32767, 0), 32767); + assert_eq!(subi_si32(-2147483648, 0), -2147483648); + assert_eq!(subi_si32(-2147483647, 1), -2147483648); + assert_eq!(subi_si32(-2147483647, 0), -2147483647); + assert_eq!(subi_si32(0, 2147483647), -2147483647); + assert_eq!(subi_si32(0, 2147483646), -2147483646); + assert_eq!(subi_si32(1, 2147483647), -2147483646); + assert_eq!(subi_si32(1, 2147483646), -2147483645); + assert_eq!(subi_si32(2, 2147483647), -2147483645); + assert_eq!(subi_si32(2, 2147483646), -2147483644); + assert_eq!(subi_si32(3, 2147483647), -2147483644); + assert_eq!(subi_si32(3, 2147483646), -2147483643); + assert_eq!(subi_si32(4, 2147483647), -2147483643); + assert_eq!(subi_si32(4, 2147483646), -2147483642); + assert_eq!(subi_si32(-1713183800, 4), -1713183804); + assert_eq!(subi_si32(-1713183800, 3), -1713183803); + assert_eq!(subi_si32(-1713183800, 2), -1713183802); + assert_eq!(subi_si32(-1713183800, 1), -1713183801); + assert_eq!(subi_si32(-1713183800, 0), -1713183800); + assert_eq!(subi_si32(-1252582164, 4), -1252582168); + assert_eq!(subi_si32(-1252582164, 3), -1252582167); + assert_eq!(subi_si32(-1252582164, 2), -1252582166); + assert_eq!(subi_si32(-1252582164, 1), -1252582165); + assert_eq!(subi_si32(-1252582164, 0), -1252582164); + assert_eq!(subi_si32(-2147483648, -1035405763), -1112077885); + assert_eq!(subi_si32(-2147483647, -1035405763), -1112077884); + assert_eq!(subi_si32(-1035405763, 4), -1035405767); + assert_eq!(subi_si32(-1035405763, 3), -1035405766); + assert_eq!(subi_si32(-1035405763, 2), -1035405765); + assert_eq!(subi_si32(-1035405763, 1), -1035405764); + assert_eq!(subi_si32(-1035405763, 0), -1035405763); + assert_eq!(subi_si32(-2147483648, -1252582164), -894901484); + assert_eq!(subi_si32(-2147483647, -1252582164), -894901483); + assert_eq!(subi_si32(-1713183800, -1035405763), -677778037); + assert_eq!(subi_si32(-1713183800, -1252582164), -460601636); + assert_eq!(subi_si32(-2147483648, -1713183800), -434299848); + assert_eq!(subi_si32(-2147483647, -1713183800), -434299847); + assert_eq!(subi_si32(-1252582164, -1035405763), -217176401); + assert_eq!(subi_si32(0, 4), -4); + assert_eq!(subi_si32(0, 3), -3); + assert_eq!(subi_si32(1, 4), -3); + assert_eq!(subi_si32(0, 2), -2); + assert_eq!(subi_si32(1, 3), -2); + assert_eq!(subi_si32(2, 4), -2); + assert_eq!(subi_si32(-2147483648, -2147483647), -1); + assert_eq!(subi_si32(0, 1), -1); + assert_eq!(subi_si32(1, 2), -1); + assert_eq!(subi_si32(2, 3), -1); + assert_eq!(subi_si32(3, 4), -1); + assert_eq!(subi_si32(2147483646, 2147483647), -1); + assert_eq!(subi_si32(-2147483648, -2147483648), 0); + assert_eq!(subi_si32(-2147483647, -2147483647), 0); + assert_eq!(subi_si32(-1713183800, -1713183800), 0); + assert_eq!(subi_si32(-1252582164, -1252582164), 0); + assert_eq!(subi_si32(-1035405763, -1035405763), 0); + assert_eq!(subi_si32(0, 0), 0); + assert_eq!(subi_si32(1, 1), 0); + assert_eq!(subi_si32(2, 2), 0); + assert_eq!(subi_si32(3, 3), 0); + assert_eq!(subi_si32(4, 4), 0); + assert_eq!(subi_si32(2147483646, 2147483646), 0); + assert_eq!(subi_si32(2147483647, 2147483647), 0); + assert_eq!(subi_si32(-2147483647, -2147483648), 1); + assert_eq!(subi_si32(1, 0), 1); + assert_eq!(subi_si32(2, 1), 1); + assert_eq!(subi_si32(3, 2), 1); + assert_eq!(subi_si32(4, 3), 1); + assert_eq!(subi_si32(2147483647, 2147483646), 1); + assert_eq!(subi_si32(2, 0), 2); + assert_eq!(subi_si32(3, 1), 2); + assert_eq!(subi_si32(4, 2), 2); + assert_eq!(subi_si32(3, 0), 3); + assert_eq!(subi_si32(4, 1), 3); + assert_eq!(subi_si32(4, 0), 4); + assert_eq!(subi_si32(-1035405763, -1252582164), 217176401); + assert_eq!(subi_si32(-1713183800, -2147483647), 434299847); + assert_eq!(subi_si32(-1713183800, -2147483648), 434299848); + assert_eq!(subi_si32(-1252582164, -1713183800), 460601636); + assert_eq!(subi_si32(-1035405763, -1713183800), 677778037); + assert_eq!(subi_si32(-1252582164, -2147483647), 894901483); + assert_eq!(subi_si32(-1252582164, -2147483648), 894901484); + assert_eq!(subi_si32(0, -1035405763), 1035405763); + assert_eq!(subi_si32(1, -1035405763), 1035405764); + assert_eq!(subi_si32(2, -1035405763), 1035405765); + assert_eq!(subi_si32(3, -1035405763), 1035405766); + assert_eq!(subi_si32(4, -1035405763), 1035405767); + assert_eq!(subi_si32(-1035405763, -2147483647), 1112077884); + assert_eq!(subi_si32(-1035405763, -2147483648), 1112077885); + assert_eq!(subi_si32(0, -1252582164), 1252582164); + assert_eq!(subi_si32(1, -1252582164), 1252582165); + assert_eq!(subi_si32(2, -1252582164), 1252582166); + assert_eq!(subi_si32(3, -1252582164), 1252582167); + assert_eq!(subi_si32(4, -1252582164), 1252582168); + assert_eq!(subi_si32(0, -1713183800), 1713183800); + assert_eq!(subi_si32(1, -1713183800), 1713183801); + assert_eq!(subi_si32(2, -1713183800), 1713183802); + assert_eq!(subi_si32(3, -1713183800), 1713183803); + assert_eq!(subi_si32(4, -1713183800), 1713183804); + assert_eq!(subi_si32(2147483646, 4), 2147483642); + assert_eq!(subi_si32(2147483646, 3), 2147483643); + assert_eq!(subi_si32(2147483647, 4), 2147483643); + assert_eq!(subi_si32(2147483646, 2), 2147483644); + assert_eq!(subi_si32(2147483647, 3), 2147483644); + assert_eq!(subi_si32(2147483646, 1), 2147483645); + assert_eq!(subi_si32(2147483647, 2), 2147483645); + assert_eq!(subi_si32(2147483646, 0), 2147483646); + assert_eq!(subi_si32(2147483647, 1), 2147483646); + assert_eq!(subi_si32(0, -2147483647), 2147483647); + assert_eq!(subi_si32(2147483647, 0), 2147483647); + assert_eq!(subi_si64(-9223372036854775808, 0), -9223372036854775808); + assert_eq!(subi_si64(-9223372036854775807, 1), -9223372036854775808); + assert_eq!(subi_si64(-9223372036854775807, 0), -9223372036854775807); + assert_eq!(subi_si64(0, 9223372036854775807), -9223372036854775807); + assert_eq!(subi_si64(0, 9223372036854775806), -9223372036854775806); + assert_eq!(subi_si64(1, 9223372036854775807), -9223372036854775806); + assert_eq!(subi_si64(1, 9223372036854775806), -9223372036854775805); + assert_eq!(subi_si64(2, 9223372036854775807), -9223372036854775805); + assert_eq!(subi_si64(2, 9223372036854775806), -9223372036854775804); + assert_eq!(subi_si64(3, 9223372036854775807), -9223372036854775804); + assert_eq!(subi_si64(3, 9223372036854775806), -9223372036854775803); + assert_eq!(subi_si64(4, 9223372036854775807), -9223372036854775803); + assert_eq!(subi_si64(4, 9223372036854775806), -9223372036854775802); + assert_eq!( + subi_si64(-9223372036854775808, -1328271339354574848), + -7895100697500200960 + ); + assert_eq!( + subi_si64(-9223372036854775807, -1328271339354574848), + -7895100697500200959 + ); + assert_eq!( + subi_si64(-9223372036854775808, -1741927215160008704), + -7481444821694767104 + ); + assert_eq!( + subi_si64(-9223372036854775807, -1741927215160008704), + -7481444821694767103 + ); + assert_eq!( + subi_si64(-1741927215160008704, 5577148965131116544), + -7319076180291125248 + ); + assert_eq!( + subi_si64(-1328271339354574848, 5577148965131116544), + -6905420304485691392 + ); + assert_eq!(subi_si64(0, 5577148965131116544), -5577148965131116544); + assert_eq!(subi_si64(1, 5577148965131116544), -5577148965131116543); + assert_eq!(subi_si64(2, 5577148965131116544), -5577148965131116542); + assert_eq!(subi_si64(3, 5577148965131116544), -5577148965131116541); + assert_eq!(subi_si64(4, 5577148965131116544), -5577148965131116540); + assert_eq!( + subi_si64(5577148965131116544, 9223372036854775807), + -3646223071723659263 + ); + assert_eq!( + subi_si64(5577148965131116544, 9223372036854775806), + -3646223071723659262 + ); + assert_eq!(subi_si64(-1741927215160008704, 4), -1741927215160008708); + assert_eq!(subi_si64(-1741927215160008704, 3), -1741927215160008707); + assert_eq!(subi_si64(-1741927215160008704, 2), -1741927215160008706); + assert_eq!(subi_si64(-1741927215160008704, 1), -1741927215160008705); + assert_eq!(subi_si64(-1741927215160008704, 0), -1741927215160008704); + assert_eq!(subi_si64(-1328271339354574848, 4), -1328271339354574852); + assert_eq!(subi_si64(-1328271339354574848, 3), -1328271339354574851); + assert_eq!(subi_si64(-1328271339354574848, 2), -1328271339354574850); + assert_eq!(subi_si64(-1328271339354574848, 1), -1328271339354574849); + assert_eq!(subi_si64(-1328271339354574848, 0), -1328271339354574848); + assert_eq!( + subi_si64(-1741927215160008704, -1328271339354574848), + -413655875805433856 + ); + assert_eq!(subi_si64(0, 4), -4); + assert_eq!(subi_si64(0, 3), -3); + assert_eq!(subi_si64(1, 4), -3); + assert_eq!(subi_si64(0, 2), -2); + assert_eq!(subi_si64(1, 3), -2); + assert_eq!(subi_si64(2, 4), -2); + assert_eq!(subi_si64(-9223372036854775808, -9223372036854775807), -1); + assert_eq!(subi_si64(0, 1), -1); + assert_eq!(subi_si64(1, 2), -1); + assert_eq!(subi_si64(2, 3), -1); + assert_eq!(subi_si64(3, 4), -1); + assert_eq!(subi_si64(9223372036854775806, 9223372036854775807), -1); + assert_eq!(subi_si64(-9223372036854775808, -9223372036854775808), 0); + assert_eq!(subi_si64(-9223372036854775807, -9223372036854775807), 0); + assert_eq!(subi_si64(-1741927215160008704, -1741927215160008704), 0); + assert_eq!(subi_si64(-1328271339354574848, -1328271339354574848), 0); + assert_eq!(subi_si64(0, 0), 0); + assert_eq!(subi_si64(1, 1), 0); + assert_eq!(subi_si64(2, 2), 0); + assert_eq!(subi_si64(3, 3), 0); + assert_eq!(subi_si64(4, 4), 0); + assert_eq!(subi_si64(5577148965131116544, 5577148965131116544), 0); + assert_eq!(subi_si64(9223372036854775806, 9223372036854775806), 0); + assert_eq!(subi_si64(9223372036854775807, 9223372036854775807), 0); + assert_eq!(subi_si64(-9223372036854775807, -9223372036854775808), 1); + assert_eq!(subi_si64(1, 0), 1); + assert_eq!(subi_si64(2, 1), 1); + assert_eq!(subi_si64(3, 2), 1); + assert_eq!(subi_si64(4, 3), 1); + assert_eq!(subi_si64(9223372036854775807, 9223372036854775806), 1); + assert_eq!(subi_si64(2, 0), 2); + assert_eq!(subi_si64(3, 1), 2); + assert_eq!(subi_si64(4, 2), 2); + assert_eq!(subi_si64(3, 0), 3); + assert_eq!(subi_si64(4, 1), 3); + assert_eq!(subi_si64(4, 0), 4); + assert_eq!( + subi_si64(-1328271339354574848, -1741927215160008704), + 413655875805433856 + ); + assert_eq!(subi_si64(0, -1328271339354574848), 1328271339354574848); + assert_eq!(subi_si64(1, -1328271339354574848), 1328271339354574849); + assert_eq!(subi_si64(2, -1328271339354574848), 1328271339354574850); + assert_eq!(subi_si64(3, -1328271339354574848), 1328271339354574851); + assert_eq!(subi_si64(4, -1328271339354574848), 1328271339354574852); + assert_eq!(subi_si64(0, -1741927215160008704), 1741927215160008704); + assert_eq!(subi_si64(1, -1741927215160008704), 1741927215160008705); + assert_eq!(subi_si64(2, -1741927215160008704), 1741927215160008706); + assert_eq!(subi_si64(3, -1741927215160008704), 1741927215160008707); + assert_eq!(subi_si64(4, -1741927215160008704), 1741927215160008708); + assert_eq!( + subi_si64(9223372036854775806, 5577148965131116544), + 3646223071723659262 + ); + assert_eq!( + subi_si64(9223372036854775807, 5577148965131116544), + 3646223071723659263 + ); + assert_eq!(subi_si64(5577148965131116544, 4), 5577148965131116540); + assert_eq!(subi_si64(5577148965131116544, 3), 5577148965131116541); + assert_eq!(subi_si64(5577148965131116544, 2), 5577148965131116542); + assert_eq!(subi_si64(5577148965131116544, 1), 5577148965131116543); + assert_eq!(subi_si64(5577148965131116544, 0), 5577148965131116544); + assert_eq!( + subi_si64(5577148965131116544, -1328271339354574848), + 6905420304485691392 + ); + assert_eq!( + subi_si64(5577148965131116544, -1741927215160008704), + 7319076180291125248 + ); + assert_eq!( + subi_si64(-1741927215160008704, -9223372036854775807), + 7481444821694767103 + ); + assert_eq!( + subi_si64(-1741927215160008704, -9223372036854775808), + 7481444821694767104 + ); + assert_eq!( + subi_si64(-1328271339354574848, -9223372036854775807), + 7895100697500200959 + ); + assert_eq!( + subi_si64(-1328271339354574848, -9223372036854775808), + 7895100697500200960 + ); + assert_eq!(subi_si64(9223372036854775806, 4), 9223372036854775802); + assert_eq!(subi_si64(9223372036854775806, 3), 9223372036854775803); + assert_eq!(subi_si64(9223372036854775807, 4), 9223372036854775803); + assert_eq!(subi_si64(9223372036854775806, 2), 9223372036854775804); + assert_eq!(subi_si64(9223372036854775807, 3), 9223372036854775804); + assert_eq!(subi_si64(9223372036854775806, 1), 9223372036854775805); + assert_eq!(subi_si64(9223372036854775807, 2), 9223372036854775805); + assert_eq!(subi_si64(9223372036854775806, 0), 9223372036854775806); + assert_eq!(subi_si64(9223372036854775807, 1), 9223372036854775806); + assert_eq!(subi_si64(0, -9223372036854775807), 9223372036854775807); + assert_eq!(subi_si64(9223372036854775807, 0), 9223372036854775807); + assert_eq!(subi_si8(-128, 0), -128); + assert_eq!(subi_si8(-127, 1), -128); + assert_eq!(subi_si8(-127, 0), -127); + assert_eq!(subi_si8(0, 127), -127); + assert_eq!(subi_si8(0, 126), -126); + assert_eq!(subi_si8(1, 127), -126); + assert_eq!(subi_si8(1, 126), -125); + assert_eq!(subi_si8(2, 127), -125); + assert_eq!(subi_si8(2, 126), -124); + assert_eq!(subi_si8(3, 127), -124); + assert_eq!(subi_si8(3, 126), -123); + assert_eq!(subi_si8(4, 127), -123); + assert_eq!(subi_si8(4, 126), -122); + assert_eq!(subi_si8(16, 127), -111); + assert_eq!(subi_si8(16, 126), -110); + assert_eq!(subi_si8(0, 16), -16); + assert_eq!(subi_si8(1, 16), -15); + assert_eq!(subi_si8(2, 16), -14); + assert_eq!(subi_si8(3, 16), -13); + assert_eq!(subi_si8(4, 16), -12); + assert_eq!(subi_si8(0, 4), -4); + assert_eq!(subi_si8(0, 3), -3); + assert_eq!(subi_si8(1, 4), -3); + assert_eq!(subi_si8(0, 2), -2); + assert_eq!(subi_si8(1, 3), -2); + assert_eq!(subi_si8(2, 4), -2); + assert_eq!(subi_si8(-128, -127), -1); + assert_eq!(subi_si8(0, 1), -1); + assert_eq!(subi_si8(1, 2), -1); + assert_eq!(subi_si8(2, 3), -1); + assert_eq!(subi_si8(3, 4), -1); + assert_eq!(subi_si8(126, 127), -1); + assert_eq!(subi_si8(-128, -128), 0); + assert_eq!(subi_si8(-127, -127), 0); + assert_eq!(subi_si8(0, 0), 0); + assert_eq!(subi_si8(1, 1), 0); + assert_eq!(subi_si8(2, 2), 0); + assert_eq!(subi_si8(3, 3), 0); + assert_eq!(subi_si8(4, 4), 0); + assert_eq!(subi_si8(16, 16), 0); + assert_eq!(subi_si8(126, 126), 0); + assert_eq!(subi_si8(127, 127), 0); + assert_eq!(subi_si8(-127, -128), 1); + assert_eq!(subi_si8(1, 0), 1); + assert_eq!(subi_si8(2, 1), 1); + assert_eq!(subi_si8(3, 2), 1); + assert_eq!(subi_si8(4, 3), 1); + assert_eq!(subi_si8(127, 126), 1); + assert_eq!(subi_si8(2, 0), 2); + assert_eq!(subi_si8(3, 1), 2); + assert_eq!(subi_si8(4, 2), 2); + assert_eq!(subi_si8(3, 0), 3); + assert_eq!(subi_si8(4, 1), 3); + assert_eq!(subi_si8(4, 0), 4); + assert_eq!(subi_si8(16, 4), 12); + assert_eq!(subi_si8(16, 3), 13); + assert_eq!(subi_si8(16, 2), 14); + assert_eq!(subi_si8(16, 1), 15); + assert_eq!(subi_si8(16, 0), 16); + assert_eq!(subi_si8(126, 16), 110); + assert_eq!(subi_si8(127, 16), 111); + assert_eq!(subi_si8(126, 4), 122); + assert_eq!(subi_si8(126, 3), 123); + assert_eq!(subi_si8(127, 4), 123); + assert_eq!(subi_si8(126, 2), 124); + assert_eq!(subi_si8(127, 3), 124); + assert_eq!(subi_si8(126, 1), 125); + assert_eq!(subi_si8(127, 2), 125); + assert_eq!(subi_si8(126, 0), 126); + assert_eq!(subi_si8(127, 1), 126); + assert_eq!(subi_si8(0, -127), 127); + assert_eq!(subi_si8(127, 0), 127); + assert_eq!(subi_ui16(0, 0), 0); + assert_eq!(subi_ui16(1, 1), 0); + assert_eq!(subi_ui16(2, 2), 0); + assert_eq!(subi_ui16(3, 3), 0); + assert_eq!(subi_ui16(4, 4), 0); + assert_eq!(subi_ui16(1717, 1717), 0); + assert_eq!(subi_ui16(17988, 17988), 0); + assert_eq!(subi_ui16(65096, 65096), 0); + assert_eq!(subi_ui16(65534, 65534), 0); + assert_eq!(subi_ui16(65535, 65535), 0); + assert_eq!(subi_ui16(1, 0), 1); + assert_eq!(subi_ui16(2, 1), 1); + assert_eq!(subi_ui16(3, 2), 1); + assert_eq!(subi_ui16(4, 3), 1); + assert_eq!(subi_ui16(65535, 65534), 1); + assert_eq!(subi_ui16(2, 0), 2); + assert_eq!(subi_ui16(3, 1), 2); + assert_eq!(subi_ui16(4, 2), 2); + assert_eq!(subi_ui16(3, 0), 3); + assert_eq!(subi_ui16(4, 1), 3); + assert_eq!(subi_ui16(4, 0), 4); + assert_eq!(subi_ui16(65534, 65096), 438); + assert_eq!(subi_ui16(65535, 65096), 439); + assert_eq!(subi_ui16(1717, 4), 1713); + assert_eq!(subi_ui16(1717, 3), 1714); + assert_eq!(subi_ui16(1717, 2), 1715); + assert_eq!(subi_ui16(1717, 1), 1716); + assert_eq!(subi_ui16(1717, 0), 1717); + assert_eq!(subi_ui16(17988, 1717), 16271); + assert_eq!(subi_ui16(17988, 4), 17984); + assert_eq!(subi_ui16(17988, 3), 17985); + assert_eq!(subi_ui16(17988, 2), 17986); + assert_eq!(subi_ui16(17988, 1), 17987); + assert_eq!(subi_ui16(17988, 0), 17988); + assert_eq!(subi_ui16(65096, 17988), 47108); + assert_eq!(subi_ui16(65534, 17988), 47546); + assert_eq!(subi_ui16(65535, 17988), 47547); + assert_eq!(subi_ui16(65096, 1717), 63379); + assert_eq!(subi_ui16(65534, 1717), 63817); + assert_eq!(subi_ui16(65535, 1717), 63818); + assert_eq!(subi_ui16(65096, 4), 65092); + assert_eq!(subi_ui16(65096, 3), 65093); + assert_eq!(subi_ui16(65096, 2), 65094); + assert_eq!(subi_ui16(65096, 1), 65095); + assert_eq!(subi_ui16(65096, 0), 65096); + assert_eq!(subi_ui16(65534, 4), 65530); + assert_eq!(subi_ui16(65534, 3), 65531); + assert_eq!(subi_ui16(65535, 4), 65531); + assert_eq!(subi_ui16(65534, 2), 65532); + assert_eq!(subi_ui16(65535, 3), 65532); + assert_eq!(subi_ui16(65534, 1), 65533); + assert_eq!(subi_ui16(65535, 2), 65533); + assert_eq!(subi_ui16(65534, 0), 65534); + assert_eq!(subi_ui16(65535, 1), 65534); + assert_eq!(subi_ui16(65535, 0), 65535); + assert_eq!(subi_ui32(0, 0), 0); + assert_eq!(subi_ui32(1, 1), 0); + assert_eq!(subi_ui32(2, 2), 0); + assert_eq!(subi_ui32(3, 3), 0); + assert_eq!(subi_ui32(4, 4), 0); + assert_eq!(subi_ui32(2119154652, 2119154652), 0); + assert_eq!(subi_ui32(3002788344, 3002788344), 0); + assert_eq!(subi_ui32(3482297128, 3482297128), 0); + assert_eq!(subi_ui32(4294967294, 4294967294), 0); + assert_eq!(subi_ui32(4294967295, 4294967295), 0); + assert_eq!(subi_ui32(1, 0), 1); + assert_eq!(subi_ui32(2, 1), 1); + assert_eq!(subi_ui32(3, 2), 1); + assert_eq!(subi_ui32(4, 3), 1); + assert_eq!(subi_ui32(4294967295, 4294967294), 1); + assert_eq!(subi_ui32(2, 0), 2); + assert_eq!(subi_ui32(3, 1), 2); + assert_eq!(subi_ui32(4, 2), 2); + assert_eq!(subi_ui32(3, 0), 3); + assert_eq!(subi_ui32(4, 1), 3); + assert_eq!(subi_ui32(4, 0), 4); + assert_eq!(subi_ui32(3482297128, 3002788344), 479508784); + assert_eq!(subi_ui32(4294967294, 3482297128), 812670166); + assert_eq!(subi_ui32(4294967295, 3482297128), 812670167); + assert_eq!(subi_ui32(3002788344, 2119154652), 883633692); + assert_eq!(subi_ui32(4294967294, 3002788344), 1292178950); + assert_eq!(subi_ui32(4294967295, 3002788344), 1292178951); + assert_eq!(subi_ui32(3482297128, 2119154652), 1363142476); + assert_eq!(subi_ui32(2119154652, 4), 2119154648); + assert_eq!(subi_ui32(2119154652, 3), 2119154649); + assert_eq!(subi_ui32(2119154652, 2), 2119154650); + assert_eq!(subi_ui32(2119154652, 1), 2119154651); + assert_eq!(subi_ui32(2119154652, 0), 2119154652); + assert_eq!(subi_ui32(4294967294, 2119154652), 2175812642); + assert_eq!(subi_ui32(4294967295, 2119154652), 2175812643); + assert_eq!(subi_ui32(3002788344, 4), 3002788340); + assert_eq!(subi_ui32(3002788344, 3), 3002788341); + assert_eq!(subi_ui32(3002788344, 2), 3002788342); + assert_eq!(subi_ui32(3002788344, 1), 3002788343); + assert_eq!(subi_ui32(3002788344, 0), 3002788344); + assert_eq!(subi_ui32(3482297128, 4), 3482297124); + assert_eq!(subi_ui32(3482297128, 3), 3482297125); + assert_eq!(subi_ui32(3482297128, 2), 3482297126); + assert_eq!(subi_ui32(3482297128, 1), 3482297127); + assert_eq!(subi_ui32(3482297128, 0), 3482297128); + assert_eq!(subi_ui32(4294967294, 4), 4294967290); + assert_eq!(subi_ui32(4294967294, 3), 4294967291); + assert_eq!(subi_ui32(4294967295, 4), 4294967291); + assert_eq!(subi_ui32(4294967294, 2), 4294967292); + assert_eq!(subi_ui32(4294967295, 3), 4294967292); + assert_eq!(subi_ui32(4294967294, 1), 4294967293); + assert_eq!(subi_ui32(4294967295, 2), 4294967293); + assert_eq!(subi_ui32(4294967294, 0), 4294967294); + assert_eq!(subi_ui32(4294967295, 1), 4294967294); + assert_eq!(subi_ui32(4294967295, 0), 4294967295); + assert_eq!(subi_ui64(0, 0), 0); + assert_eq!(subi_ui64(1, 1), 0); + assert_eq!(subi_ui64(2, 2), 0); + assert_eq!(subi_ui64(3, 3), 0); + assert_eq!(subi_ui64(4, 4), 0); + assert_eq!(subi_ui64(191084152064409600, 191084152064409600), 0); + assert_eq!(subi_ui64(11015955194427482112, 11015955194427482112), 0); + assert_eq!(subi_ui64(16990600415051759616, 16990600415051759616), 0); + assert_eq!(subi_ui64(18446744073709551614, 18446744073709551614), 0); + assert_eq!(subi_ui64(18446744073709551615, 18446744073709551615), 0); + assert_eq!(subi_ui64(1, 0), 1); + assert_eq!(subi_ui64(2, 1), 1); + assert_eq!(subi_ui64(3, 2), 1); + assert_eq!(subi_ui64(4, 3), 1); + assert_eq!(subi_ui64(18446744073709551615, 18446744073709551614), 1); + assert_eq!(subi_ui64(2, 0), 2); + assert_eq!(subi_ui64(3, 1), 2); + assert_eq!(subi_ui64(4, 2), 2); + assert_eq!(subi_ui64(3, 0), 3); + assert_eq!(subi_ui64(4, 1), 3); + assert_eq!(subi_ui64(4, 0), 4); + assert_eq!(subi_ui64(191084152064409600, 4), 191084152064409596); + assert_eq!(subi_ui64(191084152064409600, 3), 191084152064409597); + assert_eq!(subi_ui64(191084152064409600, 2), 191084152064409598); + assert_eq!(subi_ui64(191084152064409600, 1), 191084152064409599); + assert_eq!(subi_ui64(191084152064409600, 0), 191084152064409600); + assert_eq!( + subi_ui64(18446744073709551614, 16990600415051759616), + 1456143658657791998 + ); + assert_eq!( + subi_ui64(18446744073709551615, 16990600415051759616), + 1456143658657791999 + ); + assert_eq!( + subi_ui64(16990600415051759616, 11015955194427482112), + 5974645220624277504 + ); + assert_eq!( + subi_ui64(18446744073709551614, 11015955194427482112), + 7430788879282069502 + ); + assert_eq!( + subi_ui64(18446744073709551615, 11015955194427482112), + 7430788879282069503 + ); + assert_eq!( + subi_ui64(11015955194427482112, 191084152064409600), + 10824871042363072512 + ); + assert_eq!(subi_ui64(11015955194427482112, 4), 11015955194427482108); + assert_eq!(subi_ui64(11015955194427482112, 3), 11015955194427482109); + assert_eq!(subi_ui64(11015955194427482112, 2), 11015955194427482110); + assert_eq!(subi_ui64(11015955194427482112, 1), 11015955194427482111); + assert_eq!(subi_ui64(11015955194427482112, 0), 11015955194427482112); + assert_eq!( + subi_ui64(16990600415051759616, 191084152064409600), + 16799516262987350016 + ); + assert_eq!(subi_ui64(16990600415051759616, 4), 16990600415051759612); + assert_eq!(subi_ui64(16990600415051759616, 3), 16990600415051759613); + assert_eq!(subi_ui64(16990600415051759616, 2), 16990600415051759614); + assert_eq!(subi_ui64(16990600415051759616, 1), 16990600415051759615); + assert_eq!(subi_ui64(16990600415051759616, 0), 16990600415051759616); + assert_eq!( + subi_ui64(18446744073709551614, 191084152064409600), + 18255659921645142014 + ); + assert_eq!( + subi_ui64(18446744073709551615, 191084152064409600), + 18255659921645142015 + ); + assert_eq!(subi_ui64(18446744073709551614, 4), 18446744073709551610); + assert_eq!(subi_ui64(18446744073709551614, 3), 18446744073709551611); + assert_eq!(subi_ui64(18446744073709551615, 4), 18446744073709551611); + assert_eq!(subi_ui64(18446744073709551614, 2), 18446744073709551612); + assert_eq!(subi_ui64(18446744073709551615, 3), 18446744073709551612); + assert_eq!(subi_ui64(18446744073709551614, 1), 18446744073709551613); + assert_eq!(subi_ui64(18446744073709551615, 2), 18446744073709551613); + assert_eq!(subi_ui64(18446744073709551614, 0), 18446744073709551614); + assert_eq!(subi_ui64(18446744073709551615, 1), 18446744073709551614); + assert_eq!(subi_ui64(18446744073709551615, 0), 18446744073709551615); + assert_eq!(subi_ui8(0, 0), 0); + assert_eq!(subi_ui8(1, 1), 0); + assert_eq!(subi_ui8(2, 2), 0); + assert_eq!(subi_ui8(3, 3), 0); + assert_eq!(subi_ui8(4, 4), 0); + assert_eq!(subi_ui8(72, 72), 0); + assert_eq!(subi_ui8(100, 100), 0); + assert_eq!(subi_ui8(162, 162), 0); + assert_eq!(subi_ui8(254, 254), 0); + assert_eq!(subi_ui8(255, 255), 0); + assert_eq!(subi_ui8(1, 0), 1); + assert_eq!(subi_ui8(2, 1), 1); + assert_eq!(subi_ui8(3, 2), 1); + assert_eq!(subi_ui8(4, 3), 1); + assert_eq!(subi_ui8(255, 254), 1); + assert_eq!(subi_ui8(2, 0), 2); + assert_eq!(subi_ui8(3, 1), 2); + assert_eq!(subi_ui8(4, 2), 2); + assert_eq!(subi_ui8(3, 0), 3); + assert_eq!(subi_ui8(4, 1), 3); + assert_eq!(subi_ui8(4, 0), 4); + assert_eq!(subi_ui8(100, 72), 28); + assert_eq!(subi_ui8(162, 100), 62); + assert_eq!(subi_ui8(72, 4), 68); + assert_eq!(subi_ui8(72, 3), 69); + assert_eq!(subi_ui8(72, 2), 70); + assert_eq!(subi_ui8(72, 1), 71); + assert_eq!(subi_ui8(72, 0), 72); + assert_eq!(subi_ui8(162, 72), 90); + assert_eq!(subi_ui8(254, 162), 92); + assert_eq!(subi_ui8(255, 162), 93); + assert_eq!(subi_ui8(100, 4), 96); + assert_eq!(subi_ui8(100, 3), 97); + assert_eq!(subi_ui8(100, 2), 98); + assert_eq!(subi_ui8(100, 1), 99); + assert_eq!(subi_ui8(100, 0), 100); + assert_eq!(subi_ui8(254, 100), 154); + assert_eq!(subi_ui8(255, 100), 155); + assert_eq!(subi_ui8(162, 4), 158); + assert_eq!(subi_ui8(162, 3), 159); + assert_eq!(subi_ui8(162, 2), 160); + assert_eq!(subi_ui8(162, 1), 161); + assert_eq!(subi_ui8(162, 0), 162); + assert_eq!(subi_ui8(254, 72), 182); + assert_eq!(subi_ui8(255, 72), 183); + assert_eq!(subi_ui8(254, 4), 250); + assert_eq!(subi_ui8(254, 3), 251); + assert_eq!(subi_ui8(255, 4), 251); + assert_eq!(subi_ui8(254, 2), 252); + assert_eq!(subi_ui8(255, 3), 252); + assert_eq!(subi_ui8(254, 1), 253); + assert_eq!(subi_ui8(255, 2), 253); + assert_eq!(subi_ui8(254, 0), 254); + assert_eq!(subi_ui8(255, 1), 254); + assert_eq!(subi_ui8(255, 0), 255); + } } diff --git a/arc-mlir/src/tests/arc-to-rust/int-bitops.mlir.rust-tests b/arc-mlir/src/tests/arc-to-rust/int-bitops.mlir.rust-tests index 8a082f3e8..96980ca24 100644 --- a/arc-mlir/src/tests/arc-to-rust/int-bitops.mlir.rust-tests +++ b/arc-mlir/src/tests/arc-to-rust/int-bitops.mlir.rust-tests @@ -1,2804 +1,3307 @@ #[cfg(test)] mod tests { -use crate::arctorustintbitops::*; - #[rewrite(main)] - #[test] - fn it_works() { - assert_eq!(call!(and_si16(-32768, -32768)), -32768); - assert_eq!(call!(and_si16(-32768, -32767)), -32768); - assert_eq!(call!(and_si16(-32768, -32547)), -32768); - assert_eq!(call!(and_si16(-32767, -32768)), -32768); - assert_eq!(call!(and_si16(-32547, -32768)), -32768); - assert_eq!(call!(and_si16(-32767, -32767)), -32767); - assert_eq!(call!(and_si16(-32767, -32547)), -32767); - assert_eq!(call!(and_si16(-32547, -32767)), -32767); - assert_eq!(call!(and_si16(-32547, -32547)), -32547); - assert_eq!(call!(and_si16(-32768, 0)), 0); - assert_eq!(call!(and_si16(-32768, 1)), 0); - assert_eq!(call!(and_si16(-32768, 2)), 0); - assert_eq!(call!(and_si16(-32768, 3)), 0); - assert_eq!(call!(and_si16(-32768, 4)), 0); - assert_eq!(call!(and_si16(-32768, 10486)), 0); - assert_eq!(call!(and_si16(-32768, 16514)), 0); - assert_eq!(call!(and_si16(-32768, 32766)), 0); - assert_eq!(call!(and_si16(-32768, 32767)), 0); - assert_eq!(call!(and_si16(-32767, 0)), 0); - assert_eq!(call!(and_si16(-32767, 2)), 0); - assert_eq!(call!(and_si16(-32767, 4)), 0); - assert_eq!(call!(and_si16(-32767, 10486)), 0); - assert_eq!(call!(and_si16(-32767, 16514)), 0); - assert_eq!(call!(and_si16(-32767, 32766)), 0); - assert_eq!(call!(and_si16(-32547, 0)), 0); - assert_eq!(call!(and_si16(-32547, 2)), 0); - assert_eq!(call!(and_si16(0, -32768)), 0); - assert_eq!(call!(and_si16(0, -32767)), 0); - assert_eq!(call!(and_si16(0, -32547)), 0); - assert_eq!(call!(and_si16(0, 0)), 0); - assert_eq!(call!(and_si16(0, 1)), 0); - assert_eq!(call!(and_si16(0, 2)), 0); - assert_eq!(call!(and_si16(0, 3)), 0); - assert_eq!(call!(and_si16(0, 4)), 0); - assert_eq!(call!(and_si16(0, 10486)), 0); - assert_eq!(call!(and_si16(0, 16514)), 0); - assert_eq!(call!(and_si16(0, 32766)), 0); - assert_eq!(call!(and_si16(0, 32767)), 0); - assert_eq!(call!(and_si16(1, -32768)), 0); - assert_eq!(call!(and_si16(1, 0)), 0); - assert_eq!(call!(and_si16(1, 2)), 0); - assert_eq!(call!(and_si16(1, 4)), 0); - assert_eq!(call!(and_si16(1, 10486)), 0); - assert_eq!(call!(and_si16(1, 16514)), 0); - assert_eq!(call!(and_si16(1, 32766)), 0); - assert_eq!(call!(and_si16(2, -32768)), 0); - assert_eq!(call!(and_si16(2, -32767)), 0); - assert_eq!(call!(and_si16(2, -32547)), 0); - assert_eq!(call!(and_si16(2, 0)), 0); - assert_eq!(call!(and_si16(2, 1)), 0); - assert_eq!(call!(and_si16(2, 4)), 0); - assert_eq!(call!(and_si16(3, -32768)), 0); - assert_eq!(call!(and_si16(3, 0)), 0); - assert_eq!(call!(and_si16(3, 4)), 0); - assert_eq!(call!(and_si16(4, -32768)), 0); - assert_eq!(call!(and_si16(4, -32767)), 0); - assert_eq!(call!(and_si16(4, 0)), 0); - assert_eq!(call!(and_si16(4, 1)), 0); - assert_eq!(call!(and_si16(4, 2)), 0); - assert_eq!(call!(and_si16(4, 3)), 0); - assert_eq!(call!(and_si16(4, 16514)), 0); - assert_eq!(call!(and_si16(10486, -32768)), 0); - assert_eq!(call!(and_si16(10486, -32767)), 0); - assert_eq!(call!(and_si16(10486, 0)), 0); - assert_eq!(call!(and_si16(10486, 1)), 0); - assert_eq!(call!(and_si16(16514, -32768)), 0); - assert_eq!(call!(and_si16(16514, -32767)), 0); - assert_eq!(call!(and_si16(16514, 0)), 0); - assert_eq!(call!(and_si16(16514, 1)), 0); - assert_eq!(call!(and_si16(16514, 4)), 0); - assert_eq!(call!(and_si16(32766, -32768)), 0); - assert_eq!(call!(and_si16(32766, -32767)), 0); - assert_eq!(call!(and_si16(32766, 0)), 0); - assert_eq!(call!(and_si16(32766, 1)), 0); - assert_eq!(call!(and_si16(32767, -32768)), 0); - assert_eq!(call!(and_si16(32767, 0)), 0); - assert_eq!(call!(and_si16(-32767, 1)), 1); - assert_eq!(call!(and_si16(-32767, 3)), 1); - assert_eq!(call!(and_si16(-32767, 32767)), 1); - assert_eq!(call!(and_si16(-32547, 1)), 1); - assert_eq!(call!(and_si16(-32547, 3)), 1); - assert_eq!(call!(and_si16(1, -32767)), 1); - assert_eq!(call!(and_si16(1, -32547)), 1); - assert_eq!(call!(and_si16(1, 1)), 1); - assert_eq!(call!(and_si16(1, 3)), 1); - assert_eq!(call!(and_si16(1, 32767)), 1); - assert_eq!(call!(and_si16(3, -32767)), 1); - assert_eq!(call!(and_si16(3, -32547)), 1); - assert_eq!(call!(and_si16(3, 1)), 1); - assert_eq!(call!(and_si16(32767, -32767)), 1); - assert_eq!(call!(and_si16(32767, 1)), 1); - assert_eq!(call!(and_si16(2, 2)), 2); - assert_eq!(call!(and_si16(2, 3)), 2); - assert_eq!(call!(and_si16(2, 10486)), 2); - assert_eq!(call!(and_si16(2, 16514)), 2); - assert_eq!(call!(and_si16(2, 32766)), 2); - assert_eq!(call!(and_si16(2, 32767)), 2); - assert_eq!(call!(and_si16(3, 2)), 2); - assert_eq!(call!(and_si16(3, 10486)), 2); - assert_eq!(call!(and_si16(3, 16514)), 2); - assert_eq!(call!(and_si16(3, 32766)), 2); - assert_eq!(call!(and_si16(10486, 2)), 2); - assert_eq!(call!(and_si16(10486, 3)), 2); - assert_eq!(call!(and_si16(16514, 2)), 2); - assert_eq!(call!(and_si16(16514, 3)), 2); - assert_eq!(call!(and_si16(32766, 2)), 2); - assert_eq!(call!(and_si16(32766, 3)), 2); - assert_eq!(call!(and_si16(32767, 2)), 2); - assert_eq!(call!(and_si16(3, 3)), 3); - assert_eq!(call!(and_si16(3, 32767)), 3); - assert_eq!(call!(and_si16(32767, 3)), 3); - assert_eq!(call!(and_si16(-32547, 4)), 4); - assert_eq!(call!(and_si16(4, -32547)), 4); - assert_eq!(call!(and_si16(4, 4)), 4); - assert_eq!(call!(and_si16(4, 10486)), 4); - assert_eq!(call!(and_si16(4, 32766)), 4); - assert_eq!(call!(and_si16(4, 32767)), 4); - assert_eq!(call!(and_si16(10486, 4)), 4); - assert_eq!(call!(and_si16(32766, 4)), 4); - assert_eq!(call!(and_si16(32767, 4)), 4); - assert_eq!(call!(and_si16(-32547, 16514)), 128); - assert_eq!(call!(and_si16(16514, -32547)), 128); - assert_eq!(call!(and_si16(10486, 16514)), 130); - assert_eq!(call!(and_si16(16514, 10486)), 130); - assert_eq!(call!(and_si16(-32547, 10486)), 212); - assert_eq!(call!(and_si16(10486, -32547)), 212); - assert_eq!(call!(and_si16(-32547, 32766)), 220); - assert_eq!(call!(and_si16(32766, -32547)), 220); - assert_eq!(call!(and_si16(-32547, 32767)), 221); - assert_eq!(call!(and_si16(32767, -32547)), 221); - assert_eq!(call!(and_si16(10486, 10486)), 10486); - assert_eq!(call!(and_si16(10486, 32766)), 10486); - assert_eq!(call!(and_si16(10486, 32767)), 10486); - assert_eq!(call!(and_si16(32766, 10486)), 10486); - assert_eq!(call!(and_si16(32767, 10486)), 10486); - assert_eq!(call!(and_si16(16514, 16514)), 16514); - assert_eq!(call!(and_si16(16514, 32766)), 16514); - assert_eq!(call!(and_si16(16514, 32767)), 16514); - assert_eq!(call!(and_si16(32766, 16514)), 16514); - assert_eq!(call!(and_si16(32767, 16514)), 16514); - assert_eq!(call!(and_si16(32766, 32766)), 32766); - assert_eq!(call!(and_si16(32766, 32767)), 32766); - assert_eq!(call!(and_si16(32767, 32766)), 32766); - assert_eq!(call!(and_si16(32767, 32767)), 32767); - assert_eq!(call!(and_si32(-2147483648, -2147483648)), -2147483648); - assert_eq!(call!(and_si32(-2147483648, -2147483647)), -2147483648); - assert_eq!(call!(and_si32(-2147483648, -1713183800)), -2147483648); - assert_eq!(call!(and_si32(-2147483648, -1252582164)), -2147483648); - assert_eq!(call!(and_si32(-2147483648, -1035405763)), -2147483648); - assert_eq!(call!(and_si32(-2147483647, -2147483648)), -2147483648); - assert_eq!(call!(and_si32(-2147483647, -1713183800)), -2147483648); - assert_eq!(call!(and_si32(-2147483647, -1252582164)), -2147483648); - assert_eq!(call!(and_si32(-1713183800, -2147483648)), -2147483648); - assert_eq!(call!(and_si32(-1713183800, -2147483647)), -2147483648); - assert_eq!(call!(and_si32(-1252582164, -2147483648)), -2147483648); - assert_eq!(call!(and_si32(-1252582164, -2147483647)), -2147483648); - assert_eq!(call!(and_si32(-1035405763, -2147483648)), -2147483648); - assert_eq!(call!(and_si32(-2147483647, -2147483647)), -2147483647); - assert_eq!(call!(and_si32(-2147483647, -1035405763)), -2147483647); - assert_eq!(call!(and_si32(-1035405763, -2147483647)), -2147483647); - assert_eq!(call!(and_si32(-1252582164, -1035405763)), -2143284180); - assert_eq!(call!(and_si32(-1035405763, -1252582164)), -2143284180); - assert_eq!(call!(and_si32(-1713183800, -1035405763)), -2143231480); - assert_eq!(call!(and_si32(-1035405763, -1713183800)), -2143231480); - assert_eq!(call!(and_si32(-1713183800, -1252582164)), -1857945400); - assert_eq!(call!(and_si32(-1252582164, -1713183800)), -1857945400); - assert_eq!(call!(and_si32(-1713183800, -1713183800)), -1713183800); - assert_eq!(call!(and_si32(-1252582164, -1252582164)), -1252582164); - assert_eq!(call!(and_si32(-1035405763, -1035405763)), -1035405763); - assert_eq!(call!(and_si32(-2147483648, 0)), 0); - assert_eq!(call!(and_si32(-2147483648, 1)), 0); - assert_eq!(call!(and_si32(-2147483648, 2)), 0); - assert_eq!(call!(and_si32(-2147483648, 3)), 0); - assert_eq!(call!(and_si32(-2147483648, 4)), 0); - assert_eq!(call!(and_si32(-2147483648, 2147483646)), 0); - assert_eq!(call!(and_si32(-2147483648, 2147483647)), 0); - assert_eq!(call!(and_si32(-2147483647, 0)), 0); - assert_eq!(call!(and_si32(-2147483647, 2)), 0); - assert_eq!(call!(and_si32(-2147483647, 4)), 0); - assert_eq!(call!(and_si32(-2147483647, 2147483646)), 0); - assert_eq!(call!(and_si32(-1713183800, 0)), 0); - assert_eq!(call!(and_si32(-1713183800, 1)), 0); - assert_eq!(call!(and_si32(-1713183800, 2)), 0); - assert_eq!(call!(and_si32(-1713183800, 3)), 0); - assert_eq!(call!(and_si32(-1713183800, 4)), 0); - assert_eq!(call!(and_si32(-1252582164, 0)), 0); - assert_eq!(call!(and_si32(-1252582164, 1)), 0); - assert_eq!(call!(and_si32(-1252582164, 2)), 0); - assert_eq!(call!(and_si32(-1252582164, 3)), 0); - assert_eq!(call!(and_si32(-1035405763, 0)), 0); - assert_eq!(call!(and_si32(-1035405763, 2)), 0); - assert_eq!(call!(and_si32(0, -2147483648)), 0); - assert_eq!(call!(and_si32(0, -2147483647)), 0); - assert_eq!(call!(and_si32(0, -1713183800)), 0); - assert_eq!(call!(and_si32(0, -1252582164)), 0); - assert_eq!(call!(and_si32(0, -1035405763)), 0); - assert_eq!(call!(and_si32(0, 0)), 0); - assert_eq!(call!(and_si32(0, 1)), 0); - assert_eq!(call!(and_si32(0, 2)), 0); - assert_eq!(call!(and_si32(0, 3)), 0); - assert_eq!(call!(and_si32(0, 4)), 0); - assert_eq!(call!(and_si32(0, 2147483646)), 0); - assert_eq!(call!(and_si32(0, 2147483647)), 0); - assert_eq!(call!(and_si32(1, -2147483648)), 0); - assert_eq!(call!(and_si32(1, -1713183800)), 0); - assert_eq!(call!(and_si32(1, -1252582164)), 0); - assert_eq!(call!(and_si32(1, 0)), 0); - assert_eq!(call!(and_si32(1, 2)), 0); - assert_eq!(call!(and_si32(1, 4)), 0); - assert_eq!(call!(and_si32(1, 2147483646)), 0); - assert_eq!(call!(and_si32(2, -2147483648)), 0); - assert_eq!(call!(and_si32(2, -2147483647)), 0); - assert_eq!(call!(and_si32(2, -1713183800)), 0); - assert_eq!(call!(and_si32(2, -1252582164)), 0); - assert_eq!(call!(and_si32(2, -1035405763)), 0); - assert_eq!(call!(and_si32(2, 0)), 0); - assert_eq!(call!(and_si32(2, 1)), 0); - assert_eq!(call!(and_si32(2, 4)), 0); - assert_eq!(call!(and_si32(3, -2147483648)), 0); - assert_eq!(call!(and_si32(3, -1713183800)), 0); - assert_eq!(call!(and_si32(3, -1252582164)), 0); - assert_eq!(call!(and_si32(3, 0)), 0); - assert_eq!(call!(and_si32(3, 4)), 0); - assert_eq!(call!(and_si32(4, -2147483648)), 0); - assert_eq!(call!(and_si32(4, -2147483647)), 0); - assert_eq!(call!(and_si32(4, -1713183800)), 0); - assert_eq!(call!(and_si32(4, 0)), 0); - assert_eq!(call!(and_si32(4, 1)), 0); - assert_eq!(call!(and_si32(4, 2)), 0); - assert_eq!(call!(and_si32(4, 3)), 0); - assert_eq!(call!(and_si32(2147483646, -2147483648)), 0); - assert_eq!(call!(and_si32(2147483646, -2147483647)), 0); - assert_eq!(call!(and_si32(2147483646, 0)), 0); - assert_eq!(call!(and_si32(2147483646, 1)), 0); - assert_eq!(call!(and_si32(2147483647, -2147483648)), 0); - assert_eq!(call!(and_si32(2147483647, 0)), 0); - assert_eq!(call!(and_si32(-2147483647, 1)), 1); - assert_eq!(call!(and_si32(-2147483647, 3)), 1); - assert_eq!(call!(and_si32(-2147483647, 2147483647)), 1); - assert_eq!(call!(and_si32(-1035405763, 1)), 1); - assert_eq!(call!(and_si32(-1035405763, 3)), 1); - assert_eq!(call!(and_si32(1, -2147483647)), 1); - assert_eq!(call!(and_si32(1, -1035405763)), 1); - assert_eq!(call!(and_si32(1, 1)), 1); - assert_eq!(call!(and_si32(1, 3)), 1); - assert_eq!(call!(and_si32(1, 2147483647)), 1); - assert_eq!(call!(and_si32(3, -2147483647)), 1); - assert_eq!(call!(and_si32(3, -1035405763)), 1); - assert_eq!(call!(and_si32(3, 1)), 1); - assert_eq!(call!(and_si32(2147483647, -2147483647)), 1); - assert_eq!(call!(and_si32(2147483647, 1)), 1); - assert_eq!(call!(and_si32(2, 2)), 2); - assert_eq!(call!(and_si32(2, 3)), 2); - assert_eq!(call!(and_si32(2, 2147483646)), 2); - assert_eq!(call!(and_si32(2, 2147483647)), 2); - assert_eq!(call!(and_si32(3, 2)), 2); - assert_eq!(call!(and_si32(3, 2147483646)), 2); - assert_eq!(call!(and_si32(2147483646, 2)), 2); - assert_eq!(call!(and_si32(2147483646, 3)), 2); - assert_eq!(call!(and_si32(2147483647, 2)), 2); - assert_eq!(call!(and_si32(3, 3)), 3); - assert_eq!(call!(and_si32(3, 2147483647)), 3); - assert_eq!(call!(and_si32(2147483647, 3)), 3); - assert_eq!(call!(and_si32(-1252582164, 4)), 4); - assert_eq!(call!(and_si32(-1035405763, 4)), 4); - assert_eq!(call!(and_si32(4, -1252582164)), 4); - assert_eq!(call!(and_si32(4, -1035405763)), 4); - assert_eq!(call!(and_si32(4, 4)), 4); - assert_eq!(call!(and_si32(4, 2147483646)), 4); - assert_eq!(call!(and_si32(4, 2147483647)), 4); - assert_eq!(call!(and_si32(2147483646, 4)), 4); - assert_eq!(call!(and_si32(2147483647, 4)), 4); - assert_eq!(call!(and_si32(-1713183800, 2147483646)), 434299848); - assert_eq!(call!(and_si32(-1713183800, 2147483647)), 434299848); - assert_eq!(call!(and_si32(2147483646, -1713183800)), 434299848); - assert_eq!(call!(and_si32(2147483647, -1713183800)), 434299848); - assert_eq!(call!(and_si32(-1252582164, 2147483646)), 894901484); - assert_eq!(call!(and_si32(-1252582164, 2147483647)), 894901484); - assert_eq!(call!(and_si32(2147483646, -1252582164)), 894901484); - assert_eq!(call!(and_si32(2147483647, -1252582164)), 894901484); - assert_eq!(call!(and_si32(-1035405763, 2147483646)), 1112077884); - assert_eq!(call!(and_si32(2147483646, -1035405763)), 1112077884); - assert_eq!(call!(and_si32(-1035405763, 2147483647)), 1112077885); - assert_eq!(call!(and_si32(2147483647, -1035405763)), 1112077885); - assert_eq!(call!(and_si32(2147483646, 2147483646)), 2147483646); - assert_eq!(call!(and_si32(2147483646, 2147483647)), 2147483646); - assert_eq!(call!(and_si32(2147483647, 2147483646)), 2147483646); - assert_eq!(call!(and_si32(2147483647, 2147483647)), 2147483647); - assert_eq!(call!(and_si64(-9223372036854775808, -9223372036854775808)), -9223372036854775808); - assert_eq!(call!(and_si64(-9223372036854775808, -9223372036854775807)), -9223372036854775808); - assert_eq!(call!(and_si64(-9223372036854775808, -1741927215160008704)), -9223372036854775808); - assert_eq!(call!(and_si64(-9223372036854775808, -1328271339354574848)), -9223372036854775808); - assert_eq!(call!(and_si64(-9223372036854775807, -9223372036854775808)), -9223372036854775808); - assert_eq!(call!(and_si64(-9223372036854775807, -1741927215160008704)), -9223372036854775808); - assert_eq!(call!(and_si64(-9223372036854775807, -1328271339354574848)), -9223372036854775808); - assert_eq!(call!(and_si64(-1741927215160008704, -9223372036854775808)), -9223372036854775808); - assert_eq!(call!(and_si64(-1741927215160008704, -9223372036854775807)), -9223372036854775808); - assert_eq!(call!(and_si64(-1328271339354574848, -9223372036854775808)), -9223372036854775808); - assert_eq!(call!(and_si64(-1328271339354574848, -9223372036854775807)), -9223372036854775808); - assert_eq!(call!(and_si64(-9223372036854775807, -9223372036854775807)), -9223372036854775807); - assert_eq!(call!(and_si64(-1741927215160008704, -1328271339354574848)), -1904732091996692480); - assert_eq!(call!(and_si64(-1328271339354574848, -1741927215160008704)), -1904732091996692480); - assert_eq!(call!(and_si64(-1741927215160008704, -1741927215160008704)), -1741927215160008704); - assert_eq!(call!(and_si64(-1328271339354574848, -1328271339354574848)), -1328271339354574848); - assert_eq!(call!(and_si64(-9223372036854775808, 0)), 0); - assert_eq!(call!(and_si64(-9223372036854775808, 1)), 0); - assert_eq!(call!(and_si64(-9223372036854775808, 2)), 0); - assert_eq!(call!(and_si64(-9223372036854775808, 3)), 0); - assert_eq!(call!(and_si64(-9223372036854775808, 4)), 0); - assert_eq!(call!(and_si64(-9223372036854775808, 5577148965131116544)), 0); - assert_eq!(call!(and_si64(-9223372036854775808, 9223372036854775806)), 0); - assert_eq!(call!(and_si64(-9223372036854775808, 9223372036854775807)), 0); - assert_eq!(call!(and_si64(-9223372036854775807, 0)), 0); - assert_eq!(call!(and_si64(-9223372036854775807, 2)), 0); - assert_eq!(call!(and_si64(-9223372036854775807, 4)), 0); - assert_eq!(call!(and_si64(-9223372036854775807, 5577148965131116544)), 0); - assert_eq!(call!(and_si64(-9223372036854775807, 9223372036854775806)), 0); - assert_eq!(call!(and_si64(-1741927215160008704, 0)), 0); - assert_eq!(call!(and_si64(-1741927215160008704, 1)), 0); - assert_eq!(call!(and_si64(-1741927215160008704, 2)), 0); - assert_eq!(call!(and_si64(-1741927215160008704, 3)), 0); - assert_eq!(call!(and_si64(-1741927215160008704, 4)), 0); - assert_eq!(call!(and_si64(-1328271339354574848, 0)), 0); - assert_eq!(call!(and_si64(-1328271339354574848, 1)), 0); - assert_eq!(call!(and_si64(-1328271339354574848, 2)), 0); - assert_eq!(call!(and_si64(-1328271339354574848, 3)), 0); - assert_eq!(call!(and_si64(-1328271339354574848, 4)), 0); - assert_eq!(call!(and_si64(0, -9223372036854775808)), 0); - assert_eq!(call!(and_si64(0, -9223372036854775807)), 0); - assert_eq!(call!(and_si64(0, -1741927215160008704)), 0); - assert_eq!(call!(and_si64(0, -1328271339354574848)), 0); - assert_eq!(call!(and_si64(0, 0)), 0); - assert_eq!(call!(and_si64(0, 1)), 0); - assert_eq!(call!(and_si64(0, 2)), 0); - assert_eq!(call!(and_si64(0, 3)), 0); - assert_eq!(call!(and_si64(0, 4)), 0); - assert_eq!(call!(and_si64(0, 5577148965131116544)), 0); - assert_eq!(call!(and_si64(0, 9223372036854775806)), 0); - assert_eq!(call!(and_si64(0, 9223372036854775807)), 0); - assert_eq!(call!(and_si64(1, -9223372036854775808)), 0); - assert_eq!(call!(and_si64(1, -1741927215160008704)), 0); - assert_eq!(call!(and_si64(1, -1328271339354574848)), 0); - assert_eq!(call!(and_si64(1, 0)), 0); - assert_eq!(call!(and_si64(1, 2)), 0); - assert_eq!(call!(and_si64(1, 4)), 0); - assert_eq!(call!(and_si64(1, 5577148965131116544)), 0); - assert_eq!(call!(and_si64(1, 9223372036854775806)), 0); - assert_eq!(call!(and_si64(2, -9223372036854775808)), 0); - assert_eq!(call!(and_si64(2, -9223372036854775807)), 0); - assert_eq!(call!(and_si64(2, -1741927215160008704)), 0); - assert_eq!(call!(and_si64(2, -1328271339354574848)), 0); - assert_eq!(call!(and_si64(2, 0)), 0); - assert_eq!(call!(and_si64(2, 1)), 0); - assert_eq!(call!(and_si64(2, 4)), 0); - assert_eq!(call!(and_si64(2, 5577148965131116544)), 0); - assert_eq!(call!(and_si64(3, -9223372036854775808)), 0); - assert_eq!(call!(and_si64(3, -1741927215160008704)), 0); - assert_eq!(call!(and_si64(3, -1328271339354574848)), 0); - assert_eq!(call!(and_si64(3, 0)), 0); - assert_eq!(call!(and_si64(3, 4)), 0); - assert_eq!(call!(and_si64(3, 5577148965131116544)), 0); - assert_eq!(call!(and_si64(4, -9223372036854775808)), 0); - assert_eq!(call!(and_si64(4, -9223372036854775807)), 0); - assert_eq!(call!(and_si64(4, -1741927215160008704)), 0); - assert_eq!(call!(and_si64(4, -1328271339354574848)), 0); - assert_eq!(call!(and_si64(4, 0)), 0); - assert_eq!(call!(and_si64(4, 1)), 0); - assert_eq!(call!(and_si64(4, 2)), 0); - assert_eq!(call!(and_si64(4, 3)), 0); - assert_eq!(call!(and_si64(4, 5577148965131116544)), 0); - assert_eq!(call!(and_si64(5577148965131116544, -9223372036854775808)), 0); - assert_eq!(call!(and_si64(5577148965131116544, -9223372036854775807)), 0); - assert_eq!(call!(and_si64(5577148965131116544, 0)), 0); - assert_eq!(call!(and_si64(5577148965131116544, 1)), 0); - assert_eq!(call!(and_si64(5577148965131116544, 2)), 0); - assert_eq!(call!(and_si64(5577148965131116544, 3)), 0); - assert_eq!(call!(and_si64(5577148965131116544, 4)), 0); - assert_eq!(call!(and_si64(9223372036854775806, -9223372036854775808)), 0); - assert_eq!(call!(and_si64(9223372036854775806, -9223372036854775807)), 0); - assert_eq!(call!(and_si64(9223372036854775806, 0)), 0); - assert_eq!(call!(and_si64(9223372036854775806, 1)), 0); - assert_eq!(call!(and_si64(9223372036854775807, -9223372036854775808)), 0); - assert_eq!(call!(and_si64(9223372036854775807, 0)), 0); - assert_eq!(call!(and_si64(-9223372036854775807, 1)), 1); - assert_eq!(call!(and_si64(-9223372036854775807, 3)), 1); - assert_eq!(call!(and_si64(-9223372036854775807, 9223372036854775807)), 1); - assert_eq!(call!(and_si64(1, -9223372036854775807)), 1); - assert_eq!(call!(and_si64(1, 1)), 1); - assert_eq!(call!(and_si64(1, 3)), 1); - assert_eq!(call!(and_si64(1, 9223372036854775807)), 1); - assert_eq!(call!(and_si64(3, -9223372036854775807)), 1); - assert_eq!(call!(and_si64(3, 1)), 1); - assert_eq!(call!(and_si64(9223372036854775807, -9223372036854775807)), 1); - assert_eq!(call!(and_si64(9223372036854775807, 1)), 1); - assert_eq!(call!(and_si64(2, 2)), 2); - assert_eq!(call!(and_si64(2, 3)), 2); - assert_eq!(call!(and_si64(2, 9223372036854775806)), 2); - assert_eq!(call!(and_si64(2, 9223372036854775807)), 2); - assert_eq!(call!(and_si64(3, 2)), 2); - assert_eq!(call!(and_si64(3, 9223372036854775806)), 2); - assert_eq!(call!(and_si64(9223372036854775806, 2)), 2); - assert_eq!(call!(and_si64(9223372036854775806, 3)), 2); - assert_eq!(call!(and_si64(9223372036854775807, 2)), 2); - assert_eq!(call!(and_si64(3, 3)), 3); - assert_eq!(call!(and_si64(3, 9223372036854775807)), 3); - assert_eq!(call!(and_si64(9223372036854775807, 3)), 3); - assert_eq!(call!(and_si64(4, 4)), 4); - assert_eq!(call!(and_si64(4, 9223372036854775806)), 4); - assert_eq!(call!(and_si64(4, 9223372036854775807)), 4); - assert_eq!(call!(and_si64(9223372036854775806, 4)), 4); - assert_eq!(call!(and_si64(9223372036854775807, 4)), 4); - assert_eq!(call!(and_si64(-1741927215160008704, 5577148965131116544)), 4990554005496225792); - assert_eq!(call!(and_si64(5577148965131116544, -1741927215160008704)), 4990554005496225792); - assert_eq!(call!(and_si64(-1328271339354574848, 5577148965131116544)), 5548435020295708672); - assert_eq!(call!(and_si64(5577148965131116544, -1328271339354574848)), 5548435020295708672); - assert_eq!(call!(and_si64(5577148965131116544, 5577148965131116544)), 5577148965131116544); - assert_eq!(call!(and_si64(5577148965131116544, 9223372036854775806)), 5577148965131116544); - assert_eq!(call!(and_si64(5577148965131116544, 9223372036854775807)), 5577148965131116544); - assert_eq!(call!(and_si64(9223372036854775806, 5577148965131116544)), 5577148965131116544); - assert_eq!(call!(and_si64(9223372036854775807, 5577148965131116544)), 5577148965131116544); - assert_eq!(call!(and_si64(-1741927215160008704, 9223372036854775806)), 7481444821694767104); - assert_eq!(call!(and_si64(-1741927215160008704, 9223372036854775807)), 7481444821694767104); - assert_eq!(call!(and_si64(9223372036854775806, -1741927215160008704)), 7481444821694767104); - assert_eq!(call!(and_si64(9223372036854775807, -1741927215160008704)), 7481444821694767104); - assert_eq!(call!(and_si64(-1328271339354574848, 9223372036854775806)), 7895100697500200960); - assert_eq!(call!(and_si64(-1328271339354574848, 9223372036854775807)), 7895100697500200960); - assert_eq!(call!(and_si64(9223372036854775806, -1328271339354574848)), 7895100697500200960); - assert_eq!(call!(and_si64(9223372036854775807, -1328271339354574848)), 7895100697500200960); - assert_eq!(call!(and_si64(9223372036854775806, 9223372036854775806)), 9223372036854775806); - assert_eq!(call!(and_si64(9223372036854775806, 9223372036854775807)), 9223372036854775806); - assert_eq!(call!(and_si64(9223372036854775807, 9223372036854775806)), 9223372036854775806); - assert_eq!(call!(and_si64(9223372036854775807, 9223372036854775807)), 9223372036854775807); - assert_eq!(call!(and_si8(-128, -128)), -128); - assert_eq!(call!(and_si8(-128, -127)), -128); - assert_eq!(call!(and_si8(-127, -128)), -128); - assert_eq!(call!(and_si8(-127, -127)), -127); - assert_eq!(call!(and_si8(-128, 0)), 0); - assert_eq!(call!(and_si8(-128, 1)), 0); - assert_eq!(call!(and_si8(-128, 2)), 0); - assert_eq!(call!(and_si8(-128, 3)), 0); - assert_eq!(call!(and_si8(-128, 4)), 0); - assert_eq!(call!(and_si8(-128, 16)), 0); - assert_eq!(call!(and_si8(-128, 126)), 0); - assert_eq!(call!(and_si8(-128, 127)), 0); - assert_eq!(call!(and_si8(-127, 0)), 0); - assert_eq!(call!(and_si8(-127, 2)), 0); - assert_eq!(call!(and_si8(-127, 4)), 0); - assert_eq!(call!(and_si8(-127, 16)), 0); - assert_eq!(call!(and_si8(-127, 126)), 0); - assert_eq!(call!(and_si8(0, -128)), 0); - assert_eq!(call!(and_si8(0, -127)), 0); - assert_eq!(call!(and_si8(0, 0)), 0); - assert_eq!(call!(and_si8(0, 1)), 0); - assert_eq!(call!(and_si8(0, 2)), 0); - assert_eq!(call!(and_si8(0, 3)), 0); - assert_eq!(call!(and_si8(0, 4)), 0); - assert_eq!(call!(and_si8(0, 16)), 0); - assert_eq!(call!(and_si8(0, 126)), 0); - assert_eq!(call!(and_si8(0, 127)), 0); - assert_eq!(call!(and_si8(1, -128)), 0); - assert_eq!(call!(and_si8(1, 0)), 0); - assert_eq!(call!(and_si8(1, 2)), 0); - assert_eq!(call!(and_si8(1, 4)), 0); - assert_eq!(call!(and_si8(1, 16)), 0); - assert_eq!(call!(and_si8(1, 126)), 0); - assert_eq!(call!(and_si8(2, -128)), 0); - assert_eq!(call!(and_si8(2, -127)), 0); - assert_eq!(call!(and_si8(2, 0)), 0); - assert_eq!(call!(and_si8(2, 1)), 0); - assert_eq!(call!(and_si8(2, 4)), 0); - assert_eq!(call!(and_si8(2, 16)), 0); - assert_eq!(call!(and_si8(3, -128)), 0); - assert_eq!(call!(and_si8(3, 0)), 0); - assert_eq!(call!(and_si8(3, 4)), 0); - assert_eq!(call!(and_si8(3, 16)), 0); - assert_eq!(call!(and_si8(4, -128)), 0); - assert_eq!(call!(and_si8(4, -127)), 0); - assert_eq!(call!(and_si8(4, 0)), 0); - assert_eq!(call!(and_si8(4, 1)), 0); - assert_eq!(call!(and_si8(4, 2)), 0); - assert_eq!(call!(and_si8(4, 3)), 0); - assert_eq!(call!(and_si8(4, 16)), 0); - assert_eq!(call!(and_si8(16, -128)), 0); - assert_eq!(call!(and_si8(16, -127)), 0); - assert_eq!(call!(and_si8(16, 0)), 0); - assert_eq!(call!(and_si8(16, 1)), 0); - assert_eq!(call!(and_si8(16, 2)), 0); - assert_eq!(call!(and_si8(16, 3)), 0); - assert_eq!(call!(and_si8(16, 4)), 0); - assert_eq!(call!(and_si8(126, -128)), 0); - assert_eq!(call!(and_si8(126, -127)), 0); - assert_eq!(call!(and_si8(126, 0)), 0); - assert_eq!(call!(and_si8(126, 1)), 0); - assert_eq!(call!(and_si8(127, -128)), 0); - assert_eq!(call!(and_si8(127, 0)), 0); - assert_eq!(call!(and_si8(-127, 1)), 1); - assert_eq!(call!(and_si8(-127, 3)), 1); - assert_eq!(call!(and_si8(-127, 127)), 1); - assert_eq!(call!(and_si8(1, -127)), 1); - assert_eq!(call!(and_si8(1, 1)), 1); - assert_eq!(call!(and_si8(1, 3)), 1); - assert_eq!(call!(and_si8(1, 127)), 1); - assert_eq!(call!(and_si8(3, -127)), 1); - assert_eq!(call!(and_si8(3, 1)), 1); - assert_eq!(call!(and_si8(127, -127)), 1); - assert_eq!(call!(and_si8(127, 1)), 1); - assert_eq!(call!(and_si8(2, 2)), 2); - assert_eq!(call!(and_si8(2, 3)), 2); - assert_eq!(call!(and_si8(2, 126)), 2); - assert_eq!(call!(and_si8(2, 127)), 2); - assert_eq!(call!(and_si8(3, 2)), 2); - assert_eq!(call!(and_si8(3, 126)), 2); - assert_eq!(call!(and_si8(126, 2)), 2); - assert_eq!(call!(and_si8(126, 3)), 2); - assert_eq!(call!(and_si8(127, 2)), 2); - assert_eq!(call!(and_si8(3, 3)), 3); - assert_eq!(call!(and_si8(3, 127)), 3); - assert_eq!(call!(and_si8(127, 3)), 3); - assert_eq!(call!(and_si8(4, 4)), 4); - assert_eq!(call!(and_si8(4, 126)), 4); - assert_eq!(call!(and_si8(4, 127)), 4); - assert_eq!(call!(and_si8(126, 4)), 4); - assert_eq!(call!(and_si8(127, 4)), 4); - assert_eq!(call!(and_si8(16, 16)), 16); - assert_eq!(call!(and_si8(16, 126)), 16); - assert_eq!(call!(and_si8(16, 127)), 16); - assert_eq!(call!(and_si8(126, 16)), 16); - assert_eq!(call!(and_si8(127, 16)), 16); - assert_eq!(call!(and_si8(126, 126)), 126); - assert_eq!(call!(and_si8(126, 127)), 126); - assert_eq!(call!(and_si8(127, 126)), 126); - assert_eq!(call!(and_si8(127, 127)), 127); - assert_eq!(call!(and_ui16(0, 0)), 0); - assert_eq!(call!(and_ui16(0, 1)), 0); - assert_eq!(call!(and_ui16(0, 2)), 0); - assert_eq!(call!(and_ui16(0, 3)), 0); - assert_eq!(call!(and_ui16(0, 4)), 0); - assert_eq!(call!(and_ui16(0, 1717)), 0); - assert_eq!(call!(and_ui16(0, 17988)), 0); - assert_eq!(call!(and_ui16(0, 65096)), 0); - assert_eq!(call!(and_ui16(0, 65534)), 0); - assert_eq!(call!(and_ui16(0, 65535)), 0); - assert_eq!(call!(and_ui16(1, 0)), 0); - assert_eq!(call!(and_ui16(1, 2)), 0); - assert_eq!(call!(and_ui16(1, 4)), 0); - assert_eq!(call!(and_ui16(1, 17988)), 0); - assert_eq!(call!(and_ui16(1, 65096)), 0); - assert_eq!(call!(and_ui16(1, 65534)), 0); - assert_eq!(call!(and_ui16(2, 0)), 0); - assert_eq!(call!(and_ui16(2, 1)), 0); - assert_eq!(call!(and_ui16(2, 4)), 0); - assert_eq!(call!(and_ui16(2, 1717)), 0); - assert_eq!(call!(and_ui16(2, 17988)), 0); - assert_eq!(call!(and_ui16(2, 65096)), 0); - assert_eq!(call!(and_ui16(3, 0)), 0); - assert_eq!(call!(and_ui16(3, 4)), 0); - assert_eq!(call!(and_ui16(3, 17988)), 0); - assert_eq!(call!(and_ui16(3, 65096)), 0); - assert_eq!(call!(and_ui16(4, 0)), 0); - assert_eq!(call!(and_ui16(4, 1)), 0); - assert_eq!(call!(and_ui16(4, 2)), 0); - assert_eq!(call!(and_ui16(4, 3)), 0); - assert_eq!(call!(and_ui16(4, 65096)), 0); - assert_eq!(call!(and_ui16(1717, 0)), 0); - assert_eq!(call!(and_ui16(1717, 2)), 0); - assert_eq!(call!(and_ui16(17988, 0)), 0); - assert_eq!(call!(and_ui16(17988, 1)), 0); - assert_eq!(call!(and_ui16(17988, 2)), 0); - assert_eq!(call!(and_ui16(17988, 3)), 0); - assert_eq!(call!(and_ui16(65096, 0)), 0); - assert_eq!(call!(and_ui16(65096, 1)), 0); - assert_eq!(call!(and_ui16(65096, 2)), 0); - assert_eq!(call!(and_ui16(65096, 3)), 0); - assert_eq!(call!(and_ui16(65096, 4)), 0); - assert_eq!(call!(and_ui16(65534, 0)), 0); - assert_eq!(call!(and_ui16(65534, 1)), 0); - assert_eq!(call!(and_ui16(65535, 0)), 0); - assert_eq!(call!(and_ui16(1, 1)), 1); - assert_eq!(call!(and_ui16(1, 3)), 1); - assert_eq!(call!(and_ui16(1, 1717)), 1); - assert_eq!(call!(and_ui16(1, 65535)), 1); - assert_eq!(call!(and_ui16(3, 1)), 1); - assert_eq!(call!(and_ui16(3, 1717)), 1); - assert_eq!(call!(and_ui16(1717, 1)), 1); - assert_eq!(call!(and_ui16(1717, 3)), 1); - assert_eq!(call!(and_ui16(65535, 1)), 1); - assert_eq!(call!(and_ui16(2, 2)), 2); - assert_eq!(call!(and_ui16(2, 3)), 2); - assert_eq!(call!(and_ui16(2, 65534)), 2); - assert_eq!(call!(and_ui16(2, 65535)), 2); - assert_eq!(call!(and_ui16(3, 2)), 2); - assert_eq!(call!(and_ui16(3, 65534)), 2); - assert_eq!(call!(and_ui16(65534, 2)), 2); - assert_eq!(call!(and_ui16(65534, 3)), 2); - assert_eq!(call!(and_ui16(65535, 2)), 2); - assert_eq!(call!(and_ui16(3, 3)), 3); - assert_eq!(call!(and_ui16(3, 65535)), 3); - assert_eq!(call!(and_ui16(65535, 3)), 3); - assert_eq!(call!(and_ui16(4, 4)), 4); - assert_eq!(call!(and_ui16(4, 1717)), 4); - assert_eq!(call!(and_ui16(4, 17988)), 4); - assert_eq!(call!(and_ui16(4, 65534)), 4); - assert_eq!(call!(and_ui16(4, 65535)), 4); - assert_eq!(call!(and_ui16(1717, 4)), 4); - assert_eq!(call!(and_ui16(17988, 4)), 4); - assert_eq!(call!(and_ui16(65534, 4)), 4); - assert_eq!(call!(and_ui16(65535, 4)), 4); - assert_eq!(call!(and_ui16(1717, 65096)), 1536); - assert_eq!(call!(and_ui16(65096, 1717)), 1536); - assert_eq!(call!(and_ui16(1717, 17988)), 1540); - assert_eq!(call!(and_ui16(17988, 1717)), 1540); - assert_eq!(call!(and_ui16(1717, 65534)), 1716); - assert_eq!(call!(and_ui16(65534, 1717)), 1716); - assert_eq!(call!(and_ui16(1717, 1717)), 1717); - assert_eq!(call!(and_ui16(1717, 65535)), 1717); - assert_eq!(call!(and_ui16(65535, 1717)), 1717); - assert_eq!(call!(and_ui16(17988, 65096)), 17984); - assert_eq!(call!(and_ui16(65096, 17988)), 17984); - assert_eq!(call!(and_ui16(17988, 17988)), 17988); - assert_eq!(call!(and_ui16(17988, 65534)), 17988); - assert_eq!(call!(and_ui16(17988, 65535)), 17988); - assert_eq!(call!(and_ui16(65534, 17988)), 17988); - assert_eq!(call!(and_ui16(65535, 17988)), 17988); - assert_eq!(call!(and_ui16(65096, 65096)), 65096); - assert_eq!(call!(and_ui16(65096, 65534)), 65096); - assert_eq!(call!(and_ui16(65096, 65535)), 65096); - assert_eq!(call!(and_ui16(65534, 65096)), 65096); - assert_eq!(call!(and_ui16(65535, 65096)), 65096); - assert_eq!(call!(and_ui16(65534, 65534)), 65534); - assert_eq!(call!(and_ui16(65534, 65535)), 65534); - assert_eq!(call!(and_ui16(65535, 65534)), 65534); - assert_eq!(call!(and_ui16(65535, 65535)), 65535); - assert_eq!(call!(and_ui32(0, 0)), 0); - assert_eq!(call!(and_ui32(0, 1)), 0); - assert_eq!(call!(and_ui32(0, 2)), 0); - assert_eq!(call!(and_ui32(0, 3)), 0); - assert_eq!(call!(and_ui32(0, 4)), 0); - assert_eq!(call!(and_ui32(0, 2119154652)), 0); - assert_eq!(call!(and_ui32(0, 3002788344)), 0); - assert_eq!(call!(and_ui32(0, 3482297128)), 0); - assert_eq!(call!(and_ui32(0, 4294967294)), 0); - assert_eq!(call!(and_ui32(0, 4294967295)), 0); - assert_eq!(call!(and_ui32(1, 0)), 0); - assert_eq!(call!(and_ui32(1, 2)), 0); - assert_eq!(call!(and_ui32(1, 4)), 0); - assert_eq!(call!(and_ui32(1, 2119154652)), 0); - assert_eq!(call!(and_ui32(1, 3002788344)), 0); - assert_eq!(call!(and_ui32(1, 3482297128)), 0); - assert_eq!(call!(and_ui32(1, 4294967294)), 0); - assert_eq!(call!(and_ui32(2, 0)), 0); - assert_eq!(call!(and_ui32(2, 1)), 0); - assert_eq!(call!(and_ui32(2, 4)), 0); - assert_eq!(call!(and_ui32(2, 2119154652)), 0); - assert_eq!(call!(and_ui32(2, 3002788344)), 0); - assert_eq!(call!(and_ui32(2, 3482297128)), 0); - assert_eq!(call!(and_ui32(3, 0)), 0); - assert_eq!(call!(and_ui32(3, 4)), 0); - assert_eq!(call!(and_ui32(3, 2119154652)), 0); - assert_eq!(call!(and_ui32(3, 3002788344)), 0); - assert_eq!(call!(and_ui32(3, 3482297128)), 0); - assert_eq!(call!(and_ui32(4, 0)), 0); - assert_eq!(call!(and_ui32(4, 1)), 0); - assert_eq!(call!(and_ui32(4, 2)), 0); - assert_eq!(call!(and_ui32(4, 3)), 0); - assert_eq!(call!(and_ui32(4, 3002788344)), 0); - assert_eq!(call!(and_ui32(4, 3482297128)), 0); - assert_eq!(call!(and_ui32(2119154652, 0)), 0); - assert_eq!(call!(and_ui32(2119154652, 1)), 0); - assert_eq!(call!(and_ui32(2119154652, 2)), 0); - assert_eq!(call!(and_ui32(2119154652, 3)), 0); - assert_eq!(call!(and_ui32(3002788344, 0)), 0); - assert_eq!(call!(and_ui32(3002788344, 1)), 0); - assert_eq!(call!(and_ui32(3002788344, 2)), 0); - assert_eq!(call!(and_ui32(3002788344, 3)), 0); - assert_eq!(call!(and_ui32(3002788344, 4)), 0); - assert_eq!(call!(and_ui32(3482297128, 0)), 0); - assert_eq!(call!(and_ui32(3482297128, 1)), 0); - assert_eq!(call!(and_ui32(3482297128, 2)), 0); - assert_eq!(call!(and_ui32(3482297128, 3)), 0); - assert_eq!(call!(and_ui32(3482297128, 4)), 0); - assert_eq!(call!(and_ui32(4294967294, 0)), 0); - assert_eq!(call!(and_ui32(4294967294, 1)), 0); - assert_eq!(call!(and_ui32(4294967295, 0)), 0); - assert_eq!(call!(and_ui32(1, 1)), 1); - assert_eq!(call!(and_ui32(1, 3)), 1); - assert_eq!(call!(and_ui32(1, 4294967295)), 1); - assert_eq!(call!(and_ui32(3, 1)), 1); - assert_eq!(call!(and_ui32(4294967295, 1)), 1); - assert_eq!(call!(and_ui32(2, 2)), 2); - assert_eq!(call!(and_ui32(2, 3)), 2); - assert_eq!(call!(and_ui32(2, 4294967294)), 2); - assert_eq!(call!(and_ui32(2, 4294967295)), 2); - assert_eq!(call!(and_ui32(3, 2)), 2); - assert_eq!(call!(and_ui32(3, 4294967294)), 2); - assert_eq!(call!(and_ui32(4294967294, 2)), 2); - assert_eq!(call!(and_ui32(4294967294, 3)), 2); - assert_eq!(call!(and_ui32(4294967295, 2)), 2); - assert_eq!(call!(and_ui32(3, 3)), 3); - assert_eq!(call!(and_ui32(3, 4294967295)), 3); - assert_eq!(call!(and_ui32(4294967295, 3)), 3); - assert_eq!(call!(and_ui32(4, 4)), 4); - assert_eq!(call!(and_ui32(4, 2119154652)), 4); - assert_eq!(call!(and_ui32(4, 4294967294)), 4); - assert_eq!(call!(and_ui32(4, 4294967295)), 4); - assert_eq!(call!(and_ui32(2119154652, 4)), 4); - assert_eq!(call!(and_ui32(4294967294, 4)), 4); - assert_eq!(call!(and_ui32(4294967295, 4)), 4); - assert_eq!(call!(and_ui32(2119154652, 3002788344)), 843753944); - assert_eq!(call!(and_ui32(3002788344, 2119154652)), 843753944); - assert_eq!(call!(and_ui32(2119154652, 3482297128)), 1309647624); - assert_eq!(call!(and_ui32(3482297128, 2119154652)), 1309647624); - assert_eq!(call!(and_ui32(2119154652, 2119154652)), 2119154652); - assert_eq!(call!(and_ui32(2119154652, 4294967294)), 2119154652); - assert_eq!(call!(and_ui32(2119154652, 4294967295)), 2119154652); - assert_eq!(call!(and_ui32(4294967294, 2119154652)), 2119154652); - assert_eq!(call!(and_ui32(4294967295, 2119154652)), 2119154652); - assert_eq!(call!(and_ui32(3002788344, 3482297128)), 2190123304); - assert_eq!(call!(and_ui32(3482297128, 3002788344)), 2190123304); - assert_eq!(call!(and_ui32(3002788344, 3002788344)), 3002788344); - assert_eq!(call!(and_ui32(3002788344, 4294967294)), 3002788344); - assert_eq!(call!(and_ui32(3002788344, 4294967295)), 3002788344); - assert_eq!(call!(and_ui32(4294967294, 3002788344)), 3002788344); - assert_eq!(call!(and_ui32(4294967295, 3002788344)), 3002788344); - assert_eq!(call!(and_ui32(3482297128, 3482297128)), 3482297128); - assert_eq!(call!(and_ui32(3482297128, 4294967294)), 3482297128); - assert_eq!(call!(and_ui32(3482297128, 4294967295)), 3482297128); - assert_eq!(call!(and_ui32(4294967294, 3482297128)), 3482297128); - assert_eq!(call!(and_ui32(4294967295, 3482297128)), 3482297128); - assert_eq!(call!(and_ui32(4294967294, 4294967294)), 4294967294); - assert_eq!(call!(and_ui32(4294967294, 4294967295)), 4294967294); - assert_eq!(call!(and_ui32(4294967295, 4294967294)), 4294967294); - assert_eq!(call!(and_ui32(4294967295, 4294967295)), 4294967295); - assert_eq!(call!(and_ui64(0, 0)), 0); - assert_eq!(call!(and_ui64(0, 1)), 0); - assert_eq!(call!(and_ui64(0, 2)), 0); - assert_eq!(call!(and_ui64(0, 3)), 0); - assert_eq!(call!(and_ui64(0, 4)), 0); - assert_eq!(call!(and_ui64(0, 191084152064409600)), 0); - assert_eq!(call!(and_ui64(0, 11015955194427482112)), 0); - assert_eq!(call!(and_ui64(0, 16990600415051759616)), 0); - assert_eq!(call!(and_ui64(0, 18446744073709551614)), 0); - assert_eq!(call!(and_ui64(0, 18446744073709551615)), 0); - assert_eq!(call!(and_ui64(1, 0)), 0); - assert_eq!(call!(and_ui64(1, 2)), 0); - assert_eq!(call!(and_ui64(1, 4)), 0); - assert_eq!(call!(and_ui64(1, 191084152064409600)), 0); - assert_eq!(call!(and_ui64(1, 11015955194427482112)), 0); - assert_eq!(call!(and_ui64(1, 16990600415051759616)), 0); - assert_eq!(call!(and_ui64(1, 18446744073709551614)), 0); - assert_eq!(call!(and_ui64(2, 0)), 0); - assert_eq!(call!(and_ui64(2, 1)), 0); - assert_eq!(call!(and_ui64(2, 4)), 0); - assert_eq!(call!(and_ui64(2, 191084152064409600)), 0); - assert_eq!(call!(and_ui64(2, 11015955194427482112)), 0); - assert_eq!(call!(and_ui64(2, 16990600415051759616)), 0); - assert_eq!(call!(and_ui64(3, 0)), 0); - assert_eq!(call!(and_ui64(3, 4)), 0); - assert_eq!(call!(and_ui64(3, 191084152064409600)), 0); - assert_eq!(call!(and_ui64(3, 11015955194427482112)), 0); - assert_eq!(call!(and_ui64(3, 16990600415051759616)), 0); - assert_eq!(call!(and_ui64(4, 0)), 0); - assert_eq!(call!(and_ui64(4, 1)), 0); - assert_eq!(call!(and_ui64(4, 2)), 0); - assert_eq!(call!(and_ui64(4, 3)), 0); - assert_eq!(call!(and_ui64(4, 191084152064409600)), 0); - assert_eq!(call!(and_ui64(4, 11015955194427482112)), 0); - assert_eq!(call!(and_ui64(4, 16990600415051759616)), 0); - assert_eq!(call!(and_ui64(191084152064409600, 0)), 0); - assert_eq!(call!(and_ui64(191084152064409600, 1)), 0); - assert_eq!(call!(and_ui64(191084152064409600, 2)), 0); - assert_eq!(call!(and_ui64(191084152064409600, 3)), 0); - assert_eq!(call!(and_ui64(191084152064409600, 4)), 0); - assert_eq!(call!(and_ui64(11015955194427482112, 0)), 0); - assert_eq!(call!(and_ui64(11015955194427482112, 1)), 0); - assert_eq!(call!(and_ui64(11015955194427482112, 2)), 0); - assert_eq!(call!(and_ui64(11015955194427482112, 3)), 0); - assert_eq!(call!(and_ui64(11015955194427482112, 4)), 0); - assert_eq!(call!(and_ui64(16990600415051759616, 0)), 0); - assert_eq!(call!(and_ui64(16990600415051759616, 1)), 0); - assert_eq!(call!(and_ui64(16990600415051759616, 2)), 0); - assert_eq!(call!(and_ui64(16990600415051759616, 3)), 0); - assert_eq!(call!(and_ui64(16990600415051759616, 4)), 0); - assert_eq!(call!(and_ui64(18446744073709551614, 0)), 0); - assert_eq!(call!(and_ui64(18446744073709551614, 1)), 0); - assert_eq!(call!(and_ui64(18446744073709551615, 0)), 0); - assert_eq!(call!(and_ui64(1, 1)), 1); - assert_eq!(call!(and_ui64(1, 3)), 1); - assert_eq!(call!(and_ui64(1, 18446744073709551615)), 1); - assert_eq!(call!(and_ui64(3, 1)), 1); - assert_eq!(call!(and_ui64(18446744073709551615, 1)), 1); - assert_eq!(call!(and_ui64(2, 2)), 2); - assert_eq!(call!(and_ui64(2, 3)), 2); - assert_eq!(call!(and_ui64(2, 18446744073709551614)), 2); - assert_eq!(call!(and_ui64(2, 18446744073709551615)), 2); - assert_eq!(call!(and_ui64(3, 2)), 2); - assert_eq!(call!(and_ui64(3, 18446744073709551614)), 2); - assert_eq!(call!(and_ui64(18446744073709551614, 2)), 2); - assert_eq!(call!(and_ui64(18446744073709551614, 3)), 2); - assert_eq!(call!(and_ui64(18446744073709551615, 2)), 2); - assert_eq!(call!(and_ui64(3, 3)), 3); - assert_eq!(call!(and_ui64(3, 18446744073709551615)), 3); - assert_eq!(call!(and_ui64(18446744073709551615, 3)), 3); - assert_eq!(call!(and_ui64(4, 4)), 4); - assert_eq!(call!(and_ui64(4, 18446744073709551614)), 4); - assert_eq!(call!(and_ui64(4, 18446744073709551615)), 4); - assert_eq!(call!(and_ui64(18446744073709551614, 4)), 4); - assert_eq!(call!(and_ui64(18446744073709551615, 4)), 4); - assert_eq!(call!(and_ui64(191084152064409600, 11015955194427482112)), 45185538445017088); - assert_eq!(call!(and_ui64(11015955194427482112, 191084152064409600)), 45185538445017088); - assert_eq!(call!(and_ui64(191084152064409600, 16990600415051759616)), 180878484934066176); - assert_eq!(call!(and_ui64(16990600415051759616, 191084152064409600)), 180878484934066176); - assert_eq!(call!(and_ui64(191084152064409600, 191084152064409600)), 191084152064409600); - assert_eq!(call!(and_ui64(191084152064409600, 18446744073709551614)), 191084152064409600); - assert_eq!(call!(and_ui64(191084152064409600, 18446744073709551615)), 191084152064409600); - assert_eq!(call!(and_ui64(18446744073709551614, 191084152064409600)), 191084152064409600); - assert_eq!(call!(and_ui64(18446744073709551615, 191084152064409600)), 191084152064409600); - assert_eq!(call!(and_ui64(11015955194427482112, 16990600415051759616)), 9854025527415799808); - assert_eq!(call!(and_ui64(16990600415051759616, 11015955194427482112)), 9854025527415799808); - assert_eq!(call!(and_ui64(11015955194427482112, 11015955194427482112)), 11015955194427482112); - assert_eq!(call!(and_ui64(11015955194427482112, 18446744073709551614)), 11015955194427482112); - assert_eq!(call!(and_ui64(11015955194427482112, 18446744073709551615)), 11015955194427482112); - assert_eq!(call!(and_ui64(18446744073709551614, 11015955194427482112)), 11015955194427482112); - assert_eq!(call!(and_ui64(18446744073709551615, 11015955194427482112)), 11015955194427482112); - assert_eq!(call!(and_ui64(16990600415051759616, 16990600415051759616)), 16990600415051759616); - assert_eq!(call!(and_ui64(16990600415051759616, 18446744073709551614)), 16990600415051759616); - assert_eq!(call!(and_ui64(16990600415051759616, 18446744073709551615)), 16990600415051759616); - assert_eq!(call!(and_ui64(18446744073709551614, 16990600415051759616)), 16990600415051759616); - assert_eq!(call!(and_ui64(18446744073709551615, 16990600415051759616)), 16990600415051759616); - assert_eq!(call!(and_ui64(18446744073709551614, 18446744073709551614)), 18446744073709551614); - assert_eq!(call!(and_ui64(18446744073709551614, 18446744073709551615)), 18446744073709551614); - assert_eq!(call!(and_ui64(18446744073709551615, 18446744073709551614)), 18446744073709551614); - assert_eq!(call!(and_ui64(18446744073709551615, 18446744073709551615)), 18446744073709551615); - assert_eq!(call!(and_ui8(0, 0)), 0); - assert_eq!(call!(and_ui8(0, 1)), 0); - assert_eq!(call!(and_ui8(0, 2)), 0); - assert_eq!(call!(and_ui8(0, 3)), 0); - assert_eq!(call!(and_ui8(0, 4)), 0); - assert_eq!(call!(and_ui8(0, 72)), 0); - assert_eq!(call!(and_ui8(0, 100)), 0); - assert_eq!(call!(and_ui8(0, 162)), 0); - assert_eq!(call!(and_ui8(0, 254)), 0); - assert_eq!(call!(and_ui8(0, 255)), 0); - assert_eq!(call!(and_ui8(1, 0)), 0); - assert_eq!(call!(and_ui8(1, 2)), 0); - assert_eq!(call!(and_ui8(1, 4)), 0); - assert_eq!(call!(and_ui8(1, 72)), 0); - assert_eq!(call!(and_ui8(1, 100)), 0); - assert_eq!(call!(and_ui8(1, 162)), 0); - assert_eq!(call!(and_ui8(1, 254)), 0); - assert_eq!(call!(and_ui8(2, 0)), 0); - assert_eq!(call!(and_ui8(2, 1)), 0); - assert_eq!(call!(and_ui8(2, 4)), 0); - assert_eq!(call!(and_ui8(2, 72)), 0); - assert_eq!(call!(and_ui8(2, 100)), 0); - assert_eq!(call!(and_ui8(3, 0)), 0); - assert_eq!(call!(and_ui8(3, 4)), 0); - assert_eq!(call!(and_ui8(3, 72)), 0); - assert_eq!(call!(and_ui8(3, 100)), 0); - assert_eq!(call!(and_ui8(4, 0)), 0); - assert_eq!(call!(and_ui8(4, 1)), 0); - assert_eq!(call!(and_ui8(4, 2)), 0); - assert_eq!(call!(and_ui8(4, 3)), 0); - assert_eq!(call!(and_ui8(4, 72)), 0); - assert_eq!(call!(and_ui8(4, 162)), 0); - assert_eq!(call!(and_ui8(72, 0)), 0); - assert_eq!(call!(and_ui8(72, 1)), 0); - assert_eq!(call!(and_ui8(72, 2)), 0); - assert_eq!(call!(and_ui8(72, 3)), 0); - assert_eq!(call!(and_ui8(72, 4)), 0); - assert_eq!(call!(and_ui8(72, 162)), 0); - assert_eq!(call!(and_ui8(100, 0)), 0); - assert_eq!(call!(and_ui8(100, 1)), 0); - assert_eq!(call!(and_ui8(100, 2)), 0); - assert_eq!(call!(and_ui8(100, 3)), 0); - assert_eq!(call!(and_ui8(162, 0)), 0); - assert_eq!(call!(and_ui8(162, 1)), 0); - assert_eq!(call!(and_ui8(162, 4)), 0); - assert_eq!(call!(and_ui8(162, 72)), 0); - assert_eq!(call!(and_ui8(254, 0)), 0); - assert_eq!(call!(and_ui8(254, 1)), 0); - assert_eq!(call!(and_ui8(255, 0)), 0); - assert_eq!(call!(and_ui8(1, 1)), 1); - assert_eq!(call!(and_ui8(1, 3)), 1); - assert_eq!(call!(and_ui8(1, 255)), 1); - assert_eq!(call!(and_ui8(3, 1)), 1); - assert_eq!(call!(and_ui8(255, 1)), 1); - assert_eq!(call!(and_ui8(2, 2)), 2); - assert_eq!(call!(and_ui8(2, 3)), 2); - assert_eq!(call!(and_ui8(2, 162)), 2); - assert_eq!(call!(and_ui8(2, 254)), 2); - assert_eq!(call!(and_ui8(2, 255)), 2); - assert_eq!(call!(and_ui8(3, 2)), 2); - assert_eq!(call!(and_ui8(3, 162)), 2); - assert_eq!(call!(and_ui8(3, 254)), 2); - assert_eq!(call!(and_ui8(162, 2)), 2); - assert_eq!(call!(and_ui8(162, 3)), 2); - assert_eq!(call!(and_ui8(254, 2)), 2); - assert_eq!(call!(and_ui8(254, 3)), 2); - assert_eq!(call!(and_ui8(255, 2)), 2); - assert_eq!(call!(and_ui8(3, 3)), 3); - assert_eq!(call!(and_ui8(3, 255)), 3); - assert_eq!(call!(and_ui8(255, 3)), 3); - assert_eq!(call!(and_ui8(4, 4)), 4); - assert_eq!(call!(and_ui8(4, 100)), 4); - assert_eq!(call!(and_ui8(4, 254)), 4); - assert_eq!(call!(and_ui8(4, 255)), 4); - assert_eq!(call!(and_ui8(100, 4)), 4); - assert_eq!(call!(and_ui8(254, 4)), 4); - assert_eq!(call!(and_ui8(255, 4)), 4); - assert_eq!(call!(and_ui8(100, 162)), 32); - assert_eq!(call!(and_ui8(162, 100)), 32); - assert_eq!(call!(and_ui8(72, 100)), 64); - assert_eq!(call!(and_ui8(100, 72)), 64); - assert_eq!(call!(and_ui8(72, 72)), 72); - assert_eq!(call!(and_ui8(72, 254)), 72); - assert_eq!(call!(and_ui8(72, 255)), 72); - assert_eq!(call!(and_ui8(254, 72)), 72); - assert_eq!(call!(and_ui8(255, 72)), 72); - assert_eq!(call!(and_ui8(100, 100)), 100); - assert_eq!(call!(and_ui8(100, 254)), 100); - assert_eq!(call!(and_ui8(100, 255)), 100); - assert_eq!(call!(and_ui8(254, 100)), 100); - assert_eq!(call!(and_ui8(255, 100)), 100); - assert_eq!(call!(and_ui8(162, 162)), 162); - assert_eq!(call!(and_ui8(162, 254)), 162); - assert_eq!(call!(and_ui8(162, 255)), 162); - assert_eq!(call!(and_ui8(254, 162)), 162); - assert_eq!(call!(and_ui8(255, 162)), 162); - assert_eq!(call!(and_ui8(254, 254)), 254); - assert_eq!(call!(and_ui8(254, 255)), 254); - assert_eq!(call!(and_ui8(255, 254)), 254); - assert_eq!(call!(and_ui8(255, 255)), 255); - assert_eq!(call!(or_si16(-32768, -32768)), -32768); - assert_eq!(call!(or_si16(-32768, 0)), -32768); - assert_eq!(call!(or_si16(0, -32768)), -32768); - assert_eq!(call!(or_si16(-32768, -32767)), -32767); - assert_eq!(call!(or_si16(-32768, 1)), -32767); - assert_eq!(call!(or_si16(-32767, -32768)), -32767); - assert_eq!(call!(or_si16(-32767, -32767)), -32767); - assert_eq!(call!(or_si16(-32767, 0)), -32767); - assert_eq!(call!(or_si16(-32767, 1)), -32767); - assert_eq!(call!(or_si16(0, -32767)), -32767); - assert_eq!(call!(or_si16(1, -32768)), -32767); - assert_eq!(call!(or_si16(1, -32767)), -32767); - assert_eq!(call!(or_si16(-32768, 2)), -32766); - assert_eq!(call!(or_si16(2, -32768)), -32766); - assert_eq!(call!(or_si16(-32768, 3)), -32765); - assert_eq!(call!(or_si16(-32767, 2)), -32765); - assert_eq!(call!(or_si16(-32767, 3)), -32765); - assert_eq!(call!(or_si16(2, -32767)), -32765); - assert_eq!(call!(or_si16(3, -32768)), -32765); - assert_eq!(call!(or_si16(3, -32767)), -32765); - assert_eq!(call!(or_si16(-32768, 4)), -32764); - assert_eq!(call!(or_si16(4, -32768)), -32764); - assert_eq!(call!(or_si16(-32767, 4)), -32763); - assert_eq!(call!(or_si16(4, -32767)), -32763); - assert_eq!(call!(or_si16(-32768, -32547)), -32547); - assert_eq!(call!(or_si16(-32767, -32547)), -32547); - assert_eq!(call!(or_si16(-32547, -32768)), -32547); - assert_eq!(call!(or_si16(-32547, -32767)), -32547); - assert_eq!(call!(or_si16(-32547, -32547)), -32547); - assert_eq!(call!(or_si16(-32547, 0)), -32547); - assert_eq!(call!(or_si16(-32547, 1)), -32547); - assert_eq!(call!(or_si16(-32547, 4)), -32547); - assert_eq!(call!(or_si16(0, -32547)), -32547); - assert_eq!(call!(or_si16(1, -32547)), -32547); - assert_eq!(call!(or_si16(4, -32547)), -32547); - assert_eq!(call!(or_si16(-32547, 2)), -32545); - assert_eq!(call!(or_si16(-32547, 3)), -32545); - assert_eq!(call!(or_si16(2, -32547)), -32545); - assert_eq!(call!(or_si16(3, -32547)), -32545); - assert_eq!(call!(or_si16(-32768, 10486)), -22282); - assert_eq!(call!(or_si16(10486, -32768)), -22282); - assert_eq!(call!(or_si16(-32767, 10486)), -22281); - assert_eq!(call!(or_si16(10486, -32767)), -22281); - assert_eq!(call!(or_si16(-32547, 10486)), -22273); - assert_eq!(call!(or_si16(10486, -32547)), -22273); - assert_eq!(call!(or_si16(-32768, 16514)), -16254); - assert_eq!(call!(or_si16(16514, -32768)), -16254); - assert_eq!(call!(or_si16(-32767, 16514)), -16253); - assert_eq!(call!(or_si16(16514, -32767)), -16253); - assert_eq!(call!(or_si16(-32547, 16514)), -16161); - assert_eq!(call!(or_si16(16514, -32547)), -16161); - assert_eq!(call!(or_si16(-32768, 32766)), -2); - assert_eq!(call!(or_si16(32766, -32768)), -2); - assert_eq!(call!(or_si16(-32768, 32767)), -1); - assert_eq!(call!(or_si16(-32767, 32766)), -1); - assert_eq!(call!(or_si16(-32767, 32767)), -1); - assert_eq!(call!(or_si16(-32547, 32766)), -1); - assert_eq!(call!(or_si16(-32547, 32767)), -1); - assert_eq!(call!(or_si16(32766, -32767)), -1); - assert_eq!(call!(or_si16(32766, -32547)), -1); - assert_eq!(call!(or_si16(32767, -32768)), -1); - assert_eq!(call!(or_si16(32767, -32767)), -1); - assert_eq!(call!(or_si16(32767, -32547)), -1); - assert_eq!(call!(or_si16(0, 0)), 0); - assert_eq!(call!(or_si16(0, 1)), 1); - assert_eq!(call!(or_si16(1, 0)), 1); - assert_eq!(call!(or_si16(1, 1)), 1); - assert_eq!(call!(or_si16(0, 2)), 2); - assert_eq!(call!(or_si16(2, 0)), 2); - assert_eq!(call!(or_si16(2, 2)), 2); - assert_eq!(call!(or_si16(0, 3)), 3); - assert_eq!(call!(or_si16(1, 2)), 3); - assert_eq!(call!(or_si16(1, 3)), 3); - assert_eq!(call!(or_si16(2, 1)), 3); - assert_eq!(call!(or_si16(2, 3)), 3); - assert_eq!(call!(or_si16(3, 0)), 3); - assert_eq!(call!(or_si16(3, 1)), 3); - assert_eq!(call!(or_si16(3, 2)), 3); - assert_eq!(call!(or_si16(3, 3)), 3); - assert_eq!(call!(or_si16(0, 4)), 4); - assert_eq!(call!(or_si16(4, 0)), 4); - assert_eq!(call!(or_si16(4, 4)), 4); - assert_eq!(call!(or_si16(1, 4)), 5); - assert_eq!(call!(or_si16(4, 1)), 5); - assert_eq!(call!(or_si16(2, 4)), 6); - assert_eq!(call!(or_si16(4, 2)), 6); - assert_eq!(call!(or_si16(3, 4)), 7); - assert_eq!(call!(or_si16(4, 3)), 7); - assert_eq!(call!(or_si16(0, 10486)), 10486); - assert_eq!(call!(or_si16(2, 10486)), 10486); - assert_eq!(call!(or_si16(4, 10486)), 10486); - assert_eq!(call!(or_si16(10486, 0)), 10486); - assert_eq!(call!(or_si16(10486, 2)), 10486); - assert_eq!(call!(or_si16(10486, 4)), 10486); - assert_eq!(call!(or_si16(10486, 10486)), 10486); - assert_eq!(call!(or_si16(1, 10486)), 10487); - assert_eq!(call!(or_si16(3, 10486)), 10487); - assert_eq!(call!(or_si16(10486, 1)), 10487); - assert_eq!(call!(or_si16(10486, 3)), 10487); - assert_eq!(call!(or_si16(0, 16514)), 16514); - assert_eq!(call!(or_si16(2, 16514)), 16514); - assert_eq!(call!(or_si16(16514, 0)), 16514); - assert_eq!(call!(or_si16(16514, 2)), 16514); - assert_eq!(call!(or_si16(16514, 16514)), 16514); - assert_eq!(call!(or_si16(1, 16514)), 16515); - assert_eq!(call!(or_si16(3, 16514)), 16515); - assert_eq!(call!(or_si16(16514, 1)), 16515); - assert_eq!(call!(or_si16(16514, 3)), 16515); - assert_eq!(call!(or_si16(4, 16514)), 16518); - assert_eq!(call!(or_si16(16514, 4)), 16518); - assert_eq!(call!(or_si16(10486, 16514)), 26870); - assert_eq!(call!(or_si16(16514, 10486)), 26870); - assert_eq!(call!(or_si16(0, 32766)), 32766); - assert_eq!(call!(or_si16(2, 32766)), 32766); - assert_eq!(call!(or_si16(4, 32766)), 32766); - assert_eq!(call!(or_si16(10486, 32766)), 32766); - assert_eq!(call!(or_si16(16514, 32766)), 32766); - assert_eq!(call!(or_si16(32766, 0)), 32766); - assert_eq!(call!(or_si16(32766, 2)), 32766); - assert_eq!(call!(or_si16(32766, 4)), 32766); - assert_eq!(call!(or_si16(32766, 10486)), 32766); - assert_eq!(call!(or_si16(32766, 16514)), 32766); - assert_eq!(call!(or_si16(32766, 32766)), 32766); - assert_eq!(call!(or_si16(0, 32767)), 32767); - assert_eq!(call!(or_si16(1, 32766)), 32767); - assert_eq!(call!(or_si16(1, 32767)), 32767); - assert_eq!(call!(or_si16(2, 32767)), 32767); - assert_eq!(call!(or_si16(3, 32766)), 32767); - assert_eq!(call!(or_si16(3, 32767)), 32767); - assert_eq!(call!(or_si16(4, 32767)), 32767); - assert_eq!(call!(or_si16(10486, 32767)), 32767); - assert_eq!(call!(or_si16(16514, 32767)), 32767); - assert_eq!(call!(or_si16(32766, 1)), 32767); - assert_eq!(call!(or_si16(32766, 3)), 32767); - assert_eq!(call!(or_si16(32766, 32767)), 32767); - assert_eq!(call!(or_si16(32767, 0)), 32767); - assert_eq!(call!(or_si16(32767, 1)), 32767); - assert_eq!(call!(or_si16(32767, 2)), 32767); - assert_eq!(call!(or_si16(32767, 3)), 32767); - assert_eq!(call!(or_si16(32767, 4)), 32767); - assert_eq!(call!(or_si16(32767, 10486)), 32767); - assert_eq!(call!(or_si16(32767, 16514)), 32767); - assert_eq!(call!(or_si16(32767, 32766)), 32767); - assert_eq!(call!(or_si16(32767, 32767)), 32767); - assert_eq!(call!(or_si32(-2147483648, -2147483648)), -2147483648); - assert_eq!(call!(or_si32(-2147483648, 0)), -2147483648); - assert_eq!(call!(or_si32(0, -2147483648)), -2147483648); - assert_eq!(call!(or_si32(-2147483648, -2147483647)), -2147483647); - assert_eq!(call!(or_si32(-2147483648, 1)), -2147483647); - assert_eq!(call!(or_si32(-2147483647, -2147483648)), -2147483647); - assert_eq!(call!(or_si32(-2147483647, -2147483647)), -2147483647); - assert_eq!(call!(or_si32(-2147483647, 0)), -2147483647); - assert_eq!(call!(or_si32(-2147483647, 1)), -2147483647); - assert_eq!(call!(or_si32(0, -2147483647)), -2147483647); - assert_eq!(call!(or_si32(1, -2147483648)), -2147483647); - assert_eq!(call!(or_si32(1, -2147483647)), -2147483647); - assert_eq!(call!(or_si32(-2147483648, 2)), -2147483646); - assert_eq!(call!(or_si32(2, -2147483648)), -2147483646); - assert_eq!(call!(or_si32(-2147483648, 3)), -2147483645); - assert_eq!(call!(or_si32(-2147483647, 2)), -2147483645); - assert_eq!(call!(or_si32(-2147483647, 3)), -2147483645); - assert_eq!(call!(or_si32(2, -2147483647)), -2147483645); - assert_eq!(call!(or_si32(3, -2147483648)), -2147483645); - assert_eq!(call!(or_si32(3, -2147483647)), -2147483645); - assert_eq!(call!(or_si32(-2147483648, 4)), -2147483644); - assert_eq!(call!(or_si32(4, -2147483648)), -2147483644); - assert_eq!(call!(or_si32(-2147483647, 4)), -2147483643); - assert_eq!(call!(or_si32(4, -2147483647)), -2147483643); - assert_eq!(call!(or_si32(-2147483648, -1713183800)), -1713183800); - assert_eq!(call!(or_si32(-1713183800, -2147483648)), -1713183800); - assert_eq!(call!(or_si32(-1713183800, -1713183800)), -1713183800); - assert_eq!(call!(or_si32(-1713183800, 0)), -1713183800); - assert_eq!(call!(or_si32(0, -1713183800)), -1713183800); - assert_eq!(call!(or_si32(-2147483647, -1713183800)), -1713183799); - assert_eq!(call!(or_si32(-1713183800, -2147483647)), -1713183799); - assert_eq!(call!(or_si32(-1713183800, 1)), -1713183799); - assert_eq!(call!(or_si32(1, -1713183800)), -1713183799); - assert_eq!(call!(or_si32(-1713183800, 2)), -1713183798); - assert_eq!(call!(or_si32(2, -1713183800)), -1713183798); - assert_eq!(call!(or_si32(-1713183800, 3)), -1713183797); - assert_eq!(call!(or_si32(3, -1713183800)), -1713183797); - assert_eq!(call!(or_si32(-1713183800, 4)), -1713183796); - assert_eq!(call!(or_si32(4, -1713183800)), -1713183796); - assert_eq!(call!(or_si32(-2147483648, -1252582164)), -1252582164); - assert_eq!(call!(or_si32(-1252582164, -2147483648)), -1252582164); - assert_eq!(call!(or_si32(-1252582164, -1252582164)), -1252582164); - assert_eq!(call!(or_si32(-1252582164, 0)), -1252582164); - assert_eq!(call!(or_si32(-1252582164, 4)), -1252582164); - assert_eq!(call!(or_si32(0, -1252582164)), -1252582164); - assert_eq!(call!(or_si32(4, -1252582164)), -1252582164); - assert_eq!(call!(or_si32(-2147483647, -1252582164)), -1252582163); - assert_eq!(call!(or_si32(-1252582164, -2147483647)), -1252582163); - assert_eq!(call!(or_si32(-1252582164, 1)), -1252582163); - assert_eq!(call!(or_si32(1, -1252582164)), -1252582163); - assert_eq!(call!(or_si32(-1252582164, 2)), -1252582162); - assert_eq!(call!(or_si32(2, -1252582164)), -1252582162); - assert_eq!(call!(or_si32(-1252582164, 3)), -1252582161); - assert_eq!(call!(or_si32(3, -1252582164)), -1252582161); - assert_eq!(call!(or_si32(-1713183800, -1252582164)), -1107820564); - assert_eq!(call!(or_si32(-1252582164, -1713183800)), -1107820564); - assert_eq!(call!(or_si32(-2147483648, -1035405763)), -1035405763); - assert_eq!(call!(or_si32(-2147483647, -1035405763)), -1035405763); - assert_eq!(call!(or_si32(-1035405763, -2147483648)), -1035405763); - assert_eq!(call!(or_si32(-1035405763, -2147483647)), -1035405763); - assert_eq!(call!(or_si32(-1035405763, -1035405763)), -1035405763); - assert_eq!(call!(or_si32(-1035405763, 0)), -1035405763); - assert_eq!(call!(or_si32(-1035405763, 1)), -1035405763); - assert_eq!(call!(or_si32(-1035405763, 4)), -1035405763); - assert_eq!(call!(or_si32(0, -1035405763)), -1035405763); - assert_eq!(call!(or_si32(1, -1035405763)), -1035405763); - assert_eq!(call!(or_si32(4, -1035405763)), -1035405763); - assert_eq!(call!(or_si32(-1035405763, 2)), -1035405761); - assert_eq!(call!(or_si32(-1035405763, 3)), -1035405761); - assert_eq!(call!(or_si32(2, -1035405763)), -1035405761); - assert_eq!(call!(or_si32(3, -1035405763)), -1035405761); - assert_eq!(call!(or_si32(-1713183800, -1035405763)), -605358083); - assert_eq!(call!(or_si32(-1035405763, -1713183800)), -605358083); - assert_eq!(call!(or_si32(-1252582164, -1035405763)), -144703747); - assert_eq!(call!(or_si32(-1035405763, -1252582164)), -144703747); - assert_eq!(call!(or_si32(-2147483648, 2147483646)), -2); - assert_eq!(call!(or_si32(-1713183800, 2147483646)), -2); - assert_eq!(call!(or_si32(-1252582164, 2147483646)), -2); - assert_eq!(call!(or_si32(2147483646, -2147483648)), -2); - assert_eq!(call!(or_si32(2147483646, -1713183800)), -2); - assert_eq!(call!(or_si32(2147483646, -1252582164)), -2); - assert_eq!(call!(or_si32(-2147483648, 2147483647)), -1); - assert_eq!(call!(or_si32(-2147483647, 2147483646)), -1); - assert_eq!(call!(or_si32(-2147483647, 2147483647)), -1); - assert_eq!(call!(or_si32(-1713183800, 2147483647)), -1); - assert_eq!(call!(or_si32(-1252582164, 2147483647)), -1); - assert_eq!(call!(or_si32(-1035405763, 2147483646)), -1); - assert_eq!(call!(or_si32(-1035405763, 2147483647)), -1); - assert_eq!(call!(or_si32(2147483646, -2147483647)), -1); - assert_eq!(call!(or_si32(2147483646, -1035405763)), -1); - assert_eq!(call!(or_si32(2147483647, -2147483648)), -1); - assert_eq!(call!(or_si32(2147483647, -2147483647)), -1); - assert_eq!(call!(or_si32(2147483647, -1713183800)), -1); - assert_eq!(call!(or_si32(2147483647, -1252582164)), -1); - assert_eq!(call!(or_si32(2147483647, -1035405763)), -1); - assert_eq!(call!(or_si32(0, 0)), 0); - assert_eq!(call!(or_si32(0, 1)), 1); - assert_eq!(call!(or_si32(1, 0)), 1); - assert_eq!(call!(or_si32(1, 1)), 1); - assert_eq!(call!(or_si32(0, 2)), 2); - assert_eq!(call!(or_si32(2, 0)), 2); - assert_eq!(call!(or_si32(2, 2)), 2); - assert_eq!(call!(or_si32(0, 3)), 3); - assert_eq!(call!(or_si32(1, 2)), 3); - assert_eq!(call!(or_si32(1, 3)), 3); - assert_eq!(call!(or_si32(2, 1)), 3); - assert_eq!(call!(or_si32(2, 3)), 3); - assert_eq!(call!(or_si32(3, 0)), 3); - assert_eq!(call!(or_si32(3, 1)), 3); - assert_eq!(call!(or_si32(3, 2)), 3); - assert_eq!(call!(or_si32(3, 3)), 3); - assert_eq!(call!(or_si32(0, 4)), 4); - assert_eq!(call!(or_si32(4, 0)), 4); - assert_eq!(call!(or_si32(4, 4)), 4); - assert_eq!(call!(or_si32(1, 4)), 5); - assert_eq!(call!(or_si32(4, 1)), 5); - assert_eq!(call!(or_si32(2, 4)), 6); - assert_eq!(call!(or_si32(4, 2)), 6); - assert_eq!(call!(or_si32(3, 4)), 7); - assert_eq!(call!(or_si32(4, 3)), 7); - assert_eq!(call!(or_si32(0, 2147483646)), 2147483646); - assert_eq!(call!(or_si32(2, 2147483646)), 2147483646); - assert_eq!(call!(or_si32(4, 2147483646)), 2147483646); - assert_eq!(call!(or_si32(2147483646, 0)), 2147483646); - assert_eq!(call!(or_si32(2147483646, 2)), 2147483646); - assert_eq!(call!(or_si32(2147483646, 4)), 2147483646); - assert_eq!(call!(or_si32(2147483646, 2147483646)), 2147483646); - assert_eq!(call!(or_si32(0, 2147483647)), 2147483647); - assert_eq!(call!(or_si32(1, 2147483646)), 2147483647); - assert_eq!(call!(or_si32(1, 2147483647)), 2147483647); - assert_eq!(call!(or_si32(2, 2147483647)), 2147483647); - assert_eq!(call!(or_si32(3, 2147483646)), 2147483647); - assert_eq!(call!(or_si32(3, 2147483647)), 2147483647); - assert_eq!(call!(or_si32(4, 2147483647)), 2147483647); - assert_eq!(call!(or_si32(2147483646, 1)), 2147483647); - assert_eq!(call!(or_si32(2147483646, 3)), 2147483647); - assert_eq!(call!(or_si32(2147483646, 2147483647)), 2147483647); - assert_eq!(call!(or_si32(2147483647, 0)), 2147483647); - assert_eq!(call!(or_si32(2147483647, 1)), 2147483647); - assert_eq!(call!(or_si32(2147483647, 2)), 2147483647); - assert_eq!(call!(or_si32(2147483647, 3)), 2147483647); - assert_eq!(call!(or_si32(2147483647, 4)), 2147483647); - assert_eq!(call!(or_si32(2147483647, 2147483646)), 2147483647); - assert_eq!(call!(or_si32(2147483647, 2147483647)), 2147483647); - assert_eq!(call!(or_si64(-9223372036854775808, -9223372036854775808)), -9223372036854775808); - assert_eq!(call!(or_si64(-9223372036854775808, 0)), -9223372036854775808); - assert_eq!(call!(or_si64(0, -9223372036854775808)), -9223372036854775808); - assert_eq!(call!(or_si64(-9223372036854775808, -9223372036854775807)), -9223372036854775807); - assert_eq!(call!(or_si64(-9223372036854775808, 1)), -9223372036854775807); - assert_eq!(call!(or_si64(-9223372036854775807, -9223372036854775808)), -9223372036854775807); - assert_eq!(call!(or_si64(-9223372036854775807, -9223372036854775807)), -9223372036854775807); - assert_eq!(call!(or_si64(-9223372036854775807, 0)), -9223372036854775807); - assert_eq!(call!(or_si64(-9223372036854775807, 1)), -9223372036854775807); - assert_eq!(call!(or_si64(0, -9223372036854775807)), -9223372036854775807); - assert_eq!(call!(or_si64(1, -9223372036854775808)), -9223372036854775807); - assert_eq!(call!(or_si64(1, -9223372036854775807)), -9223372036854775807); - assert_eq!(call!(or_si64(-9223372036854775808, 2)), -9223372036854775806); - assert_eq!(call!(or_si64(2, -9223372036854775808)), -9223372036854775806); - assert_eq!(call!(or_si64(-9223372036854775808, 3)), -9223372036854775805); - assert_eq!(call!(or_si64(-9223372036854775807, 2)), -9223372036854775805); - assert_eq!(call!(or_si64(-9223372036854775807, 3)), -9223372036854775805); - assert_eq!(call!(or_si64(2, -9223372036854775807)), -9223372036854775805); - assert_eq!(call!(or_si64(3, -9223372036854775808)), -9223372036854775805); - assert_eq!(call!(or_si64(3, -9223372036854775807)), -9223372036854775805); - assert_eq!(call!(or_si64(-9223372036854775808, 4)), -9223372036854775804); - assert_eq!(call!(or_si64(4, -9223372036854775808)), -9223372036854775804); - assert_eq!(call!(or_si64(-9223372036854775807, 4)), -9223372036854775803); - assert_eq!(call!(or_si64(4, -9223372036854775807)), -9223372036854775803); - assert_eq!(call!(or_si64(-9223372036854775808, 5577148965131116544)), -3646223071723659264); - assert_eq!(call!(or_si64(5577148965131116544, -9223372036854775808)), -3646223071723659264); - assert_eq!(call!(or_si64(-9223372036854775807, 5577148965131116544)), -3646223071723659263); - assert_eq!(call!(or_si64(5577148965131116544, -9223372036854775807)), -3646223071723659263); - assert_eq!(call!(or_si64(-9223372036854775808, -1741927215160008704)), -1741927215160008704); - assert_eq!(call!(or_si64(-1741927215160008704, -9223372036854775808)), -1741927215160008704); - assert_eq!(call!(or_si64(-1741927215160008704, -1741927215160008704)), -1741927215160008704); - assert_eq!(call!(or_si64(-1741927215160008704, 0)), -1741927215160008704); - assert_eq!(call!(or_si64(0, -1741927215160008704)), -1741927215160008704); - assert_eq!(call!(or_si64(-9223372036854775807, -1741927215160008704)), -1741927215160008703); - assert_eq!(call!(or_si64(-1741927215160008704, -9223372036854775807)), -1741927215160008703); - assert_eq!(call!(or_si64(-1741927215160008704, 1)), -1741927215160008703); - assert_eq!(call!(or_si64(1, -1741927215160008704)), -1741927215160008703); - assert_eq!(call!(or_si64(-1741927215160008704, 2)), -1741927215160008702); - assert_eq!(call!(or_si64(2, -1741927215160008704)), -1741927215160008702); - assert_eq!(call!(or_si64(-1741927215160008704, 3)), -1741927215160008701); - assert_eq!(call!(or_si64(3, -1741927215160008704)), -1741927215160008701); - assert_eq!(call!(or_si64(-1741927215160008704, 4)), -1741927215160008700); - assert_eq!(call!(or_si64(4, -1741927215160008704)), -1741927215160008700); - assert_eq!(call!(or_si64(-9223372036854775808, -1328271339354574848)), -1328271339354574848); - assert_eq!(call!(or_si64(-1328271339354574848, -9223372036854775808)), -1328271339354574848); - assert_eq!(call!(or_si64(-1328271339354574848, -1328271339354574848)), -1328271339354574848); - assert_eq!(call!(or_si64(-1328271339354574848, 0)), -1328271339354574848); - assert_eq!(call!(or_si64(0, -1328271339354574848)), -1328271339354574848); - assert_eq!(call!(or_si64(-9223372036854775807, -1328271339354574848)), -1328271339354574847); - assert_eq!(call!(or_si64(-1328271339354574848, -9223372036854775807)), -1328271339354574847); - assert_eq!(call!(or_si64(-1328271339354574848, 1)), -1328271339354574847); - assert_eq!(call!(or_si64(1, -1328271339354574848)), -1328271339354574847); - assert_eq!(call!(or_si64(-1328271339354574848, 2)), -1328271339354574846); - assert_eq!(call!(or_si64(2, -1328271339354574848)), -1328271339354574846); - assert_eq!(call!(or_si64(-1328271339354574848, 3)), -1328271339354574845); - assert_eq!(call!(or_si64(3, -1328271339354574848)), -1328271339354574845); - assert_eq!(call!(or_si64(-1328271339354574848, 4)), -1328271339354574844); - assert_eq!(call!(or_si64(4, -1328271339354574848)), -1328271339354574844); - assert_eq!(call!(or_si64(-1328271339354574848, 5577148965131116544)), -1299557394519166976); - assert_eq!(call!(or_si64(5577148965131116544, -1328271339354574848)), -1299557394519166976); - assert_eq!(call!(or_si64(-1741927215160008704, -1328271339354574848)), -1165466462517891072); - assert_eq!(call!(or_si64(-1328271339354574848, -1741927215160008704)), -1165466462517891072); - assert_eq!(call!(or_si64(-1741927215160008704, 5577148965131116544)), -1155332255525117952); - assert_eq!(call!(or_si64(5577148965131116544, -1741927215160008704)), -1155332255525117952); - assert_eq!(call!(or_si64(-9223372036854775808, 9223372036854775806)), -2); - assert_eq!(call!(or_si64(-1741927215160008704, 9223372036854775806)), -2); - assert_eq!(call!(or_si64(-1328271339354574848, 9223372036854775806)), -2); - assert_eq!(call!(or_si64(9223372036854775806, -9223372036854775808)), -2); - assert_eq!(call!(or_si64(9223372036854775806, -1741927215160008704)), -2); - assert_eq!(call!(or_si64(9223372036854775806, -1328271339354574848)), -2); - assert_eq!(call!(or_si64(-9223372036854775808, 9223372036854775807)), -1); - assert_eq!(call!(or_si64(-9223372036854775807, 9223372036854775806)), -1); - assert_eq!(call!(or_si64(-9223372036854775807, 9223372036854775807)), -1); - assert_eq!(call!(or_si64(-1741927215160008704, 9223372036854775807)), -1); - assert_eq!(call!(or_si64(-1328271339354574848, 9223372036854775807)), -1); - assert_eq!(call!(or_si64(9223372036854775806, -9223372036854775807)), -1); - assert_eq!(call!(or_si64(9223372036854775807, -9223372036854775808)), -1); - assert_eq!(call!(or_si64(9223372036854775807, -9223372036854775807)), -1); - assert_eq!(call!(or_si64(9223372036854775807, -1741927215160008704)), -1); - assert_eq!(call!(or_si64(9223372036854775807, -1328271339354574848)), -1); - assert_eq!(call!(or_si64(0, 0)), 0); - assert_eq!(call!(or_si64(0, 1)), 1); - assert_eq!(call!(or_si64(1, 0)), 1); - assert_eq!(call!(or_si64(1, 1)), 1); - assert_eq!(call!(or_si64(0, 2)), 2); - assert_eq!(call!(or_si64(2, 0)), 2); - assert_eq!(call!(or_si64(2, 2)), 2); - assert_eq!(call!(or_si64(0, 3)), 3); - assert_eq!(call!(or_si64(1, 2)), 3); - assert_eq!(call!(or_si64(1, 3)), 3); - assert_eq!(call!(or_si64(2, 1)), 3); - assert_eq!(call!(or_si64(2, 3)), 3); - assert_eq!(call!(or_si64(3, 0)), 3); - assert_eq!(call!(or_si64(3, 1)), 3); - assert_eq!(call!(or_si64(3, 2)), 3); - assert_eq!(call!(or_si64(3, 3)), 3); - assert_eq!(call!(or_si64(0, 4)), 4); - assert_eq!(call!(or_si64(4, 0)), 4); - assert_eq!(call!(or_si64(4, 4)), 4); - assert_eq!(call!(or_si64(1, 4)), 5); - assert_eq!(call!(or_si64(4, 1)), 5); - assert_eq!(call!(or_si64(2, 4)), 6); - assert_eq!(call!(or_si64(4, 2)), 6); - assert_eq!(call!(or_si64(3, 4)), 7); - assert_eq!(call!(or_si64(4, 3)), 7); - assert_eq!(call!(or_si64(0, 5577148965131116544)), 5577148965131116544); - assert_eq!(call!(or_si64(5577148965131116544, 0)), 5577148965131116544); - assert_eq!(call!(or_si64(5577148965131116544, 5577148965131116544)), 5577148965131116544); - assert_eq!(call!(or_si64(1, 5577148965131116544)), 5577148965131116545); - assert_eq!(call!(or_si64(5577148965131116544, 1)), 5577148965131116545); - assert_eq!(call!(or_si64(2, 5577148965131116544)), 5577148965131116546); - assert_eq!(call!(or_si64(5577148965131116544, 2)), 5577148965131116546); - assert_eq!(call!(or_si64(3, 5577148965131116544)), 5577148965131116547); - assert_eq!(call!(or_si64(5577148965131116544, 3)), 5577148965131116547); - assert_eq!(call!(or_si64(4, 5577148965131116544)), 5577148965131116548); - assert_eq!(call!(or_si64(5577148965131116544, 4)), 5577148965131116548); - assert_eq!(call!(or_si64(0, 9223372036854775806)), 9223372036854775806); - assert_eq!(call!(or_si64(2, 9223372036854775806)), 9223372036854775806); - assert_eq!(call!(or_si64(4, 9223372036854775806)), 9223372036854775806); - assert_eq!(call!(or_si64(5577148965131116544, 9223372036854775806)), 9223372036854775806); - assert_eq!(call!(or_si64(9223372036854775806, 0)), 9223372036854775806); - assert_eq!(call!(or_si64(9223372036854775806, 2)), 9223372036854775806); - assert_eq!(call!(or_si64(9223372036854775806, 4)), 9223372036854775806); - assert_eq!(call!(or_si64(9223372036854775806, 5577148965131116544)), 9223372036854775806); - assert_eq!(call!(or_si64(9223372036854775806, 9223372036854775806)), 9223372036854775806); - assert_eq!(call!(or_si64(0, 9223372036854775807)), 9223372036854775807); - assert_eq!(call!(or_si64(1, 9223372036854775806)), 9223372036854775807); - assert_eq!(call!(or_si64(1, 9223372036854775807)), 9223372036854775807); - assert_eq!(call!(or_si64(2, 9223372036854775807)), 9223372036854775807); - assert_eq!(call!(or_si64(3, 9223372036854775806)), 9223372036854775807); - assert_eq!(call!(or_si64(3, 9223372036854775807)), 9223372036854775807); - assert_eq!(call!(or_si64(4, 9223372036854775807)), 9223372036854775807); - assert_eq!(call!(or_si64(5577148965131116544, 9223372036854775807)), 9223372036854775807); - assert_eq!(call!(or_si64(9223372036854775806, 1)), 9223372036854775807); - assert_eq!(call!(or_si64(9223372036854775806, 3)), 9223372036854775807); - assert_eq!(call!(or_si64(9223372036854775806, 9223372036854775807)), 9223372036854775807); - assert_eq!(call!(or_si64(9223372036854775807, 0)), 9223372036854775807); - assert_eq!(call!(or_si64(9223372036854775807, 1)), 9223372036854775807); - assert_eq!(call!(or_si64(9223372036854775807, 2)), 9223372036854775807); - assert_eq!(call!(or_si64(9223372036854775807, 3)), 9223372036854775807); - assert_eq!(call!(or_si64(9223372036854775807, 4)), 9223372036854775807); - assert_eq!(call!(or_si64(9223372036854775807, 5577148965131116544)), 9223372036854775807); - assert_eq!(call!(or_si64(9223372036854775807, 9223372036854775806)), 9223372036854775807); - assert_eq!(call!(or_si64(9223372036854775807, 9223372036854775807)), 9223372036854775807); - assert_eq!(call!(or_si8(-128, -128)), -128); - assert_eq!(call!(or_si8(-128, 0)), -128); - assert_eq!(call!(or_si8(0, -128)), -128); - assert_eq!(call!(or_si8(-128, -127)), -127); - assert_eq!(call!(or_si8(-128, 1)), -127); - assert_eq!(call!(or_si8(-127, -128)), -127); - assert_eq!(call!(or_si8(-127, -127)), -127); - assert_eq!(call!(or_si8(-127, 0)), -127); - assert_eq!(call!(or_si8(-127, 1)), -127); - assert_eq!(call!(or_si8(0, -127)), -127); - assert_eq!(call!(or_si8(1, -128)), -127); - assert_eq!(call!(or_si8(1, -127)), -127); - assert_eq!(call!(or_si8(-128, 2)), -126); - assert_eq!(call!(or_si8(2, -128)), -126); - assert_eq!(call!(or_si8(-128, 3)), -125); - assert_eq!(call!(or_si8(-127, 2)), -125); - assert_eq!(call!(or_si8(-127, 3)), -125); - assert_eq!(call!(or_si8(2, -127)), -125); - assert_eq!(call!(or_si8(3, -128)), -125); - assert_eq!(call!(or_si8(3, -127)), -125); - assert_eq!(call!(or_si8(-128, 4)), -124); - assert_eq!(call!(or_si8(4, -128)), -124); - assert_eq!(call!(or_si8(-127, 4)), -123); - assert_eq!(call!(or_si8(4, -127)), -123); - assert_eq!(call!(or_si8(-128, 16)), -112); - assert_eq!(call!(or_si8(16, -128)), -112); - assert_eq!(call!(or_si8(-127, 16)), -111); - assert_eq!(call!(or_si8(16, -127)), -111); - assert_eq!(call!(or_si8(-128, 126)), -2); - assert_eq!(call!(or_si8(126, -128)), -2); - assert_eq!(call!(or_si8(-128, 127)), -1); - assert_eq!(call!(or_si8(-127, 126)), -1); - assert_eq!(call!(or_si8(-127, 127)), -1); - assert_eq!(call!(or_si8(126, -127)), -1); - assert_eq!(call!(or_si8(127, -128)), -1); - assert_eq!(call!(or_si8(127, -127)), -1); - assert_eq!(call!(or_si8(0, 0)), 0); - assert_eq!(call!(or_si8(0, 1)), 1); - assert_eq!(call!(or_si8(1, 0)), 1); - assert_eq!(call!(or_si8(1, 1)), 1); - assert_eq!(call!(or_si8(0, 2)), 2); - assert_eq!(call!(or_si8(2, 0)), 2); - assert_eq!(call!(or_si8(2, 2)), 2); - assert_eq!(call!(or_si8(0, 3)), 3); - assert_eq!(call!(or_si8(1, 2)), 3); - assert_eq!(call!(or_si8(1, 3)), 3); - assert_eq!(call!(or_si8(2, 1)), 3); - assert_eq!(call!(or_si8(2, 3)), 3); - assert_eq!(call!(or_si8(3, 0)), 3); - assert_eq!(call!(or_si8(3, 1)), 3); - assert_eq!(call!(or_si8(3, 2)), 3); - assert_eq!(call!(or_si8(3, 3)), 3); - assert_eq!(call!(or_si8(0, 4)), 4); - assert_eq!(call!(or_si8(4, 0)), 4); - assert_eq!(call!(or_si8(4, 4)), 4); - assert_eq!(call!(or_si8(1, 4)), 5); - assert_eq!(call!(or_si8(4, 1)), 5); - assert_eq!(call!(or_si8(2, 4)), 6); - assert_eq!(call!(or_si8(4, 2)), 6); - assert_eq!(call!(or_si8(3, 4)), 7); - assert_eq!(call!(or_si8(4, 3)), 7); - assert_eq!(call!(or_si8(0, 16)), 16); - assert_eq!(call!(or_si8(16, 0)), 16); - assert_eq!(call!(or_si8(16, 16)), 16); - assert_eq!(call!(or_si8(1, 16)), 17); - assert_eq!(call!(or_si8(16, 1)), 17); - assert_eq!(call!(or_si8(2, 16)), 18); - assert_eq!(call!(or_si8(16, 2)), 18); - assert_eq!(call!(or_si8(3, 16)), 19); - assert_eq!(call!(or_si8(16, 3)), 19); - assert_eq!(call!(or_si8(4, 16)), 20); - assert_eq!(call!(or_si8(16, 4)), 20); - assert_eq!(call!(or_si8(0, 126)), 126); - assert_eq!(call!(or_si8(2, 126)), 126); - assert_eq!(call!(or_si8(4, 126)), 126); - assert_eq!(call!(or_si8(16, 126)), 126); - assert_eq!(call!(or_si8(126, 0)), 126); - assert_eq!(call!(or_si8(126, 2)), 126); - assert_eq!(call!(or_si8(126, 4)), 126); - assert_eq!(call!(or_si8(126, 16)), 126); - assert_eq!(call!(or_si8(126, 126)), 126); - assert_eq!(call!(or_si8(0, 127)), 127); - assert_eq!(call!(or_si8(1, 126)), 127); - assert_eq!(call!(or_si8(1, 127)), 127); - assert_eq!(call!(or_si8(2, 127)), 127); - assert_eq!(call!(or_si8(3, 126)), 127); - assert_eq!(call!(or_si8(3, 127)), 127); - assert_eq!(call!(or_si8(4, 127)), 127); - assert_eq!(call!(or_si8(16, 127)), 127); - assert_eq!(call!(or_si8(126, 1)), 127); - assert_eq!(call!(or_si8(126, 3)), 127); - assert_eq!(call!(or_si8(126, 127)), 127); - assert_eq!(call!(or_si8(127, 0)), 127); - assert_eq!(call!(or_si8(127, 1)), 127); - assert_eq!(call!(or_si8(127, 2)), 127); - assert_eq!(call!(or_si8(127, 3)), 127); - assert_eq!(call!(or_si8(127, 4)), 127); - assert_eq!(call!(or_si8(127, 16)), 127); - assert_eq!(call!(or_si8(127, 126)), 127); - assert_eq!(call!(or_si8(127, 127)), 127); - assert_eq!(call!(or_ui16(0, 0)), 0); - assert_eq!(call!(or_ui16(0, 1)), 1); - assert_eq!(call!(or_ui16(1, 0)), 1); - assert_eq!(call!(or_ui16(1, 1)), 1); - assert_eq!(call!(or_ui16(0, 2)), 2); - assert_eq!(call!(or_ui16(2, 0)), 2); - assert_eq!(call!(or_ui16(2, 2)), 2); - assert_eq!(call!(or_ui16(0, 3)), 3); - assert_eq!(call!(or_ui16(1, 2)), 3); - assert_eq!(call!(or_ui16(1, 3)), 3); - assert_eq!(call!(or_ui16(2, 1)), 3); - assert_eq!(call!(or_ui16(2, 3)), 3); - assert_eq!(call!(or_ui16(3, 0)), 3); - assert_eq!(call!(or_ui16(3, 1)), 3); - assert_eq!(call!(or_ui16(3, 2)), 3); - assert_eq!(call!(or_ui16(3, 3)), 3); - assert_eq!(call!(or_ui16(0, 4)), 4); - assert_eq!(call!(or_ui16(4, 0)), 4); - assert_eq!(call!(or_ui16(4, 4)), 4); - assert_eq!(call!(or_ui16(1, 4)), 5); - assert_eq!(call!(or_ui16(4, 1)), 5); - assert_eq!(call!(or_ui16(2, 4)), 6); - assert_eq!(call!(or_ui16(4, 2)), 6); - assert_eq!(call!(or_ui16(3, 4)), 7); - assert_eq!(call!(or_ui16(4, 3)), 7); - assert_eq!(call!(or_ui16(0, 1717)), 1717); - assert_eq!(call!(or_ui16(1, 1717)), 1717); - assert_eq!(call!(or_ui16(4, 1717)), 1717); - assert_eq!(call!(or_ui16(1717, 0)), 1717); - assert_eq!(call!(or_ui16(1717, 1)), 1717); - assert_eq!(call!(or_ui16(1717, 4)), 1717); - assert_eq!(call!(or_ui16(1717, 1717)), 1717); - assert_eq!(call!(or_ui16(2, 1717)), 1719); - assert_eq!(call!(or_ui16(3, 1717)), 1719); - assert_eq!(call!(or_ui16(1717, 2)), 1719); - assert_eq!(call!(or_ui16(1717, 3)), 1719); - assert_eq!(call!(or_ui16(0, 17988)), 17988); - assert_eq!(call!(or_ui16(4, 17988)), 17988); - assert_eq!(call!(or_ui16(17988, 0)), 17988); - assert_eq!(call!(or_ui16(17988, 4)), 17988); - assert_eq!(call!(or_ui16(17988, 17988)), 17988); - assert_eq!(call!(or_ui16(1, 17988)), 17989); - assert_eq!(call!(or_ui16(17988, 1)), 17989); - assert_eq!(call!(or_ui16(2, 17988)), 17990); - assert_eq!(call!(or_ui16(17988, 2)), 17990); - assert_eq!(call!(or_ui16(3, 17988)), 17991); - assert_eq!(call!(or_ui16(17988, 3)), 17991); - assert_eq!(call!(or_ui16(1717, 17988)), 18165); - assert_eq!(call!(or_ui16(17988, 1717)), 18165); - assert_eq!(call!(or_ui16(0, 65096)), 65096); - assert_eq!(call!(or_ui16(65096, 0)), 65096); - assert_eq!(call!(or_ui16(65096, 65096)), 65096); - assert_eq!(call!(or_ui16(1, 65096)), 65097); - assert_eq!(call!(or_ui16(65096, 1)), 65097); - assert_eq!(call!(or_ui16(2, 65096)), 65098); - assert_eq!(call!(or_ui16(65096, 2)), 65098); - assert_eq!(call!(or_ui16(3, 65096)), 65099); - assert_eq!(call!(or_ui16(65096, 3)), 65099); - assert_eq!(call!(or_ui16(4, 65096)), 65100); - assert_eq!(call!(or_ui16(17988, 65096)), 65100); - assert_eq!(call!(or_ui16(65096, 4)), 65100); - assert_eq!(call!(or_ui16(65096, 17988)), 65100); - assert_eq!(call!(or_ui16(1717, 65096)), 65277); - assert_eq!(call!(or_ui16(65096, 1717)), 65277); - assert_eq!(call!(or_ui16(0, 65534)), 65534); - assert_eq!(call!(or_ui16(2, 65534)), 65534); - assert_eq!(call!(or_ui16(4, 65534)), 65534); - assert_eq!(call!(or_ui16(17988, 65534)), 65534); - assert_eq!(call!(or_ui16(65096, 65534)), 65534); - assert_eq!(call!(or_ui16(65534, 0)), 65534); - assert_eq!(call!(or_ui16(65534, 2)), 65534); - assert_eq!(call!(or_ui16(65534, 4)), 65534); - assert_eq!(call!(or_ui16(65534, 17988)), 65534); - assert_eq!(call!(or_ui16(65534, 65096)), 65534); - assert_eq!(call!(or_ui16(65534, 65534)), 65534); - assert_eq!(call!(or_ui16(0, 65535)), 65535); - assert_eq!(call!(or_ui16(1, 65534)), 65535); - assert_eq!(call!(or_ui16(1, 65535)), 65535); - assert_eq!(call!(or_ui16(2, 65535)), 65535); - assert_eq!(call!(or_ui16(3, 65534)), 65535); - assert_eq!(call!(or_ui16(3, 65535)), 65535); - assert_eq!(call!(or_ui16(4, 65535)), 65535); - assert_eq!(call!(or_ui16(1717, 65534)), 65535); - assert_eq!(call!(or_ui16(1717, 65535)), 65535); - assert_eq!(call!(or_ui16(17988, 65535)), 65535); - assert_eq!(call!(or_ui16(65096, 65535)), 65535); - assert_eq!(call!(or_ui16(65534, 1)), 65535); - assert_eq!(call!(or_ui16(65534, 3)), 65535); - assert_eq!(call!(or_ui16(65534, 1717)), 65535); - assert_eq!(call!(or_ui16(65534, 65535)), 65535); - assert_eq!(call!(or_ui16(65535, 0)), 65535); - assert_eq!(call!(or_ui16(65535, 1)), 65535); - assert_eq!(call!(or_ui16(65535, 2)), 65535); - assert_eq!(call!(or_ui16(65535, 3)), 65535); - assert_eq!(call!(or_ui16(65535, 4)), 65535); - assert_eq!(call!(or_ui16(65535, 1717)), 65535); - assert_eq!(call!(or_ui16(65535, 17988)), 65535); - assert_eq!(call!(or_ui16(65535, 65096)), 65535); - assert_eq!(call!(or_ui16(65535, 65534)), 65535); - assert_eq!(call!(or_ui16(65535, 65535)), 65535); - assert_eq!(call!(or_ui32(0, 0)), 0); - assert_eq!(call!(or_ui32(0, 1)), 1); - assert_eq!(call!(or_ui32(1, 0)), 1); - assert_eq!(call!(or_ui32(1, 1)), 1); - assert_eq!(call!(or_ui32(0, 2)), 2); - assert_eq!(call!(or_ui32(2, 0)), 2); - assert_eq!(call!(or_ui32(2, 2)), 2); - assert_eq!(call!(or_ui32(0, 3)), 3); - assert_eq!(call!(or_ui32(1, 2)), 3); - assert_eq!(call!(or_ui32(1, 3)), 3); - assert_eq!(call!(or_ui32(2, 1)), 3); - assert_eq!(call!(or_ui32(2, 3)), 3); - assert_eq!(call!(or_ui32(3, 0)), 3); - assert_eq!(call!(or_ui32(3, 1)), 3); - assert_eq!(call!(or_ui32(3, 2)), 3); - assert_eq!(call!(or_ui32(3, 3)), 3); - assert_eq!(call!(or_ui32(0, 4)), 4); - assert_eq!(call!(or_ui32(4, 0)), 4); - assert_eq!(call!(or_ui32(4, 4)), 4); - assert_eq!(call!(or_ui32(1, 4)), 5); - assert_eq!(call!(or_ui32(4, 1)), 5); - assert_eq!(call!(or_ui32(2, 4)), 6); - assert_eq!(call!(or_ui32(4, 2)), 6); - assert_eq!(call!(or_ui32(3, 4)), 7); - assert_eq!(call!(or_ui32(4, 3)), 7); - assert_eq!(call!(or_ui32(0, 2119154652)), 2119154652); - assert_eq!(call!(or_ui32(4, 2119154652)), 2119154652); - assert_eq!(call!(or_ui32(2119154652, 0)), 2119154652); - assert_eq!(call!(or_ui32(2119154652, 4)), 2119154652); - assert_eq!(call!(or_ui32(2119154652, 2119154652)), 2119154652); - assert_eq!(call!(or_ui32(1, 2119154652)), 2119154653); - assert_eq!(call!(or_ui32(2119154652, 1)), 2119154653); - assert_eq!(call!(or_ui32(2, 2119154652)), 2119154654); - assert_eq!(call!(or_ui32(2119154652, 2)), 2119154654); - assert_eq!(call!(or_ui32(3, 2119154652)), 2119154655); - assert_eq!(call!(or_ui32(2119154652, 3)), 2119154655); - assert_eq!(call!(or_ui32(0, 3002788344)), 3002788344); - assert_eq!(call!(or_ui32(3002788344, 0)), 3002788344); - assert_eq!(call!(or_ui32(3002788344, 3002788344)), 3002788344); - assert_eq!(call!(or_ui32(1, 3002788344)), 3002788345); - assert_eq!(call!(or_ui32(3002788344, 1)), 3002788345); - assert_eq!(call!(or_ui32(2, 3002788344)), 3002788346); - assert_eq!(call!(or_ui32(3002788344, 2)), 3002788346); - assert_eq!(call!(or_ui32(3, 3002788344)), 3002788347); - assert_eq!(call!(or_ui32(3002788344, 3)), 3002788347); - assert_eq!(call!(or_ui32(4, 3002788344)), 3002788348); - assert_eq!(call!(or_ui32(3002788344, 4)), 3002788348); - assert_eq!(call!(or_ui32(0, 3482297128)), 3482297128); - assert_eq!(call!(or_ui32(3482297128, 0)), 3482297128); - assert_eq!(call!(or_ui32(3482297128, 3482297128)), 3482297128); - assert_eq!(call!(or_ui32(1, 3482297128)), 3482297129); - assert_eq!(call!(or_ui32(3482297128, 1)), 3482297129); - assert_eq!(call!(or_ui32(2, 3482297128)), 3482297130); - assert_eq!(call!(or_ui32(3482297128, 2)), 3482297130); - assert_eq!(call!(or_ui32(3, 3482297128)), 3482297131); - assert_eq!(call!(or_ui32(3482297128, 3)), 3482297131); - assert_eq!(call!(or_ui32(4, 3482297128)), 3482297132); - assert_eq!(call!(or_ui32(3482297128, 4)), 3482297132); - assert_eq!(call!(or_ui32(2119154652, 3002788344)), 4278189052); - assert_eq!(call!(or_ui32(3002788344, 2119154652)), 4278189052); - assert_eq!(call!(or_ui32(2119154652, 3482297128)), 4291804156); - assert_eq!(call!(or_ui32(3482297128, 2119154652)), 4291804156); - assert_eq!(call!(or_ui32(3002788344, 3482297128)), 4294962168); - assert_eq!(call!(or_ui32(3482297128, 3002788344)), 4294962168); - assert_eq!(call!(or_ui32(0, 4294967294)), 4294967294); - assert_eq!(call!(or_ui32(2, 4294967294)), 4294967294); - assert_eq!(call!(or_ui32(4, 4294967294)), 4294967294); - assert_eq!(call!(or_ui32(2119154652, 4294967294)), 4294967294); - assert_eq!(call!(or_ui32(3002788344, 4294967294)), 4294967294); - assert_eq!(call!(or_ui32(3482297128, 4294967294)), 4294967294); - assert_eq!(call!(or_ui32(4294967294, 0)), 4294967294); - assert_eq!(call!(or_ui32(4294967294, 2)), 4294967294); - assert_eq!(call!(or_ui32(4294967294, 4)), 4294967294); - assert_eq!(call!(or_ui32(4294967294, 2119154652)), 4294967294); - assert_eq!(call!(or_ui32(4294967294, 3002788344)), 4294967294); - assert_eq!(call!(or_ui32(4294967294, 3482297128)), 4294967294); - assert_eq!(call!(or_ui32(4294967294, 4294967294)), 4294967294); - assert_eq!(call!(or_ui32(0, 4294967295)), 4294967295); - assert_eq!(call!(or_ui32(1, 4294967294)), 4294967295); - assert_eq!(call!(or_ui32(1, 4294967295)), 4294967295); - assert_eq!(call!(or_ui32(2, 4294967295)), 4294967295); - assert_eq!(call!(or_ui32(3, 4294967294)), 4294967295); - assert_eq!(call!(or_ui32(3, 4294967295)), 4294967295); - assert_eq!(call!(or_ui32(4, 4294967295)), 4294967295); - assert_eq!(call!(or_ui32(2119154652, 4294967295)), 4294967295); - assert_eq!(call!(or_ui32(3002788344, 4294967295)), 4294967295); - assert_eq!(call!(or_ui32(3482297128, 4294967295)), 4294967295); - assert_eq!(call!(or_ui32(4294967294, 1)), 4294967295); - assert_eq!(call!(or_ui32(4294967294, 3)), 4294967295); - assert_eq!(call!(or_ui32(4294967294, 4294967295)), 4294967295); - assert_eq!(call!(or_ui32(4294967295, 0)), 4294967295); - assert_eq!(call!(or_ui32(4294967295, 1)), 4294967295); - assert_eq!(call!(or_ui32(4294967295, 2)), 4294967295); - assert_eq!(call!(or_ui32(4294967295, 3)), 4294967295); - assert_eq!(call!(or_ui32(4294967295, 4)), 4294967295); - assert_eq!(call!(or_ui32(4294967295, 2119154652)), 4294967295); - assert_eq!(call!(or_ui32(4294967295, 3002788344)), 4294967295); - assert_eq!(call!(or_ui32(4294967295, 3482297128)), 4294967295); - assert_eq!(call!(or_ui32(4294967295, 4294967294)), 4294967295); - assert_eq!(call!(or_ui32(4294967295, 4294967295)), 4294967295); - assert_eq!(call!(or_ui64(0, 0)), 0); - assert_eq!(call!(or_ui64(0, 1)), 1); - assert_eq!(call!(or_ui64(1, 0)), 1); - assert_eq!(call!(or_ui64(1, 1)), 1); - assert_eq!(call!(or_ui64(0, 2)), 2); - assert_eq!(call!(or_ui64(2, 0)), 2); - assert_eq!(call!(or_ui64(2, 2)), 2); - assert_eq!(call!(or_ui64(0, 3)), 3); - assert_eq!(call!(or_ui64(1, 2)), 3); - assert_eq!(call!(or_ui64(1, 3)), 3); - assert_eq!(call!(or_ui64(2, 1)), 3); - assert_eq!(call!(or_ui64(2, 3)), 3); - assert_eq!(call!(or_ui64(3, 0)), 3); - assert_eq!(call!(or_ui64(3, 1)), 3); - assert_eq!(call!(or_ui64(3, 2)), 3); - assert_eq!(call!(or_ui64(3, 3)), 3); - assert_eq!(call!(or_ui64(0, 4)), 4); - assert_eq!(call!(or_ui64(4, 0)), 4); - assert_eq!(call!(or_ui64(4, 4)), 4); - assert_eq!(call!(or_ui64(1, 4)), 5); - assert_eq!(call!(or_ui64(4, 1)), 5); - assert_eq!(call!(or_ui64(2, 4)), 6); - assert_eq!(call!(or_ui64(4, 2)), 6); - assert_eq!(call!(or_ui64(3, 4)), 7); - assert_eq!(call!(or_ui64(4, 3)), 7); - assert_eq!(call!(or_ui64(0, 191084152064409600)), 191084152064409600); - assert_eq!(call!(or_ui64(191084152064409600, 0)), 191084152064409600); - assert_eq!(call!(or_ui64(191084152064409600, 191084152064409600)), 191084152064409600); - assert_eq!(call!(or_ui64(1, 191084152064409600)), 191084152064409601); - assert_eq!(call!(or_ui64(191084152064409600, 1)), 191084152064409601); - assert_eq!(call!(or_ui64(2, 191084152064409600)), 191084152064409602); - assert_eq!(call!(or_ui64(191084152064409600, 2)), 191084152064409602); - assert_eq!(call!(or_ui64(3, 191084152064409600)), 191084152064409603); - assert_eq!(call!(or_ui64(191084152064409600, 3)), 191084152064409603); - assert_eq!(call!(or_ui64(4, 191084152064409600)), 191084152064409604); - assert_eq!(call!(or_ui64(191084152064409600, 4)), 191084152064409604); - assert_eq!(call!(or_ui64(0, 11015955194427482112)), 11015955194427482112); - assert_eq!(call!(or_ui64(11015955194427482112, 0)), 11015955194427482112); - assert_eq!(call!(or_ui64(11015955194427482112, 11015955194427482112)), 11015955194427482112); - assert_eq!(call!(or_ui64(1, 11015955194427482112)), 11015955194427482113); - assert_eq!(call!(or_ui64(11015955194427482112, 1)), 11015955194427482113); - assert_eq!(call!(or_ui64(2, 11015955194427482112)), 11015955194427482114); - assert_eq!(call!(or_ui64(11015955194427482112, 2)), 11015955194427482114); - assert_eq!(call!(or_ui64(3, 11015955194427482112)), 11015955194427482115); - assert_eq!(call!(or_ui64(11015955194427482112, 3)), 11015955194427482115); - assert_eq!(call!(or_ui64(4, 11015955194427482112)), 11015955194427482116); - assert_eq!(call!(or_ui64(11015955194427482112, 4)), 11015955194427482116); - assert_eq!(call!(or_ui64(191084152064409600, 11015955194427482112)), 11161853808046874624); - assert_eq!(call!(or_ui64(11015955194427482112, 191084152064409600)), 11161853808046874624); - assert_eq!(call!(or_ui64(0, 16990600415051759616)), 16990600415051759616); - assert_eq!(call!(or_ui64(16990600415051759616, 0)), 16990600415051759616); - assert_eq!(call!(or_ui64(16990600415051759616, 16990600415051759616)), 16990600415051759616); - assert_eq!(call!(or_ui64(1, 16990600415051759616)), 16990600415051759617); - assert_eq!(call!(or_ui64(16990600415051759616, 1)), 16990600415051759617); - assert_eq!(call!(or_ui64(2, 16990600415051759616)), 16990600415051759618); - assert_eq!(call!(or_ui64(16990600415051759616, 2)), 16990600415051759618); - assert_eq!(call!(or_ui64(3, 16990600415051759616)), 16990600415051759619); - assert_eq!(call!(or_ui64(16990600415051759616, 3)), 16990600415051759619); - assert_eq!(call!(or_ui64(4, 16990600415051759616)), 16990600415051759620); - assert_eq!(call!(or_ui64(16990600415051759616, 4)), 16990600415051759620); - assert_eq!(call!(or_ui64(191084152064409600, 16990600415051759616)), 17000806082182103040); - assert_eq!(call!(or_ui64(16990600415051759616, 191084152064409600)), 17000806082182103040); - assert_eq!(call!(or_ui64(11015955194427482112, 16990600415051759616)), 18152530082063441920); - assert_eq!(call!(or_ui64(16990600415051759616, 11015955194427482112)), 18152530082063441920); - assert_eq!(call!(or_ui64(0, 18446744073709551614)), 18446744073709551614); - assert_eq!(call!(or_ui64(2, 18446744073709551614)), 18446744073709551614); - assert_eq!(call!(or_ui64(4, 18446744073709551614)), 18446744073709551614); - assert_eq!(call!(or_ui64(191084152064409600, 18446744073709551614)), 18446744073709551614); - assert_eq!(call!(or_ui64(11015955194427482112, 18446744073709551614)), 18446744073709551614); - assert_eq!(call!(or_ui64(16990600415051759616, 18446744073709551614)), 18446744073709551614); - assert_eq!(call!(or_ui64(18446744073709551614, 0)), 18446744073709551614); - assert_eq!(call!(or_ui64(18446744073709551614, 2)), 18446744073709551614); - assert_eq!(call!(or_ui64(18446744073709551614, 4)), 18446744073709551614); - assert_eq!(call!(or_ui64(18446744073709551614, 191084152064409600)), 18446744073709551614); - assert_eq!(call!(or_ui64(18446744073709551614, 11015955194427482112)), 18446744073709551614); - assert_eq!(call!(or_ui64(18446744073709551614, 16990600415051759616)), 18446744073709551614); - assert_eq!(call!(or_ui64(18446744073709551614, 18446744073709551614)), 18446744073709551614); - assert_eq!(call!(or_ui64(0, 18446744073709551615)), 18446744073709551615); - assert_eq!(call!(or_ui64(1, 18446744073709551614)), 18446744073709551615); - assert_eq!(call!(or_ui64(1, 18446744073709551615)), 18446744073709551615); - assert_eq!(call!(or_ui64(2, 18446744073709551615)), 18446744073709551615); - assert_eq!(call!(or_ui64(3, 18446744073709551614)), 18446744073709551615); - assert_eq!(call!(or_ui64(3, 18446744073709551615)), 18446744073709551615); - assert_eq!(call!(or_ui64(4, 18446744073709551615)), 18446744073709551615); - assert_eq!(call!(or_ui64(191084152064409600, 18446744073709551615)), 18446744073709551615); - assert_eq!(call!(or_ui64(11015955194427482112, 18446744073709551615)), 18446744073709551615); - assert_eq!(call!(or_ui64(16990600415051759616, 18446744073709551615)), 18446744073709551615); - assert_eq!(call!(or_ui64(18446744073709551614, 1)), 18446744073709551615); - assert_eq!(call!(or_ui64(18446744073709551614, 3)), 18446744073709551615); - assert_eq!(call!(or_ui64(18446744073709551614, 18446744073709551615)), 18446744073709551615); - assert_eq!(call!(or_ui64(18446744073709551615, 0)), 18446744073709551615); - assert_eq!(call!(or_ui64(18446744073709551615, 1)), 18446744073709551615); - assert_eq!(call!(or_ui64(18446744073709551615, 2)), 18446744073709551615); - assert_eq!(call!(or_ui64(18446744073709551615, 3)), 18446744073709551615); - assert_eq!(call!(or_ui64(18446744073709551615, 4)), 18446744073709551615); - assert_eq!(call!(or_ui64(18446744073709551615, 191084152064409600)), 18446744073709551615); - assert_eq!(call!(or_ui64(18446744073709551615, 11015955194427482112)), 18446744073709551615); - assert_eq!(call!(or_ui64(18446744073709551615, 16990600415051759616)), 18446744073709551615); - assert_eq!(call!(or_ui64(18446744073709551615, 18446744073709551614)), 18446744073709551615); - assert_eq!(call!(or_ui64(18446744073709551615, 18446744073709551615)), 18446744073709551615); - assert_eq!(call!(or_ui8(0, 0)), 0); - assert_eq!(call!(or_ui8(0, 1)), 1); - assert_eq!(call!(or_ui8(1, 0)), 1); - assert_eq!(call!(or_ui8(1, 1)), 1); - assert_eq!(call!(or_ui8(0, 2)), 2); - assert_eq!(call!(or_ui8(2, 0)), 2); - assert_eq!(call!(or_ui8(2, 2)), 2); - assert_eq!(call!(or_ui8(0, 3)), 3); - assert_eq!(call!(or_ui8(1, 2)), 3); - assert_eq!(call!(or_ui8(1, 3)), 3); - assert_eq!(call!(or_ui8(2, 1)), 3); - assert_eq!(call!(or_ui8(2, 3)), 3); - assert_eq!(call!(or_ui8(3, 0)), 3); - assert_eq!(call!(or_ui8(3, 1)), 3); - assert_eq!(call!(or_ui8(3, 2)), 3); - assert_eq!(call!(or_ui8(3, 3)), 3); - assert_eq!(call!(or_ui8(0, 4)), 4); - assert_eq!(call!(or_ui8(4, 0)), 4); - assert_eq!(call!(or_ui8(4, 4)), 4); - assert_eq!(call!(or_ui8(1, 4)), 5); - assert_eq!(call!(or_ui8(4, 1)), 5); - assert_eq!(call!(or_ui8(2, 4)), 6); - assert_eq!(call!(or_ui8(4, 2)), 6); - assert_eq!(call!(or_ui8(3, 4)), 7); - assert_eq!(call!(or_ui8(4, 3)), 7); - assert_eq!(call!(or_ui8(0, 72)), 72); - assert_eq!(call!(or_ui8(72, 0)), 72); - assert_eq!(call!(or_ui8(72, 72)), 72); - assert_eq!(call!(or_ui8(1, 72)), 73); - assert_eq!(call!(or_ui8(72, 1)), 73); - assert_eq!(call!(or_ui8(2, 72)), 74); - assert_eq!(call!(or_ui8(72, 2)), 74); - assert_eq!(call!(or_ui8(3, 72)), 75); - assert_eq!(call!(or_ui8(72, 3)), 75); - assert_eq!(call!(or_ui8(4, 72)), 76); - assert_eq!(call!(or_ui8(72, 4)), 76); - assert_eq!(call!(or_ui8(0, 100)), 100); - assert_eq!(call!(or_ui8(4, 100)), 100); - assert_eq!(call!(or_ui8(100, 0)), 100); - assert_eq!(call!(or_ui8(100, 4)), 100); - assert_eq!(call!(or_ui8(100, 100)), 100); - assert_eq!(call!(or_ui8(1, 100)), 101); - assert_eq!(call!(or_ui8(100, 1)), 101); - assert_eq!(call!(or_ui8(2, 100)), 102); - assert_eq!(call!(or_ui8(100, 2)), 102); - assert_eq!(call!(or_ui8(3, 100)), 103); - assert_eq!(call!(or_ui8(100, 3)), 103); - assert_eq!(call!(or_ui8(72, 100)), 108); - assert_eq!(call!(or_ui8(100, 72)), 108); - assert_eq!(call!(or_ui8(0, 162)), 162); - assert_eq!(call!(or_ui8(2, 162)), 162); - assert_eq!(call!(or_ui8(162, 0)), 162); - assert_eq!(call!(or_ui8(162, 2)), 162); - assert_eq!(call!(or_ui8(162, 162)), 162); - assert_eq!(call!(or_ui8(1, 162)), 163); - assert_eq!(call!(or_ui8(3, 162)), 163); - assert_eq!(call!(or_ui8(162, 1)), 163); - assert_eq!(call!(or_ui8(162, 3)), 163); - assert_eq!(call!(or_ui8(4, 162)), 166); - assert_eq!(call!(or_ui8(162, 4)), 166); - assert_eq!(call!(or_ui8(100, 162)), 230); - assert_eq!(call!(or_ui8(162, 100)), 230); - assert_eq!(call!(or_ui8(72, 162)), 234); - assert_eq!(call!(or_ui8(162, 72)), 234); - assert_eq!(call!(or_ui8(0, 254)), 254); - assert_eq!(call!(or_ui8(2, 254)), 254); - assert_eq!(call!(or_ui8(4, 254)), 254); - assert_eq!(call!(or_ui8(72, 254)), 254); - assert_eq!(call!(or_ui8(100, 254)), 254); - assert_eq!(call!(or_ui8(162, 254)), 254); - assert_eq!(call!(or_ui8(254, 0)), 254); - assert_eq!(call!(or_ui8(254, 2)), 254); - assert_eq!(call!(or_ui8(254, 4)), 254); - assert_eq!(call!(or_ui8(254, 72)), 254); - assert_eq!(call!(or_ui8(254, 100)), 254); - assert_eq!(call!(or_ui8(254, 162)), 254); - assert_eq!(call!(or_ui8(254, 254)), 254); - assert_eq!(call!(or_ui8(0, 255)), 255); - assert_eq!(call!(or_ui8(1, 254)), 255); - assert_eq!(call!(or_ui8(1, 255)), 255); - assert_eq!(call!(or_ui8(2, 255)), 255); - assert_eq!(call!(or_ui8(3, 254)), 255); - assert_eq!(call!(or_ui8(3, 255)), 255); - assert_eq!(call!(or_ui8(4, 255)), 255); - assert_eq!(call!(or_ui8(72, 255)), 255); - assert_eq!(call!(or_ui8(100, 255)), 255); - assert_eq!(call!(or_ui8(162, 255)), 255); - assert_eq!(call!(or_ui8(254, 1)), 255); - assert_eq!(call!(or_ui8(254, 3)), 255); - assert_eq!(call!(or_ui8(254, 255)), 255); - assert_eq!(call!(or_ui8(255, 0)), 255); - assert_eq!(call!(or_ui8(255, 1)), 255); - assert_eq!(call!(or_ui8(255, 2)), 255); - assert_eq!(call!(or_ui8(255, 3)), 255); - assert_eq!(call!(or_ui8(255, 4)), 255); - assert_eq!(call!(or_ui8(255, 72)), 255); - assert_eq!(call!(or_ui8(255, 100)), 255); - assert_eq!(call!(or_ui8(255, 162)), 255); - assert_eq!(call!(or_ui8(255, 254)), 255); - assert_eq!(call!(or_ui8(255, 255)), 255); - assert_eq!(call!(xor_si16(-32768, 0)), -32768); - assert_eq!(call!(xor_si16(-32767, 1)), -32768); - assert_eq!(call!(xor_si16(0, -32768)), -32768); - assert_eq!(call!(xor_si16(1, -32767)), -32768); - assert_eq!(call!(xor_si16(-32768, 1)), -32767); - assert_eq!(call!(xor_si16(-32767, 0)), -32767); - assert_eq!(call!(xor_si16(0, -32767)), -32767); - assert_eq!(call!(xor_si16(1, -32768)), -32767); - assert_eq!(call!(xor_si16(-32768, 2)), -32766); - assert_eq!(call!(xor_si16(-32767, 3)), -32766); - assert_eq!(call!(xor_si16(2, -32768)), -32766); - assert_eq!(call!(xor_si16(3, -32767)), -32766); - assert_eq!(call!(xor_si16(-32768, 3)), -32765); - assert_eq!(call!(xor_si16(-32767, 2)), -32765); - assert_eq!(call!(xor_si16(2, -32767)), -32765); - assert_eq!(call!(xor_si16(3, -32768)), -32765); - assert_eq!(call!(xor_si16(-32768, 4)), -32764); - assert_eq!(call!(xor_si16(4, -32768)), -32764); - assert_eq!(call!(xor_si16(-32767, 4)), -32763); - assert_eq!(call!(xor_si16(4, -32767)), -32763); - assert_eq!(call!(xor_si16(-32547, 4)), -32551); - assert_eq!(call!(xor_si16(4, -32547)), -32551); - assert_eq!(call!(xor_si16(-32547, 1)), -32548); - assert_eq!(call!(xor_si16(1, -32547)), -32548); - assert_eq!(call!(xor_si16(-32547, 0)), -32547); - assert_eq!(call!(xor_si16(0, -32547)), -32547); - assert_eq!(call!(xor_si16(-32547, 3)), -32546); - assert_eq!(call!(xor_si16(3, -32547)), -32546); - assert_eq!(call!(xor_si16(-32547, 2)), -32545); - assert_eq!(call!(xor_si16(2, -32547)), -32545); - assert_eq!(call!(xor_si16(-32547, 10486)), -22485); - assert_eq!(call!(xor_si16(10486, -32547)), -22485); - assert_eq!(call!(xor_si16(-32768, 10486)), -22282); - assert_eq!(call!(xor_si16(10486, -32768)), -22282); - assert_eq!(call!(xor_si16(-32767, 10486)), -22281); - assert_eq!(call!(xor_si16(10486, -32767)), -22281); - assert_eq!(call!(xor_si16(-32547, 16514)), -16289); - assert_eq!(call!(xor_si16(16514, -32547)), -16289); - assert_eq!(call!(xor_si16(-32768, 16514)), -16254); - assert_eq!(call!(xor_si16(16514, -32768)), -16254); - assert_eq!(call!(xor_si16(-32767, 16514)), -16253); - assert_eq!(call!(xor_si16(16514, -32767)), -16253); - assert_eq!(call!(xor_si16(-32547, 32767)), -222); - assert_eq!(call!(xor_si16(32767, -32547)), -222); - assert_eq!(call!(xor_si16(-32547, 32766)), -221); - assert_eq!(call!(xor_si16(32766, -32547)), -221); - assert_eq!(call!(xor_si16(-32768, 32766)), -2); - assert_eq!(call!(xor_si16(-32767, 32767)), -2); - assert_eq!(call!(xor_si16(32766, -32768)), -2); - assert_eq!(call!(xor_si16(32767, -32767)), -2); - assert_eq!(call!(xor_si16(-32768, 32767)), -1); - assert_eq!(call!(xor_si16(-32767, 32766)), -1); - assert_eq!(call!(xor_si16(32766, -32767)), -1); - assert_eq!(call!(xor_si16(32767, -32768)), -1); - assert_eq!(call!(xor_si16(-32768, -32768)), 0); - assert_eq!(call!(xor_si16(-32767, -32767)), 0); - assert_eq!(call!(xor_si16(-32547, -32547)), 0); - assert_eq!(call!(xor_si16(0, 0)), 0); - assert_eq!(call!(xor_si16(1, 1)), 0); - assert_eq!(call!(xor_si16(2, 2)), 0); - assert_eq!(call!(xor_si16(3, 3)), 0); - assert_eq!(call!(xor_si16(4, 4)), 0); - assert_eq!(call!(xor_si16(10486, 10486)), 0); - assert_eq!(call!(xor_si16(16514, 16514)), 0); - assert_eq!(call!(xor_si16(32766, 32766)), 0); - assert_eq!(call!(xor_si16(32767, 32767)), 0); - assert_eq!(call!(xor_si16(-32768, -32767)), 1); - assert_eq!(call!(xor_si16(-32767, -32768)), 1); - assert_eq!(call!(xor_si16(0, 1)), 1); - assert_eq!(call!(xor_si16(1, 0)), 1); - assert_eq!(call!(xor_si16(2, 3)), 1); - assert_eq!(call!(xor_si16(3, 2)), 1); - assert_eq!(call!(xor_si16(32766, 32767)), 1); - assert_eq!(call!(xor_si16(32767, 32766)), 1); - assert_eq!(call!(xor_si16(0, 2)), 2); - assert_eq!(call!(xor_si16(1, 3)), 2); - assert_eq!(call!(xor_si16(2, 0)), 2); - assert_eq!(call!(xor_si16(3, 1)), 2); - assert_eq!(call!(xor_si16(0, 3)), 3); - assert_eq!(call!(xor_si16(1, 2)), 3); - assert_eq!(call!(xor_si16(2, 1)), 3); - assert_eq!(call!(xor_si16(3, 0)), 3); - assert_eq!(call!(xor_si16(0, 4)), 4); - assert_eq!(call!(xor_si16(4, 0)), 4); - assert_eq!(call!(xor_si16(1, 4)), 5); - assert_eq!(call!(xor_si16(4, 1)), 5); - assert_eq!(call!(xor_si16(2, 4)), 6); - assert_eq!(call!(xor_si16(4, 2)), 6); - assert_eq!(call!(xor_si16(3, 4)), 7); - assert_eq!(call!(xor_si16(4, 3)), 7); - assert_eq!(call!(xor_si16(-32767, -32547)), 220); - assert_eq!(call!(xor_si16(-32547, -32767)), 220); - assert_eq!(call!(xor_si16(-32768, -32547)), 221); - assert_eq!(call!(xor_si16(-32547, -32768)), 221); - assert_eq!(call!(xor_si16(4, 10486)), 10482); - assert_eq!(call!(xor_si16(10486, 4)), 10482); - assert_eq!(call!(xor_si16(2, 10486)), 10484); - assert_eq!(call!(xor_si16(10486, 2)), 10484); - assert_eq!(call!(xor_si16(3, 10486)), 10485); - assert_eq!(call!(xor_si16(10486, 3)), 10485); - assert_eq!(call!(xor_si16(0, 10486)), 10486); - assert_eq!(call!(xor_si16(10486, 0)), 10486); - assert_eq!(call!(xor_si16(1, 10486)), 10487); - assert_eq!(call!(xor_si16(10486, 1)), 10487); - assert_eq!(call!(xor_si16(16514, 32766)), 16252); - assert_eq!(call!(xor_si16(32766, 16514)), 16252); - assert_eq!(call!(xor_si16(16514, 32767)), 16253); - assert_eq!(call!(xor_si16(32767, 16514)), 16253); - assert_eq!(call!(xor_si16(2, 16514)), 16512); - assert_eq!(call!(xor_si16(16514, 2)), 16512); - assert_eq!(call!(xor_si16(3, 16514)), 16513); - assert_eq!(call!(xor_si16(16514, 3)), 16513); - assert_eq!(call!(xor_si16(0, 16514)), 16514); - assert_eq!(call!(xor_si16(16514, 0)), 16514); - assert_eq!(call!(xor_si16(1, 16514)), 16515); - assert_eq!(call!(xor_si16(16514, 1)), 16515); - assert_eq!(call!(xor_si16(4, 16514)), 16518); - assert_eq!(call!(xor_si16(16514, 4)), 16518); - assert_eq!(call!(xor_si16(10486, 32766)), 22280); - assert_eq!(call!(xor_si16(32766, 10486)), 22280); - assert_eq!(call!(xor_si16(10486, 32767)), 22281); - assert_eq!(call!(xor_si16(32767, 10486)), 22281); - assert_eq!(call!(xor_si16(10486, 16514)), 26740); - assert_eq!(call!(xor_si16(16514, 10486)), 26740); - assert_eq!(call!(xor_si16(4, 32766)), 32762); - assert_eq!(call!(xor_si16(32766, 4)), 32762); - assert_eq!(call!(xor_si16(4, 32767)), 32763); - assert_eq!(call!(xor_si16(32767, 4)), 32763); - assert_eq!(call!(xor_si16(2, 32766)), 32764); - assert_eq!(call!(xor_si16(3, 32767)), 32764); - assert_eq!(call!(xor_si16(32766, 2)), 32764); - assert_eq!(call!(xor_si16(32767, 3)), 32764); - assert_eq!(call!(xor_si16(2, 32767)), 32765); - assert_eq!(call!(xor_si16(3, 32766)), 32765); - assert_eq!(call!(xor_si16(32766, 3)), 32765); - assert_eq!(call!(xor_si16(32767, 2)), 32765); - assert_eq!(call!(xor_si16(0, 32766)), 32766); - assert_eq!(call!(xor_si16(1, 32767)), 32766); - assert_eq!(call!(xor_si16(32766, 0)), 32766); - assert_eq!(call!(xor_si16(32767, 1)), 32766); - assert_eq!(call!(xor_si16(0, 32767)), 32767); - assert_eq!(call!(xor_si16(1, 32766)), 32767); - assert_eq!(call!(xor_si16(32766, 1)), 32767); - assert_eq!(call!(xor_si16(32767, 0)), 32767); - assert_eq!(call!(xor_si32(-2147483648, 0)), -2147483648); - assert_eq!(call!(xor_si32(-2147483647, 1)), -2147483648); - assert_eq!(call!(xor_si32(0, -2147483648)), -2147483648); - assert_eq!(call!(xor_si32(1, -2147483647)), -2147483648); - assert_eq!(call!(xor_si32(-2147483648, 1)), -2147483647); - assert_eq!(call!(xor_si32(-2147483647, 0)), -2147483647); - assert_eq!(call!(xor_si32(0, -2147483647)), -2147483647); - assert_eq!(call!(xor_si32(1, -2147483648)), -2147483647); - assert_eq!(call!(xor_si32(-2147483648, 2)), -2147483646); - assert_eq!(call!(xor_si32(-2147483647, 3)), -2147483646); - assert_eq!(call!(xor_si32(2, -2147483648)), -2147483646); - assert_eq!(call!(xor_si32(3, -2147483647)), -2147483646); - assert_eq!(call!(xor_si32(-2147483648, 3)), -2147483645); - assert_eq!(call!(xor_si32(-2147483647, 2)), -2147483645); - assert_eq!(call!(xor_si32(2, -2147483647)), -2147483645); - assert_eq!(call!(xor_si32(3, -2147483648)), -2147483645); - assert_eq!(call!(xor_si32(-2147483648, 4)), -2147483644); - assert_eq!(call!(xor_si32(4, -2147483648)), -2147483644); - assert_eq!(call!(xor_si32(-2147483647, 4)), -2147483643); - assert_eq!(call!(xor_si32(4, -2147483647)), -2147483643); - assert_eq!(call!(xor_si32(-1713183800, 0)), -1713183800); - assert_eq!(call!(xor_si32(0, -1713183800)), -1713183800); - assert_eq!(call!(xor_si32(-1713183800, 1)), -1713183799); - assert_eq!(call!(xor_si32(1, -1713183800)), -1713183799); - assert_eq!(call!(xor_si32(-1713183800, 2)), -1713183798); - assert_eq!(call!(xor_si32(2, -1713183800)), -1713183798); - assert_eq!(call!(xor_si32(-1713183800, 3)), -1713183797); - assert_eq!(call!(xor_si32(3, -1713183800)), -1713183797); - assert_eq!(call!(xor_si32(-1713183800, 4)), -1713183796); - assert_eq!(call!(xor_si32(4, -1713183800)), -1713183796); - assert_eq!(call!(xor_si32(-1252582164, 4)), -1252582168); - assert_eq!(call!(xor_si32(4, -1252582164)), -1252582168); - assert_eq!(call!(xor_si32(-1252582164, 0)), -1252582164); - assert_eq!(call!(xor_si32(0, -1252582164)), -1252582164); - assert_eq!(call!(xor_si32(-1252582164, 1)), -1252582163); - assert_eq!(call!(xor_si32(1, -1252582164)), -1252582163); - assert_eq!(call!(xor_si32(-1252582164, 2)), -1252582162); - assert_eq!(call!(xor_si32(2, -1252582164)), -1252582162); - assert_eq!(call!(xor_si32(-1252582164, 3)), -1252582161); - assert_eq!(call!(xor_si32(3, -1252582164)), -1252582161); - assert_eq!(call!(xor_si32(-1035405763, 2147483647)), -1112077886); - assert_eq!(call!(xor_si32(2147483647, -1035405763)), -1112077886); - assert_eq!(call!(xor_si32(-1035405763, 2147483646)), -1112077885); - assert_eq!(call!(xor_si32(2147483646, -1035405763)), -1112077885); - assert_eq!(call!(xor_si32(-1035405763, 4)), -1035405767); - assert_eq!(call!(xor_si32(4, -1035405763)), -1035405767); - assert_eq!(call!(xor_si32(-1035405763, 1)), -1035405764); - assert_eq!(call!(xor_si32(1, -1035405763)), -1035405764); - assert_eq!(call!(xor_si32(-1035405763, 0)), -1035405763); - assert_eq!(call!(xor_si32(0, -1035405763)), -1035405763); - assert_eq!(call!(xor_si32(-1035405763, 3)), -1035405762); - assert_eq!(call!(xor_si32(3, -1035405763)), -1035405762); - assert_eq!(call!(xor_si32(-1035405763, 2)), -1035405761); - assert_eq!(call!(xor_si32(2, -1035405763)), -1035405761); - assert_eq!(call!(xor_si32(-1252582164, 2147483646)), -894901486); - assert_eq!(call!(xor_si32(2147483646, -1252582164)), -894901486); - assert_eq!(call!(xor_si32(-1252582164, 2147483647)), -894901485); - assert_eq!(call!(xor_si32(2147483647, -1252582164)), -894901485); - assert_eq!(call!(xor_si32(-1713183800, 2147483646)), -434299850); - assert_eq!(call!(xor_si32(2147483646, -1713183800)), -434299850); - assert_eq!(call!(xor_si32(-1713183800, 2147483647)), -434299849); - assert_eq!(call!(xor_si32(2147483647, -1713183800)), -434299849); - assert_eq!(call!(xor_si32(-2147483648, 2147483646)), -2); - assert_eq!(call!(xor_si32(-2147483647, 2147483647)), -2); - assert_eq!(call!(xor_si32(2147483646, -2147483648)), -2); - assert_eq!(call!(xor_si32(2147483647, -2147483647)), -2); - assert_eq!(call!(xor_si32(-2147483648, 2147483647)), -1); - assert_eq!(call!(xor_si32(-2147483647, 2147483646)), -1); - assert_eq!(call!(xor_si32(2147483646, -2147483647)), -1); - assert_eq!(call!(xor_si32(2147483647, -2147483648)), -1); - assert_eq!(call!(xor_si32(-2147483648, -2147483648)), 0); - assert_eq!(call!(xor_si32(-2147483647, -2147483647)), 0); - assert_eq!(call!(xor_si32(-1713183800, -1713183800)), 0); - assert_eq!(call!(xor_si32(-1252582164, -1252582164)), 0); - assert_eq!(call!(xor_si32(-1035405763, -1035405763)), 0); - assert_eq!(call!(xor_si32(0, 0)), 0); - assert_eq!(call!(xor_si32(1, 1)), 0); - assert_eq!(call!(xor_si32(2, 2)), 0); - assert_eq!(call!(xor_si32(3, 3)), 0); - assert_eq!(call!(xor_si32(4, 4)), 0); - assert_eq!(call!(xor_si32(2147483646, 2147483646)), 0); - assert_eq!(call!(xor_si32(2147483647, 2147483647)), 0); - assert_eq!(call!(xor_si32(-2147483648, -2147483647)), 1); - assert_eq!(call!(xor_si32(-2147483647, -2147483648)), 1); - assert_eq!(call!(xor_si32(0, 1)), 1); - assert_eq!(call!(xor_si32(1, 0)), 1); - assert_eq!(call!(xor_si32(2, 3)), 1); - assert_eq!(call!(xor_si32(3, 2)), 1); - assert_eq!(call!(xor_si32(2147483646, 2147483647)), 1); - assert_eq!(call!(xor_si32(2147483647, 2147483646)), 1); - assert_eq!(call!(xor_si32(0, 2)), 2); - assert_eq!(call!(xor_si32(1, 3)), 2); - assert_eq!(call!(xor_si32(2, 0)), 2); - assert_eq!(call!(xor_si32(3, 1)), 2); - assert_eq!(call!(xor_si32(0, 3)), 3); - assert_eq!(call!(xor_si32(1, 2)), 3); - assert_eq!(call!(xor_si32(2, 1)), 3); - assert_eq!(call!(xor_si32(3, 0)), 3); - assert_eq!(call!(xor_si32(0, 4)), 4); - assert_eq!(call!(xor_si32(4, 0)), 4); - assert_eq!(call!(xor_si32(1, 4)), 5); - assert_eq!(call!(xor_si32(4, 1)), 5); - assert_eq!(call!(xor_si32(2, 4)), 6); - assert_eq!(call!(xor_si32(4, 2)), 6); - assert_eq!(call!(xor_si32(3, 4)), 7); - assert_eq!(call!(xor_si32(4, 3)), 7); - assert_eq!(call!(xor_si32(-2147483648, -1713183800)), 434299848); - assert_eq!(call!(xor_si32(-1713183800, -2147483648)), 434299848); - assert_eq!(call!(xor_si32(-2147483647, -1713183800)), 434299849); - assert_eq!(call!(xor_si32(-1713183800, -2147483647)), 434299849); - assert_eq!(call!(xor_si32(-1713183800, -1252582164)), 750124836); - assert_eq!(call!(xor_si32(-1252582164, -1713183800)), 750124836); - assert_eq!(call!(xor_si32(-2147483648, -1252582164)), 894901484); - assert_eq!(call!(xor_si32(-1252582164, -2147483648)), 894901484); - assert_eq!(call!(xor_si32(-2147483647, -1252582164)), 894901485); - assert_eq!(call!(xor_si32(-1252582164, -2147483647)), 894901485); - assert_eq!(call!(xor_si32(-2147483647, -1035405763)), 1112077884); - assert_eq!(call!(xor_si32(-1035405763, -2147483647)), 1112077884); - assert_eq!(call!(xor_si32(-2147483648, -1035405763)), 1112077885); - assert_eq!(call!(xor_si32(-1035405763, -2147483648)), 1112077885); - assert_eq!(call!(xor_si32(-1713183800, -1035405763)), 1537873397); - assert_eq!(call!(xor_si32(-1035405763, -1713183800)), 1537873397); - assert_eq!(call!(xor_si32(-1252582164, -1035405763)), 1998580433); - assert_eq!(call!(xor_si32(-1035405763, -1252582164)), 1998580433); - assert_eq!(call!(xor_si32(4, 2147483646)), 2147483642); - assert_eq!(call!(xor_si32(2147483646, 4)), 2147483642); - assert_eq!(call!(xor_si32(4, 2147483647)), 2147483643); - assert_eq!(call!(xor_si32(2147483647, 4)), 2147483643); - assert_eq!(call!(xor_si32(2, 2147483646)), 2147483644); - assert_eq!(call!(xor_si32(3, 2147483647)), 2147483644); - assert_eq!(call!(xor_si32(2147483646, 2)), 2147483644); - assert_eq!(call!(xor_si32(2147483647, 3)), 2147483644); - assert_eq!(call!(xor_si32(2, 2147483647)), 2147483645); - assert_eq!(call!(xor_si32(3, 2147483646)), 2147483645); - assert_eq!(call!(xor_si32(2147483646, 3)), 2147483645); - assert_eq!(call!(xor_si32(2147483647, 2)), 2147483645); - assert_eq!(call!(xor_si32(0, 2147483646)), 2147483646); - assert_eq!(call!(xor_si32(1, 2147483647)), 2147483646); - assert_eq!(call!(xor_si32(2147483646, 0)), 2147483646); - assert_eq!(call!(xor_si32(2147483647, 1)), 2147483646); - assert_eq!(call!(xor_si32(0, 2147483647)), 2147483647); - assert_eq!(call!(xor_si32(1, 2147483646)), 2147483647); - assert_eq!(call!(xor_si32(2147483646, 1)), 2147483647); - assert_eq!(call!(xor_si32(2147483647, 0)), 2147483647); - assert_eq!(call!(xor_si64(-9223372036854775808, 0)), -9223372036854775808); - assert_eq!(call!(xor_si64(-9223372036854775807, 1)), -9223372036854775808); - assert_eq!(call!(xor_si64(0, -9223372036854775808)), -9223372036854775808); - assert_eq!(call!(xor_si64(1, -9223372036854775807)), -9223372036854775808); - assert_eq!(call!(xor_si64(-9223372036854775808, 1)), -9223372036854775807); - assert_eq!(call!(xor_si64(-9223372036854775807, 0)), -9223372036854775807); - assert_eq!(call!(xor_si64(0, -9223372036854775807)), -9223372036854775807); - assert_eq!(call!(xor_si64(1, -9223372036854775808)), -9223372036854775807); - assert_eq!(call!(xor_si64(-9223372036854775808, 2)), -9223372036854775806); - assert_eq!(call!(xor_si64(-9223372036854775807, 3)), -9223372036854775806); - assert_eq!(call!(xor_si64(2, -9223372036854775808)), -9223372036854775806); - assert_eq!(call!(xor_si64(3, -9223372036854775807)), -9223372036854775806); - assert_eq!(call!(xor_si64(-9223372036854775808, 3)), -9223372036854775805); - assert_eq!(call!(xor_si64(-9223372036854775807, 2)), -9223372036854775805); - assert_eq!(call!(xor_si64(2, -9223372036854775807)), -9223372036854775805); - assert_eq!(call!(xor_si64(3, -9223372036854775808)), -9223372036854775805); - assert_eq!(call!(xor_si64(-9223372036854775808, 4)), -9223372036854775804); - assert_eq!(call!(xor_si64(4, -9223372036854775808)), -9223372036854775804); - assert_eq!(call!(xor_si64(-9223372036854775807, 4)), -9223372036854775803); - assert_eq!(call!(xor_si64(4, -9223372036854775807)), -9223372036854775803); - assert_eq!(call!(xor_si64(-1328271339354574848, 9223372036854775806)), -7895100697500200962); - assert_eq!(call!(xor_si64(9223372036854775806, -1328271339354574848)), -7895100697500200962); - assert_eq!(call!(xor_si64(-1328271339354574848, 9223372036854775807)), -7895100697500200961); - assert_eq!(call!(xor_si64(9223372036854775807, -1328271339354574848)), -7895100697500200961); - assert_eq!(call!(xor_si64(-1741927215160008704, 9223372036854775806)), -7481444821694767106); - assert_eq!(call!(xor_si64(9223372036854775806, -1741927215160008704)), -7481444821694767106); - assert_eq!(call!(xor_si64(-1741927215160008704, 9223372036854775807)), -7481444821694767105); - assert_eq!(call!(xor_si64(9223372036854775807, -1741927215160008704)), -7481444821694767105); - assert_eq!(call!(xor_si64(-1328271339354574848, 5577148965131116544)), -6847992414814875648); - assert_eq!(call!(xor_si64(5577148965131116544, -1328271339354574848)), -6847992414814875648); - assert_eq!(call!(xor_si64(-1741927215160008704, 5577148965131116544)), -6145886261021343744); - assert_eq!(call!(xor_si64(5577148965131116544, -1741927215160008704)), -6145886261021343744); - assert_eq!(call!(xor_si64(-9223372036854775808, 5577148965131116544)), -3646223071723659264); - assert_eq!(call!(xor_si64(5577148965131116544, -9223372036854775808)), -3646223071723659264); - assert_eq!(call!(xor_si64(-9223372036854775807, 5577148965131116544)), -3646223071723659263); - assert_eq!(call!(xor_si64(5577148965131116544, -9223372036854775807)), -3646223071723659263); - assert_eq!(call!(xor_si64(-1741927215160008704, 0)), -1741927215160008704); - assert_eq!(call!(xor_si64(0, -1741927215160008704)), -1741927215160008704); - assert_eq!(call!(xor_si64(-1741927215160008704, 1)), -1741927215160008703); - assert_eq!(call!(xor_si64(1, -1741927215160008704)), -1741927215160008703); - assert_eq!(call!(xor_si64(-1741927215160008704, 2)), -1741927215160008702); - assert_eq!(call!(xor_si64(2, -1741927215160008704)), -1741927215160008702); - assert_eq!(call!(xor_si64(-1741927215160008704, 3)), -1741927215160008701); - assert_eq!(call!(xor_si64(3, -1741927215160008704)), -1741927215160008701); - assert_eq!(call!(xor_si64(-1741927215160008704, 4)), -1741927215160008700); - assert_eq!(call!(xor_si64(4, -1741927215160008704)), -1741927215160008700); - assert_eq!(call!(xor_si64(-1328271339354574848, 0)), -1328271339354574848); - assert_eq!(call!(xor_si64(0, -1328271339354574848)), -1328271339354574848); - assert_eq!(call!(xor_si64(-1328271339354574848, 1)), -1328271339354574847); - assert_eq!(call!(xor_si64(1, -1328271339354574848)), -1328271339354574847); - assert_eq!(call!(xor_si64(-1328271339354574848, 2)), -1328271339354574846); - assert_eq!(call!(xor_si64(2, -1328271339354574848)), -1328271339354574846); - assert_eq!(call!(xor_si64(-1328271339354574848, 3)), -1328271339354574845); - assert_eq!(call!(xor_si64(3, -1328271339354574848)), -1328271339354574845); - assert_eq!(call!(xor_si64(-1328271339354574848, 4)), -1328271339354574844); - assert_eq!(call!(xor_si64(4, -1328271339354574848)), -1328271339354574844); - assert_eq!(call!(xor_si64(-9223372036854775808, 9223372036854775806)), -2); - assert_eq!(call!(xor_si64(-9223372036854775807, 9223372036854775807)), -2); - assert_eq!(call!(xor_si64(9223372036854775806, -9223372036854775808)), -2); - assert_eq!(call!(xor_si64(9223372036854775807, -9223372036854775807)), -2); - assert_eq!(call!(xor_si64(-9223372036854775808, 9223372036854775807)), -1); - assert_eq!(call!(xor_si64(-9223372036854775807, 9223372036854775806)), -1); - assert_eq!(call!(xor_si64(9223372036854775806, -9223372036854775807)), -1); - assert_eq!(call!(xor_si64(9223372036854775807, -9223372036854775808)), -1); - assert_eq!(call!(xor_si64(-9223372036854775808, -9223372036854775808)), 0); - assert_eq!(call!(xor_si64(-9223372036854775807, -9223372036854775807)), 0); - assert_eq!(call!(xor_si64(-1741927215160008704, -1741927215160008704)), 0); - assert_eq!(call!(xor_si64(-1328271339354574848, -1328271339354574848)), 0); - assert_eq!(call!(xor_si64(0, 0)), 0); - assert_eq!(call!(xor_si64(1, 1)), 0); - assert_eq!(call!(xor_si64(2, 2)), 0); - assert_eq!(call!(xor_si64(3, 3)), 0); - assert_eq!(call!(xor_si64(4, 4)), 0); - assert_eq!(call!(xor_si64(5577148965131116544, 5577148965131116544)), 0); - assert_eq!(call!(xor_si64(9223372036854775806, 9223372036854775806)), 0); - assert_eq!(call!(xor_si64(9223372036854775807, 9223372036854775807)), 0); - assert_eq!(call!(xor_si64(-9223372036854775808, -9223372036854775807)), 1); - assert_eq!(call!(xor_si64(-9223372036854775807, -9223372036854775808)), 1); - assert_eq!(call!(xor_si64(0, 1)), 1); - assert_eq!(call!(xor_si64(1, 0)), 1); - assert_eq!(call!(xor_si64(2, 3)), 1); - assert_eq!(call!(xor_si64(3, 2)), 1); - assert_eq!(call!(xor_si64(9223372036854775806, 9223372036854775807)), 1); - assert_eq!(call!(xor_si64(9223372036854775807, 9223372036854775806)), 1); - assert_eq!(call!(xor_si64(0, 2)), 2); - assert_eq!(call!(xor_si64(1, 3)), 2); - assert_eq!(call!(xor_si64(2, 0)), 2); - assert_eq!(call!(xor_si64(3, 1)), 2); - assert_eq!(call!(xor_si64(0, 3)), 3); - assert_eq!(call!(xor_si64(1, 2)), 3); - assert_eq!(call!(xor_si64(2, 1)), 3); - assert_eq!(call!(xor_si64(3, 0)), 3); - assert_eq!(call!(xor_si64(0, 4)), 4); - assert_eq!(call!(xor_si64(4, 0)), 4); - assert_eq!(call!(xor_si64(1, 4)), 5); - assert_eq!(call!(xor_si64(4, 1)), 5); - assert_eq!(call!(xor_si64(2, 4)), 6); - assert_eq!(call!(xor_si64(4, 2)), 6); - assert_eq!(call!(xor_si64(3, 4)), 7); - assert_eq!(call!(xor_si64(4, 3)), 7); - assert_eq!(call!(xor_si64(-1741927215160008704, -1328271339354574848)), 739265629478801408); - assert_eq!(call!(xor_si64(-1328271339354574848, -1741927215160008704)), 739265629478801408); - assert_eq!(call!(xor_si64(5577148965131116544, 9223372036854775806)), 3646223071723659262); - assert_eq!(call!(xor_si64(9223372036854775806, 5577148965131116544)), 3646223071723659262); - assert_eq!(call!(xor_si64(5577148965131116544, 9223372036854775807)), 3646223071723659263); - assert_eq!(call!(xor_si64(9223372036854775807, 5577148965131116544)), 3646223071723659263); - assert_eq!(call!(xor_si64(0, 5577148965131116544)), 5577148965131116544); - assert_eq!(call!(xor_si64(5577148965131116544, 0)), 5577148965131116544); - assert_eq!(call!(xor_si64(1, 5577148965131116544)), 5577148965131116545); - assert_eq!(call!(xor_si64(5577148965131116544, 1)), 5577148965131116545); - assert_eq!(call!(xor_si64(2, 5577148965131116544)), 5577148965131116546); - assert_eq!(call!(xor_si64(5577148965131116544, 2)), 5577148965131116546); - assert_eq!(call!(xor_si64(3, 5577148965131116544)), 5577148965131116547); - assert_eq!(call!(xor_si64(5577148965131116544, 3)), 5577148965131116547); - assert_eq!(call!(xor_si64(4, 5577148965131116544)), 5577148965131116548); - assert_eq!(call!(xor_si64(5577148965131116544, 4)), 5577148965131116548); - assert_eq!(call!(xor_si64(-9223372036854775808, -1741927215160008704)), 7481444821694767104); - assert_eq!(call!(xor_si64(-1741927215160008704, -9223372036854775808)), 7481444821694767104); - assert_eq!(call!(xor_si64(-9223372036854775807, -1741927215160008704)), 7481444821694767105); - assert_eq!(call!(xor_si64(-1741927215160008704, -9223372036854775807)), 7481444821694767105); - assert_eq!(call!(xor_si64(-9223372036854775808, -1328271339354574848)), 7895100697500200960); - assert_eq!(call!(xor_si64(-1328271339354574848, -9223372036854775808)), 7895100697500200960); - assert_eq!(call!(xor_si64(-9223372036854775807, -1328271339354574848)), 7895100697500200961); - assert_eq!(call!(xor_si64(-1328271339354574848, -9223372036854775807)), 7895100697500200961); - assert_eq!(call!(xor_si64(4, 9223372036854775806)), 9223372036854775802); - assert_eq!(call!(xor_si64(9223372036854775806, 4)), 9223372036854775802); - assert_eq!(call!(xor_si64(4, 9223372036854775807)), 9223372036854775803); - assert_eq!(call!(xor_si64(9223372036854775807, 4)), 9223372036854775803); - assert_eq!(call!(xor_si64(2, 9223372036854775806)), 9223372036854775804); - assert_eq!(call!(xor_si64(3, 9223372036854775807)), 9223372036854775804); - assert_eq!(call!(xor_si64(9223372036854775806, 2)), 9223372036854775804); - assert_eq!(call!(xor_si64(9223372036854775807, 3)), 9223372036854775804); - assert_eq!(call!(xor_si64(2, 9223372036854775807)), 9223372036854775805); - assert_eq!(call!(xor_si64(3, 9223372036854775806)), 9223372036854775805); - assert_eq!(call!(xor_si64(9223372036854775806, 3)), 9223372036854775805); - assert_eq!(call!(xor_si64(9223372036854775807, 2)), 9223372036854775805); - assert_eq!(call!(xor_si64(0, 9223372036854775806)), 9223372036854775806); - assert_eq!(call!(xor_si64(1, 9223372036854775807)), 9223372036854775806); - assert_eq!(call!(xor_si64(9223372036854775806, 0)), 9223372036854775806); - assert_eq!(call!(xor_si64(9223372036854775807, 1)), 9223372036854775806); - assert_eq!(call!(xor_si64(0, 9223372036854775807)), 9223372036854775807); - assert_eq!(call!(xor_si64(1, 9223372036854775806)), 9223372036854775807); - assert_eq!(call!(xor_si64(9223372036854775806, 1)), 9223372036854775807); - assert_eq!(call!(xor_si64(9223372036854775807, 0)), 9223372036854775807); - assert_eq!(call!(xor_si8(-128, 0)), -128); - assert_eq!(call!(xor_si8(-127, 1)), -128); - assert_eq!(call!(xor_si8(0, -128)), -128); - assert_eq!(call!(xor_si8(1, -127)), -128); - assert_eq!(call!(xor_si8(-128, 1)), -127); - assert_eq!(call!(xor_si8(-127, 0)), -127); - assert_eq!(call!(xor_si8(0, -127)), -127); - assert_eq!(call!(xor_si8(1, -128)), -127); - assert_eq!(call!(xor_si8(-128, 2)), -126); - assert_eq!(call!(xor_si8(-127, 3)), -126); - assert_eq!(call!(xor_si8(2, -128)), -126); - assert_eq!(call!(xor_si8(3, -127)), -126); - assert_eq!(call!(xor_si8(-128, 3)), -125); - assert_eq!(call!(xor_si8(-127, 2)), -125); - assert_eq!(call!(xor_si8(2, -127)), -125); - assert_eq!(call!(xor_si8(3, -128)), -125); - assert_eq!(call!(xor_si8(-128, 4)), -124); - assert_eq!(call!(xor_si8(4, -128)), -124); - assert_eq!(call!(xor_si8(-127, 4)), -123); - assert_eq!(call!(xor_si8(4, -127)), -123); - assert_eq!(call!(xor_si8(-128, 16)), -112); - assert_eq!(call!(xor_si8(16, -128)), -112); - assert_eq!(call!(xor_si8(-127, 16)), -111); - assert_eq!(call!(xor_si8(16, -127)), -111); - assert_eq!(call!(xor_si8(-128, 126)), -2); - assert_eq!(call!(xor_si8(-127, 127)), -2); - assert_eq!(call!(xor_si8(126, -128)), -2); - assert_eq!(call!(xor_si8(127, -127)), -2); - assert_eq!(call!(xor_si8(-128, 127)), -1); - assert_eq!(call!(xor_si8(-127, 126)), -1); - assert_eq!(call!(xor_si8(126, -127)), -1); - assert_eq!(call!(xor_si8(127, -128)), -1); - assert_eq!(call!(xor_si8(-128, -128)), 0); - assert_eq!(call!(xor_si8(-127, -127)), 0); - assert_eq!(call!(xor_si8(0, 0)), 0); - assert_eq!(call!(xor_si8(1, 1)), 0); - assert_eq!(call!(xor_si8(2, 2)), 0); - assert_eq!(call!(xor_si8(3, 3)), 0); - assert_eq!(call!(xor_si8(4, 4)), 0); - assert_eq!(call!(xor_si8(16, 16)), 0); - assert_eq!(call!(xor_si8(126, 126)), 0); - assert_eq!(call!(xor_si8(127, 127)), 0); - assert_eq!(call!(xor_si8(-128, -127)), 1); - assert_eq!(call!(xor_si8(-127, -128)), 1); - assert_eq!(call!(xor_si8(0, 1)), 1); - assert_eq!(call!(xor_si8(1, 0)), 1); - assert_eq!(call!(xor_si8(2, 3)), 1); - assert_eq!(call!(xor_si8(3, 2)), 1); - assert_eq!(call!(xor_si8(126, 127)), 1); - assert_eq!(call!(xor_si8(127, 126)), 1); - assert_eq!(call!(xor_si8(0, 2)), 2); - assert_eq!(call!(xor_si8(1, 3)), 2); - assert_eq!(call!(xor_si8(2, 0)), 2); - assert_eq!(call!(xor_si8(3, 1)), 2); - assert_eq!(call!(xor_si8(0, 3)), 3); - assert_eq!(call!(xor_si8(1, 2)), 3); - assert_eq!(call!(xor_si8(2, 1)), 3); - assert_eq!(call!(xor_si8(3, 0)), 3); - assert_eq!(call!(xor_si8(0, 4)), 4); - assert_eq!(call!(xor_si8(4, 0)), 4); - assert_eq!(call!(xor_si8(1, 4)), 5); - assert_eq!(call!(xor_si8(4, 1)), 5); - assert_eq!(call!(xor_si8(2, 4)), 6); - assert_eq!(call!(xor_si8(4, 2)), 6); - assert_eq!(call!(xor_si8(3, 4)), 7); - assert_eq!(call!(xor_si8(4, 3)), 7); - assert_eq!(call!(xor_si8(0, 16)), 16); - assert_eq!(call!(xor_si8(16, 0)), 16); - assert_eq!(call!(xor_si8(1, 16)), 17); - assert_eq!(call!(xor_si8(16, 1)), 17); - assert_eq!(call!(xor_si8(2, 16)), 18); - assert_eq!(call!(xor_si8(16, 2)), 18); - assert_eq!(call!(xor_si8(3, 16)), 19); - assert_eq!(call!(xor_si8(16, 3)), 19); - assert_eq!(call!(xor_si8(4, 16)), 20); - assert_eq!(call!(xor_si8(16, 4)), 20); - assert_eq!(call!(xor_si8(16, 126)), 110); - assert_eq!(call!(xor_si8(126, 16)), 110); - assert_eq!(call!(xor_si8(16, 127)), 111); - assert_eq!(call!(xor_si8(127, 16)), 111); - assert_eq!(call!(xor_si8(4, 126)), 122); - assert_eq!(call!(xor_si8(126, 4)), 122); - assert_eq!(call!(xor_si8(4, 127)), 123); - assert_eq!(call!(xor_si8(127, 4)), 123); - assert_eq!(call!(xor_si8(2, 126)), 124); - assert_eq!(call!(xor_si8(3, 127)), 124); - assert_eq!(call!(xor_si8(126, 2)), 124); - assert_eq!(call!(xor_si8(127, 3)), 124); - assert_eq!(call!(xor_si8(2, 127)), 125); - assert_eq!(call!(xor_si8(3, 126)), 125); - assert_eq!(call!(xor_si8(126, 3)), 125); - assert_eq!(call!(xor_si8(127, 2)), 125); - assert_eq!(call!(xor_si8(0, 126)), 126); - assert_eq!(call!(xor_si8(1, 127)), 126); - assert_eq!(call!(xor_si8(126, 0)), 126); - assert_eq!(call!(xor_si8(127, 1)), 126); - assert_eq!(call!(xor_si8(0, 127)), 127); - assert_eq!(call!(xor_si8(1, 126)), 127); - assert_eq!(call!(xor_si8(126, 1)), 127); - assert_eq!(call!(xor_si8(127, 0)), 127); - assert_eq!(call!(xor_ui16(0, 0)), 0); - assert_eq!(call!(xor_ui16(1, 1)), 0); - assert_eq!(call!(xor_ui16(2, 2)), 0); - assert_eq!(call!(xor_ui16(3, 3)), 0); - assert_eq!(call!(xor_ui16(4, 4)), 0); - assert_eq!(call!(xor_ui16(1717, 1717)), 0); - assert_eq!(call!(xor_ui16(17988, 17988)), 0); - assert_eq!(call!(xor_ui16(65096, 65096)), 0); - assert_eq!(call!(xor_ui16(65534, 65534)), 0); - assert_eq!(call!(xor_ui16(65535, 65535)), 0); - assert_eq!(call!(xor_ui16(0, 1)), 1); - assert_eq!(call!(xor_ui16(1, 0)), 1); - assert_eq!(call!(xor_ui16(2, 3)), 1); - assert_eq!(call!(xor_ui16(3, 2)), 1); - assert_eq!(call!(xor_ui16(65534, 65535)), 1); - assert_eq!(call!(xor_ui16(65535, 65534)), 1); - assert_eq!(call!(xor_ui16(0, 2)), 2); - assert_eq!(call!(xor_ui16(1, 3)), 2); - assert_eq!(call!(xor_ui16(2, 0)), 2); - assert_eq!(call!(xor_ui16(3, 1)), 2); - assert_eq!(call!(xor_ui16(0, 3)), 3); - assert_eq!(call!(xor_ui16(1, 2)), 3); - assert_eq!(call!(xor_ui16(2, 1)), 3); - assert_eq!(call!(xor_ui16(3, 0)), 3); - assert_eq!(call!(xor_ui16(0, 4)), 4); - assert_eq!(call!(xor_ui16(4, 0)), 4); - assert_eq!(call!(xor_ui16(1, 4)), 5); - assert_eq!(call!(xor_ui16(4, 1)), 5); - assert_eq!(call!(xor_ui16(2, 4)), 6); - assert_eq!(call!(xor_ui16(4, 2)), 6); - assert_eq!(call!(xor_ui16(3, 4)), 7); - assert_eq!(call!(xor_ui16(4, 3)), 7); - assert_eq!(call!(xor_ui16(65096, 65534)), 438); - assert_eq!(call!(xor_ui16(65534, 65096)), 438); - assert_eq!(call!(xor_ui16(65096, 65535)), 439); - assert_eq!(call!(xor_ui16(65535, 65096)), 439); - assert_eq!(call!(xor_ui16(4, 1717)), 1713); - assert_eq!(call!(xor_ui16(1717, 4)), 1713); - assert_eq!(call!(xor_ui16(1, 1717)), 1716); - assert_eq!(call!(xor_ui16(1717, 1)), 1716); - assert_eq!(call!(xor_ui16(0, 1717)), 1717); - assert_eq!(call!(xor_ui16(1717, 0)), 1717); - assert_eq!(call!(xor_ui16(3, 1717)), 1718); - assert_eq!(call!(xor_ui16(1717, 3)), 1718); - assert_eq!(call!(xor_ui16(2, 1717)), 1719); - assert_eq!(call!(xor_ui16(1717, 2)), 1719); - assert_eq!(call!(xor_ui16(1717, 17988)), 16625); - assert_eq!(call!(xor_ui16(17988, 1717)), 16625); - assert_eq!(call!(xor_ui16(4, 17988)), 17984); - assert_eq!(call!(xor_ui16(17988, 4)), 17984); - assert_eq!(call!(xor_ui16(0, 17988)), 17988); - assert_eq!(call!(xor_ui16(17988, 0)), 17988); - assert_eq!(call!(xor_ui16(1, 17988)), 17989); - assert_eq!(call!(xor_ui16(17988, 1)), 17989); - assert_eq!(call!(xor_ui16(2, 17988)), 17990); - assert_eq!(call!(xor_ui16(17988, 2)), 17990); - assert_eq!(call!(xor_ui16(3, 17988)), 17991); - assert_eq!(call!(xor_ui16(17988, 3)), 17991); - assert_eq!(call!(xor_ui16(17988, 65096)), 47116); - assert_eq!(call!(xor_ui16(65096, 17988)), 47116); - assert_eq!(call!(xor_ui16(17988, 65534)), 47546); - assert_eq!(call!(xor_ui16(65534, 17988)), 47546); - assert_eq!(call!(xor_ui16(17988, 65535)), 47547); - assert_eq!(call!(xor_ui16(65535, 17988)), 47547); - assert_eq!(call!(xor_ui16(1717, 65096)), 63741); - assert_eq!(call!(xor_ui16(65096, 1717)), 63741); - assert_eq!(call!(xor_ui16(1717, 65535)), 63818); - assert_eq!(call!(xor_ui16(65535, 1717)), 63818); - assert_eq!(call!(xor_ui16(1717, 65534)), 63819); - assert_eq!(call!(xor_ui16(65534, 1717)), 63819); - assert_eq!(call!(xor_ui16(0, 65096)), 65096); - assert_eq!(call!(xor_ui16(65096, 0)), 65096); - assert_eq!(call!(xor_ui16(1, 65096)), 65097); - assert_eq!(call!(xor_ui16(65096, 1)), 65097); - assert_eq!(call!(xor_ui16(2, 65096)), 65098); - assert_eq!(call!(xor_ui16(65096, 2)), 65098); - assert_eq!(call!(xor_ui16(3, 65096)), 65099); - assert_eq!(call!(xor_ui16(65096, 3)), 65099); - assert_eq!(call!(xor_ui16(4, 65096)), 65100); - assert_eq!(call!(xor_ui16(65096, 4)), 65100); - assert_eq!(call!(xor_ui16(4, 65534)), 65530); - assert_eq!(call!(xor_ui16(65534, 4)), 65530); - assert_eq!(call!(xor_ui16(4, 65535)), 65531); - assert_eq!(call!(xor_ui16(65535, 4)), 65531); - assert_eq!(call!(xor_ui16(2, 65534)), 65532); - assert_eq!(call!(xor_ui16(3, 65535)), 65532); - assert_eq!(call!(xor_ui16(65534, 2)), 65532); - assert_eq!(call!(xor_ui16(65535, 3)), 65532); - assert_eq!(call!(xor_ui16(2, 65535)), 65533); - assert_eq!(call!(xor_ui16(3, 65534)), 65533); - assert_eq!(call!(xor_ui16(65534, 3)), 65533); - assert_eq!(call!(xor_ui16(65535, 2)), 65533); - assert_eq!(call!(xor_ui16(0, 65534)), 65534); - assert_eq!(call!(xor_ui16(1, 65535)), 65534); - assert_eq!(call!(xor_ui16(65534, 0)), 65534); - assert_eq!(call!(xor_ui16(65535, 1)), 65534); - assert_eq!(call!(xor_ui16(0, 65535)), 65535); - assert_eq!(call!(xor_ui16(1, 65534)), 65535); - assert_eq!(call!(xor_ui16(65534, 1)), 65535); - assert_eq!(call!(xor_ui16(65535, 0)), 65535); - assert_eq!(call!(xor_ui32(0, 0)), 0); - assert_eq!(call!(xor_ui32(1, 1)), 0); - assert_eq!(call!(xor_ui32(2, 2)), 0); - assert_eq!(call!(xor_ui32(3, 3)), 0); - assert_eq!(call!(xor_ui32(4, 4)), 0); - assert_eq!(call!(xor_ui32(2119154652, 2119154652)), 0); - assert_eq!(call!(xor_ui32(3002788344, 3002788344)), 0); - assert_eq!(call!(xor_ui32(3482297128, 3482297128)), 0); - assert_eq!(call!(xor_ui32(4294967294, 4294967294)), 0); - assert_eq!(call!(xor_ui32(4294967295, 4294967295)), 0); - assert_eq!(call!(xor_ui32(0, 1)), 1); - assert_eq!(call!(xor_ui32(1, 0)), 1); - assert_eq!(call!(xor_ui32(2, 3)), 1); - assert_eq!(call!(xor_ui32(3, 2)), 1); - assert_eq!(call!(xor_ui32(4294967294, 4294967295)), 1); - assert_eq!(call!(xor_ui32(4294967295, 4294967294)), 1); - assert_eq!(call!(xor_ui32(0, 2)), 2); - assert_eq!(call!(xor_ui32(1, 3)), 2); - assert_eq!(call!(xor_ui32(2, 0)), 2); - assert_eq!(call!(xor_ui32(3, 1)), 2); - assert_eq!(call!(xor_ui32(0, 3)), 3); - assert_eq!(call!(xor_ui32(1, 2)), 3); - assert_eq!(call!(xor_ui32(2, 1)), 3); - assert_eq!(call!(xor_ui32(3, 0)), 3); - assert_eq!(call!(xor_ui32(0, 4)), 4); - assert_eq!(call!(xor_ui32(4, 0)), 4); - assert_eq!(call!(xor_ui32(1, 4)), 5); - assert_eq!(call!(xor_ui32(4, 1)), 5); - assert_eq!(call!(xor_ui32(2, 4)), 6); - assert_eq!(call!(xor_ui32(4, 2)), 6); - assert_eq!(call!(xor_ui32(3, 4)), 7); - assert_eq!(call!(xor_ui32(4, 3)), 7); - assert_eq!(call!(xor_ui32(3482297128, 4294967294)), 812670166); - assert_eq!(call!(xor_ui32(4294967294, 3482297128)), 812670166); - assert_eq!(call!(xor_ui32(3482297128, 4294967295)), 812670167); - assert_eq!(call!(xor_ui32(4294967295, 3482297128)), 812670167); - assert_eq!(call!(xor_ui32(3002788344, 4294967294)), 1292178950); - assert_eq!(call!(xor_ui32(4294967294, 3002788344)), 1292178950); - assert_eq!(call!(xor_ui32(3002788344, 4294967295)), 1292178951); - assert_eq!(call!(xor_ui32(4294967295, 3002788344)), 1292178951); - assert_eq!(call!(xor_ui32(3002788344, 3482297128)), 2104838864); - assert_eq!(call!(xor_ui32(3482297128, 3002788344)), 2104838864); - assert_eq!(call!(xor_ui32(4, 2119154652)), 2119154648); - assert_eq!(call!(xor_ui32(2119154652, 4)), 2119154648); - assert_eq!(call!(xor_ui32(0, 2119154652)), 2119154652); - assert_eq!(call!(xor_ui32(2119154652, 0)), 2119154652); - assert_eq!(call!(xor_ui32(1, 2119154652)), 2119154653); - assert_eq!(call!(xor_ui32(2119154652, 1)), 2119154653); - assert_eq!(call!(xor_ui32(2, 2119154652)), 2119154654); - assert_eq!(call!(xor_ui32(2119154652, 2)), 2119154654); - assert_eq!(call!(xor_ui32(3, 2119154652)), 2119154655); - assert_eq!(call!(xor_ui32(2119154652, 3)), 2119154655); - assert_eq!(call!(xor_ui32(2119154652, 4294967294)), 2175812642); - assert_eq!(call!(xor_ui32(4294967294, 2119154652)), 2175812642); - assert_eq!(call!(xor_ui32(2119154652, 4294967295)), 2175812643); - assert_eq!(call!(xor_ui32(4294967295, 2119154652)), 2175812643); - assert_eq!(call!(xor_ui32(2119154652, 3482297128)), 2982156532); - assert_eq!(call!(xor_ui32(3482297128, 2119154652)), 2982156532); - assert_eq!(call!(xor_ui32(0, 3002788344)), 3002788344); - assert_eq!(call!(xor_ui32(3002788344, 0)), 3002788344); - assert_eq!(call!(xor_ui32(1, 3002788344)), 3002788345); - assert_eq!(call!(xor_ui32(3002788344, 1)), 3002788345); - assert_eq!(call!(xor_ui32(2, 3002788344)), 3002788346); - assert_eq!(call!(xor_ui32(3002788344, 2)), 3002788346); - assert_eq!(call!(xor_ui32(3, 3002788344)), 3002788347); - assert_eq!(call!(xor_ui32(3002788344, 3)), 3002788347); - assert_eq!(call!(xor_ui32(4, 3002788344)), 3002788348); - assert_eq!(call!(xor_ui32(3002788344, 4)), 3002788348); - assert_eq!(call!(xor_ui32(2119154652, 3002788344)), 3434435108); - assert_eq!(call!(xor_ui32(3002788344, 2119154652)), 3434435108); - assert_eq!(call!(xor_ui32(0, 3482297128)), 3482297128); - assert_eq!(call!(xor_ui32(3482297128, 0)), 3482297128); - assert_eq!(call!(xor_ui32(1, 3482297128)), 3482297129); - assert_eq!(call!(xor_ui32(3482297128, 1)), 3482297129); - assert_eq!(call!(xor_ui32(2, 3482297128)), 3482297130); - assert_eq!(call!(xor_ui32(3482297128, 2)), 3482297130); - assert_eq!(call!(xor_ui32(3, 3482297128)), 3482297131); - assert_eq!(call!(xor_ui32(3482297128, 3)), 3482297131); - assert_eq!(call!(xor_ui32(4, 3482297128)), 3482297132); - assert_eq!(call!(xor_ui32(3482297128, 4)), 3482297132); - assert_eq!(call!(xor_ui32(4, 4294967294)), 4294967290); - assert_eq!(call!(xor_ui32(4294967294, 4)), 4294967290); - assert_eq!(call!(xor_ui32(4, 4294967295)), 4294967291); - assert_eq!(call!(xor_ui32(4294967295, 4)), 4294967291); - assert_eq!(call!(xor_ui32(2, 4294967294)), 4294967292); - assert_eq!(call!(xor_ui32(3, 4294967295)), 4294967292); - assert_eq!(call!(xor_ui32(4294967294, 2)), 4294967292); - assert_eq!(call!(xor_ui32(4294967295, 3)), 4294967292); - assert_eq!(call!(xor_ui32(2, 4294967295)), 4294967293); - assert_eq!(call!(xor_ui32(3, 4294967294)), 4294967293); - assert_eq!(call!(xor_ui32(4294967294, 3)), 4294967293); - assert_eq!(call!(xor_ui32(4294967295, 2)), 4294967293); - assert_eq!(call!(xor_ui32(0, 4294967294)), 4294967294); - assert_eq!(call!(xor_ui32(1, 4294967295)), 4294967294); - assert_eq!(call!(xor_ui32(4294967294, 0)), 4294967294); - assert_eq!(call!(xor_ui32(4294967295, 1)), 4294967294); - assert_eq!(call!(xor_ui32(0, 4294967295)), 4294967295); - assert_eq!(call!(xor_ui32(1, 4294967294)), 4294967295); - assert_eq!(call!(xor_ui32(4294967294, 1)), 4294967295); - assert_eq!(call!(xor_ui32(4294967295, 0)), 4294967295); - assert_eq!(call!(xor_ui64(0, 0)), 0); - assert_eq!(call!(xor_ui64(1, 1)), 0); - assert_eq!(call!(xor_ui64(2, 2)), 0); - assert_eq!(call!(xor_ui64(3, 3)), 0); - assert_eq!(call!(xor_ui64(4, 4)), 0); - assert_eq!(call!(xor_ui64(191084152064409600, 191084152064409600)), 0); - assert_eq!(call!(xor_ui64(11015955194427482112, 11015955194427482112)), 0); - assert_eq!(call!(xor_ui64(16990600415051759616, 16990600415051759616)), 0); - assert_eq!(call!(xor_ui64(18446744073709551614, 18446744073709551614)), 0); - assert_eq!(call!(xor_ui64(18446744073709551615, 18446744073709551615)), 0); - assert_eq!(call!(xor_ui64(0, 1)), 1); - assert_eq!(call!(xor_ui64(1, 0)), 1); - assert_eq!(call!(xor_ui64(2, 3)), 1); - assert_eq!(call!(xor_ui64(3, 2)), 1); - assert_eq!(call!(xor_ui64(18446744073709551614, 18446744073709551615)), 1); - assert_eq!(call!(xor_ui64(18446744073709551615, 18446744073709551614)), 1); - assert_eq!(call!(xor_ui64(0, 2)), 2); - assert_eq!(call!(xor_ui64(1, 3)), 2); - assert_eq!(call!(xor_ui64(2, 0)), 2); - assert_eq!(call!(xor_ui64(3, 1)), 2); - assert_eq!(call!(xor_ui64(0, 3)), 3); - assert_eq!(call!(xor_ui64(1, 2)), 3); - assert_eq!(call!(xor_ui64(2, 1)), 3); - assert_eq!(call!(xor_ui64(3, 0)), 3); - assert_eq!(call!(xor_ui64(0, 4)), 4); - assert_eq!(call!(xor_ui64(4, 0)), 4); - assert_eq!(call!(xor_ui64(1, 4)), 5); - assert_eq!(call!(xor_ui64(4, 1)), 5); - assert_eq!(call!(xor_ui64(2, 4)), 6); - assert_eq!(call!(xor_ui64(4, 2)), 6); - assert_eq!(call!(xor_ui64(3, 4)), 7); - assert_eq!(call!(xor_ui64(4, 3)), 7); - assert_eq!(call!(xor_ui64(0, 191084152064409600)), 191084152064409600); - assert_eq!(call!(xor_ui64(191084152064409600, 0)), 191084152064409600); - assert_eq!(call!(xor_ui64(1, 191084152064409600)), 191084152064409601); - assert_eq!(call!(xor_ui64(191084152064409600, 1)), 191084152064409601); - assert_eq!(call!(xor_ui64(2, 191084152064409600)), 191084152064409602); - assert_eq!(call!(xor_ui64(191084152064409600, 2)), 191084152064409602); - assert_eq!(call!(xor_ui64(3, 191084152064409600)), 191084152064409603); - assert_eq!(call!(xor_ui64(191084152064409600, 3)), 191084152064409603); - assert_eq!(call!(xor_ui64(4, 191084152064409600)), 191084152064409604); - assert_eq!(call!(xor_ui64(191084152064409600, 4)), 191084152064409604); - assert_eq!(call!(xor_ui64(16990600415051759616, 18446744073709551614)), 1456143658657791998); - assert_eq!(call!(xor_ui64(18446744073709551614, 16990600415051759616)), 1456143658657791998); - assert_eq!(call!(xor_ui64(16990600415051759616, 18446744073709551615)), 1456143658657791999); - assert_eq!(call!(xor_ui64(18446744073709551615, 16990600415051759616)), 1456143658657791999); - assert_eq!(call!(xor_ui64(11015955194427482112, 18446744073709551614)), 7430788879282069502); - assert_eq!(call!(xor_ui64(18446744073709551614, 11015955194427482112)), 7430788879282069502); - assert_eq!(call!(xor_ui64(11015955194427482112, 18446744073709551615)), 7430788879282069503); - assert_eq!(call!(xor_ui64(18446744073709551615, 11015955194427482112)), 7430788879282069503); - assert_eq!(call!(xor_ui64(11015955194427482112, 16990600415051759616)), 8298504554647642112); - assert_eq!(call!(xor_ui64(16990600415051759616, 11015955194427482112)), 8298504554647642112); - assert_eq!(call!(xor_ui64(0, 11015955194427482112)), 11015955194427482112); - assert_eq!(call!(xor_ui64(11015955194427482112, 0)), 11015955194427482112); - assert_eq!(call!(xor_ui64(1, 11015955194427482112)), 11015955194427482113); - assert_eq!(call!(xor_ui64(11015955194427482112, 1)), 11015955194427482113); - assert_eq!(call!(xor_ui64(2, 11015955194427482112)), 11015955194427482114); - assert_eq!(call!(xor_ui64(11015955194427482112, 2)), 11015955194427482114); - assert_eq!(call!(xor_ui64(3, 11015955194427482112)), 11015955194427482115); - assert_eq!(call!(xor_ui64(11015955194427482112, 3)), 11015955194427482115); - assert_eq!(call!(xor_ui64(4, 11015955194427482112)), 11015955194427482116); - assert_eq!(call!(xor_ui64(11015955194427482112, 4)), 11015955194427482116); - assert_eq!(call!(xor_ui64(191084152064409600, 11015955194427482112)), 11116668269601857536); - assert_eq!(call!(xor_ui64(11015955194427482112, 191084152064409600)), 11116668269601857536); - assert_eq!(call!(xor_ui64(191084152064409600, 16990600415051759616)), 16819927597248036864); - assert_eq!(call!(xor_ui64(16990600415051759616, 191084152064409600)), 16819927597248036864); - assert_eq!(call!(xor_ui64(0, 16990600415051759616)), 16990600415051759616); - assert_eq!(call!(xor_ui64(16990600415051759616, 0)), 16990600415051759616); - assert_eq!(call!(xor_ui64(1, 16990600415051759616)), 16990600415051759617); - assert_eq!(call!(xor_ui64(16990600415051759616, 1)), 16990600415051759617); - assert_eq!(call!(xor_ui64(2, 16990600415051759616)), 16990600415051759618); - assert_eq!(call!(xor_ui64(16990600415051759616, 2)), 16990600415051759618); - assert_eq!(call!(xor_ui64(3, 16990600415051759616)), 16990600415051759619); - assert_eq!(call!(xor_ui64(16990600415051759616, 3)), 16990600415051759619); - assert_eq!(call!(xor_ui64(4, 16990600415051759616)), 16990600415051759620); - assert_eq!(call!(xor_ui64(16990600415051759616, 4)), 16990600415051759620); - assert_eq!(call!(xor_ui64(191084152064409600, 18446744073709551614)), 18255659921645142014); - assert_eq!(call!(xor_ui64(18446744073709551614, 191084152064409600)), 18255659921645142014); - assert_eq!(call!(xor_ui64(191084152064409600, 18446744073709551615)), 18255659921645142015); - assert_eq!(call!(xor_ui64(18446744073709551615, 191084152064409600)), 18255659921645142015); - assert_eq!(call!(xor_ui64(4, 18446744073709551614)), 18446744073709551610); - assert_eq!(call!(xor_ui64(18446744073709551614, 4)), 18446744073709551610); - assert_eq!(call!(xor_ui64(4, 18446744073709551615)), 18446744073709551611); - assert_eq!(call!(xor_ui64(18446744073709551615, 4)), 18446744073709551611); - assert_eq!(call!(xor_ui64(2, 18446744073709551614)), 18446744073709551612); - assert_eq!(call!(xor_ui64(3, 18446744073709551615)), 18446744073709551612); - assert_eq!(call!(xor_ui64(18446744073709551614, 2)), 18446744073709551612); - assert_eq!(call!(xor_ui64(18446744073709551615, 3)), 18446744073709551612); - assert_eq!(call!(xor_ui64(2, 18446744073709551615)), 18446744073709551613); - assert_eq!(call!(xor_ui64(3, 18446744073709551614)), 18446744073709551613); - assert_eq!(call!(xor_ui64(18446744073709551614, 3)), 18446744073709551613); - assert_eq!(call!(xor_ui64(18446744073709551615, 2)), 18446744073709551613); - assert_eq!(call!(xor_ui64(0, 18446744073709551614)), 18446744073709551614); - assert_eq!(call!(xor_ui64(1, 18446744073709551615)), 18446744073709551614); - assert_eq!(call!(xor_ui64(18446744073709551614, 0)), 18446744073709551614); - assert_eq!(call!(xor_ui64(18446744073709551615, 1)), 18446744073709551614); - assert_eq!(call!(xor_ui64(0, 18446744073709551615)), 18446744073709551615); - assert_eq!(call!(xor_ui64(1, 18446744073709551614)), 18446744073709551615); - assert_eq!(call!(xor_ui64(18446744073709551614, 1)), 18446744073709551615); - assert_eq!(call!(xor_ui64(18446744073709551615, 0)), 18446744073709551615); - assert_eq!(call!(xor_ui8(0, 0)), 0); - assert_eq!(call!(xor_ui8(1, 1)), 0); - assert_eq!(call!(xor_ui8(2, 2)), 0); - assert_eq!(call!(xor_ui8(3, 3)), 0); - assert_eq!(call!(xor_ui8(4, 4)), 0); - assert_eq!(call!(xor_ui8(72, 72)), 0); - assert_eq!(call!(xor_ui8(100, 100)), 0); - assert_eq!(call!(xor_ui8(162, 162)), 0); - assert_eq!(call!(xor_ui8(254, 254)), 0); - assert_eq!(call!(xor_ui8(255, 255)), 0); - assert_eq!(call!(xor_ui8(0, 1)), 1); - assert_eq!(call!(xor_ui8(1, 0)), 1); - assert_eq!(call!(xor_ui8(2, 3)), 1); - assert_eq!(call!(xor_ui8(3, 2)), 1); - assert_eq!(call!(xor_ui8(254, 255)), 1); - assert_eq!(call!(xor_ui8(255, 254)), 1); - assert_eq!(call!(xor_ui8(0, 2)), 2); - assert_eq!(call!(xor_ui8(1, 3)), 2); - assert_eq!(call!(xor_ui8(2, 0)), 2); - assert_eq!(call!(xor_ui8(3, 1)), 2); - assert_eq!(call!(xor_ui8(0, 3)), 3); - assert_eq!(call!(xor_ui8(1, 2)), 3); - assert_eq!(call!(xor_ui8(2, 1)), 3); - assert_eq!(call!(xor_ui8(3, 0)), 3); - assert_eq!(call!(xor_ui8(0, 4)), 4); - assert_eq!(call!(xor_ui8(4, 0)), 4); - assert_eq!(call!(xor_ui8(1, 4)), 5); - assert_eq!(call!(xor_ui8(4, 1)), 5); - assert_eq!(call!(xor_ui8(2, 4)), 6); - assert_eq!(call!(xor_ui8(4, 2)), 6); - assert_eq!(call!(xor_ui8(3, 4)), 7); - assert_eq!(call!(xor_ui8(4, 3)), 7); - assert_eq!(call!(xor_ui8(72, 100)), 44); - assert_eq!(call!(xor_ui8(100, 72)), 44); - assert_eq!(call!(xor_ui8(0, 72)), 72); - assert_eq!(call!(xor_ui8(72, 0)), 72); - assert_eq!(call!(xor_ui8(1, 72)), 73); - assert_eq!(call!(xor_ui8(72, 1)), 73); - assert_eq!(call!(xor_ui8(2, 72)), 74); - assert_eq!(call!(xor_ui8(72, 2)), 74); - assert_eq!(call!(xor_ui8(3, 72)), 75); - assert_eq!(call!(xor_ui8(72, 3)), 75); - assert_eq!(call!(xor_ui8(4, 72)), 76); - assert_eq!(call!(xor_ui8(72, 4)), 76); - assert_eq!(call!(xor_ui8(162, 254)), 92); - assert_eq!(call!(xor_ui8(254, 162)), 92); - assert_eq!(call!(xor_ui8(162, 255)), 93); - assert_eq!(call!(xor_ui8(255, 162)), 93); - assert_eq!(call!(xor_ui8(4, 100)), 96); - assert_eq!(call!(xor_ui8(100, 4)), 96); - assert_eq!(call!(xor_ui8(0, 100)), 100); - assert_eq!(call!(xor_ui8(100, 0)), 100); - assert_eq!(call!(xor_ui8(1, 100)), 101); - assert_eq!(call!(xor_ui8(100, 1)), 101); - assert_eq!(call!(xor_ui8(2, 100)), 102); - assert_eq!(call!(xor_ui8(100, 2)), 102); - assert_eq!(call!(xor_ui8(3, 100)), 103); - assert_eq!(call!(xor_ui8(100, 3)), 103); - assert_eq!(call!(xor_ui8(100, 254)), 154); - assert_eq!(call!(xor_ui8(254, 100)), 154); - assert_eq!(call!(xor_ui8(100, 255)), 155); - assert_eq!(call!(xor_ui8(255, 100)), 155); - assert_eq!(call!(xor_ui8(2, 162)), 160); - assert_eq!(call!(xor_ui8(162, 2)), 160); - assert_eq!(call!(xor_ui8(3, 162)), 161); - assert_eq!(call!(xor_ui8(162, 3)), 161); - assert_eq!(call!(xor_ui8(0, 162)), 162); - assert_eq!(call!(xor_ui8(162, 0)), 162); - assert_eq!(call!(xor_ui8(1, 162)), 163); - assert_eq!(call!(xor_ui8(162, 1)), 163); - assert_eq!(call!(xor_ui8(4, 162)), 166); - assert_eq!(call!(xor_ui8(162, 4)), 166); - assert_eq!(call!(xor_ui8(72, 254)), 182); - assert_eq!(call!(xor_ui8(254, 72)), 182); - assert_eq!(call!(xor_ui8(72, 255)), 183); - assert_eq!(call!(xor_ui8(255, 72)), 183); - assert_eq!(call!(xor_ui8(100, 162)), 198); - assert_eq!(call!(xor_ui8(162, 100)), 198); - assert_eq!(call!(xor_ui8(72, 162)), 234); - assert_eq!(call!(xor_ui8(162, 72)), 234); - assert_eq!(call!(xor_ui8(4, 254)), 250); - assert_eq!(call!(xor_ui8(254, 4)), 250); - assert_eq!(call!(xor_ui8(4, 255)), 251); - assert_eq!(call!(xor_ui8(255, 4)), 251); - assert_eq!(call!(xor_ui8(2, 254)), 252); - assert_eq!(call!(xor_ui8(3, 255)), 252); - assert_eq!(call!(xor_ui8(254, 2)), 252); - assert_eq!(call!(xor_ui8(255, 3)), 252); - assert_eq!(call!(xor_ui8(2, 255)), 253); - assert_eq!(call!(xor_ui8(3, 254)), 253); - assert_eq!(call!(xor_ui8(254, 3)), 253); - assert_eq!(call!(xor_ui8(255, 2)), 253); - assert_eq!(call!(xor_ui8(0, 254)), 254); - assert_eq!(call!(xor_ui8(1, 255)), 254); - assert_eq!(call!(xor_ui8(254, 0)), 254); - assert_eq!(call!(xor_ui8(255, 1)), 254); - assert_eq!(call!(xor_ui8(0, 255)), 255); - assert_eq!(call!(xor_ui8(1, 254)), 255); - assert_eq!(call!(xor_ui8(254, 1)), 255); - assert_eq!(call!(xor_ui8(255, 0)), 255); - } + use crate::arctorustintbitops::*; + #[test] + fn it_works() { + assert_eq!(and_si16(-32768, -32768), -32768); + assert_eq!(and_si16(-32768, -32767), -32768); + assert_eq!(and_si16(-32768, -32547), -32768); + assert_eq!(and_si16(-32767, -32768), -32768); + assert_eq!(and_si16(-32547, -32768), -32768); + assert_eq!(and_si16(-32767, -32767), -32767); + assert_eq!(and_si16(-32767, -32547), -32767); + assert_eq!(and_si16(-32547, -32767), -32767); + assert_eq!(and_si16(-32547, -32547), -32547); + assert_eq!(and_si16(-32768, 0), 0); + assert_eq!(and_si16(-32768, 1), 0); + assert_eq!(and_si16(-32768, 2), 0); + assert_eq!(and_si16(-32768, 3), 0); + assert_eq!(and_si16(-32768, 4), 0); + assert_eq!(and_si16(-32768, 10486), 0); + assert_eq!(and_si16(-32768, 16514), 0); + assert_eq!(and_si16(-32768, 32766), 0); + assert_eq!(and_si16(-32768, 32767), 0); + assert_eq!(and_si16(-32767, 0), 0); + assert_eq!(and_si16(-32767, 2), 0); + assert_eq!(and_si16(-32767, 4), 0); + assert_eq!(and_si16(-32767, 10486), 0); + assert_eq!(and_si16(-32767, 16514), 0); + assert_eq!(and_si16(-32767, 32766), 0); + assert_eq!(and_si16(-32547, 0), 0); + assert_eq!(and_si16(-32547, 2), 0); + assert_eq!(and_si16(0, -32768), 0); + assert_eq!(and_si16(0, -32767), 0); + assert_eq!(and_si16(0, -32547), 0); + assert_eq!(and_si16(0, 0), 0); + assert_eq!(and_si16(0, 1), 0); + assert_eq!(and_si16(0, 2), 0); + assert_eq!(and_si16(0, 3), 0); + assert_eq!(and_si16(0, 4), 0); + assert_eq!(and_si16(0, 10486), 0); + assert_eq!(and_si16(0, 16514), 0); + assert_eq!(and_si16(0, 32766), 0); + assert_eq!(and_si16(0, 32767), 0); + assert_eq!(and_si16(1, -32768), 0); + assert_eq!(and_si16(1, 0), 0); + assert_eq!(and_si16(1, 2), 0); + assert_eq!(and_si16(1, 4), 0); + assert_eq!(and_si16(1, 10486), 0); + assert_eq!(and_si16(1, 16514), 0); + assert_eq!(and_si16(1, 32766), 0); + assert_eq!(and_si16(2, -32768), 0); + assert_eq!(and_si16(2, -32767), 0); + assert_eq!(and_si16(2, -32547), 0); + assert_eq!(and_si16(2, 0), 0); + assert_eq!(and_si16(2, 1), 0); + assert_eq!(and_si16(2, 4), 0); + assert_eq!(and_si16(3, -32768), 0); + assert_eq!(and_si16(3, 0), 0); + assert_eq!(and_si16(3, 4), 0); + assert_eq!(and_si16(4, -32768), 0); + assert_eq!(and_si16(4, -32767), 0); + assert_eq!(and_si16(4, 0), 0); + assert_eq!(and_si16(4, 1), 0); + assert_eq!(and_si16(4, 2), 0); + assert_eq!(and_si16(4, 3), 0); + assert_eq!(and_si16(4, 16514), 0); + assert_eq!(and_si16(10486, -32768), 0); + assert_eq!(and_si16(10486, -32767), 0); + assert_eq!(and_si16(10486, 0), 0); + assert_eq!(and_si16(10486, 1), 0); + assert_eq!(and_si16(16514, -32768), 0); + assert_eq!(and_si16(16514, -32767), 0); + assert_eq!(and_si16(16514, 0), 0); + assert_eq!(and_si16(16514, 1), 0); + assert_eq!(and_si16(16514, 4), 0); + assert_eq!(and_si16(32766, -32768), 0); + assert_eq!(and_si16(32766, -32767), 0); + assert_eq!(and_si16(32766, 0), 0); + assert_eq!(and_si16(32766, 1), 0); + assert_eq!(and_si16(32767, -32768), 0); + assert_eq!(and_si16(32767, 0), 0); + assert_eq!(and_si16(-32767, 1), 1); + assert_eq!(and_si16(-32767, 3), 1); + assert_eq!(and_si16(-32767, 32767), 1); + assert_eq!(and_si16(-32547, 1), 1); + assert_eq!(and_si16(-32547, 3), 1); + assert_eq!(and_si16(1, -32767), 1); + assert_eq!(and_si16(1, -32547), 1); + assert_eq!(and_si16(1, 1), 1); + assert_eq!(and_si16(1, 3), 1); + assert_eq!(and_si16(1, 32767), 1); + assert_eq!(and_si16(3, -32767), 1); + assert_eq!(and_si16(3, -32547), 1); + assert_eq!(and_si16(3, 1), 1); + assert_eq!(and_si16(32767, -32767), 1); + assert_eq!(and_si16(32767, 1), 1); + assert_eq!(and_si16(2, 2), 2); + assert_eq!(and_si16(2, 3), 2); + assert_eq!(and_si16(2, 10486), 2); + assert_eq!(and_si16(2, 16514), 2); + assert_eq!(and_si16(2, 32766), 2); + assert_eq!(and_si16(2, 32767), 2); + assert_eq!(and_si16(3, 2), 2); + assert_eq!(and_si16(3, 10486), 2); + assert_eq!(and_si16(3, 16514), 2); + assert_eq!(and_si16(3, 32766), 2); + assert_eq!(and_si16(10486, 2), 2); + assert_eq!(and_si16(10486, 3), 2); + assert_eq!(and_si16(16514, 2), 2); + assert_eq!(and_si16(16514, 3), 2); + assert_eq!(and_si16(32766, 2), 2); + assert_eq!(and_si16(32766, 3), 2); + assert_eq!(and_si16(32767, 2), 2); + assert_eq!(and_si16(3, 3), 3); + assert_eq!(and_si16(3, 32767), 3); + assert_eq!(and_si16(32767, 3), 3); + assert_eq!(and_si16(-32547, 4), 4); + assert_eq!(and_si16(4, -32547), 4); + assert_eq!(and_si16(4, 4), 4); + assert_eq!(and_si16(4, 10486), 4); + assert_eq!(and_si16(4, 32766), 4); + assert_eq!(and_si16(4, 32767), 4); + assert_eq!(and_si16(10486, 4), 4); + assert_eq!(and_si16(32766, 4), 4); + assert_eq!(and_si16(32767, 4), 4); + assert_eq!(and_si16(-32547, 16514), 128); + assert_eq!(and_si16(16514, -32547), 128); + assert_eq!(and_si16(10486, 16514), 130); + assert_eq!(and_si16(16514, 10486), 130); + assert_eq!(and_si16(-32547, 10486), 212); + assert_eq!(and_si16(10486, -32547), 212); + assert_eq!(and_si16(-32547, 32766), 220); + assert_eq!(and_si16(32766, -32547), 220); + assert_eq!(and_si16(-32547, 32767), 221); + assert_eq!(and_si16(32767, -32547), 221); + assert_eq!(and_si16(10486, 10486), 10486); + assert_eq!(and_si16(10486, 32766), 10486); + assert_eq!(and_si16(10486, 32767), 10486); + assert_eq!(and_si16(32766, 10486), 10486); + assert_eq!(and_si16(32767, 10486), 10486); + assert_eq!(and_si16(16514, 16514), 16514); + assert_eq!(and_si16(16514, 32766), 16514); + assert_eq!(and_si16(16514, 32767), 16514); + assert_eq!(and_si16(32766, 16514), 16514); + assert_eq!(and_si16(32767, 16514), 16514); + assert_eq!(and_si16(32766, 32766), 32766); + assert_eq!(and_si16(32766, 32767), 32766); + assert_eq!(and_si16(32767, 32766), 32766); + assert_eq!(and_si16(32767, 32767), 32767); + assert_eq!(and_si32(-2147483648, -2147483648), -2147483648); + assert_eq!(and_si32(-2147483648, -2147483647), -2147483648); + assert_eq!(and_si32(-2147483648, -1713183800), -2147483648); + assert_eq!(and_si32(-2147483648, -1252582164), -2147483648); + assert_eq!(and_si32(-2147483648, -1035405763), -2147483648); + assert_eq!(and_si32(-2147483647, -2147483648), -2147483648); + assert_eq!(and_si32(-2147483647, -1713183800), -2147483648); + assert_eq!(and_si32(-2147483647, -1252582164), -2147483648); + assert_eq!(and_si32(-1713183800, -2147483648), -2147483648); + assert_eq!(and_si32(-1713183800, -2147483647), -2147483648); + assert_eq!(and_si32(-1252582164, -2147483648), -2147483648); + assert_eq!(and_si32(-1252582164, -2147483647), -2147483648); + assert_eq!(and_si32(-1035405763, -2147483648), -2147483648); + assert_eq!(and_si32(-2147483647, -2147483647), -2147483647); + assert_eq!(and_si32(-2147483647, -1035405763), -2147483647); + assert_eq!(and_si32(-1035405763, -2147483647), -2147483647); + assert_eq!(and_si32(-1252582164, -1035405763), -2143284180); + assert_eq!(and_si32(-1035405763, -1252582164), -2143284180); + assert_eq!(and_si32(-1713183800, -1035405763), -2143231480); + assert_eq!(and_si32(-1035405763, -1713183800), -2143231480); + assert_eq!(and_si32(-1713183800, -1252582164), -1857945400); + assert_eq!(and_si32(-1252582164, -1713183800), -1857945400); + assert_eq!(and_si32(-1713183800, -1713183800), -1713183800); + assert_eq!(and_si32(-1252582164, -1252582164), -1252582164); + assert_eq!(and_si32(-1035405763, -1035405763), -1035405763); + assert_eq!(and_si32(-2147483648, 0), 0); + assert_eq!(and_si32(-2147483648, 1), 0); + assert_eq!(and_si32(-2147483648, 2), 0); + assert_eq!(and_si32(-2147483648, 3), 0); + assert_eq!(and_si32(-2147483648, 4), 0); + assert_eq!(and_si32(-2147483648, 2147483646), 0); + assert_eq!(and_si32(-2147483648, 2147483647), 0); + assert_eq!(and_si32(-2147483647, 0), 0); + assert_eq!(and_si32(-2147483647, 2), 0); + assert_eq!(and_si32(-2147483647, 4), 0); + assert_eq!(and_si32(-2147483647, 2147483646), 0); + assert_eq!(and_si32(-1713183800, 0), 0); + assert_eq!(and_si32(-1713183800, 1), 0); + assert_eq!(and_si32(-1713183800, 2), 0); + assert_eq!(and_si32(-1713183800, 3), 0); + assert_eq!(and_si32(-1713183800, 4), 0); + assert_eq!(and_si32(-1252582164, 0), 0); + assert_eq!(and_si32(-1252582164, 1), 0); + assert_eq!(and_si32(-1252582164, 2), 0); + assert_eq!(and_si32(-1252582164, 3), 0); + assert_eq!(and_si32(-1035405763, 0), 0); + assert_eq!(and_si32(-1035405763, 2), 0); + assert_eq!(and_si32(0, -2147483648), 0); + assert_eq!(and_si32(0, -2147483647), 0); + assert_eq!(and_si32(0, -1713183800), 0); + assert_eq!(and_si32(0, -1252582164), 0); + assert_eq!(and_si32(0, -1035405763), 0); + assert_eq!(and_si32(0, 0), 0); + assert_eq!(and_si32(0, 1), 0); + assert_eq!(and_si32(0, 2), 0); + assert_eq!(and_si32(0, 3), 0); + assert_eq!(and_si32(0, 4), 0); + assert_eq!(and_si32(0, 2147483646), 0); + assert_eq!(and_si32(0, 2147483647), 0); + assert_eq!(and_si32(1, -2147483648), 0); + assert_eq!(and_si32(1, -1713183800), 0); + assert_eq!(and_si32(1, -1252582164), 0); + assert_eq!(and_si32(1, 0), 0); + assert_eq!(and_si32(1, 2), 0); + assert_eq!(and_si32(1, 4), 0); + assert_eq!(and_si32(1, 2147483646), 0); + assert_eq!(and_si32(2, -2147483648), 0); + assert_eq!(and_si32(2, -2147483647), 0); + assert_eq!(and_si32(2, -1713183800), 0); + assert_eq!(and_si32(2, -1252582164), 0); + assert_eq!(and_si32(2, -1035405763), 0); + assert_eq!(and_si32(2, 0), 0); + assert_eq!(and_si32(2, 1), 0); + assert_eq!(and_si32(2, 4), 0); + assert_eq!(and_si32(3, -2147483648), 0); + assert_eq!(and_si32(3, -1713183800), 0); + assert_eq!(and_si32(3, -1252582164), 0); + assert_eq!(and_si32(3, 0), 0); + assert_eq!(and_si32(3, 4), 0); + assert_eq!(and_si32(4, -2147483648), 0); + assert_eq!(and_si32(4, -2147483647), 0); + assert_eq!(and_si32(4, -1713183800), 0); + assert_eq!(and_si32(4, 0), 0); + assert_eq!(and_si32(4, 1), 0); + assert_eq!(and_si32(4, 2), 0); + assert_eq!(and_si32(4, 3), 0); + assert_eq!(and_si32(2147483646, -2147483648), 0); + assert_eq!(and_si32(2147483646, -2147483647), 0); + assert_eq!(and_si32(2147483646, 0), 0); + assert_eq!(and_si32(2147483646, 1), 0); + assert_eq!(and_si32(2147483647, -2147483648), 0); + assert_eq!(and_si32(2147483647, 0), 0); + assert_eq!(and_si32(-2147483647, 1), 1); + assert_eq!(and_si32(-2147483647, 3), 1); + assert_eq!(and_si32(-2147483647, 2147483647), 1); + assert_eq!(and_si32(-1035405763, 1), 1); + assert_eq!(and_si32(-1035405763, 3), 1); + assert_eq!(and_si32(1, -2147483647), 1); + assert_eq!(and_si32(1, -1035405763), 1); + assert_eq!(and_si32(1, 1), 1); + assert_eq!(and_si32(1, 3), 1); + assert_eq!(and_si32(1, 2147483647), 1); + assert_eq!(and_si32(3, -2147483647), 1); + assert_eq!(and_si32(3, -1035405763), 1); + assert_eq!(and_si32(3, 1), 1); + assert_eq!(and_si32(2147483647, -2147483647), 1); + assert_eq!(and_si32(2147483647, 1), 1); + assert_eq!(and_si32(2, 2), 2); + assert_eq!(and_si32(2, 3), 2); + assert_eq!(and_si32(2, 2147483646), 2); + assert_eq!(and_si32(2, 2147483647), 2); + assert_eq!(and_si32(3, 2), 2); + assert_eq!(and_si32(3, 2147483646), 2); + assert_eq!(and_si32(2147483646, 2), 2); + assert_eq!(and_si32(2147483646, 3), 2); + assert_eq!(and_si32(2147483647, 2), 2); + assert_eq!(and_si32(3, 3), 3); + assert_eq!(and_si32(3, 2147483647), 3); + assert_eq!(and_si32(2147483647, 3), 3); + assert_eq!(and_si32(-1252582164, 4), 4); + assert_eq!(and_si32(-1035405763, 4), 4); + assert_eq!(and_si32(4, -1252582164), 4); + assert_eq!(and_si32(4, -1035405763), 4); + assert_eq!(and_si32(4, 4), 4); + assert_eq!(and_si32(4, 2147483646), 4); + assert_eq!(and_si32(4, 2147483647), 4); + assert_eq!(and_si32(2147483646, 4), 4); + assert_eq!(and_si32(2147483647, 4), 4); + assert_eq!(and_si32(-1713183800, 2147483646), 434299848); + assert_eq!(and_si32(-1713183800, 2147483647), 434299848); + assert_eq!(and_si32(2147483646, -1713183800), 434299848); + assert_eq!(and_si32(2147483647, -1713183800), 434299848); + assert_eq!(and_si32(-1252582164, 2147483646), 894901484); + assert_eq!(and_si32(-1252582164, 2147483647), 894901484); + assert_eq!(and_si32(2147483646, -1252582164), 894901484); + assert_eq!(and_si32(2147483647, -1252582164), 894901484); + assert_eq!(and_si32(-1035405763, 2147483646), 1112077884); + assert_eq!(and_si32(2147483646, -1035405763), 1112077884); + assert_eq!(and_si32(-1035405763, 2147483647), 1112077885); + assert_eq!(and_si32(2147483647, -1035405763), 1112077885); + assert_eq!(and_si32(2147483646, 2147483646), 2147483646); + assert_eq!(and_si32(2147483646, 2147483647), 2147483646); + assert_eq!(and_si32(2147483647, 2147483646), 2147483646); + assert_eq!(and_si32(2147483647, 2147483647), 2147483647); + assert_eq!( + and_si64(-9223372036854775808, -9223372036854775808), + -9223372036854775808 + ); + assert_eq!( + and_si64(-9223372036854775808, -9223372036854775807), + -9223372036854775808 + ); + assert_eq!( + and_si64(-9223372036854775808, -1741927215160008704), + -9223372036854775808 + ); + assert_eq!( + and_si64(-9223372036854775808, -1328271339354574848), + -9223372036854775808 + ); + assert_eq!( + and_si64(-9223372036854775807, -9223372036854775808), + -9223372036854775808 + ); + assert_eq!( + and_si64(-9223372036854775807, -1741927215160008704), + -9223372036854775808 + ); + assert_eq!( + and_si64(-9223372036854775807, -1328271339354574848), + -9223372036854775808 + ); + assert_eq!( + and_si64(-1741927215160008704, -9223372036854775808), + -9223372036854775808 + ); + assert_eq!( + and_si64(-1741927215160008704, -9223372036854775807), + -9223372036854775808 + ); + assert_eq!( + and_si64(-1328271339354574848, -9223372036854775808), + -9223372036854775808 + ); + assert_eq!( + and_si64(-1328271339354574848, -9223372036854775807), + -9223372036854775808 + ); + assert_eq!( + and_si64(-9223372036854775807, -9223372036854775807), + -9223372036854775807 + ); + assert_eq!( + and_si64(-1741927215160008704, -1328271339354574848), + -1904732091996692480 + ); + assert_eq!( + and_si64(-1328271339354574848, -1741927215160008704), + -1904732091996692480 + ); + assert_eq!( + and_si64(-1741927215160008704, -1741927215160008704), + -1741927215160008704 + ); + assert_eq!( + and_si64(-1328271339354574848, -1328271339354574848), + -1328271339354574848 + ); + assert_eq!(and_si64(-9223372036854775808, 0), 0); + assert_eq!(and_si64(-9223372036854775808, 1), 0); + assert_eq!(and_si64(-9223372036854775808, 2), 0); + assert_eq!(and_si64(-9223372036854775808, 3), 0); + assert_eq!(and_si64(-9223372036854775808, 4), 0); + assert_eq!(and_si64(-9223372036854775808, 5577148965131116544), 0); + assert_eq!(and_si64(-9223372036854775808, 9223372036854775806), 0); + assert_eq!(and_si64(-9223372036854775808, 9223372036854775807), 0); + assert_eq!(and_si64(-9223372036854775807, 0), 0); + assert_eq!(and_si64(-9223372036854775807, 2), 0); + assert_eq!(and_si64(-9223372036854775807, 4), 0); + assert_eq!(and_si64(-9223372036854775807, 5577148965131116544), 0); + assert_eq!(and_si64(-9223372036854775807, 9223372036854775806), 0); + assert_eq!(and_si64(-1741927215160008704, 0), 0); + assert_eq!(and_si64(-1741927215160008704, 1), 0); + assert_eq!(and_si64(-1741927215160008704, 2), 0); + assert_eq!(and_si64(-1741927215160008704, 3), 0); + assert_eq!(and_si64(-1741927215160008704, 4), 0); + assert_eq!(and_si64(-1328271339354574848, 0), 0); + assert_eq!(and_si64(-1328271339354574848, 1), 0); + assert_eq!(and_si64(-1328271339354574848, 2), 0); + assert_eq!(and_si64(-1328271339354574848, 3), 0); + assert_eq!(and_si64(-1328271339354574848, 4), 0); + assert_eq!(and_si64(0, -9223372036854775808), 0); + assert_eq!(and_si64(0, -9223372036854775807), 0); + assert_eq!(and_si64(0, -1741927215160008704), 0); + assert_eq!(and_si64(0, -1328271339354574848), 0); + assert_eq!(and_si64(0, 0), 0); + assert_eq!(and_si64(0, 1), 0); + assert_eq!(and_si64(0, 2), 0); + assert_eq!(and_si64(0, 3), 0); + assert_eq!(and_si64(0, 4), 0); + assert_eq!(and_si64(0, 5577148965131116544), 0); + assert_eq!(and_si64(0, 9223372036854775806), 0); + assert_eq!(and_si64(0, 9223372036854775807), 0); + assert_eq!(and_si64(1, -9223372036854775808), 0); + assert_eq!(and_si64(1, -1741927215160008704), 0); + assert_eq!(and_si64(1, -1328271339354574848), 0); + assert_eq!(and_si64(1, 0), 0); + assert_eq!(and_si64(1, 2), 0); + assert_eq!(and_si64(1, 4), 0); + assert_eq!(and_si64(1, 5577148965131116544), 0); + assert_eq!(and_si64(1, 9223372036854775806), 0); + assert_eq!(and_si64(2, -9223372036854775808), 0); + assert_eq!(and_si64(2, -9223372036854775807), 0); + assert_eq!(and_si64(2, -1741927215160008704), 0); + assert_eq!(and_si64(2, -1328271339354574848), 0); + assert_eq!(and_si64(2, 0), 0); + assert_eq!(and_si64(2, 1), 0); + assert_eq!(and_si64(2, 4), 0); + assert_eq!(and_si64(2, 5577148965131116544), 0); + assert_eq!(and_si64(3, -9223372036854775808), 0); + assert_eq!(and_si64(3, -1741927215160008704), 0); + assert_eq!(and_si64(3, -1328271339354574848), 0); + assert_eq!(and_si64(3, 0), 0); + assert_eq!(and_si64(3, 4), 0); + assert_eq!(and_si64(3, 5577148965131116544), 0); + assert_eq!(and_si64(4, -9223372036854775808), 0); + assert_eq!(and_si64(4, -9223372036854775807), 0); + assert_eq!(and_si64(4, -1741927215160008704), 0); + assert_eq!(and_si64(4, -1328271339354574848), 0); + assert_eq!(and_si64(4, 0), 0); + assert_eq!(and_si64(4, 1), 0); + assert_eq!(and_si64(4, 2), 0); + assert_eq!(and_si64(4, 3), 0); + assert_eq!(and_si64(4, 5577148965131116544), 0); + assert_eq!(and_si64(5577148965131116544, -9223372036854775808), 0); + assert_eq!(and_si64(5577148965131116544, -9223372036854775807), 0); + assert_eq!(and_si64(5577148965131116544, 0), 0); + assert_eq!(and_si64(5577148965131116544, 1), 0); + assert_eq!(and_si64(5577148965131116544, 2), 0); + assert_eq!(and_si64(5577148965131116544, 3), 0); + assert_eq!(and_si64(5577148965131116544, 4), 0); + assert_eq!(and_si64(9223372036854775806, -9223372036854775808), 0); + assert_eq!(and_si64(9223372036854775806, -9223372036854775807), 0); + assert_eq!(and_si64(9223372036854775806, 0), 0); + assert_eq!(and_si64(9223372036854775806, 1), 0); + assert_eq!(and_si64(9223372036854775807, -9223372036854775808), 0); + assert_eq!(and_si64(9223372036854775807, 0), 0); + assert_eq!(and_si64(-9223372036854775807, 1), 1); + assert_eq!(and_si64(-9223372036854775807, 3), 1); + assert_eq!(and_si64(-9223372036854775807, 9223372036854775807), 1); + assert_eq!(and_si64(1, -9223372036854775807), 1); + assert_eq!(and_si64(1, 1), 1); + assert_eq!(and_si64(1, 3), 1); + assert_eq!(and_si64(1, 9223372036854775807), 1); + assert_eq!(and_si64(3, -9223372036854775807), 1); + assert_eq!(and_si64(3, 1), 1); + assert_eq!(and_si64(9223372036854775807, -9223372036854775807), 1); + assert_eq!(and_si64(9223372036854775807, 1), 1); + assert_eq!(and_si64(2, 2), 2); + assert_eq!(and_si64(2, 3), 2); + assert_eq!(and_si64(2, 9223372036854775806), 2); + assert_eq!(and_si64(2, 9223372036854775807), 2); + assert_eq!(and_si64(3, 2), 2); + assert_eq!(and_si64(3, 9223372036854775806), 2); + assert_eq!(and_si64(9223372036854775806, 2), 2); + assert_eq!(and_si64(9223372036854775806, 3), 2); + assert_eq!(and_si64(9223372036854775807, 2), 2); + assert_eq!(and_si64(3, 3), 3); + assert_eq!(and_si64(3, 9223372036854775807), 3); + assert_eq!(and_si64(9223372036854775807, 3), 3); + assert_eq!(and_si64(4, 4), 4); + assert_eq!(and_si64(4, 9223372036854775806), 4); + assert_eq!(and_si64(4, 9223372036854775807), 4); + assert_eq!(and_si64(9223372036854775806, 4), 4); + assert_eq!(and_si64(9223372036854775807, 4), 4); + assert_eq!( + and_si64(-1741927215160008704, 5577148965131116544), + 4990554005496225792 + ); + assert_eq!( + and_si64(5577148965131116544, -1741927215160008704), + 4990554005496225792 + ); + assert_eq!( + and_si64(-1328271339354574848, 5577148965131116544), + 5548435020295708672 + ); + assert_eq!( + and_si64(5577148965131116544, -1328271339354574848), + 5548435020295708672 + ); + assert_eq!( + and_si64(5577148965131116544, 5577148965131116544), + 5577148965131116544 + ); + assert_eq!( + and_si64(5577148965131116544, 9223372036854775806), + 5577148965131116544 + ); + assert_eq!( + and_si64(5577148965131116544, 9223372036854775807), + 5577148965131116544 + ); + assert_eq!( + and_si64(9223372036854775806, 5577148965131116544), + 5577148965131116544 + ); + assert_eq!( + and_si64(9223372036854775807, 5577148965131116544), + 5577148965131116544 + ); + assert_eq!( + and_si64(-1741927215160008704, 9223372036854775806), + 7481444821694767104 + ); + assert_eq!( + and_si64(-1741927215160008704, 9223372036854775807), + 7481444821694767104 + ); + assert_eq!( + and_si64(9223372036854775806, -1741927215160008704), + 7481444821694767104 + ); + assert_eq!( + and_si64(9223372036854775807, -1741927215160008704), + 7481444821694767104 + ); + assert_eq!( + and_si64(-1328271339354574848, 9223372036854775806), + 7895100697500200960 + ); + assert_eq!( + and_si64(-1328271339354574848, 9223372036854775807), + 7895100697500200960 + ); + assert_eq!( + and_si64(9223372036854775806, -1328271339354574848), + 7895100697500200960 + ); + assert_eq!( + and_si64(9223372036854775807, -1328271339354574848), + 7895100697500200960 + ); + assert_eq!( + and_si64(9223372036854775806, 9223372036854775806), + 9223372036854775806 + ); + assert_eq!( + and_si64(9223372036854775806, 9223372036854775807), + 9223372036854775806 + ); + assert_eq!( + and_si64(9223372036854775807, 9223372036854775806), + 9223372036854775806 + ); + assert_eq!( + and_si64(9223372036854775807, 9223372036854775807), + 9223372036854775807 + ); + assert_eq!(and_si8(-128, -128), -128); + assert_eq!(and_si8(-128, -127), -128); + assert_eq!(and_si8(-127, -128), -128); + assert_eq!(and_si8(-127, -127), -127); + assert_eq!(and_si8(-128, 0), 0); + assert_eq!(and_si8(-128, 1), 0); + assert_eq!(and_si8(-128, 2), 0); + assert_eq!(and_si8(-128, 3), 0); + assert_eq!(and_si8(-128, 4), 0); + assert_eq!(and_si8(-128, 16), 0); + assert_eq!(and_si8(-128, 126), 0); + assert_eq!(and_si8(-128, 127), 0); + assert_eq!(and_si8(-127, 0), 0); + assert_eq!(and_si8(-127, 2), 0); + assert_eq!(and_si8(-127, 4), 0); + assert_eq!(and_si8(-127, 16), 0); + assert_eq!(and_si8(-127, 126), 0); + assert_eq!(and_si8(0, -128), 0); + assert_eq!(and_si8(0, -127), 0); + assert_eq!(and_si8(0, 0), 0); + assert_eq!(and_si8(0, 1), 0); + assert_eq!(and_si8(0, 2), 0); + assert_eq!(and_si8(0, 3), 0); + assert_eq!(and_si8(0, 4), 0); + assert_eq!(and_si8(0, 16), 0); + assert_eq!(and_si8(0, 126), 0); + assert_eq!(and_si8(0, 127), 0); + assert_eq!(and_si8(1, -128), 0); + assert_eq!(and_si8(1, 0), 0); + assert_eq!(and_si8(1, 2), 0); + assert_eq!(and_si8(1, 4), 0); + assert_eq!(and_si8(1, 16), 0); + assert_eq!(and_si8(1, 126), 0); + assert_eq!(and_si8(2, -128), 0); + assert_eq!(and_si8(2, -127), 0); + assert_eq!(and_si8(2, 0), 0); + assert_eq!(and_si8(2, 1), 0); + assert_eq!(and_si8(2, 4), 0); + assert_eq!(and_si8(2, 16), 0); + assert_eq!(and_si8(3, -128), 0); + assert_eq!(and_si8(3, 0), 0); + assert_eq!(and_si8(3, 4), 0); + assert_eq!(and_si8(3, 16), 0); + assert_eq!(and_si8(4, -128), 0); + assert_eq!(and_si8(4, -127), 0); + assert_eq!(and_si8(4, 0), 0); + assert_eq!(and_si8(4, 1), 0); + assert_eq!(and_si8(4, 2), 0); + assert_eq!(and_si8(4, 3), 0); + assert_eq!(and_si8(4, 16), 0); + assert_eq!(and_si8(16, -128), 0); + assert_eq!(and_si8(16, -127), 0); + assert_eq!(and_si8(16, 0), 0); + assert_eq!(and_si8(16, 1), 0); + assert_eq!(and_si8(16, 2), 0); + assert_eq!(and_si8(16, 3), 0); + assert_eq!(and_si8(16, 4), 0); + assert_eq!(and_si8(126, -128), 0); + assert_eq!(and_si8(126, -127), 0); + assert_eq!(and_si8(126, 0), 0); + assert_eq!(and_si8(126, 1), 0); + assert_eq!(and_si8(127, -128), 0); + assert_eq!(and_si8(127, 0), 0); + assert_eq!(and_si8(-127, 1), 1); + assert_eq!(and_si8(-127, 3), 1); + assert_eq!(and_si8(-127, 127), 1); + assert_eq!(and_si8(1, -127), 1); + assert_eq!(and_si8(1, 1), 1); + assert_eq!(and_si8(1, 3), 1); + assert_eq!(and_si8(1, 127), 1); + assert_eq!(and_si8(3, -127), 1); + assert_eq!(and_si8(3, 1), 1); + assert_eq!(and_si8(127, -127), 1); + assert_eq!(and_si8(127, 1), 1); + assert_eq!(and_si8(2, 2), 2); + assert_eq!(and_si8(2, 3), 2); + assert_eq!(and_si8(2, 126), 2); + assert_eq!(and_si8(2, 127), 2); + assert_eq!(and_si8(3, 2), 2); + assert_eq!(and_si8(3, 126), 2); + assert_eq!(and_si8(126, 2), 2); + assert_eq!(and_si8(126, 3), 2); + assert_eq!(and_si8(127, 2), 2); + assert_eq!(and_si8(3, 3), 3); + assert_eq!(and_si8(3, 127), 3); + assert_eq!(and_si8(127, 3), 3); + assert_eq!(and_si8(4, 4), 4); + assert_eq!(and_si8(4, 126), 4); + assert_eq!(and_si8(4, 127), 4); + assert_eq!(and_si8(126, 4), 4); + assert_eq!(and_si8(127, 4), 4); + assert_eq!(and_si8(16, 16), 16); + assert_eq!(and_si8(16, 126), 16); + assert_eq!(and_si8(16, 127), 16); + assert_eq!(and_si8(126, 16), 16); + assert_eq!(and_si8(127, 16), 16); + assert_eq!(and_si8(126, 126), 126); + assert_eq!(and_si8(126, 127), 126); + assert_eq!(and_si8(127, 126), 126); + assert_eq!(and_si8(127, 127), 127); + assert_eq!(and_ui16(0, 0), 0); + assert_eq!(and_ui16(0, 1), 0); + assert_eq!(and_ui16(0, 2), 0); + assert_eq!(and_ui16(0, 3), 0); + assert_eq!(and_ui16(0, 4), 0); + assert_eq!(and_ui16(0, 1717), 0); + assert_eq!(and_ui16(0, 17988), 0); + assert_eq!(and_ui16(0, 65096), 0); + assert_eq!(and_ui16(0, 65534), 0); + assert_eq!(and_ui16(0, 65535), 0); + assert_eq!(and_ui16(1, 0), 0); + assert_eq!(and_ui16(1, 2), 0); + assert_eq!(and_ui16(1, 4), 0); + assert_eq!(and_ui16(1, 17988), 0); + assert_eq!(and_ui16(1, 65096), 0); + assert_eq!(and_ui16(1, 65534), 0); + assert_eq!(and_ui16(2, 0), 0); + assert_eq!(and_ui16(2, 1), 0); + assert_eq!(and_ui16(2, 4), 0); + assert_eq!(and_ui16(2, 1717), 0); + assert_eq!(and_ui16(2, 17988), 0); + assert_eq!(and_ui16(2, 65096), 0); + assert_eq!(and_ui16(3, 0), 0); + assert_eq!(and_ui16(3, 4), 0); + assert_eq!(and_ui16(3, 17988), 0); + assert_eq!(and_ui16(3, 65096), 0); + assert_eq!(and_ui16(4, 0), 0); + assert_eq!(and_ui16(4, 1), 0); + assert_eq!(and_ui16(4, 2), 0); + assert_eq!(and_ui16(4, 3), 0); + assert_eq!(and_ui16(4, 65096), 0); + assert_eq!(and_ui16(1717, 0), 0); + assert_eq!(and_ui16(1717, 2), 0); + assert_eq!(and_ui16(17988, 0), 0); + assert_eq!(and_ui16(17988, 1), 0); + assert_eq!(and_ui16(17988, 2), 0); + assert_eq!(and_ui16(17988, 3), 0); + assert_eq!(and_ui16(65096, 0), 0); + assert_eq!(and_ui16(65096, 1), 0); + assert_eq!(and_ui16(65096, 2), 0); + assert_eq!(and_ui16(65096, 3), 0); + assert_eq!(and_ui16(65096, 4), 0); + assert_eq!(and_ui16(65534, 0), 0); + assert_eq!(and_ui16(65534, 1), 0); + assert_eq!(and_ui16(65535, 0), 0); + assert_eq!(and_ui16(1, 1), 1); + assert_eq!(and_ui16(1, 3), 1); + assert_eq!(and_ui16(1, 1717), 1); + assert_eq!(and_ui16(1, 65535), 1); + assert_eq!(and_ui16(3, 1), 1); + assert_eq!(and_ui16(3, 1717), 1); + assert_eq!(and_ui16(1717, 1), 1); + assert_eq!(and_ui16(1717, 3), 1); + assert_eq!(and_ui16(65535, 1), 1); + assert_eq!(and_ui16(2, 2), 2); + assert_eq!(and_ui16(2, 3), 2); + assert_eq!(and_ui16(2, 65534), 2); + assert_eq!(and_ui16(2, 65535), 2); + assert_eq!(and_ui16(3, 2), 2); + assert_eq!(and_ui16(3, 65534), 2); + assert_eq!(and_ui16(65534, 2), 2); + assert_eq!(and_ui16(65534, 3), 2); + assert_eq!(and_ui16(65535, 2), 2); + assert_eq!(and_ui16(3, 3), 3); + assert_eq!(and_ui16(3, 65535), 3); + assert_eq!(and_ui16(65535, 3), 3); + assert_eq!(and_ui16(4, 4), 4); + assert_eq!(and_ui16(4, 1717), 4); + assert_eq!(and_ui16(4, 17988), 4); + assert_eq!(and_ui16(4, 65534), 4); + assert_eq!(and_ui16(4, 65535), 4); + assert_eq!(and_ui16(1717, 4), 4); + assert_eq!(and_ui16(17988, 4), 4); + assert_eq!(and_ui16(65534, 4), 4); + assert_eq!(and_ui16(65535, 4), 4); + assert_eq!(and_ui16(1717, 65096), 1536); + assert_eq!(and_ui16(65096, 1717), 1536); + assert_eq!(and_ui16(1717, 17988), 1540); + assert_eq!(and_ui16(17988, 1717), 1540); + assert_eq!(and_ui16(1717, 65534), 1716); + assert_eq!(and_ui16(65534, 1717), 1716); + assert_eq!(and_ui16(1717, 1717), 1717); + assert_eq!(and_ui16(1717, 65535), 1717); + assert_eq!(and_ui16(65535, 1717), 1717); + assert_eq!(and_ui16(17988, 65096), 17984); + assert_eq!(and_ui16(65096, 17988), 17984); + assert_eq!(and_ui16(17988, 17988), 17988); + assert_eq!(and_ui16(17988, 65534), 17988); + assert_eq!(and_ui16(17988, 65535), 17988); + assert_eq!(and_ui16(65534, 17988), 17988); + assert_eq!(and_ui16(65535, 17988), 17988); + assert_eq!(and_ui16(65096, 65096), 65096); + assert_eq!(and_ui16(65096, 65534), 65096); + assert_eq!(and_ui16(65096, 65535), 65096); + assert_eq!(and_ui16(65534, 65096), 65096); + assert_eq!(and_ui16(65535, 65096), 65096); + assert_eq!(and_ui16(65534, 65534), 65534); + assert_eq!(and_ui16(65534, 65535), 65534); + assert_eq!(and_ui16(65535, 65534), 65534); + assert_eq!(and_ui16(65535, 65535), 65535); + assert_eq!(and_ui32(0, 0), 0); + assert_eq!(and_ui32(0, 1), 0); + assert_eq!(and_ui32(0, 2), 0); + assert_eq!(and_ui32(0, 3), 0); + assert_eq!(and_ui32(0, 4), 0); + assert_eq!(and_ui32(0, 2119154652), 0); + assert_eq!(and_ui32(0, 3002788344), 0); + assert_eq!(and_ui32(0, 3482297128), 0); + assert_eq!(and_ui32(0, 4294967294), 0); + assert_eq!(and_ui32(0, 4294967295), 0); + assert_eq!(and_ui32(1, 0), 0); + assert_eq!(and_ui32(1, 2), 0); + assert_eq!(and_ui32(1, 4), 0); + assert_eq!(and_ui32(1, 2119154652), 0); + assert_eq!(and_ui32(1, 3002788344), 0); + assert_eq!(and_ui32(1, 3482297128), 0); + assert_eq!(and_ui32(1, 4294967294), 0); + assert_eq!(and_ui32(2, 0), 0); + assert_eq!(and_ui32(2, 1), 0); + assert_eq!(and_ui32(2, 4), 0); + assert_eq!(and_ui32(2, 2119154652), 0); + assert_eq!(and_ui32(2, 3002788344), 0); + assert_eq!(and_ui32(2, 3482297128), 0); + assert_eq!(and_ui32(3, 0), 0); + assert_eq!(and_ui32(3, 4), 0); + assert_eq!(and_ui32(3, 2119154652), 0); + assert_eq!(and_ui32(3, 3002788344), 0); + assert_eq!(and_ui32(3, 3482297128), 0); + assert_eq!(and_ui32(4, 0), 0); + assert_eq!(and_ui32(4, 1), 0); + assert_eq!(and_ui32(4, 2), 0); + assert_eq!(and_ui32(4, 3), 0); + assert_eq!(and_ui32(4, 3002788344), 0); + assert_eq!(and_ui32(4, 3482297128), 0); + assert_eq!(and_ui32(2119154652, 0), 0); + assert_eq!(and_ui32(2119154652, 1), 0); + assert_eq!(and_ui32(2119154652, 2), 0); + assert_eq!(and_ui32(2119154652, 3), 0); + assert_eq!(and_ui32(3002788344, 0), 0); + assert_eq!(and_ui32(3002788344, 1), 0); + assert_eq!(and_ui32(3002788344, 2), 0); + assert_eq!(and_ui32(3002788344, 3), 0); + assert_eq!(and_ui32(3002788344, 4), 0); + assert_eq!(and_ui32(3482297128, 0), 0); + assert_eq!(and_ui32(3482297128, 1), 0); + assert_eq!(and_ui32(3482297128, 2), 0); + assert_eq!(and_ui32(3482297128, 3), 0); + assert_eq!(and_ui32(3482297128, 4), 0); + assert_eq!(and_ui32(4294967294, 0), 0); + assert_eq!(and_ui32(4294967294, 1), 0); + assert_eq!(and_ui32(4294967295, 0), 0); + assert_eq!(and_ui32(1, 1), 1); + assert_eq!(and_ui32(1, 3), 1); + assert_eq!(and_ui32(1, 4294967295), 1); + assert_eq!(and_ui32(3, 1), 1); + assert_eq!(and_ui32(4294967295, 1), 1); + assert_eq!(and_ui32(2, 2), 2); + assert_eq!(and_ui32(2, 3), 2); + assert_eq!(and_ui32(2, 4294967294), 2); + assert_eq!(and_ui32(2, 4294967295), 2); + assert_eq!(and_ui32(3, 2), 2); + assert_eq!(and_ui32(3, 4294967294), 2); + assert_eq!(and_ui32(4294967294, 2), 2); + assert_eq!(and_ui32(4294967294, 3), 2); + assert_eq!(and_ui32(4294967295, 2), 2); + assert_eq!(and_ui32(3, 3), 3); + assert_eq!(and_ui32(3, 4294967295), 3); + assert_eq!(and_ui32(4294967295, 3), 3); + assert_eq!(and_ui32(4, 4), 4); + assert_eq!(and_ui32(4, 2119154652), 4); + assert_eq!(and_ui32(4, 4294967294), 4); + assert_eq!(and_ui32(4, 4294967295), 4); + assert_eq!(and_ui32(2119154652, 4), 4); + assert_eq!(and_ui32(4294967294, 4), 4); + assert_eq!(and_ui32(4294967295, 4), 4); + assert_eq!(and_ui32(2119154652, 3002788344), 843753944); + assert_eq!(and_ui32(3002788344, 2119154652), 843753944); + assert_eq!(and_ui32(2119154652, 3482297128), 1309647624); + assert_eq!(and_ui32(3482297128, 2119154652), 1309647624); + assert_eq!(and_ui32(2119154652, 2119154652), 2119154652); + assert_eq!(and_ui32(2119154652, 4294967294), 2119154652); + assert_eq!(and_ui32(2119154652, 4294967295), 2119154652); + assert_eq!(and_ui32(4294967294, 2119154652), 2119154652); + assert_eq!(and_ui32(4294967295, 2119154652), 2119154652); + assert_eq!(and_ui32(3002788344, 3482297128), 2190123304); + assert_eq!(and_ui32(3482297128, 3002788344), 2190123304); + assert_eq!(and_ui32(3002788344, 3002788344), 3002788344); + assert_eq!(and_ui32(3002788344, 4294967294), 3002788344); + assert_eq!(and_ui32(3002788344, 4294967295), 3002788344); + assert_eq!(and_ui32(4294967294, 3002788344), 3002788344); + assert_eq!(and_ui32(4294967295, 3002788344), 3002788344); + assert_eq!(and_ui32(3482297128, 3482297128), 3482297128); + assert_eq!(and_ui32(3482297128, 4294967294), 3482297128); + assert_eq!(and_ui32(3482297128, 4294967295), 3482297128); + assert_eq!(and_ui32(4294967294, 3482297128), 3482297128); + assert_eq!(and_ui32(4294967295, 3482297128), 3482297128); + assert_eq!(and_ui32(4294967294, 4294967294), 4294967294); + assert_eq!(and_ui32(4294967294, 4294967295), 4294967294); + assert_eq!(and_ui32(4294967295, 4294967294), 4294967294); + assert_eq!(and_ui32(4294967295, 4294967295), 4294967295); + assert_eq!(and_ui64(0, 0), 0); + assert_eq!(and_ui64(0, 1), 0); + assert_eq!(and_ui64(0, 2), 0); + assert_eq!(and_ui64(0, 3), 0); + assert_eq!(and_ui64(0, 4), 0); + assert_eq!(and_ui64(0, 191084152064409600), 0); + assert_eq!(and_ui64(0, 11015955194427482112), 0); + assert_eq!(and_ui64(0, 16990600415051759616), 0); + assert_eq!(and_ui64(0, 18446744073709551614), 0); + assert_eq!(and_ui64(0, 18446744073709551615), 0); + assert_eq!(and_ui64(1, 0), 0); + assert_eq!(and_ui64(1, 2), 0); + assert_eq!(and_ui64(1, 4), 0); + assert_eq!(and_ui64(1, 191084152064409600), 0); + assert_eq!(and_ui64(1, 11015955194427482112), 0); + assert_eq!(and_ui64(1, 16990600415051759616), 0); + assert_eq!(and_ui64(1, 18446744073709551614), 0); + assert_eq!(and_ui64(2, 0), 0); + assert_eq!(and_ui64(2, 1), 0); + assert_eq!(and_ui64(2, 4), 0); + assert_eq!(and_ui64(2, 191084152064409600), 0); + assert_eq!(and_ui64(2, 11015955194427482112), 0); + assert_eq!(and_ui64(2, 16990600415051759616), 0); + assert_eq!(and_ui64(3, 0), 0); + assert_eq!(and_ui64(3, 4), 0); + assert_eq!(and_ui64(3, 191084152064409600), 0); + assert_eq!(and_ui64(3, 11015955194427482112), 0); + assert_eq!(and_ui64(3, 16990600415051759616), 0); + assert_eq!(and_ui64(4, 0), 0); + assert_eq!(and_ui64(4, 1), 0); + assert_eq!(and_ui64(4, 2), 0); + assert_eq!(and_ui64(4, 3), 0); + assert_eq!(and_ui64(4, 191084152064409600), 0); + assert_eq!(and_ui64(4, 11015955194427482112), 0); + assert_eq!(and_ui64(4, 16990600415051759616), 0); + assert_eq!(and_ui64(191084152064409600, 0), 0); + assert_eq!(and_ui64(191084152064409600, 1), 0); + assert_eq!(and_ui64(191084152064409600, 2), 0); + assert_eq!(and_ui64(191084152064409600, 3), 0); + assert_eq!(and_ui64(191084152064409600, 4), 0); + assert_eq!(and_ui64(11015955194427482112, 0), 0); + assert_eq!(and_ui64(11015955194427482112, 1), 0); + assert_eq!(and_ui64(11015955194427482112, 2), 0); + assert_eq!(and_ui64(11015955194427482112, 3), 0); + assert_eq!(and_ui64(11015955194427482112, 4), 0); + assert_eq!(and_ui64(16990600415051759616, 0), 0); + assert_eq!(and_ui64(16990600415051759616, 1), 0); + assert_eq!(and_ui64(16990600415051759616, 2), 0); + assert_eq!(and_ui64(16990600415051759616, 3), 0); + assert_eq!(and_ui64(16990600415051759616, 4), 0); + assert_eq!(and_ui64(18446744073709551614, 0), 0); + assert_eq!(and_ui64(18446744073709551614, 1), 0); + assert_eq!(and_ui64(18446744073709551615, 0), 0); + assert_eq!(and_ui64(1, 1), 1); + assert_eq!(and_ui64(1, 3), 1); + assert_eq!(and_ui64(1, 18446744073709551615), 1); + assert_eq!(and_ui64(3, 1), 1); + assert_eq!(and_ui64(18446744073709551615, 1), 1); + assert_eq!(and_ui64(2, 2), 2); + assert_eq!(and_ui64(2, 3), 2); + assert_eq!(and_ui64(2, 18446744073709551614), 2); + assert_eq!(and_ui64(2, 18446744073709551615), 2); + assert_eq!(and_ui64(3, 2), 2); + assert_eq!(and_ui64(3, 18446744073709551614), 2); + assert_eq!(and_ui64(18446744073709551614, 2), 2); + assert_eq!(and_ui64(18446744073709551614, 3), 2); + assert_eq!(and_ui64(18446744073709551615, 2), 2); + assert_eq!(and_ui64(3, 3), 3); + assert_eq!(and_ui64(3, 18446744073709551615), 3); + assert_eq!(and_ui64(18446744073709551615, 3), 3); + assert_eq!(and_ui64(4, 4), 4); + assert_eq!(and_ui64(4, 18446744073709551614), 4); + assert_eq!(and_ui64(4, 18446744073709551615), 4); + assert_eq!(and_ui64(18446744073709551614, 4), 4); + assert_eq!(and_ui64(18446744073709551615, 4), 4); + assert_eq!( + and_ui64(191084152064409600, 11015955194427482112), + 45185538445017088 + ); + assert_eq!( + and_ui64(11015955194427482112, 191084152064409600), + 45185538445017088 + ); + assert_eq!( + and_ui64(191084152064409600, 16990600415051759616), + 180878484934066176 + ); + assert_eq!( + and_ui64(16990600415051759616, 191084152064409600), + 180878484934066176 + ); + assert_eq!( + and_ui64(191084152064409600, 191084152064409600), + 191084152064409600 + ); + assert_eq!( + and_ui64(191084152064409600, 18446744073709551614), + 191084152064409600 + ); + assert_eq!( + and_ui64(191084152064409600, 18446744073709551615), + 191084152064409600 + ); + assert_eq!( + and_ui64(18446744073709551614, 191084152064409600), + 191084152064409600 + ); + assert_eq!( + and_ui64(18446744073709551615, 191084152064409600), + 191084152064409600 + ); + assert_eq!( + and_ui64(11015955194427482112, 16990600415051759616), + 9854025527415799808 + ); + assert_eq!( + and_ui64(16990600415051759616, 11015955194427482112), + 9854025527415799808 + ); + assert_eq!( + and_ui64(11015955194427482112, 11015955194427482112), + 11015955194427482112 + ); + assert_eq!( + and_ui64(11015955194427482112, 18446744073709551614), + 11015955194427482112 + ); + assert_eq!( + and_ui64(11015955194427482112, 18446744073709551615), + 11015955194427482112 + ); + assert_eq!( + and_ui64(18446744073709551614, 11015955194427482112), + 11015955194427482112 + ); + assert_eq!( + and_ui64(18446744073709551615, 11015955194427482112), + 11015955194427482112 + ); + assert_eq!( + and_ui64(16990600415051759616, 16990600415051759616), + 16990600415051759616 + ); + assert_eq!( + and_ui64(16990600415051759616, 18446744073709551614), + 16990600415051759616 + ); + assert_eq!( + and_ui64(16990600415051759616, 18446744073709551615), + 16990600415051759616 + ); + assert_eq!( + and_ui64(18446744073709551614, 16990600415051759616), + 16990600415051759616 + ); + assert_eq!( + and_ui64(18446744073709551615, 16990600415051759616), + 16990600415051759616 + ); + assert_eq!( + and_ui64(18446744073709551614, 18446744073709551614), + 18446744073709551614 + ); + assert_eq!( + and_ui64(18446744073709551614, 18446744073709551615), + 18446744073709551614 + ); + assert_eq!( + and_ui64(18446744073709551615, 18446744073709551614), + 18446744073709551614 + ); + assert_eq!( + and_ui64(18446744073709551615, 18446744073709551615), + 18446744073709551615 + ); + assert_eq!(and_ui8(0, 0), 0); + assert_eq!(and_ui8(0, 1), 0); + assert_eq!(and_ui8(0, 2), 0); + assert_eq!(and_ui8(0, 3), 0); + assert_eq!(and_ui8(0, 4), 0); + assert_eq!(and_ui8(0, 72), 0); + assert_eq!(and_ui8(0, 100), 0); + assert_eq!(and_ui8(0, 162), 0); + assert_eq!(and_ui8(0, 254), 0); + assert_eq!(and_ui8(0, 255), 0); + assert_eq!(and_ui8(1, 0), 0); + assert_eq!(and_ui8(1, 2), 0); + assert_eq!(and_ui8(1, 4), 0); + assert_eq!(and_ui8(1, 72), 0); + assert_eq!(and_ui8(1, 100), 0); + assert_eq!(and_ui8(1, 162), 0); + assert_eq!(and_ui8(1, 254), 0); + assert_eq!(and_ui8(2, 0), 0); + assert_eq!(and_ui8(2, 1), 0); + assert_eq!(and_ui8(2, 4), 0); + assert_eq!(and_ui8(2, 72), 0); + assert_eq!(and_ui8(2, 100), 0); + assert_eq!(and_ui8(3, 0), 0); + assert_eq!(and_ui8(3, 4), 0); + assert_eq!(and_ui8(3, 72), 0); + assert_eq!(and_ui8(3, 100), 0); + assert_eq!(and_ui8(4, 0), 0); + assert_eq!(and_ui8(4, 1), 0); + assert_eq!(and_ui8(4, 2), 0); + assert_eq!(and_ui8(4, 3), 0); + assert_eq!(and_ui8(4, 72), 0); + assert_eq!(and_ui8(4, 162), 0); + assert_eq!(and_ui8(72, 0), 0); + assert_eq!(and_ui8(72, 1), 0); + assert_eq!(and_ui8(72, 2), 0); + assert_eq!(and_ui8(72, 3), 0); + assert_eq!(and_ui8(72, 4), 0); + assert_eq!(and_ui8(72, 162), 0); + assert_eq!(and_ui8(100, 0), 0); + assert_eq!(and_ui8(100, 1), 0); + assert_eq!(and_ui8(100, 2), 0); + assert_eq!(and_ui8(100, 3), 0); + assert_eq!(and_ui8(162, 0), 0); + assert_eq!(and_ui8(162, 1), 0); + assert_eq!(and_ui8(162, 4), 0); + assert_eq!(and_ui8(162, 72), 0); + assert_eq!(and_ui8(254, 0), 0); + assert_eq!(and_ui8(254, 1), 0); + assert_eq!(and_ui8(255, 0), 0); + assert_eq!(and_ui8(1, 1), 1); + assert_eq!(and_ui8(1, 3), 1); + assert_eq!(and_ui8(1, 255), 1); + assert_eq!(and_ui8(3, 1), 1); + assert_eq!(and_ui8(255, 1), 1); + assert_eq!(and_ui8(2, 2), 2); + assert_eq!(and_ui8(2, 3), 2); + assert_eq!(and_ui8(2, 162), 2); + assert_eq!(and_ui8(2, 254), 2); + assert_eq!(and_ui8(2, 255), 2); + assert_eq!(and_ui8(3, 2), 2); + assert_eq!(and_ui8(3, 162), 2); + assert_eq!(and_ui8(3, 254), 2); + assert_eq!(and_ui8(162, 2), 2); + assert_eq!(and_ui8(162, 3), 2); + assert_eq!(and_ui8(254, 2), 2); + assert_eq!(and_ui8(254, 3), 2); + assert_eq!(and_ui8(255, 2), 2); + assert_eq!(and_ui8(3, 3), 3); + assert_eq!(and_ui8(3, 255), 3); + assert_eq!(and_ui8(255, 3), 3); + assert_eq!(and_ui8(4, 4), 4); + assert_eq!(and_ui8(4, 100), 4); + assert_eq!(and_ui8(4, 254), 4); + assert_eq!(and_ui8(4, 255), 4); + assert_eq!(and_ui8(100, 4), 4); + assert_eq!(and_ui8(254, 4), 4); + assert_eq!(and_ui8(255, 4), 4); + assert_eq!(and_ui8(100, 162), 32); + assert_eq!(and_ui8(162, 100), 32); + assert_eq!(and_ui8(72, 100), 64); + assert_eq!(and_ui8(100, 72), 64); + assert_eq!(and_ui8(72, 72), 72); + assert_eq!(and_ui8(72, 254), 72); + assert_eq!(and_ui8(72, 255), 72); + assert_eq!(and_ui8(254, 72), 72); + assert_eq!(and_ui8(255, 72), 72); + assert_eq!(and_ui8(100, 100), 100); + assert_eq!(and_ui8(100, 254), 100); + assert_eq!(and_ui8(100, 255), 100); + assert_eq!(and_ui8(254, 100), 100); + assert_eq!(and_ui8(255, 100), 100); + assert_eq!(and_ui8(162, 162), 162); + assert_eq!(and_ui8(162, 254), 162); + assert_eq!(and_ui8(162, 255), 162); + assert_eq!(and_ui8(254, 162), 162); + assert_eq!(and_ui8(255, 162), 162); + assert_eq!(and_ui8(254, 254), 254); + assert_eq!(and_ui8(254, 255), 254); + assert_eq!(and_ui8(255, 254), 254); + assert_eq!(and_ui8(255, 255), 255); + assert_eq!(or_si16(-32768, -32768), -32768); + assert_eq!(or_si16(-32768, 0), -32768); + assert_eq!(or_si16(0, -32768), -32768); + assert_eq!(or_si16(-32768, -32767), -32767); + assert_eq!(or_si16(-32768, 1), -32767); + assert_eq!(or_si16(-32767, -32768), -32767); + assert_eq!(or_si16(-32767, -32767), -32767); + assert_eq!(or_si16(-32767, 0), -32767); + assert_eq!(or_si16(-32767, 1), -32767); + assert_eq!(or_si16(0, -32767), -32767); + assert_eq!(or_si16(1, -32768), -32767); + assert_eq!(or_si16(1, -32767), -32767); + assert_eq!(or_si16(-32768, 2), -32766); + assert_eq!(or_si16(2, -32768), -32766); + assert_eq!(or_si16(-32768, 3), -32765); + assert_eq!(or_si16(-32767, 2), -32765); + assert_eq!(or_si16(-32767, 3), -32765); + assert_eq!(or_si16(2, -32767), -32765); + assert_eq!(or_si16(3, -32768), -32765); + assert_eq!(or_si16(3, -32767), -32765); + assert_eq!(or_si16(-32768, 4), -32764); + assert_eq!(or_si16(4, -32768), -32764); + assert_eq!(or_si16(-32767, 4), -32763); + assert_eq!(or_si16(4, -32767), -32763); + assert_eq!(or_si16(-32768, -32547), -32547); + assert_eq!(or_si16(-32767, -32547), -32547); + assert_eq!(or_si16(-32547, -32768), -32547); + assert_eq!(or_si16(-32547, -32767), -32547); + assert_eq!(or_si16(-32547, -32547), -32547); + assert_eq!(or_si16(-32547, 0), -32547); + assert_eq!(or_si16(-32547, 1), -32547); + assert_eq!(or_si16(-32547, 4), -32547); + assert_eq!(or_si16(0, -32547), -32547); + assert_eq!(or_si16(1, -32547), -32547); + assert_eq!(or_si16(4, -32547), -32547); + assert_eq!(or_si16(-32547, 2), -32545); + assert_eq!(or_si16(-32547, 3), -32545); + assert_eq!(or_si16(2, -32547), -32545); + assert_eq!(or_si16(3, -32547), -32545); + assert_eq!(or_si16(-32768, 10486), -22282); + assert_eq!(or_si16(10486, -32768), -22282); + assert_eq!(or_si16(-32767, 10486), -22281); + assert_eq!(or_si16(10486, -32767), -22281); + assert_eq!(or_si16(-32547, 10486), -22273); + assert_eq!(or_si16(10486, -32547), -22273); + assert_eq!(or_si16(-32768, 16514), -16254); + assert_eq!(or_si16(16514, -32768), -16254); + assert_eq!(or_si16(-32767, 16514), -16253); + assert_eq!(or_si16(16514, -32767), -16253); + assert_eq!(or_si16(-32547, 16514), -16161); + assert_eq!(or_si16(16514, -32547), -16161); + assert_eq!(or_si16(-32768, 32766), -2); + assert_eq!(or_si16(32766, -32768), -2); + assert_eq!(or_si16(-32768, 32767), -1); + assert_eq!(or_si16(-32767, 32766), -1); + assert_eq!(or_si16(-32767, 32767), -1); + assert_eq!(or_si16(-32547, 32766), -1); + assert_eq!(or_si16(-32547, 32767), -1); + assert_eq!(or_si16(32766, -32767), -1); + assert_eq!(or_si16(32766, -32547), -1); + assert_eq!(or_si16(32767, -32768), -1); + assert_eq!(or_si16(32767, -32767), -1); + assert_eq!(or_si16(32767, -32547), -1); + assert_eq!(or_si16(0, 0), 0); + assert_eq!(or_si16(0, 1), 1); + assert_eq!(or_si16(1, 0), 1); + assert_eq!(or_si16(1, 1), 1); + assert_eq!(or_si16(0, 2), 2); + assert_eq!(or_si16(2, 0), 2); + assert_eq!(or_si16(2, 2), 2); + assert_eq!(or_si16(0, 3), 3); + assert_eq!(or_si16(1, 2), 3); + assert_eq!(or_si16(1, 3), 3); + assert_eq!(or_si16(2, 1), 3); + assert_eq!(or_si16(2, 3), 3); + assert_eq!(or_si16(3, 0), 3); + assert_eq!(or_si16(3, 1), 3); + assert_eq!(or_si16(3, 2), 3); + assert_eq!(or_si16(3, 3), 3); + assert_eq!(or_si16(0, 4), 4); + assert_eq!(or_si16(4, 0), 4); + assert_eq!(or_si16(4, 4), 4); + assert_eq!(or_si16(1, 4), 5); + assert_eq!(or_si16(4, 1), 5); + assert_eq!(or_si16(2, 4), 6); + assert_eq!(or_si16(4, 2), 6); + assert_eq!(or_si16(3, 4), 7); + assert_eq!(or_si16(4, 3), 7); + assert_eq!(or_si16(0, 10486), 10486); + assert_eq!(or_si16(2, 10486), 10486); + assert_eq!(or_si16(4, 10486), 10486); + assert_eq!(or_si16(10486, 0), 10486); + assert_eq!(or_si16(10486, 2), 10486); + assert_eq!(or_si16(10486, 4), 10486); + assert_eq!(or_si16(10486, 10486), 10486); + assert_eq!(or_si16(1, 10486), 10487); + assert_eq!(or_si16(3, 10486), 10487); + assert_eq!(or_si16(10486, 1), 10487); + assert_eq!(or_si16(10486, 3), 10487); + assert_eq!(or_si16(0, 16514), 16514); + assert_eq!(or_si16(2, 16514), 16514); + assert_eq!(or_si16(16514, 0), 16514); + assert_eq!(or_si16(16514, 2), 16514); + assert_eq!(or_si16(16514, 16514), 16514); + assert_eq!(or_si16(1, 16514), 16515); + assert_eq!(or_si16(3, 16514), 16515); + assert_eq!(or_si16(16514, 1), 16515); + assert_eq!(or_si16(16514, 3), 16515); + assert_eq!(or_si16(4, 16514), 16518); + assert_eq!(or_si16(16514, 4), 16518); + assert_eq!(or_si16(10486, 16514), 26870); + assert_eq!(or_si16(16514, 10486), 26870); + assert_eq!(or_si16(0, 32766), 32766); + assert_eq!(or_si16(2, 32766), 32766); + assert_eq!(or_si16(4, 32766), 32766); + assert_eq!(or_si16(10486, 32766), 32766); + assert_eq!(or_si16(16514, 32766), 32766); + assert_eq!(or_si16(32766, 0), 32766); + assert_eq!(or_si16(32766, 2), 32766); + assert_eq!(or_si16(32766, 4), 32766); + assert_eq!(or_si16(32766, 10486), 32766); + assert_eq!(or_si16(32766, 16514), 32766); + assert_eq!(or_si16(32766, 32766), 32766); + assert_eq!(or_si16(0, 32767), 32767); + assert_eq!(or_si16(1, 32766), 32767); + assert_eq!(or_si16(1, 32767), 32767); + assert_eq!(or_si16(2, 32767), 32767); + assert_eq!(or_si16(3, 32766), 32767); + assert_eq!(or_si16(3, 32767), 32767); + assert_eq!(or_si16(4, 32767), 32767); + assert_eq!(or_si16(10486, 32767), 32767); + assert_eq!(or_si16(16514, 32767), 32767); + assert_eq!(or_si16(32766, 1), 32767); + assert_eq!(or_si16(32766, 3), 32767); + assert_eq!(or_si16(32766, 32767), 32767); + assert_eq!(or_si16(32767, 0), 32767); + assert_eq!(or_si16(32767, 1), 32767); + assert_eq!(or_si16(32767, 2), 32767); + assert_eq!(or_si16(32767, 3), 32767); + assert_eq!(or_si16(32767, 4), 32767); + assert_eq!(or_si16(32767, 10486), 32767); + assert_eq!(or_si16(32767, 16514), 32767); + assert_eq!(or_si16(32767, 32766), 32767); + assert_eq!(or_si16(32767, 32767), 32767); + assert_eq!(or_si32(-2147483648, -2147483648), -2147483648); + assert_eq!(or_si32(-2147483648, 0), -2147483648); + assert_eq!(or_si32(0, -2147483648), -2147483648); + assert_eq!(or_si32(-2147483648, -2147483647), -2147483647); + assert_eq!(or_si32(-2147483648, 1), -2147483647); + assert_eq!(or_si32(-2147483647, -2147483648), -2147483647); + assert_eq!(or_si32(-2147483647, -2147483647), -2147483647); + assert_eq!(or_si32(-2147483647, 0), -2147483647); + assert_eq!(or_si32(-2147483647, 1), -2147483647); + assert_eq!(or_si32(0, -2147483647), -2147483647); + assert_eq!(or_si32(1, -2147483648), -2147483647); + assert_eq!(or_si32(1, -2147483647), -2147483647); + assert_eq!(or_si32(-2147483648, 2), -2147483646); + assert_eq!(or_si32(2, -2147483648), -2147483646); + assert_eq!(or_si32(-2147483648, 3), -2147483645); + assert_eq!(or_si32(-2147483647, 2), -2147483645); + assert_eq!(or_si32(-2147483647, 3), -2147483645); + assert_eq!(or_si32(2, -2147483647), -2147483645); + assert_eq!(or_si32(3, -2147483648), -2147483645); + assert_eq!(or_si32(3, -2147483647), -2147483645); + assert_eq!(or_si32(-2147483648, 4), -2147483644); + assert_eq!(or_si32(4, -2147483648), -2147483644); + assert_eq!(or_si32(-2147483647, 4), -2147483643); + assert_eq!(or_si32(4, -2147483647), -2147483643); + assert_eq!(or_si32(-2147483648, -1713183800), -1713183800); + assert_eq!(or_si32(-1713183800, -2147483648), -1713183800); + assert_eq!(or_si32(-1713183800, -1713183800), -1713183800); + assert_eq!(or_si32(-1713183800, 0), -1713183800); + assert_eq!(or_si32(0, -1713183800), -1713183800); + assert_eq!(or_si32(-2147483647, -1713183800), -1713183799); + assert_eq!(or_si32(-1713183800, -2147483647), -1713183799); + assert_eq!(or_si32(-1713183800, 1), -1713183799); + assert_eq!(or_si32(1, -1713183800), -1713183799); + assert_eq!(or_si32(-1713183800, 2), -1713183798); + assert_eq!(or_si32(2, -1713183800), -1713183798); + assert_eq!(or_si32(-1713183800, 3), -1713183797); + assert_eq!(or_si32(3, -1713183800), -1713183797); + assert_eq!(or_si32(-1713183800, 4), -1713183796); + assert_eq!(or_si32(4, -1713183800), -1713183796); + assert_eq!(or_si32(-2147483648, -1252582164), -1252582164); + assert_eq!(or_si32(-1252582164, -2147483648), -1252582164); + assert_eq!(or_si32(-1252582164, -1252582164), -1252582164); + assert_eq!(or_si32(-1252582164, 0), -1252582164); + assert_eq!(or_si32(-1252582164, 4), -1252582164); + assert_eq!(or_si32(0, -1252582164), -1252582164); + assert_eq!(or_si32(4, -1252582164), -1252582164); + assert_eq!(or_si32(-2147483647, -1252582164), -1252582163); + assert_eq!(or_si32(-1252582164, -2147483647), -1252582163); + assert_eq!(or_si32(-1252582164, 1), -1252582163); + assert_eq!(or_si32(1, -1252582164), -1252582163); + assert_eq!(or_si32(-1252582164, 2), -1252582162); + assert_eq!(or_si32(2, -1252582164), -1252582162); + assert_eq!(or_si32(-1252582164, 3), -1252582161); + assert_eq!(or_si32(3, -1252582164), -1252582161); + assert_eq!(or_si32(-1713183800, -1252582164), -1107820564); + assert_eq!(or_si32(-1252582164, -1713183800), -1107820564); + assert_eq!(or_si32(-2147483648, -1035405763), -1035405763); + assert_eq!(or_si32(-2147483647, -1035405763), -1035405763); + assert_eq!(or_si32(-1035405763, -2147483648), -1035405763); + assert_eq!(or_si32(-1035405763, -2147483647), -1035405763); + assert_eq!(or_si32(-1035405763, -1035405763), -1035405763); + assert_eq!(or_si32(-1035405763, 0), -1035405763); + assert_eq!(or_si32(-1035405763, 1), -1035405763); + assert_eq!(or_si32(-1035405763, 4), -1035405763); + assert_eq!(or_si32(0, -1035405763), -1035405763); + assert_eq!(or_si32(1, -1035405763), -1035405763); + assert_eq!(or_si32(4, -1035405763), -1035405763); + assert_eq!(or_si32(-1035405763, 2), -1035405761); + assert_eq!(or_si32(-1035405763, 3), -1035405761); + assert_eq!(or_si32(2, -1035405763), -1035405761); + assert_eq!(or_si32(3, -1035405763), -1035405761); + assert_eq!(or_si32(-1713183800, -1035405763), -605358083); + assert_eq!(or_si32(-1035405763, -1713183800), -605358083); + assert_eq!(or_si32(-1252582164, -1035405763), -144703747); + assert_eq!(or_si32(-1035405763, -1252582164), -144703747); + assert_eq!(or_si32(-2147483648, 2147483646), -2); + assert_eq!(or_si32(-1713183800, 2147483646), -2); + assert_eq!(or_si32(-1252582164, 2147483646), -2); + assert_eq!(or_si32(2147483646, -2147483648), -2); + assert_eq!(or_si32(2147483646, -1713183800), -2); + assert_eq!(or_si32(2147483646, -1252582164), -2); + assert_eq!(or_si32(-2147483648, 2147483647), -1); + assert_eq!(or_si32(-2147483647, 2147483646), -1); + assert_eq!(or_si32(-2147483647, 2147483647), -1); + assert_eq!(or_si32(-1713183800, 2147483647), -1); + assert_eq!(or_si32(-1252582164, 2147483647), -1); + assert_eq!(or_si32(-1035405763, 2147483646), -1); + assert_eq!(or_si32(-1035405763, 2147483647), -1); + assert_eq!(or_si32(2147483646, -2147483647), -1); + assert_eq!(or_si32(2147483646, -1035405763), -1); + assert_eq!(or_si32(2147483647, -2147483648), -1); + assert_eq!(or_si32(2147483647, -2147483647), -1); + assert_eq!(or_si32(2147483647, -1713183800), -1); + assert_eq!(or_si32(2147483647, -1252582164), -1); + assert_eq!(or_si32(2147483647, -1035405763), -1); + assert_eq!(or_si32(0, 0), 0); + assert_eq!(or_si32(0, 1), 1); + assert_eq!(or_si32(1, 0), 1); + assert_eq!(or_si32(1, 1), 1); + assert_eq!(or_si32(0, 2), 2); + assert_eq!(or_si32(2, 0), 2); + assert_eq!(or_si32(2, 2), 2); + assert_eq!(or_si32(0, 3), 3); + assert_eq!(or_si32(1, 2), 3); + assert_eq!(or_si32(1, 3), 3); + assert_eq!(or_si32(2, 1), 3); + assert_eq!(or_si32(2, 3), 3); + assert_eq!(or_si32(3, 0), 3); + assert_eq!(or_si32(3, 1), 3); + assert_eq!(or_si32(3, 2), 3); + assert_eq!(or_si32(3, 3), 3); + assert_eq!(or_si32(0, 4), 4); + assert_eq!(or_si32(4, 0), 4); + assert_eq!(or_si32(4, 4), 4); + assert_eq!(or_si32(1, 4), 5); + assert_eq!(or_si32(4, 1), 5); + assert_eq!(or_si32(2, 4), 6); + assert_eq!(or_si32(4, 2), 6); + assert_eq!(or_si32(3, 4), 7); + assert_eq!(or_si32(4, 3), 7); + assert_eq!(or_si32(0, 2147483646), 2147483646); + assert_eq!(or_si32(2, 2147483646), 2147483646); + assert_eq!(or_si32(4, 2147483646), 2147483646); + assert_eq!(or_si32(2147483646, 0), 2147483646); + assert_eq!(or_si32(2147483646, 2), 2147483646); + assert_eq!(or_si32(2147483646, 4), 2147483646); + assert_eq!(or_si32(2147483646, 2147483646), 2147483646); + assert_eq!(or_si32(0, 2147483647), 2147483647); + assert_eq!(or_si32(1, 2147483646), 2147483647); + assert_eq!(or_si32(1, 2147483647), 2147483647); + assert_eq!(or_si32(2, 2147483647), 2147483647); + assert_eq!(or_si32(3, 2147483646), 2147483647); + assert_eq!(or_si32(3, 2147483647), 2147483647); + assert_eq!(or_si32(4, 2147483647), 2147483647); + assert_eq!(or_si32(2147483646, 1), 2147483647); + assert_eq!(or_si32(2147483646, 3), 2147483647); + assert_eq!(or_si32(2147483646, 2147483647), 2147483647); + assert_eq!(or_si32(2147483647, 0), 2147483647); + assert_eq!(or_si32(2147483647, 1), 2147483647); + assert_eq!(or_si32(2147483647, 2), 2147483647); + assert_eq!(or_si32(2147483647, 3), 2147483647); + assert_eq!(or_si32(2147483647, 4), 2147483647); + assert_eq!(or_si32(2147483647, 2147483646), 2147483647); + assert_eq!(or_si32(2147483647, 2147483647), 2147483647); + assert_eq!( + or_si64(-9223372036854775808, -9223372036854775808), + -9223372036854775808 + ); + assert_eq!(or_si64(-9223372036854775808, 0), -9223372036854775808); + assert_eq!(or_si64(0, -9223372036854775808), -9223372036854775808); + assert_eq!( + or_si64(-9223372036854775808, -9223372036854775807), + -9223372036854775807 + ); + assert_eq!(or_si64(-9223372036854775808, 1), -9223372036854775807); + assert_eq!( + or_si64(-9223372036854775807, -9223372036854775808), + -9223372036854775807 + ); + assert_eq!( + or_si64(-9223372036854775807, -9223372036854775807), + -9223372036854775807 + ); + assert_eq!(or_si64(-9223372036854775807, 0), -9223372036854775807); + assert_eq!(or_si64(-9223372036854775807, 1), -9223372036854775807); + assert_eq!(or_si64(0, -9223372036854775807), -9223372036854775807); + assert_eq!(or_si64(1, -9223372036854775808), -9223372036854775807); + assert_eq!(or_si64(1, -9223372036854775807), -9223372036854775807); + assert_eq!(or_si64(-9223372036854775808, 2), -9223372036854775806); + assert_eq!(or_si64(2, -9223372036854775808), -9223372036854775806); + assert_eq!(or_si64(-9223372036854775808, 3), -9223372036854775805); + assert_eq!(or_si64(-9223372036854775807, 2), -9223372036854775805); + assert_eq!(or_si64(-9223372036854775807, 3), -9223372036854775805); + assert_eq!(or_si64(2, -9223372036854775807), -9223372036854775805); + assert_eq!(or_si64(3, -9223372036854775808), -9223372036854775805); + assert_eq!(or_si64(3, -9223372036854775807), -9223372036854775805); + assert_eq!(or_si64(-9223372036854775808, 4), -9223372036854775804); + assert_eq!(or_si64(4, -9223372036854775808), -9223372036854775804); + assert_eq!(or_si64(-9223372036854775807, 4), -9223372036854775803); + assert_eq!(or_si64(4, -9223372036854775807), -9223372036854775803); + assert_eq!( + or_si64(-9223372036854775808, 5577148965131116544), + -3646223071723659264 + ); + assert_eq!( + or_si64(5577148965131116544, -9223372036854775808), + -3646223071723659264 + ); + assert_eq!( + or_si64(-9223372036854775807, 5577148965131116544), + -3646223071723659263 + ); + assert_eq!( + or_si64(5577148965131116544, -9223372036854775807), + -3646223071723659263 + ); + assert_eq!( + or_si64(-9223372036854775808, -1741927215160008704), + -1741927215160008704 + ); + assert_eq!( + or_si64(-1741927215160008704, -9223372036854775808), + -1741927215160008704 + ); + assert_eq!( + or_si64(-1741927215160008704, -1741927215160008704), + -1741927215160008704 + ); + assert_eq!(or_si64(-1741927215160008704, 0), -1741927215160008704); + assert_eq!(or_si64(0, -1741927215160008704), -1741927215160008704); + assert_eq!( + or_si64(-9223372036854775807, -1741927215160008704), + -1741927215160008703 + ); + assert_eq!( + or_si64(-1741927215160008704, -9223372036854775807), + -1741927215160008703 + ); + assert_eq!(or_si64(-1741927215160008704, 1), -1741927215160008703); + assert_eq!(or_si64(1, -1741927215160008704), -1741927215160008703); + assert_eq!(or_si64(-1741927215160008704, 2), -1741927215160008702); + assert_eq!(or_si64(2, -1741927215160008704), -1741927215160008702); + assert_eq!(or_si64(-1741927215160008704, 3), -1741927215160008701); + assert_eq!(or_si64(3, -1741927215160008704), -1741927215160008701); + assert_eq!(or_si64(-1741927215160008704, 4), -1741927215160008700); + assert_eq!(or_si64(4, -1741927215160008704), -1741927215160008700); + assert_eq!( + or_si64(-9223372036854775808, -1328271339354574848), + -1328271339354574848 + ); + assert_eq!( + or_si64(-1328271339354574848, -9223372036854775808), + -1328271339354574848 + ); + assert_eq!( + or_si64(-1328271339354574848, -1328271339354574848), + -1328271339354574848 + ); + assert_eq!(or_si64(-1328271339354574848, 0), -1328271339354574848); + assert_eq!(or_si64(0, -1328271339354574848), -1328271339354574848); + assert_eq!( + or_si64(-9223372036854775807, -1328271339354574848), + -1328271339354574847 + ); + assert_eq!( + or_si64(-1328271339354574848, -9223372036854775807), + -1328271339354574847 + ); + assert_eq!(or_si64(-1328271339354574848, 1), -1328271339354574847); + assert_eq!(or_si64(1, -1328271339354574848), -1328271339354574847); + assert_eq!(or_si64(-1328271339354574848, 2), -1328271339354574846); + assert_eq!(or_si64(2, -1328271339354574848), -1328271339354574846); + assert_eq!(or_si64(-1328271339354574848, 3), -1328271339354574845); + assert_eq!(or_si64(3, -1328271339354574848), -1328271339354574845); + assert_eq!(or_si64(-1328271339354574848, 4), -1328271339354574844); + assert_eq!(or_si64(4, -1328271339354574848), -1328271339354574844); + assert_eq!( + or_si64(-1328271339354574848, 5577148965131116544), + -1299557394519166976 + ); + assert_eq!( + or_si64(5577148965131116544, -1328271339354574848), + -1299557394519166976 + ); + assert_eq!( + or_si64(-1741927215160008704, -1328271339354574848), + -1165466462517891072 + ); + assert_eq!( + or_si64(-1328271339354574848, -1741927215160008704), + -1165466462517891072 + ); + assert_eq!( + or_si64(-1741927215160008704, 5577148965131116544), + -1155332255525117952 + ); + assert_eq!( + or_si64(5577148965131116544, -1741927215160008704), + -1155332255525117952 + ); + assert_eq!(or_si64(-9223372036854775808, 9223372036854775806), -2); + assert_eq!(or_si64(-1741927215160008704, 9223372036854775806), -2); + assert_eq!(or_si64(-1328271339354574848, 9223372036854775806), -2); + assert_eq!(or_si64(9223372036854775806, -9223372036854775808), -2); + assert_eq!(or_si64(9223372036854775806, -1741927215160008704), -2); + assert_eq!(or_si64(9223372036854775806, -1328271339354574848), -2); + assert_eq!(or_si64(-9223372036854775808, 9223372036854775807), -1); + assert_eq!(or_si64(-9223372036854775807, 9223372036854775806), -1); + assert_eq!(or_si64(-9223372036854775807, 9223372036854775807), -1); + assert_eq!(or_si64(-1741927215160008704, 9223372036854775807), -1); + assert_eq!(or_si64(-1328271339354574848, 9223372036854775807), -1); + assert_eq!(or_si64(9223372036854775806, -9223372036854775807), -1); + assert_eq!(or_si64(9223372036854775807, -9223372036854775808), -1); + assert_eq!(or_si64(9223372036854775807, -9223372036854775807), -1); + assert_eq!(or_si64(9223372036854775807, -1741927215160008704), -1); + assert_eq!(or_si64(9223372036854775807, -1328271339354574848), -1); + assert_eq!(or_si64(0, 0), 0); + assert_eq!(or_si64(0, 1), 1); + assert_eq!(or_si64(1, 0), 1); + assert_eq!(or_si64(1, 1), 1); + assert_eq!(or_si64(0, 2), 2); + assert_eq!(or_si64(2, 0), 2); + assert_eq!(or_si64(2, 2), 2); + assert_eq!(or_si64(0, 3), 3); + assert_eq!(or_si64(1, 2), 3); + assert_eq!(or_si64(1, 3), 3); + assert_eq!(or_si64(2, 1), 3); + assert_eq!(or_si64(2, 3), 3); + assert_eq!(or_si64(3, 0), 3); + assert_eq!(or_si64(3, 1), 3); + assert_eq!(or_si64(3, 2), 3); + assert_eq!(or_si64(3, 3), 3); + assert_eq!(or_si64(0, 4), 4); + assert_eq!(or_si64(4, 0), 4); + assert_eq!(or_si64(4, 4), 4); + assert_eq!(or_si64(1, 4), 5); + assert_eq!(or_si64(4, 1), 5); + assert_eq!(or_si64(2, 4), 6); + assert_eq!(or_si64(4, 2), 6); + assert_eq!(or_si64(3, 4), 7); + assert_eq!(or_si64(4, 3), 7); + assert_eq!(or_si64(0, 5577148965131116544), 5577148965131116544); + assert_eq!(or_si64(5577148965131116544, 0), 5577148965131116544); + assert_eq!( + or_si64(5577148965131116544, 5577148965131116544), + 5577148965131116544 + ); + assert_eq!(or_si64(1, 5577148965131116544), 5577148965131116545); + assert_eq!(or_si64(5577148965131116544, 1), 5577148965131116545); + assert_eq!(or_si64(2, 5577148965131116544), 5577148965131116546); + assert_eq!(or_si64(5577148965131116544, 2), 5577148965131116546); + assert_eq!(or_si64(3, 5577148965131116544), 5577148965131116547); + assert_eq!(or_si64(5577148965131116544, 3), 5577148965131116547); + assert_eq!(or_si64(4, 5577148965131116544), 5577148965131116548); + assert_eq!(or_si64(5577148965131116544, 4), 5577148965131116548); + assert_eq!(or_si64(0, 9223372036854775806), 9223372036854775806); + assert_eq!(or_si64(2, 9223372036854775806), 9223372036854775806); + assert_eq!(or_si64(4, 9223372036854775806), 9223372036854775806); + assert_eq!( + or_si64(5577148965131116544, 9223372036854775806), + 9223372036854775806 + ); + assert_eq!(or_si64(9223372036854775806, 0), 9223372036854775806); + assert_eq!(or_si64(9223372036854775806, 2), 9223372036854775806); + assert_eq!(or_si64(9223372036854775806, 4), 9223372036854775806); + assert_eq!( + or_si64(9223372036854775806, 5577148965131116544), + 9223372036854775806 + ); + assert_eq!( + or_si64(9223372036854775806, 9223372036854775806), + 9223372036854775806 + ); + assert_eq!(or_si64(0, 9223372036854775807), 9223372036854775807); + assert_eq!(or_si64(1, 9223372036854775806), 9223372036854775807); + assert_eq!(or_si64(1, 9223372036854775807), 9223372036854775807); + assert_eq!(or_si64(2, 9223372036854775807), 9223372036854775807); + assert_eq!(or_si64(3, 9223372036854775806), 9223372036854775807); + assert_eq!(or_si64(3, 9223372036854775807), 9223372036854775807); + assert_eq!(or_si64(4, 9223372036854775807), 9223372036854775807); + assert_eq!( + or_si64(5577148965131116544, 9223372036854775807), + 9223372036854775807 + ); + assert_eq!(or_si64(9223372036854775806, 1), 9223372036854775807); + assert_eq!(or_si64(9223372036854775806, 3), 9223372036854775807); + assert_eq!( + or_si64(9223372036854775806, 9223372036854775807), + 9223372036854775807 + ); + assert_eq!(or_si64(9223372036854775807, 0), 9223372036854775807); + assert_eq!(or_si64(9223372036854775807, 1), 9223372036854775807); + assert_eq!(or_si64(9223372036854775807, 2), 9223372036854775807); + assert_eq!(or_si64(9223372036854775807, 3), 9223372036854775807); + assert_eq!(or_si64(9223372036854775807, 4), 9223372036854775807); + assert_eq!( + or_si64(9223372036854775807, 5577148965131116544), + 9223372036854775807 + ); + assert_eq!( + or_si64(9223372036854775807, 9223372036854775806), + 9223372036854775807 + ); + assert_eq!( + or_si64(9223372036854775807, 9223372036854775807), + 9223372036854775807 + ); + assert_eq!(or_si8(-128, -128), -128); + assert_eq!(or_si8(-128, 0), -128); + assert_eq!(or_si8(0, -128), -128); + assert_eq!(or_si8(-128, -127), -127); + assert_eq!(or_si8(-128, 1), -127); + assert_eq!(or_si8(-127, -128), -127); + assert_eq!(or_si8(-127, -127), -127); + assert_eq!(or_si8(-127, 0), -127); + assert_eq!(or_si8(-127, 1), -127); + assert_eq!(or_si8(0, -127), -127); + assert_eq!(or_si8(1, -128), -127); + assert_eq!(or_si8(1, -127), -127); + assert_eq!(or_si8(-128, 2), -126); + assert_eq!(or_si8(2, -128), -126); + assert_eq!(or_si8(-128, 3), -125); + assert_eq!(or_si8(-127, 2), -125); + assert_eq!(or_si8(-127, 3), -125); + assert_eq!(or_si8(2, -127), -125); + assert_eq!(or_si8(3, -128), -125); + assert_eq!(or_si8(3, -127), -125); + assert_eq!(or_si8(-128, 4), -124); + assert_eq!(or_si8(4, -128), -124); + assert_eq!(or_si8(-127, 4), -123); + assert_eq!(or_si8(4, -127), -123); + assert_eq!(or_si8(-128, 16), -112); + assert_eq!(or_si8(16, -128), -112); + assert_eq!(or_si8(-127, 16), -111); + assert_eq!(or_si8(16, -127), -111); + assert_eq!(or_si8(-128, 126), -2); + assert_eq!(or_si8(126, -128), -2); + assert_eq!(or_si8(-128, 127), -1); + assert_eq!(or_si8(-127, 126), -1); + assert_eq!(or_si8(-127, 127), -1); + assert_eq!(or_si8(126, -127), -1); + assert_eq!(or_si8(127, -128), -1); + assert_eq!(or_si8(127, -127), -1); + assert_eq!(or_si8(0, 0), 0); + assert_eq!(or_si8(0, 1), 1); + assert_eq!(or_si8(1, 0), 1); + assert_eq!(or_si8(1, 1), 1); + assert_eq!(or_si8(0, 2), 2); + assert_eq!(or_si8(2, 0), 2); + assert_eq!(or_si8(2, 2), 2); + assert_eq!(or_si8(0, 3), 3); + assert_eq!(or_si8(1, 2), 3); + assert_eq!(or_si8(1, 3), 3); + assert_eq!(or_si8(2, 1), 3); + assert_eq!(or_si8(2, 3), 3); + assert_eq!(or_si8(3, 0), 3); + assert_eq!(or_si8(3, 1), 3); + assert_eq!(or_si8(3, 2), 3); + assert_eq!(or_si8(3, 3), 3); + assert_eq!(or_si8(0, 4), 4); + assert_eq!(or_si8(4, 0), 4); + assert_eq!(or_si8(4, 4), 4); + assert_eq!(or_si8(1, 4), 5); + assert_eq!(or_si8(4, 1), 5); + assert_eq!(or_si8(2, 4), 6); + assert_eq!(or_si8(4, 2), 6); + assert_eq!(or_si8(3, 4), 7); + assert_eq!(or_si8(4, 3), 7); + assert_eq!(or_si8(0, 16), 16); + assert_eq!(or_si8(16, 0), 16); + assert_eq!(or_si8(16, 16), 16); + assert_eq!(or_si8(1, 16), 17); + assert_eq!(or_si8(16, 1), 17); + assert_eq!(or_si8(2, 16), 18); + assert_eq!(or_si8(16, 2), 18); + assert_eq!(or_si8(3, 16), 19); + assert_eq!(or_si8(16, 3), 19); + assert_eq!(or_si8(4, 16), 20); + assert_eq!(or_si8(16, 4), 20); + assert_eq!(or_si8(0, 126), 126); + assert_eq!(or_si8(2, 126), 126); + assert_eq!(or_si8(4, 126), 126); + assert_eq!(or_si8(16, 126), 126); + assert_eq!(or_si8(126, 0), 126); + assert_eq!(or_si8(126, 2), 126); + assert_eq!(or_si8(126, 4), 126); + assert_eq!(or_si8(126, 16), 126); + assert_eq!(or_si8(126, 126), 126); + assert_eq!(or_si8(0, 127), 127); + assert_eq!(or_si8(1, 126), 127); + assert_eq!(or_si8(1, 127), 127); + assert_eq!(or_si8(2, 127), 127); + assert_eq!(or_si8(3, 126), 127); + assert_eq!(or_si8(3, 127), 127); + assert_eq!(or_si8(4, 127), 127); + assert_eq!(or_si8(16, 127), 127); + assert_eq!(or_si8(126, 1), 127); + assert_eq!(or_si8(126, 3), 127); + assert_eq!(or_si8(126, 127), 127); + assert_eq!(or_si8(127, 0), 127); + assert_eq!(or_si8(127, 1), 127); + assert_eq!(or_si8(127, 2), 127); + assert_eq!(or_si8(127, 3), 127); + assert_eq!(or_si8(127, 4), 127); + assert_eq!(or_si8(127, 16), 127); + assert_eq!(or_si8(127, 126), 127); + assert_eq!(or_si8(127, 127), 127); + assert_eq!(or_ui16(0, 0), 0); + assert_eq!(or_ui16(0, 1), 1); + assert_eq!(or_ui16(1, 0), 1); + assert_eq!(or_ui16(1, 1), 1); + assert_eq!(or_ui16(0, 2), 2); + assert_eq!(or_ui16(2, 0), 2); + assert_eq!(or_ui16(2, 2), 2); + assert_eq!(or_ui16(0, 3), 3); + assert_eq!(or_ui16(1, 2), 3); + assert_eq!(or_ui16(1, 3), 3); + assert_eq!(or_ui16(2, 1), 3); + assert_eq!(or_ui16(2, 3), 3); + assert_eq!(or_ui16(3, 0), 3); + assert_eq!(or_ui16(3, 1), 3); + assert_eq!(or_ui16(3, 2), 3); + assert_eq!(or_ui16(3, 3), 3); + assert_eq!(or_ui16(0, 4), 4); + assert_eq!(or_ui16(4, 0), 4); + assert_eq!(or_ui16(4, 4), 4); + assert_eq!(or_ui16(1, 4), 5); + assert_eq!(or_ui16(4, 1), 5); + assert_eq!(or_ui16(2, 4), 6); + assert_eq!(or_ui16(4, 2), 6); + assert_eq!(or_ui16(3, 4), 7); + assert_eq!(or_ui16(4, 3), 7); + assert_eq!(or_ui16(0, 1717), 1717); + assert_eq!(or_ui16(1, 1717), 1717); + assert_eq!(or_ui16(4, 1717), 1717); + assert_eq!(or_ui16(1717, 0), 1717); + assert_eq!(or_ui16(1717, 1), 1717); + assert_eq!(or_ui16(1717, 4), 1717); + assert_eq!(or_ui16(1717, 1717), 1717); + assert_eq!(or_ui16(2, 1717), 1719); + assert_eq!(or_ui16(3, 1717), 1719); + assert_eq!(or_ui16(1717, 2), 1719); + assert_eq!(or_ui16(1717, 3), 1719); + assert_eq!(or_ui16(0, 17988), 17988); + assert_eq!(or_ui16(4, 17988), 17988); + assert_eq!(or_ui16(17988, 0), 17988); + assert_eq!(or_ui16(17988, 4), 17988); + assert_eq!(or_ui16(17988, 17988), 17988); + assert_eq!(or_ui16(1, 17988), 17989); + assert_eq!(or_ui16(17988, 1), 17989); + assert_eq!(or_ui16(2, 17988), 17990); + assert_eq!(or_ui16(17988, 2), 17990); + assert_eq!(or_ui16(3, 17988), 17991); + assert_eq!(or_ui16(17988, 3), 17991); + assert_eq!(or_ui16(1717, 17988), 18165); + assert_eq!(or_ui16(17988, 1717), 18165); + assert_eq!(or_ui16(0, 65096), 65096); + assert_eq!(or_ui16(65096, 0), 65096); + assert_eq!(or_ui16(65096, 65096), 65096); + assert_eq!(or_ui16(1, 65096), 65097); + assert_eq!(or_ui16(65096, 1), 65097); + assert_eq!(or_ui16(2, 65096), 65098); + assert_eq!(or_ui16(65096, 2), 65098); + assert_eq!(or_ui16(3, 65096), 65099); + assert_eq!(or_ui16(65096, 3), 65099); + assert_eq!(or_ui16(4, 65096), 65100); + assert_eq!(or_ui16(17988, 65096), 65100); + assert_eq!(or_ui16(65096, 4), 65100); + assert_eq!(or_ui16(65096, 17988), 65100); + assert_eq!(or_ui16(1717, 65096), 65277); + assert_eq!(or_ui16(65096, 1717), 65277); + assert_eq!(or_ui16(0, 65534), 65534); + assert_eq!(or_ui16(2, 65534), 65534); + assert_eq!(or_ui16(4, 65534), 65534); + assert_eq!(or_ui16(17988, 65534), 65534); + assert_eq!(or_ui16(65096, 65534), 65534); + assert_eq!(or_ui16(65534, 0), 65534); + assert_eq!(or_ui16(65534, 2), 65534); + assert_eq!(or_ui16(65534, 4), 65534); + assert_eq!(or_ui16(65534, 17988), 65534); + assert_eq!(or_ui16(65534, 65096), 65534); + assert_eq!(or_ui16(65534, 65534), 65534); + assert_eq!(or_ui16(0, 65535), 65535); + assert_eq!(or_ui16(1, 65534), 65535); + assert_eq!(or_ui16(1, 65535), 65535); + assert_eq!(or_ui16(2, 65535), 65535); + assert_eq!(or_ui16(3, 65534), 65535); + assert_eq!(or_ui16(3, 65535), 65535); + assert_eq!(or_ui16(4, 65535), 65535); + assert_eq!(or_ui16(1717, 65534), 65535); + assert_eq!(or_ui16(1717, 65535), 65535); + assert_eq!(or_ui16(17988, 65535), 65535); + assert_eq!(or_ui16(65096, 65535), 65535); + assert_eq!(or_ui16(65534, 1), 65535); + assert_eq!(or_ui16(65534, 3), 65535); + assert_eq!(or_ui16(65534, 1717), 65535); + assert_eq!(or_ui16(65534, 65535), 65535); + assert_eq!(or_ui16(65535, 0), 65535); + assert_eq!(or_ui16(65535, 1), 65535); + assert_eq!(or_ui16(65535, 2), 65535); + assert_eq!(or_ui16(65535, 3), 65535); + assert_eq!(or_ui16(65535, 4), 65535); + assert_eq!(or_ui16(65535, 1717), 65535); + assert_eq!(or_ui16(65535, 17988), 65535); + assert_eq!(or_ui16(65535, 65096), 65535); + assert_eq!(or_ui16(65535, 65534), 65535); + assert_eq!(or_ui16(65535, 65535), 65535); + assert_eq!(or_ui32(0, 0), 0); + assert_eq!(or_ui32(0, 1), 1); + assert_eq!(or_ui32(1, 0), 1); + assert_eq!(or_ui32(1, 1), 1); + assert_eq!(or_ui32(0, 2), 2); + assert_eq!(or_ui32(2, 0), 2); + assert_eq!(or_ui32(2, 2), 2); + assert_eq!(or_ui32(0, 3), 3); + assert_eq!(or_ui32(1, 2), 3); + assert_eq!(or_ui32(1, 3), 3); + assert_eq!(or_ui32(2, 1), 3); + assert_eq!(or_ui32(2, 3), 3); + assert_eq!(or_ui32(3, 0), 3); + assert_eq!(or_ui32(3, 1), 3); + assert_eq!(or_ui32(3, 2), 3); + assert_eq!(or_ui32(3, 3), 3); + assert_eq!(or_ui32(0, 4), 4); + assert_eq!(or_ui32(4, 0), 4); + assert_eq!(or_ui32(4, 4), 4); + assert_eq!(or_ui32(1, 4), 5); + assert_eq!(or_ui32(4, 1), 5); + assert_eq!(or_ui32(2, 4), 6); + assert_eq!(or_ui32(4, 2), 6); + assert_eq!(or_ui32(3, 4), 7); + assert_eq!(or_ui32(4, 3), 7); + assert_eq!(or_ui32(0, 2119154652), 2119154652); + assert_eq!(or_ui32(4, 2119154652), 2119154652); + assert_eq!(or_ui32(2119154652, 0), 2119154652); + assert_eq!(or_ui32(2119154652, 4), 2119154652); + assert_eq!(or_ui32(2119154652, 2119154652), 2119154652); + assert_eq!(or_ui32(1, 2119154652), 2119154653); + assert_eq!(or_ui32(2119154652, 1), 2119154653); + assert_eq!(or_ui32(2, 2119154652), 2119154654); + assert_eq!(or_ui32(2119154652, 2), 2119154654); + assert_eq!(or_ui32(3, 2119154652), 2119154655); + assert_eq!(or_ui32(2119154652, 3), 2119154655); + assert_eq!(or_ui32(0, 3002788344), 3002788344); + assert_eq!(or_ui32(3002788344, 0), 3002788344); + assert_eq!(or_ui32(3002788344, 3002788344), 3002788344); + assert_eq!(or_ui32(1, 3002788344), 3002788345); + assert_eq!(or_ui32(3002788344, 1), 3002788345); + assert_eq!(or_ui32(2, 3002788344), 3002788346); + assert_eq!(or_ui32(3002788344, 2), 3002788346); + assert_eq!(or_ui32(3, 3002788344), 3002788347); + assert_eq!(or_ui32(3002788344, 3), 3002788347); + assert_eq!(or_ui32(4, 3002788344), 3002788348); + assert_eq!(or_ui32(3002788344, 4), 3002788348); + assert_eq!(or_ui32(0, 3482297128), 3482297128); + assert_eq!(or_ui32(3482297128, 0), 3482297128); + assert_eq!(or_ui32(3482297128, 3482297128), 3482297128); + assert_eq!(or_ui32(1, 3482297128), 3482297129); + assert_eq!(or_ui32(3482297128, 1), 3482297129); + assert_eq!(or_ui32(2, 3482297128), 3482297130); + assert_eq!(or_ui32(3482297128, 2), 3482297130); + assert_eq!(or_ui32(3, 3482297128), 3482297131); + assert_eq!(or_ui32(3482297128, 3), 3482297131); + assert_eq!(or_ui32(4, 3482297128), 3482297132); + assert_eq!(or_ui32(3482297128, 4), 3482297132); + assert_eq!(or_ui32(2119154652, 3002788344), 4278189052); + assert_eq!(or_ui32(3002788344, 2119154652), 4278189052); + assert_eq!(or_ui32(2119154652, 3482297128), 4291804156); + assert_eq!(or_ui32(3482297128, 2119154652), 4291804156); + assert_eq!(or_ui32(3002788344, 3482297128), 4294962168); + assert_eq!(or_ui32(3482297128, 3002788344), 4294962168); + assert_eq!(or_ui32(0, 4294967294), 4294967294); + assert_eq!(or_ui32(2, 4294967294), 4294967294); + assert_eq!(or_ui32(4, 4294967294), 4294967294); + assert_eq!(or_ui32(2119154652, 4294967294), 4294967294); + assert_eq!(or_ui32(3002788344, 4294967294), 4294967294); + assert_eq!(or_ui32(3482297128, 4294967294), 4294967294); + assert_eq!(or_ui32(4294967294, 0), 4294967294); + assert_eq!(or_ui32(4294967294, 2), 4294967294); + assert_eq!(or_ui32(4294967294, 4), 4294967294); + assert_eq!(or_ui32(4294967294, 2119154652), 4294967294); + assert_eq!(or_ui32(4294967294, 3002788344), 4294967294); + assert_eq!(or_ui32(4294967294, 3482297128), 4294967294); + assert_eq!(or_ui32(4294967294, 4294967294), 4294967294); + assert_eq!(or_ui32(0, 4294967295), 4294967295); + assert_eq!(or_ui32(1, 4294967294), 4294967295); + assert_eq!(or_ui32(1, 4294967295), 4294967295); + assert_eq!(or_ui32(2, 4294967295), 4294967295); + assert_eq!(or_ui32(3, 4294967294), 4294967295); + assert_eq!(or_ui32(3, 4294967295), 4294967295); + assert_eq!(or_ui32(4, 4294967295), 4294967295); + assert_eq!(or_ui32(2119154652, 4294967295), 4294967295); + assert_eq!(or_ui32(3002788344, 4294967295), 4294967295); + assert_eq!(or_ui32(3482297128, 4294967295), 4294967295); + assert_eq!(or_ui32(4294967294, 1), 4294967295); + assert_eq!(or_ui32(4294967294, 3), 4294967295); + assert_eq!(or_ui32(4294967294, 4294967295), 4294967295); + assert_eq!(or_ui32(4294967295, 0), 4294967295); + assert_eq!(or_ui32(4294967295, 1), 4294967295); + assert_eq!(or_ui32(4294967295, 2), 4294967295); + assert_eq!(or_ui32(4294967295, 3), 4294967295); + assert_eq!(or_ui32(4294967295, 4), 4294967295); + assert_eq!(or_ui32(4294967295, 2119154652), 4294967295); + assert_eq!(or_ui32(4294967295, 3002788344), 4294967295); + assert_eq!(or_ui32(4294967295, 3482297128), 4294967295); + assert_eq!(or_ui32(4294967295, 4294967294), 4294967295); + assert_eq!(or_ui32(4294967295, 4294967295), 4294967295); + assert_eq!(or_ui64(0, 0), 0); + assert_eq!(or_ui64(0, 1), 1); + assert_eq!(or_ui64(1, 0), 1); + assert_eq!(or_ui64(1, 1), 1); + assert_eq!(or_ui64(0, 2), 2); + assert_eq!(or_ui64(2, 0), 2); + assert_eq!(or_ui64(2, 2), 2); + assert_eq!(or_ui64(0, 3), 3); + assert_eq!(or_ui64(1, 2), 3); + assert_eq!(or_ui64(1, 3), 3); + assert_eq!(or_ui64(2, 1), 3); + assert_eq!(or_ui64(2, 3), 3); + assert_eq!(or_ui64(3, 0), 3); + assert_eq!(or_ui64(3, 1), 3); + assert_eq!(or_ui64(3, 2), 3); + assert_eq!(or_ui64(3, 3), 3); + assert_eq!(or_ui64(0, 4), 4); + assert_eq!(or_ui64(4, 0), 4); + assert_eq!(or_ui64(4, 4), 4); + assert_eq!(or_ui64(1, 4), 5); + assert_eq!(or_ui64(4, 1), 5); + assert_eq!(or_ui64(2, 4), 6); + assert_eq!(or_ui64(4, 2), 6); + assert_eq!(or_ui64(3, 4), 7); + assert_eq!(or_ui64(4, 3), 7); + assert_eq!(or_ui64(0, 191084152064409600), 191084152064409600); + assert_eq!(or_ui64(191084152064409600, 0), 191084152064409600); + assert_eq!( + or_ui64(191084152064409600, 191084152064409600), + 191084152064409600 + ); + assert_eq!(or_ui64(1, 191084152064409600), 191084152064409601); + assert_eq!(or_ui64(191084152064409600, 1), 191084152064409601); + assert_eq!(or_ui64(2, 191084152064409600), 191084152064409602); + assert_eq!(or_ui64(191084152064409600, 2), 191084152064409602); + assert_eq!(or_ui64(3, 191084152064409600), 191084152064409603); + assert_eq!(or_ui64(191084152064409600, 3), 191084152064409603); + assert_eq!(or_ui64(4, 191084152064409600), 191084152064409604); + assert_eq!(or_ui64(191084152064409600, 4), 191084152064409604); + assert_eq!(or_ui64(0, 11015955194427482112), 11015955194427482112); + assert_eq!(or_ui64(11015955194427482112, 0), 11015955194427482112); + assert_eq!( + or_ui64(11015955194427482112, 11015955194427482112), + 11015955194427482112 + ); + assert_eq!(or_ui64(1, 11015955194427482112), 11015955194427482113); + assert_eq!(or_ui64(11015955194427482112, 1), 11015955194427482113); + assert_eq!(or_ui64(2, 11015955194427482112), 11015955194427482114); + assert_eq!(or_ui64(11015955194427482112, 2), 11015955194427482114); + assert_eq!(or_ui64(3, 11015955194427482112), 11015955194427482115); + assert_eq!(or_ui64(11015955194427482112, 3), 11015955194427482115); + assert_eq!(or_ui64(4, 11015955194427482112), 11015955194427482116); + assert_eq!(or_ui64(11015955194427482112, 4), 11015955194427482116); + assert_eq!( + or_ui64(191084152064409600, 11015955194427482112), + 11161853808046874624 + ); + assert_eq!( + or_ui64(11015955194427482112, 191084152064409600), + 11161853808046874624 + ); + assert_eq!(or_ui64(0, 16990600415051759616), 16990600415051759616); + assert_eq!(or_ui64(16990600415051759616, 0), 16990600415051759616); + assert_eq!( + or_ui64(16990600415051759616, 16990600415051759616), + 16990600415051759616 + ); + assert_eq!(or_ui64(1, 16990600415051759616), 16990600415051759617); + assert_eq!(or_ui64(16990600415051759616, 1), 16990600415051759617); + assert_eq!(or_ui64(2, 16990600415051759616), 16990600415051759618); + assert_eq!(or_ui64(16990600415051759616, 2), 16990600415051759618); + assert_eq!(or_ui64(3, 16990600415051759616), 16990600415051759619); + assert_eq!(or_ui64(16990600415051759616, 3), 16990600415051759619); + assert_eq!(or_ui64(4, 16990600415051759616), 16990600415051759620); + assert_eq!(or_ui64(16990600415051759616, 4), 16990600415051759620); + assert_eq!( + or_ui64(191084152064409600, 16990600415051759616), + 17000806082182103040 + ); + assert_eq!( + or_ui64(16990600415051759616, 191084152064409600), + 17000806082182103040 + ); + assert_eq!( + or_ui64(11015955194427482112, 16990600415051759616), + 18152530082063441920 + ); + assert_eq!( + or_ui64(16990600415051759616, 11015955194427482112), + 18152530082063441920 + ); + assert_eq!(or_ui64(0, 18446744073709551614), 18446744073709551614); + assert_eq!(or_ui64(2, 18446744073709551614), 18446744073709551614); + assert_eq!(or_ui64(4, 18446744073709551614), 18446744073709551614); + assert_eq!( + or_ui64(191084152064409600, 18446744073709551614), + 18446744073709551614 + ); + assert_eq!( + or_ui64(11015955194427482112, 18446744073709551614), + 18446744073709551614 + ); + assert_eq!( + or_ui64(16990600415051759616, 18446744073709551614), + 18446744073709551614 + ); + assert_eq!(or_ui64(18446744073709551614, 0), 18446744073709551614); + assert_eq!(or_ui64(18446744073709551614, 2), 18446744073709551614); + assert_eq!(or_ui64(18446744073709551614, 4), 18446744073709551614); + assert_eq!( + or_ui64(18446744073709551614, 191084152064409600), + 18446744073709551614 + ); + assert_eq!( + or_ui64(18446744073709551614, 11015955194427482112), + 18446744073709551614 + ); + assert_eq!( + or_ui64(18446744073709551614, 16990600415051759616), + 18446744073709551614 + ); + assert_eq!( + or_ui64(18446744073709551614, 18446744073709551614), + 18446744073709551614 + ); + assert_eq!(or_ui64(0, 18446744073709551615), 18446744073709551615); + assert_eq!(or_ui64(1, 18446744073709551614), 18446744073709551615); + assert_eq!(or_ui64(1, 18446744073709551615), 18446744073709551615); + assert_eq!(or_ui64(2, 18446744073709551615), 18446744073709551615); + assert_eq!(or_ui64(3, 18446744073709551614), 18446744073709551615); + assert_eq!(or_ui64(3, 18446744073709551615), 18446744073709551615); + assert_eq!(or_ui64(4, 18446744073709551615), 18446744073709551615); + assert_eq!( + or_ui64(191084152064409600, 18446744073709551615), + 18446744073709551615 + ); + assert_eq!( + or_ui64(11015955194427482112, 18446744073709551615), + 18446744073709551615 + ); + assert_eq!( + or_ui64(16990600415051759616, 18446744073709551615), + 18446744073709551615 + ); + assert_eq!(or_ui64(18446744073709551614, 1), 18446744073709551615); + assert_eq!(or_ui64(18446744073709551614, 3), 18446744073709551615); + assert_eq!( + or_ui64(18446744073709551614, 18446744073709551615), + 18446744073709551615 + ); + assert_eq!(or_ui64(18446744073709551615, 0), 18446744073709551615); + assert_eq!(or_ui64(18446744073709551615, 1), 18446744073709551615); + assert_eq!(or_ui64(18446744073709551615, 2), 18446744073709551615); + assert_eq!(or_ui64(18446744073709551615, 3), 18446744073709551615); + assert_eq!(or_ui64(18446744073709551615, 4), 18446744073709551615); + assert_eq!( + or_ui64(18446744073709551615, 191084152064409600), + 18446744073709551615 + ); + assert_eq!( + or_ui64(18446744073709551615, 11015955194427482112), + 18446744073709551615 + ); + assert_eq!( + or_ui64(18446744073709551615, 16990600415051759616), + 18446744073709551615 + ); + assert_eq!( + or_ui64(18446744073709551615, 18446744073709551614), + 18446744073709551615 + ); + assert_eq!( + or_ui64(18446744073709551615, 18446744073709551615), + 18446744073709551615 + ); + assert_eq!(or_ui8(0, 0), 0); + assert_eq!(or_ui8(0, 1), 1); + assert_eq!(or_ui8(1, 0), 1); + assert_eq!(or_ui8(1, 1), 1); + assert_eq!(or_ui8(0, 2), 2); + assert_eq!(or_ui8(2, 0), 2); + assert_eq!(or_ui8(2, 2), 2); + assert_eq!(or_ui8(0, 3), 3); + assert_eq!(or_ui8(1, 2), 3); + assert_eq!(or_ui8(1, 3), 3); + assert_eq!(or_ui8(2, 1), 3); + assert_eq!(or_ui8(2, 3), 3); + assert_eq!(or_ui8(3, 0), 3); + assert_eq!(or_ui8(3, 1), 3); + assert_eq!(or_ui8(3, 2), 3); + assert_eq!(or_ui8(3, 3), 3); + assert_eq!(or_ui8(0, 4), 4); + assert_eq!(or_ui8(4, 0), 4); + assert_eq!(or_ui8(4, 4), 4); + assert_eq!(or_ui8(1, 4), 5); + assert_eq!(or_ui8(4, 1), 5); + assert_eq!(or_ui8(2, 4), 6); + assert_eq!(or_ui8(4, 2), 6); + assert_eq!(or_ui8(3, 4), 7); + assert_eq!(or_ui8(4, 3), 7); + assert_eq!(or_ui8(0, 72), 72); + assert_eq!(or_ui8(72, 0), 72); + assert_eq!(or_ui8(72, 72), 72); + assert_eq!(or_ui8(1, 72), 73); + assert_eq!(or_ui8(72, 1), 73); + assert_eq!(or_ui8(2, 72), 74); + assert_eq!(or_ui8(72, 2), 74); + assert_eq!(or_ui8(3, 72), 75); + assert_eq!(or_ui8(72, 3), 75); + assert_eq!(or_ui8(4, 72), 76); + assert_eq!(or_ui8(72, 4), 76); + assert_eq!(or_ui8(0, 100), 100); + assert_eq!(or_ui8(4, 100), 100); + assert_eq!(or_ui8(100, 0), 100); + assert_eq!(or_ui8(100, 4), 100); + assert_eq!(or_ui8(100, 100), 100); + assert_eq!(or_ui8(1, 100), 101); + assert_eq!(or_ui8(100, 1), 101); + assert_eq!(or_ui8(2, 100), 102); + assert_eq!(or_ui8(100, 2), 102); + assert_eq!(or_ui8(3, 100), 103); + assert_eq!(or_ui8(100, 3), 103); + assert_eq!(or_ui8(72, 100), 108); + assert_eq!(or_ui8(100, 72), 108); + assert_eq!(or_ui8(0, 162), 162); + assert_eq!(or_ui8(2, 162), 162); + assert_eq!(or_ui8(162, 0), 162); + assert_eq!(or_ui8(162, 2), 162); + assert_eq!(or_ui8(162, 162), 162); + assert_eq!(or_ui8(1, 162), 163); + assert_eq!(or_ui8(3, 162), 163); + assert_eq!(or_ui8(162, 1), 163); + assert_eq!(or_ui8(162, 3), 163); + assert_eq!(or_ui8(4, 162), 166); + assert_eq!(or_ui8(162, 4), 166); + assert_eq!(or_ui8(100, 162), 230); + assert_eq!(or_ui8(162, 100), 230); + assert_eq!(or_ui8(72, 162), 234); + assert_eq!(or_ui8(162, 72), 234); + assert_eq!(or_ui8(0, 254), 254); + assert_eq!(or_ui8(2, 254), 254); + assert_eq!(or_ui8(4, 254), 254); + assert_eq!(or_ui8(72, 254), 254); + assert_eq!(or_ui8(100, 254), 254); + assert_eq!(or_ui8(162, 254), 254); + assert_eq!(or_ui8(254, 0), 254); + assert_eq!(or_ui8(254, 2), 254); + assert_eq!(or_ui8(254, 4), 254); + assert_eq!(or_ui8(254, 72), 254); + assert_eq!(or_ui8(254, 100), 254); + assert_eq!(or_ui8(254, 162), 254); + assert_eq!(or_ui8(254, 254), 254); + assert_eq!(or_ui8(0, 255), 255); + assert_eq!(or_ui8(1, 254), 255); + assert_eq!(or_ui8(1, 255), 255); + assert_eq!(or_ui8(2, 255), 255); + assert_eq!(or_ui8(3, 254), 255); + assert_eq!(or_ui8(3, 255), 255); + assert_eq!(or_ui8(4, 255), 255); + assert_eq!(or_ui8(72, 255), 255); + assert_eq!(or_ui8(100, 255), 255); + assert_eq!(or_ui8(162, 255), 255); + assert_eq!(or_ui8(254, 1), 255); + assert_eq!(or_ui8(254, 3), 255); + assert_eq!(or_ui8(254, 255), 255); + assert_eq!(or_ui8(255, 0), 255); + assert_eq!(or_ui8(255, 1), 255); + assert_eq!(or_ui8(255, 2), 255); + assert_eq!(or_ui8(255, 3), 255); + assert_eq!(or_ui8(255, 4), 255); + assert_eq!(or_ui8(255, 72), 255); + assert_eq!(or_ui8(255, 100), 255); + assert_eq!(or_ui8(255, 162), 255); + assert_eq!(or_ui8(255, 254), 255); + assert_eq!(or_ui8(255, 255), 255); + assert_eq!(xor_si16(-32768, 0), -32768); + assert_eq!(xor_si16(-32767, 1), -32768); + assert_eq!(xor_si16(0, -32768), -32768); + assert_eq!(xor_si16(1, -32767), -32768); + assert_eq!(xor_si16(-32768, 1), -32767); + assert_eq!(xor_si16(-32767, 0), -32767); + assert_eq!(xor_si16(0, -32767), -32767); + assert_eq!(xor_si16(1, -32768), -32767); + assert_eq!(xor_si16(-32768, 2), -32766); + assert_eq!(xor_si16(-32767, 3), -32766); + assert_eq!(xor_si16(2, -32768), -32766); + assert_eq!(xor_si16(3, -32767), -32766); + assert_eq!(xor_si16(-32768, 3), -32765); + assert_eq!(xor_si16(-32767, 2), -32765); + assert_eq!(xor_si16(2, -32767), -32765); + assert_eq!(xor_si16(3, -32768), -32765); + assert_eq!(xor_si16(-32768, 4), -32764); + assert_eq!(xor_si16(4, -32768), -32764); + assert_eq!(xor_si16(-32767, 4), -32763); + assert_eq!(xor_si16(4, -32767), -32763); + assert_eq!(xor_si16(-32547, 4), -32551); + assert_eq!(xor_si16(4, -32547), -32551); + assert_eq!(xor_si16(-32547, 1), -32548); + assert_eq!(xor_si16(1, -32547), -32548); + assert_eq!(xor_si16(-32547, 0), -32547); + assert_eq!(xor_si16(0, -32547), -32547); + assert_eq!(xor_si16(-32547, 3), -32546); + assert_eq!(xor_si16(3, -32547), -32546); + assert_eq!(xor_si16(-32547, 2), -32545); + assert_eq!(xor_si16(2, -32547), -32545); + assert_eq!(xor_si16(-32547, 10486), -22485); + assert_eq!(xor_si16(10486, -32547), -22485); + assert_eq!(xor_si16(-32768, 10486), -22282); + assert_eq!(xor_si16(10486, -32768), -22282); + assert_eq!(xor_si16(-32767, 10486), -22281); + assert_eq!(xor_si16(10486, -32767), -22281); + assert_eq!(xor_si16(-32547, 16514), -16289); + assert_eq!(xor_si16(16514, -32547), -16289); + assert_eq!(xor_si16(-32768, 16514), -16254); + assert_eq!(xor_si16(16514, -32768), -16254); + assert_eq!(xor_si16(-32767, 16514), -16253); + assert_eq!(xor_si16(16514, -32767), -16253); + assert_eq!(xor_si16(-32547, 32767), -222); + assert_eq!(xor_si16(32767, -32547), -222); + assert_eq!(xor_si16(-32547, 32766), -221); + assert_eq!(xor_si16(32766, -32547), -221); + assert_eq!(xor_si16(-32768, 32766), -2); + assert_eq!(xor_si16(-32767, 32767), -2); + assert_eq!(xor_si16(32766, -32768), -2); + assert_eq!(xor_si16(32767, -32767), -2); + assert_eq!(xor_si16(-32768, 32767), -1); + assert_eq!(xor_si16(-32767, 32766), -1); + assert_eq!(xor_si16(32766, -32767), -1); + assert_eq!(xor_si16(32767, -32768), -1); + assert_eq!(xor_si16(-32768, -32768), 0); + assert_eq!(xor_si16(-32767, -32767), 0); + assert_eq!(xor_si16(-32547, -32547), 0); + assert_eq!(xor_si16(0, 0), 0); + assert_eq!(xor_si16(1, 1), 0); + assert_eq!(xor_si16(2, 2), 0); + assert_eq!(xor_si16(3, 3), 0); + assert_eq!(xor_si16(4, 4), 0); + assert_eq!(xor_si16(10486, 10486), 0); + assert_eq!(xor_si16(16514, 16514), 0); + assert_eq!(xor_si16(32766, 32766), 0); + assert_eq!(xor_si16(32767, 32767), 0); + assert_eq!(xor_si16(-32768, -32767), 1); + assert_eq!(xor_si16(-32767, -32768), 1); + assert_eq!(xor_si16(0, 1), 1); + assert_eq!(xor_si16(1, 0), 1); + assert_eq!(xor_si16(2, 3), 1); + assert_eq!(xor_si16(3, 2), 1); + assert_eq!(xor_si16(32766, 32767), 1); + assert_eq!(xor_si16(32767, 32766), 1); + assert_eq!(xor_si16(0, 2), 2); + assert_eq!(xor_si16(1, 3), 2); + assert_eq!(xor_si16(2, 0), 2); + assert_eq!(xor_si16(3, 1), 2); + assert_eq!(xor_si16(0, 3), 3); + assert_eq!(xor_si16(1, 2), 3); + assert_eq!(xor_si16(2, 1), 3); + assert_eq!(xor_si16(3, 0), 3); + assert_eq!(xor_si16(0, 4), 4); + assert_eq!(xor_si16(4, 0), 4); + assert_eq!(xor_si16(1, 4), 5); + assert_eq!(xor_si16(4, 1), 5); + assert_eq!(xor_si16(2, 4), 6); + assert_eq!(xor_si16(4, 2), 6); + assert_eq!(xor_si16(3, 4), 7); + assert_eq!(xor_si16(4, 3), 7); + assert_eq!(xor_si16(-32767, -32547), 220); + assert_eq!(xor_si16(-32547, -32767), 220); + assert_eq!(xor_si16(-32768, -32547), 221); + assert_eq!(xor_si16(-32547, -32768), 221); + assert_eq!(xor_si16(4, 10486), 10482); + assert_eq!(xor_si16(10486, 4), 10482); + assert_eq!(xor_si16(2, 10486), 10484); + assert_eq!(xor_si16(10486, 2), 10484); + assert_eq!(xor_si16(3, 10486), 10485); + assert_eq!(xor_si16(10486, 3), 10485); + assert_eq!(xor_si16(0, 10486), 10486); + assert_eq!(xor_si16(10486, 0), 10486); + assert_eq!(xor_si16(1, 10486), 10487); + assert_eq!(xor_si16(10486, 1), 10487); + assert_eq!(xor_si16(16514, 32766), 16252); + assert_eq!(xor_si16(32766, 16514), 16252); + assert_eq!(xor_si16(16514, 32767), 16253); + assert_eq!(xor_si16(32767, 16514), 16253); + assert_eq!(xor_si16(2, 16514), 16512); + assert_eq!(xor_si16(16514, 2), 16512); + assert_eq!(xor_si16(3, 16514), 16513); + assert_eq!(xor_si16(16514, 3), 16513); + assert_eq!(xor_si16(0, 16514), 16514); + assert_eq!(xor_si16(16514, 0), 16514); + assert_eq!(xor_si16(1, 16514), 16515); + assert_eq!(xor_si16(16514, 1), 16515); + assert_eq!(xor_si16(4, 16514), 16518); + assert_eq!(xor_si16(16514, 4), 16518); + assert_eq!(xor_si16(10486, 32766), 22280); + assert_eq!(xor_si16(32766, 10486), 22280); + assert_eq!(xor_si16(10486, 32767), 22281); + assert_eq!(xor_si16(32767, 10486), 22281); + assert_eq!(xor_si16(10486, 16514), 26740); + assert_eq!(xor_si16(16514, 10486), 26740); + assert_eq!(xor_si16(4, 32766), 32762); + assert_eq!(xor_si16(32766, 4), 32762); + assert_eq!(xor_si16(4, 32767), 32763); + assert_eq!(xor_si16(32767, 4), 32763); + assert_eq!(xor_si16(2, 32766), 32764); + assert_eq!(xor_si16(3, 32767), 32764); + assert_eq!(xor_si16(32766, 2), 32764); + assert_eq!(xor_si16(32767, 3), 32764); + assert_eq!(xor_si16(2, 32767), 32765); + assert_eq!(xor_si16(3, 32766), 32765); + assert_eq!(xor_si16(32766, 3), 32765); + assert_eq!(xor_si16(32767, 2), 32765); + assert_eq!(xor_si16(0, 32766), 32766); + assert_eq!(xor_si16(1, 32767), 32766); + assert_eq!(xor_si16(32766, 0), 32766); + assert_eq!(xor_si16(32767, 1), 32766); + assert_eq!(xor_si16(0, 32767), 32767); + assert_eq!(xor_si16(1, 32766), 32767); + assert_eq!(xor_si16(32766, 1), 32767); + assert_eq!(xor_si16(32767, 0), 32767); + assert_eq!(xor_si32(-2147483648, 0), -2147483648); + assert_eq!(xor_si32(-2147483647, 1), -2147483648); + assert_eq!(xor_si32(0, -2147483648), -2147483648); + assert_eq!(xor_si32(1, -2147483647), -2147483648); + assert_eq!(xor_si32(-2147483648, 1), -2147483647); + assert_eq!(xor_si32(-2147483647, 0), -2147483647); + assert_eq!(xor_si32(0, -2147483647), -2147483647); + assert_eq!(xor_si32(1, -2147483648), -2147483647); + assert_eq!(xor_si32(-2147483648, 2), -2147483646); + assert_eq!(xor_si32(-2147483647, 3), -2147483646); + assert_eq!(xor_si32(2, -2147483648), -2147483646); + assert_eq!(xor_si32(3, -2147483647), -2147483646); + assert_eq!(xor_si32(-2147483648, 3), -2147483645); + assert_eq!(xor_si32(-2147483647, 2), -2147483645); + assert_eq!(xor_si32(2, -2147483647), -2147483645); + assert_eq!(xor_si32(3, -2147483648), -2147483645); + assert_eq!(xor_si32(-2147483648, 4), -2147483644); + assert_eq!(xor_si32(4, -2147483648), -2147483644); + assert_eq!(xor_si32(-2147483647, 4), -2147483643); + assert_eq!(xor_si32(4, -2147483647), -2147483643); + assert_eq!(xor_si32(-1713183800, 0), -1713183800); + assert_eq!(xor_si32(0, -1713183800), -1713183800); + assert_eq!(xor_si32(-1713183800, 1), -1713183799); + assert_eq!(xor_si32(1, -1713183800), -1713183799); + assert_eq!(xor_si32(-1713183800, 2), -1713183798); + assert_eq!(xor_si32(2, -1713183800), -1713183798); + assert_eq!(xor_si32(-1713183800, 3), -1713183797); + assert_eq!(xor_si32(3, -1713183800), -1713183797); + assert_eq!(xor_si32(-1713183800, 4), -1713183796); + assert_eq!(xor_si32(4, -1713183800), -1713183796); + assert_eq!(xor_si32(-1252582164, 4), -1252582168); + assert_eq!(xor_si32(4, -1252582164), -1252582168); + assert_eq!(xor_si32(-1252582164, 0), -1252582164); + assert_eq!(xor_si32(0, -1252582164), -1252582164); + assert_eq!(xor_si32(-1252582164, 1), -1252582163); + assert_eq!(xor_si32(1, -1252582164), -1252582163); + assert_eq!(xor_si32(-1252582164, 2), -1252582162); + assert_eq!(xor_si32(2, -1252582164), -1252582162); + assert_eq!(xor_si32(-1252582164, 3), -1252582161); + assert_eq!(xor_si32(3, -1252582164), -1252582161); + assert_eq!(xor_si32(-1035405763, 2147483647), -1112077886); + assert_eq!(xor_si32(2147483647, -1035405763), -1112077886); + assert_eq!(xor_si32(-1035405763, 2147483646), -1112077885); + assert_eq!(xor_si32(2147483646, -1035405763), -1112077885); + assert_eq!(xor_si32(-1035405763, 4), -1035405767); + assert_eq!(xor_si32(4, -1035405763), -1035405767); + assert_eq!(xor_si32(-1035405763, 1), -1035405764); + assert_eq!(xor_si32(1, -1035405763), -1035405764); + assert_eq!(xor_si32(-1035405763, 0), -1035405763); + assert_eq!(xor_si32(0, -1035405763), -1035405763); + assert_eq!(xor_si32(-1035405763, 3), -1035405762); + assert_eq!(xor_si32(3, -1035405763), -1035405762); + assert_eq!(xor_si32(-1035405763, 2), -1035405761); + assert_eq!(xor_si32(2, -1035405763), -1035405761); + assert_eq!(xor_si32(-1252582164, 2147483646), -894901486); + assert_eq!(xor_si32(2147483646, -1252582164), -894901486); + assert_eq!(xor_si32(-1252582164, 2147483647), -894901485); + assert_eq!(xor_si32(2147483647, -1252582164), -894901485); + assert_eq!(xor_si32(-1713183800, 2147483646), -434299850); + assert_eq!(xor_si32(2147483646, -1713183800), -434299850); + assert_eq!(xor_si32(-1713183800, 2147483647), -434299849); + assert_eq!(xor_si32(2147483647, -1713183800), -434299849); + assert_eq!(xor_si32(-2147483648, 2147483646), -2); + assert_eq!(xor_si32(-2147483647, 2147483647), -2); + assert_eq!(xor_si32(2147483646, -2147483648), -2); + assert_eq!(xor_si32(2147483647, -2147483647), -2); + assert_eq!(xor_si32(-2147483648, 2147483647), -1); + assert_eq!(xor_si32(-2147483647, 2147483646), -1); + assert_eq!(xor_si32(2147483646, -2147483647), -1); + assert_eq!(xor_si32(2147483647, -2147483648), -1); + assert_eq!(xor_si32(-2147483648, -2147483648), 0); + assert_eq!(xor_si32(-2147483647, -2147483647), 0); + assert_eq!(xor_si32(-1713183800, -1713183800), 0); + assert_eq!(xor_si32(-1252582164, -1252582164), 0); + assert_eq!(xor_si32(-1035405763, -1035405763), 0); + assert_eq!(xor_si32(0, 0), 0); + assert_eq!(xor_si32(1, 1), 0); + assert_eq!(xor_si32(2, 2), 0); + assert_eq!(xor_si32(3, 3), 0); + assert_eq!(xor_si32(4, 4), 0); + assert_eq!(xor_si32(2147483646, 2147483646), 0); + assert_eq!(xor_si32(2147483647, 2147483647), 0); + assert_eq!(xor_si32(-2147483648, -2147483647), 1); + assert_eq!(xor_si32(-2147483647, -2147483648), 1); + assert_eq!(xor_si32(0, 1), 1); + assert_eq!(xor_si32(1, 0), 1); + assert_eq!(xor_si32(2, 3), 1); + assert_eq!(xor_si32(3, 2), 1); + assert_eq!(xor_si32(2147483646, 2147483647), 1); + assert_eq!(xor_si32(2147483647, 2147483646), 1); + assert_eq!(xor_si32(0, 2), 2); + assert_eq!(xor_si32(1, 3), 2); + assert_eq!(xor_si32(2, 0), 2); + assert_eq!(xor_si32(3, 1), 2); + assert_eq!(xor_si32(0, 3), 3); + assert_eq!(xor_si32(1, 2), 3); + assert_eq!(xor_si32(2, 1), 3); + assert_eq!(xor_si32(3, 0), 3); + assert_eq!(xor_si32(0, 4), 4); + assert_eq!(xor_si32(4, 0), 4); + assert_eq!(xor_si32(1, 4), 5); + assert_eq!(xor_si32(4, 1), 5); + assert_eq!(xor_si32(2, 4), 6); + assert_eq!(xor_si32(4, 2), 6); + assert_eq!(xor_si32(3, 4), 7); + assert_eq!(xor_si32(4, 3), 7); + assert_eq!(xor_si32(-2147483648, -1713183800), 434299848); + assert_eq!(xor_si32(-1713183800, -2147483648), 434299848); + assert_eq!(xor_si32(-2147483647, -1713183800), 434299849); + assert_eq!(xor_si32(-1713183800, -2147483647), 434299849); + assert_eq!(xor_si32(-1713183800, -1252582164), 750124836); + assert_eq!(xor_si32(-1252582164, -1713183800), 750124836); + assert_eq!(xor_si32(-2147483648, -1252582164), 894901484); + assert_eq!(xor_si32(-1252582164, -2147483648), 894901484); + assert_eq!(xor_si32(-2147483647, -1252582164), 894901485); + assert_eq!(xor_si32(-1252582164, -2147483647), 894901485); + assert_eq!(xor_si32(-2147483647, -1035405763), 1112077884); + assert_eq!(xor_si32(-1035405763, -2147483647), 1112077884); + assert_eq!(xor_si32(-2147483648, -1035405763), 1112077885); + assert_eq!(xor_si32(-1035405763, -2147483648), 1112077885); + assert_eq!(xor_si32(-1713183800, -1035405763), 1537873397); + assert_eq!(xor_si32(-1035405763, -1713183800), 1537873397); + assert_eq!(xor_si32(-1252582164, -1035405763), 1998580433); + assert_eq!(xor_si32(-1035405763, -1252582164), 1998580433); + assert_eq!(xor_si32(4, 2147483646), 2147483642); + assert_eq!(xor_si32(2147483646, 4), 2147483642); + assert_eq!(xor_si32(4, 2147483647), 2147483643); + assert_eq!(xor_si32(2147483647, 4), 2147483643); + assert_eq!(xor_si32(2, 2147483646), 2147483644); + assert_eq!(xor_si32(3, 2147483647), 2147483644); + assert_eq!(xor_si32(2147483646, 2), 2147483644); + assert_eq!(xor_si32(2147483647, 3), 2147483644); + assert_eq!(xor_si32(2, 2147483647), 2147483645); + assert_eq!(xor_si32(3, 2147483646), 2147483645); + assert_eq!(xor_si32(2147483646, 3), 2147483645); + assert_eq!(xor_si32(2147483647, 2), 2147483645); + assert_eq!(xor_si32(0, 2147483646), 2147483646); + assert_eq!(xor_si32(1, 2147483647), 2147483646); + assert_eq!(xor_si32(2147483646, 0), 2147483646); + assert_eq!(xor_si32(2147483647, 1), 2147483646); + assert_eq!(xor_si32(0, 2147483647), 2147483647); + assert_eq!(xor_si32(1, 2147483646), 2147483647); + assert_eq!(xor_si32(2147483646, 1), 2147483647); + assert_eq!(xor_si32(2147483647, 0), 2147483647); + assert_eq!(xor_si64(-9223372036854775808, 0), -9223372036854775808); + assert_eq!(xor_si64(-9223372036854775807, 1), -9223372036854775808); + assert_eq!(xor_si64(0, -9223372036854775808), -9223372036854775808); + assert_eq!(xor_si64(1, -9223372036854775807), -9223372036854775808); + assert_eq!(xor_si64(-9223372036854775808, 1), -9223372036854775807); + assert_eq!(xor_si64(-9223372036854775807, 0), -9223372036854775807); + assert_eq!(xor_si64(0, -9223372036854775807), -9223372036854775807); + assert_eq!(xor_si64(1, -9223372036854775808), -9223372036854775807); + assert_eq!(xor_si64(-9223372036854775808, 2), -9223372036854775806); + assert_eq!(xor_si64(-9223372036854775807, 3), -9223372036854775806); + assert_eq!(xor_si64(2, -9223372036854775808), -9223372036854775806); + assert_eq!(xor_si64(3, -9223372036854775807), -9223372036854775806); + assert_eq!(xor_si64(-9223372036854775808, 3), -9223372036854775805); + assert_eq!(xor_si64(-9223372036854775807, 2), -9223372036854775805); + assert_eq!(xor_si64(2, -9223372036854775807), -9223372036854775805); + assert_eq!(xor_si64(3, -9223372036854775808), -9223372036854775805); + assert_eq!(xor_si64(-9223372036854775808, 4), -9223372036854775804); + assert_eq!(xor_si64(4, -9223372036854775808), -9223372036854775804); + assert_eq!(xor_si64(-9223372036854775807, 4), -9223372036854775803); + assert_eq!(xor_si64(4, -9223372036854775807), -9223372036854775803); + assert_eq!( + xor_si64(-1328271339354574848, 9223372036854775806), + -7895100697500200962 + ); + assert_eq!( + xor_si64(9223372036854775806, -1328271339354574848), + -7895100697500200962 + ); + assert_eq!( + xor_si64(-1328271339354574848, 9223372036854775807), + -7895100697500200961 + ); + assert_eq!( + xor_si64(9223372036854775807, -1328271339354574848), + -7895100697500200961 + ); + assert_eq!( + xor_si64(-1741927215160008704, 9223372036854775806), + -7481444821694767106 + ); + assert_eq!( + xor_si64(9223372036854775806, -1741927215160008704), + -7481444821694767106 + ); + assert_eq!( + xor_si64(-1741927215160008704, 9223372036854775807), + -7481444821694767105 + ); + assert_eq!( + xor_si64(9223372036854775807, -1741927215160008704), + -7481444821694767105 + ); + assert_eq!( + xor_si64(-1328271339354574848, 5577148965131116544), + -6847992414814875648 + ); + assert_eq!( + xor_si64(5577148965131116544, -1328271339354574848), + -6847992414814875648 + ); + assert_eq!( + xor_si64(-1741927215160008704, 5577148965131116544), + -6145886261021343744 + ); + assert_eq!( + xor_si64(5577148965131116544, -1741927215160008704), + -6145886261021343744 + ); + assert_eq!( + xor_si64(-9223372036854775808, 5577148965131116544), + -3646223071723659264 + ); + assert_eq!( + xor_si64(5577148965131116544, -9223372036854775808), + -3646223071723659264 + ); + assert_eq!( + xor_si64(-9223372036854775807, 5577148965131116544), + -3646223071723659263 + ); + assert_eq!( + xor_si64(5577148965131116544, -9223372036854775807), + -3646223071723659263 + ); + assert_eq!(xor_si64(-1741927215160008704, 0), -1741927215160008704); + assert_eq!(xor_si64(0, -1741927215160008704), -1741927215160008704); + assert_eq!(xor_si64(-1741927215160008704, 1), -1741927215160008703); + assert_eq!(xor_si64(1, -1741927215160008704), -1741927215160008703); + assert_eq!(xor_si64(-1741927215160008704, 2), -1741927215160008702); + assert_eq!(xor_si64(2, -1741927215160008704), -1741927215160008702); + assert_eq!(xor_si64(-1741927215160008704, 3), -1741927215160008701); + assert_eq!(xor_si64(3, -1741927215160008704), -1741927215160008701); + assert_eq!(xor_si64(-1741927215160008704, 4), -1741927215160008700); + assert_eq!(xor_si64(4, -1741927215160008704), -1741927215160008700); + assert_eq!(xor_si64(-1328271339354574848, 0), -1328271339354574848); + assert_eq!(xor_si64(0, -1328271339354574848), -1328271339354574848); + assert_eq!(xor_si64(-1328271339354574848, 1), -1328271339354574847); + assert_eq!(xor_si64(1, -1328271339354574848), -1328271339354574847); + assert_eq!(xor_si64(-1328271339354574848, 2), -1328271339354574846); + assert_eq!(xor_si64(2, -1328271339354574848), -1328271339354574846); + assert_eq!(xor_si64(-1328271339354574848, 3), -1328271339354574845); + assert_eq!(xor_si64(3, -1328271339354574848), -1328271339354574845); + assert_eq!(xor_si64(-1328271339354574848, 4), -1328271339354574844); + assert_eq!(xor_si64(4, -1328271339354574848), -1328271339354574844); + assert_eq!(xor_si64(-9223372036854775808, 9223372036854775806), -2); + assert_eq!(xor_si64(-9223372036854775807, 9223372036854775807), -2); + assert_eq!(xor_si64(9223372036854775806, -9223372036854775808), -2); + assert_eq!(xor_si64(9223372036854775807, -9223372036854775807), -2); + assert_eq!(xor_si64(-9223372036854775808, 9223372036854775807), -1); + assert_eq!(xor_si64(-9223372036854775807, 9223372036854775806), -1); + assert_eq!(xor_si64(9223372036854775806, -9223372036854775807), -1); + assert_eq!(xor_si64(9223372036854775807, -9223372036854775808), -1); + assert_eq!(xor_si64(-9223372036854775808, -9223372036854775808), 0); + assert_eq!(xor_si64(-9223372036854775807, -9223372036854775807), 0); + assert_eq!(xor_si64(-1741927215160008704, -1741927215160008704), 0); + assert_eq!(xor_si64(-1328271339354574848, -1328271339354574848), 0); + assert_eq!(xor_si64(0, 0), 0); + assert_eq!(xor_si64(1, 1), 0); + assert_eq!(xor_si64(2, 2), 0); + assert_eq!(xor_si64(3, 3), 0); + assert_eq!(xor_si64(4, 4), 0); + assert_eq!(xor_si64(5577148965131116544, 5577148965131116544), 0); + assert_eq!(xor_si64(9223372036854775806, 9223372036854775806), 0); + assert_eq!(xor_si64(9223372036854775807, 9223372036854775807), 0); + assert_eq!(xor_si64(-9223372036854775808, -9223372036854775807), 1); + assert_eq!(xor_si64(-9223372036854775807, -9223372036854775808), 1); + assert_eq!(xor_si64(0, 1), 1); + assert_eq!(xor_si64(1, 0), 1); + assert_eq!(xor_si64(2, 3), 1); + assert_eq!(xor_si64(3, 2), 1); + assert_eq!(xor_si64(9223372036854775806, 9223372036854775807), 1); + assert_eq!(xor_si64(9223372036854775807, 9223372036854775806), 1); + assert_eq!(xor_si64(0, 2), 2); + assert_eq!(xor_si64(1, 3), 2); + assert_eq!(xor_si64(2, 0), 2); + assert_eq!(xor_si64(3, 1), 2); + assert_eq!(xor_si64(0, 3), 3); + assert_eq!(xor_si64(1, 2), 3); + assert_eq!(xor_si64(2, 1), 3); + assert_eq!(xor_si64(3, 0), 3); + assert_eq!(xor_si64(0, 4), 4); + assert_eq!(xor_si64(4, 0), 4); + assert_eq!(xor_si64(1, 4), 5); + assert_eq!(xor_si64(4, 1), 5); + assert_eq!(xor_si64(2, 4), 6); + assert_eq!(xor_si64(4, 2), 6); + assert_eq!(xor_si64(3, 4), 7); + assert_eq!(xor_si64(4, 3), 7); + assert_eq!( + xor_si64(-1741927215160008704, -1328271339354574848), + 739265629478801408 + ); + assert_eq!( + xor_si64(-1328271339354574848, -1741927215160008704), + 739265629478801408 + ); + assert_eq!( + xor_si64(5577148965131116544, 9223372036854775806), + 3646223071723659262 + ); + assert_eq!( + xor_si64(9223372036854775806, 5577148965131116544), + 3646223071723659262 + ); + assert_eq!( + xor_si64(5577148965131116544, 9223372036854775807), + 3646223071723659263 + ); + assert_eq!( + xor_si64(9223372036854775807, 5577148965131116544), + 3646223071723659263 + ); + assert_eq!(xor_si64(0, 5577148965131116544), 5577148965131116544); + assert_eq!(xor_si64(5577148965131116544, 0), 5577148965131116544); + assert_eq!(xor_si64(1, 5577148965131116544), 5577148965131116545); + assert_eq!(xor_si64(5577148965131116544, 1), 5577148965131116545); + assert_eq!(xor_si64(2, 5577148965131116544), 5577148965131116546); + assert_eq!(xor_si64(5577148965131116544, 2), 5577148965131116546); + assert_eq!(xor_si64(3, 5577148965131116544), 5577148965131116547); + assert_eq!(xor_si64(5577148965131116544, 3), 5577148965131116547); + assert_eq!(xor_si64(4, 5577148965131116544), 5577148965131116548); + assert_eq!(xor_si64(5577148965131116544, 4), 5577148965131116548); + assert_eq!( + xor_si64(-9223372036854775808, -1741927215160008704), + 7481444821694767104 + ); + assert_eq!( + xor_si64(-1741927215160008704, -9223372036854775808), + 7481444821694767104 + ); + assert_eq!( + xor_si64(-9223372036854775807, -1741927215160008704), + 7481444821694767105 + ); + assert_eq!( + xor_si64(-1741927215160008704, -9223372036854775807), + 7481444821694767105 + ); + assert_eq!( + xor_si64(-9223372036854775808, -1328271339354574848), + 7895100697500200960 + ); + assert_eq!( + xor_si64(-1328271339354574848, -9223372036854775808), + 7895100697500200960 + ); + assert_eq!( + xor_si64(-9223372036854775807, -1328271339354574848), + 7895100697500200961 + ); + assert_eq!( + xor_si64(-1328271339354574848, -9223372036854775807), + 7895100697500200961 + ); + assert_eq!(xor_si64(4, 9223372036854775806), 9223372036854775802); + assert_eq!(xor_si64(9223372036854775806, 4), 9223372036854775802); + assert_eq!(xor_si64(4, 9223372036854775807), 9223372036854775803); + assert_eq!(xor_si64(9223372036854775807, 4), 9223372036854775803); + assert_eq!(xor_si64(2, 9223372036854775806), 9223372036854775804); + assert_eq!(xor_si64(3, 9223372036854775807), 9223372036854775804); + assert_eq!(xor_si64(9223372036854775806, 2), 9223372036854775804); + assert_eq!(xor_si64(9223372036854775807, 3), 9223372036854775804); + assert_eq!(xor_si64(2, 9223372036854775807), 9223372036854775805); + assert_eq!(xor_si64(3, 9223372036854775806), 9223372036854775805); + assert_eq!(xor_si64(9223372036854775806, 3), 9223372036854775805); + assert_eq!(xor_si64(9223372036854775807, 2), 9223372036854775805); + assert_eq!(xor_si64(0, 9223372036854775806), 9223372036854775806); + assert_eq!(xor_si64(1, 9223372036854775807), 9223372036854775806); + assert_eq!(xor_si64(9223372036854775806, 0), 9223372036854775806); + assert_eq!(xor_si64(9223372036854775807, 1), 9223372036854775806); + assert_eq!(xor_si64(0, 9223372036854775807), 9223372036854775807); + assert_eq!(xor_si64(1, 9223372036854775806), 9223372036854775807); + assert_eq!(xor_si64(9223372036854775806, 1), 9223372036854775807); + assert_eq!(xor_si64(9223372036854775807, 0), 9223372036854775807); + assert_eq!(xor_si8(-128, 0), -128); + assert_eq!(xor_si8(-127, 1), -128); + assert_eq!(xor_si8(0, -128), -128); + assert_eq!(xor_si8(1, -127), -128); + assert_eq!(xor_si8(-128, 1), -127); + assert_eq!(xor_si8(-127, 0), -127); + assert_eq!(xor_si8(0, -127), -127); + assert_eq!(xor_si8(1, -128), -127); + assert_eq!(xor_si8(-128, 2), -126); + assert_eq!(xor_si8(-127, 3), -126); + assert_eq!(xor_si8(2, -128), -126); + assert_eq!(xor_si8(3, -127), -126); + assert_eq!(xor_si8(-128, 3), -125); + assert_eq!(xor_si8(-127, 2), -125); + assert_eq!(xor_si8(2, -127), -125); + assert_eq!(xor_si8(3, -128), -125); + assert_eq!(xor_si8(-128, 4), -124); + assert_eq!(xor_si8(4, -128), -124); + assert_eq!(xor_si8(-127, 4), -123); + assert_eq!(xor_si8(4, -127), -123); + assert_eq!(xor_si8(-128, 16), -112); + assert_eq!(xor_si8(16, -128), -112); + assert_eq!(xor_si8(-127, 16), -111); + assert_eq!(xor_si8(16, -127), -111); + assert_eq!(xor_si8(-128, 126), -2); + assert_eq!(xor_si8(-127, 127), -2); + assert_eq!(xor_si8(126, -128), -2); + assert_eq!(xor_si8(127, -127), -2); + assert_eq!(xor_si8(-128, 127), -1); + assert_eq!(xor_si8(-127, 126), -1); + assert_eq!(xor_si8(126, -127), -1); + assert_eq!(xor_si8(127, -128), -1); + assert_eq!(xor_si8(-128, -128), 0); + assert_eq!(xor_si8(-127, -127), 0); + assert_eq!(xor_si8(0, 0), 0); + assert_eq!(xor_si8(1, 1), 0); + assert_eq!(xor_si8(2, 2), 0); + assert_eq!(xor_si8(3, 3), 0); + assert_eq!(xor_si8(4, 4), 0); + assert_eq!(xor_si8(16, 16), 0); + assert_eq!(xor_si8(126, 126), 0); + assert_eq!(xor_si8(127, 127), 0); + assert_eq!(xor_si8(-128, -127), 1); + assert_eq!(xor_si8(-127, -128), 1); + assert_eq!(xor_si8(0, 1), 1); + assert_eq!(xor_si8(1, 0), 1); + assert_eq!(xor_si8(2, 3), 1); + assert_eq!(xor_si8(3, 2), 1); + assert_eq!(xor_si8(126, 127), 1); + assert_eq!(xor_si8(127, 126), 1); + assert_eq!(xor_si8(0, 2), 2); + assert_eq!(xor_si8(1, 3), 2); + assert_eq!(xor_si8(2, 0), 2); + assert_eq!(xor_si8(3, 1), 2); + assert_eq!(xor_si8(0, 3), 3); + assert_eq!(xor_si8(1, 2), 3); + assert_eq!(xor_si8(2, 1), 3); + assert_eq!(xor_si8(3, 0), 3); + assert_eq!(xor_si8(0, 4), 4); + assert_eq!(xor_si8(4, 0), 4); + assert_eq!(xor_si8(1, 4), 5); + assert_eq!(xor_si8(4, 1), 5); + assert_eq!(xor_si8(2, 4), 6); + assert_eq!(xor_si8(4, 2), 6); + assert_eq!(xor_si8(3, 4), 7); + assert_eq!(xor_si8(4, 3), 7); + assert_eq!(xor_si8(0, 16), 16); + assert_eq!(xor_si8(16, 0), 16); + assert_eq!(xor_si8(1, 16), 17); + assert_eq!(xor_si8(16, 1), 17); + assert_eq!(xor_si8(2, 16), 18); + assert_eq!(xor_si8(16, 2), 18); + assert_eq!(xor_si8(3, 16), 19); + assert_eq!(xor_si8(16, 3), 19); + assert_eq!(xor_si8(4, 16), 20); + assert_eq!(xor_si8(16, 4), 20); + assert_eq!(xor_si8(16, 126), 110); + assert_eq!(xor_si8(126, 16), 110); + assert_eq!(xor_si8(16, 127), 111); + assert_eq!(xor_si8(127, 16), 111); + assert_eq!(xor_si8(4, 126), 122); + assert_eq!(xor_si8(126, 4), 122); + assert_eq!(xor_si8(4, 127), 123); + assert_eq!(xor_si8(127, 4), 123); + assert_eq!(xor_si8(2, 126), 124); + assert_eq!(xor_si8(3, 127), 124); + assert_eq!(xor_si8(126, 2), 124); + assert_eq!(xor_si8(127, 3), 124); + assert_eq!(xor_si8(2, 127), 125); + assert_eq!(xor_si8(3, 126), 125); + assert_eq!(xor_si8(126, 3), 125); + assert_eq!(xor_si8(127, 2), 125); + assert_eq!(xor_si8(0, 126), 126); + assert_eq!(xor_si8(1, 127), 126); + assert_eq!(xor_si8(126, 0), 126); + assert_eq!(xor_si8(127, 1), 126); + assert_eq!(xor_si8(0, 127), 127); + assert_eq!(xor_si8(1, 126), 127); + assert_eq!(xor_si8(126, 1), 127); + assert_eq!(xor_si8(127, 0), 127); + assert_eq!(xor_ui16(0, 0), 0); + assert_eq!(xor_ui16(1, 1), 0); + assert_eq!(xor_ui16(2, 2), 0); + assert_eq!(xor_ui16(3, 3), 0); + assert_eq!(xor_ui16(4, 4), 0); + assert_eq!(xor_ui16(1717, 1717), 0); + assert_eq!(xor_ui16(17988, 17988), 0); + assert_eq!(xor_ui16(65096, 65096), 0); + assert_eq!(xor_ui16(65534, 65534), 0); + assert_eq!(xor_ui16(65535, 65535), 0); + assert_eq!(xor_ui16(0, 1), 1); + assert_eq!(xor_ui16(1, 0), 1); + assert_eq!(xor_ui16(2, 3), 1); + assert_eq!(xor_ui16(3, 2), 1); + assert_eq!(xor_ui16(65534, 65535), 1); + assert_eq!(xor_ui16(65535, 65534), 1); + assert_eq!(xor_ui16(0, 2), 2); + assert_eq!(xor_ui16(1, 3), 2); + assert_eq!(xor_ui16(2, 0), 2); + assert_eq!(xor_ui16(3, 1), 2); + assert_eq!(xor_ui16(0, 3), 3); + assert_eq!(xor_ui16(1, 2), 3); + assert_eq!(xor_ui16(2, 1), 3); + assert_eq!(xor_ui16(3, 0), 3); + assert_eq!(xor_ui16(0, 4), 4); + assert_eq!(xor_ui16(4, 0), 4); + assert_eq!(xor_ui16(1, 4), 5); + assert_eq!(xor_ui16(4, 1), 5); + assert_eq!(xor_ui16(2, 4), 6); + assert_eq!(xor_ui16(4, 2), 6); + assert_eq!(xor_ui16(3, 4), 7); + assert_eq!(xor_ui16(4, 3), 7); + assert_eq!(xor_ui16(65096, 65534), 438); + assert_eq!(xor_ui16(65534, 65096), 438); + assert_eq!(xor_ui16(65096, 65535), 439); + assert_eq!(xor_ui16(65535, 65096), 439); + assert_eq!(xor_ui16(4, 1717), 1713); + assert_eq!(xor_ui16(1717, 4), 1713); + assert_eq!(xor_ui16(1, 1717), 1716); + assert_eq!(xor_ui16(1717, 1), 1716); + assert_eq!(xor_ui16(0, 1717), 1717); + assert_eq!(xor_ui16(1717, 0), 1717); + assert_eq!(xor_ui16(3, 1717), 1718); + assert_eq!(xor_ui16(1717, 3), 1718); + assert_eq!(xor_ui16(2, 1717), 1719); + assert_eq!(xor_ui16(1717, 2), 1719); + assert_eq!(xor_ui16(1717, 17988), 16625); + assert_eq!(xor_ui16(17988, 1717), 16625); + assert_eq!(xor_ui16(4, 17988), 17984); + assert_eq!(xor_ui16(17988, 4), 17984); + assert_eq!(xor_ui16(0, 17988), 17988); + assert_eq!(xor_ui16(17988, 0), 17988); + assert_eq!(xor_ui16(1, 17988), 17989); + assert_eq!(xor_ui16(17988, 1), 17989); + assert_eq!(xor_ui16(2, 17988), 17990); + assert_eq!(xor_ui16(17988, 2), 17990); + assert_eq!(xor_ui16(3, 17988), 17991); + assert_eq!(xor_ui16(17988, 3), 17991); + assert_eq!(xor_ui16(17988, 65096), 47116); + assert_eq!(xor_ui16(65096, 17988), 47116); + assert_eq!(xor_ui16(17988, 65534), 47546); + assert_eq!(xor_ui16(65534, 17988), 47546); + assert_eq!(xor_ui16(17988, 65535), 47547); + assert_eq!(xor_ui16(65535, 17988), 47547); + assert_eq!(xor_ui16(1717, 65096), 63741); + assert_eq!(xor_ui16(65096, 1717), 63741); + assert_eq!(xor_ui16(1717, 65535), 63818); + assert_eq!(xor_ui16(65535, 1717), 63818); + assert_eq!(xor_ui16(1717, 65534), 63819); + assert_eq!(xor_ui16(65534, 1717), 63819); + assert_eq!(xor_ui16(0, 65096), 65096); + assert_eq!(xor_ui16(65096, 0), 65096); + assert_eq!(xor_ui16(1, 65096), 65097); + assert_eq!(xor_ui16(65096, 1), 65097); + assert_eq!(xor_ui16(2, 65096), 65098); + assert_eq!(xor_ui16(65096, 2), 65098); + assert_eq!(xor_ui16(3, 65096), 65099); + assert_eq!(xor_ui16(65096, 3), 65099); + assert_eq!(xor_ui16(4, 65096), 65100); + assert_eq!(xor_ui16(65096, 4), 65100); + assert_eq!(xor_ui16(4, 65534), 65530); + assert_eq!(xor_ui16(65534, 4), 65530); + assert_eq!(xor_ui16(4, 65535), 65531); + assert_eq!(xor_ui16(65535, 4), 65531); + assert_eq!(xor_ui16(2, 65534), 65532); + assert_eq!(xor_ui16(3, 65535), 65532); + assert_eq!(xor_ui16(65534, 2), 65532); + assert_eq!(xor_ui16(65535, 3), 65532); + assert_eq!(xor_ui16(2, 65535), 65533); + assert_eq!(xor_ui16(3, 65534), 65533); + assert_eq!(xor_ui16(65534, 3), 65533); + assert_eq!(xor_ui16(65535, 2), 65533); + assert_eq!(xor_ui16(0, 65534), 65534); + assert_eq!(xor_ui16(1, 65535), 65534); + assert_eq!(xor_ui16(65534, 0), 65534); + assert_eq!(xor_ui16(65535, 1), 65534); + assert_eq!(xor_ui16(0, 65535), 65535); + assert_eq!(xor_ui16(1, 65534), 65535); + assert_eq!(xor_ui16(65534, 1), 65535); + assert_eq!(xor_ui16(65535, 0), 65535); + assert_eq!(xor_ui32(0, 0), 0); + assert_eq!(xor_ui32(1, 1), 0); + assert_eq!(xor_ui32(2, 2), 0); + assert_eq!(xor_ui32(3, 3), 0); + assert_eq!(xor_ui32(4, 4), 0); + assert_eq!(xor_ui32(2119154652, 2119154652), 0); + assert_eq!(xor_ui32(3002788344, 3002788344), 0); + assert_eq!(xor_ui32(3482297128, 3482297128), 0); + assert_eq!(xor_ui32(4294967294, 4294967294), 0); + assert_eq!(xor_ui32(4294967295, 4294967295), 0); + assert_eq!(xor_ui32(0, 1), 1); + assert_eq!(xor_ui32(1, 0), 1); + assert_eq!(xor_ui32(2, 3), 1); + assert_eq!(xor_ui32(3, 2), 1); + assert_eq!(xor_ui32(4294967294, 4294967295), 1); + assert_eq!(xor_ui32(4294967295, 4294967294), 1); + assert_eq!(xor_ui32(0, 2), 2); + assert_eq!(xor_ui32(1, 3), 2); + assert_eq!(xor_ui32(2, 0), 2); + assert_eq!(xor_ui32(3, 1), 2); + assert_eq!(xor_ui32(0, 3), 3); + assert_eq!(xor_ui32(1, 2), 3); + assert_eq!(xor_ui32(2, 1), 3); + assert_eq!(xor_ui32(3, 0), 3); + assert_eq!(xor_ui32(0, 4), 4); + assert_eq!(xor_ui32(4, 0), 4); + assert_eq!(xor_ui32(1, 4), 5); + assert_eq!(xor_ui32(4, 1), 5); + assert_eq!(xor_ui32(2, 4), 6); + assert_eq!(xor_ui32(4, 2), 6); + assert_eq!(xor_ui32(3, 4), 7); + assert_eq!(xor_ui32(4, 3), 7); + assert_eq!(xor_ui32(3482297128, 4294967294), 812670166); + assert_eq!(xor_ui32(4294967294, 3482297128), 812670166); + assert_eq!(xor_ui32(3482297128, 4294967295), 812670167); + assert_eq!(xor_ui32(4294967295, 3482297128), 812670167); + assert_eq!(xor_ui32(3002788344, 4294967294), 1292178950); + assert_eq!(xor_ui32(4294967294, 3002788344), 1292178950); + assert_eq!(xor_ui32(3002788344, 4294967295), 1292178951); + assert_eq!(xor_ui32(4294967295, 3002788344), 1292178951); + assert_eq!(xor_ui32(3002788344, 3482297128), 2104838864); + assert_eq!(xor_ui32(3482297128, 3002788344), 2104838864); + assert_eq!(xor_ui32(4, 2119154652), 2119154648); + assert_eq!(xor_ui32(2119154652, 4), 2119154648); + assert_eq!(xor_ui32(0, 2119154652), 2119154652); + assert_eq!(xor_ui32(2119154652, 0), 2119154652); + assert_eq!(xor_ui32(1, 2119154652), 2119154653); + assert_eq!(xor_ui32(2119154652, 1), 2119154653); + assert_eq!(xor_ui32(2, 2119154652), 2119154654); + assert_eq!(xor_ui32(2119154652, 2), 2119154654); + assert_eq!(xor_ui32(3, 2119154652), 2119154655); + assert_eq!(xor_ui32(2119154652, 3), 2119154655); + assert_eq!(xor_ui32(2119154652, 4294967294), 2175812642); + assert_eq!(xor_ui32(4294967294, 2119154652), 2175812642); + assert_eq!(xor_ui32(2119154652, 4294967295), 2175812643); + assert_eq!(xor_ui32(4294967295, 2119154652), 2175812643); + assert_eq!(xor_ui32(2119154652, 3482297128), 2982156532); + assert_eq!(xor_ui32(3482297128, 2119154652), 2982156532); + assert_eq!(xor_ui32(0, 3002788344), 3002788344); + assert_eq!(xor_ui32(3002788344, 0), 3002788344); + assert_eq!(xor_ui32(1, 3002788344), 3002788345); + assert_eq!(xor_ui32(3002788344, 1), 3002788345); + assert_eq!(xor_ui32(2, 3002788344), 3002788346); + assert_eq!(xor_ui32(3002788344, 2), 3002788346); + assert_eq!(xor_ui32(3, 3002788344), 3002788347); + assert_eq!(xor_ui32(3002788344, 3), 3002788347); + assert_eq!(xor_ui32(4, 3002788344), 3002788348); + assert_eq!(xor_ui32(3002788344, 4), 3002788348); + assert_eq!(xor_ui32(2119154652, 3002788344), 3434435108); + assert_eq!(xor_ui32(3002788344, 2119154652), 3434435108); + assert_eq!(xor_ui32(0, 3482297128), 3482297128); + assert_eq!(xor_ui32(3482297128, 0), 3482297128); + assert_eq!(xor_ui32(1, 3482297128), 3482297129); + assert_eq!(xor_ui32(3482297128, 1), 3482297129); + assert_eq!(xor_ui32(2, 3482297128), 3482297130); + assert_eq!(xor_ui32(3482297128, 2), 3482297130); + assert_eq!(xor_ui32(3, 3482297128), 3482297131); + assert_eq!(xor_ui32(3482297128, 3), 3482297131); + assert_eq!(xor_ui32(4, 3482297128), 3482297132); + assert_eq!(xor_ui32(3482297128, 4), 3482297132); + assert_eq!(xor_ui32(4, 4294967294), 4294967290); + assert_eq!(xor_ui32(4294967294, 4), 4294967290); + assert_eq!(xor_ui32(4, 4294967295), 4294967291); + assert_eq!(xor_ui32(4294967295, 4), 4294967291); + assert_eq!(xor_ui32(2, 4294967294), 4294967292); + assert_eq!(xor_ui32(3, 4294967295), 4294967292); + assert_eq!(xor_ui32(4294967294, 2), 4294967292); + assert_eq!(xor_ui32(4294967295, 3), 4294967292); + assert_eq!(xor_ui32(2, 4294967295), 4294967293); + assert_eq!(xor_ui32(3, 4294967294), 4294967293); + assert_eq!(xor_ui32(4294967294, 3), 4294967293); + assert_eq!(xor_ui32(4294967295, 2), 4294967293); + assert_eq!(xor_ui32(0, 4294967294), 4294967294); + assert_eq!(xor_ui32(1, 4294967295), 4294967294); + assert_eq!(xor_ui32(4294967294, 0), 4294967294); + assert_eq!(xor_ui32(4294967295, 1), 4294967294); + assert_eq!(xor_ui32(0, 4294967295), 4294967295); + assert_eq!(xor_ui32(1, 4294967294), 4294967295); + assert_eq!(xor_ui32(4294967294, 1), 4294967295); + assert_eq!(xor_ui32(4294967295, 0), 4294967295); + assert_eq!(xor_ui64(0, 0), 0); + assert_eq!(xor_ui64(1, 1), 0); + assert_eq!(xor_ui64(2, 2), 0); + assert_eq!(xor_ui64(3, 3), 0); + assert_eq!(xor_ui64(4, 4), 0); + assert_eq!(xor_ui64(191084152064409600, 191084152064409600), 0); + assert_eq!(xor_ui64(11015955194427482112, 11015955194427482112), 0); + assert_eq!(xor_ui64(16990600415051759616, 16990600415051759616), 0); + assert_eq!(xor_ui64(18446744073709551614, 18446744073709551614), 0); + assert_eq!(xor_ui64(18446744073709551615, 18446744073709551615), 0); + assert_eq!(xor_ui64(0, 1), 1); + assert_eq!(xor_ui64(1, 0), 1); + assert_eq!(xor_ui64(2, 3), 1); + assert_eq!(xor_ui64(3, 2), 1); + assert_eq!(xor_ui64(18446744073709551614, 18446744073709551615), 1); + assert_eq!(xor_ui64(18446744073709551615, 18446744073709551614), 1); + assert_eq!(xor_ui64(0, 2), 2); + assert_eq!(xor_ui64(1, 3), 2); + assert_eq!(xor_ui64(2, 0), 2); + assert_eq!(xor_ui64(3, 1), 2); + assert_eq!(xor_ui64(0, 3), 3); + assert_eq!(xor_ui64(1, 2), 3); + assert_eq!(xor_ui64(2, 1), 3); + assert_eq!(xor_ui64(3, 0), 3); + assert_eq!(xor_ui64(0, 4), 4); + assert_eq!(xor_ui64(4, 0), 4); + assert_eq!(xor_ui64(1, 4), 5); + assert_eq!(xor_ui64(4, 1), 5); + assert_eq!(xor_ui64(2, 4), 6); + assert_eq!(xor_ui64(4, 2), 6); + assert_eq!(xor_ui64(3, 4), 7); + assert_eq!(xor_ui64(4, 3), 7); + assert_eq!(xor_ui64(0, 191084152064409600), 191084152064409600); + assert_eq!(xor_ui64(191084152064409600, 0), 191084152064409600); + assert_eq!(xor_ui64(1, 191084152064409600), 191084152064409601); + assert_eq!(xor_ui64(191084152064409600, 1), 191084152064409601); + assert_eq!(xor_ui64(2, 191084152064409600), 191084152064409602); + assert_eq!(xor_ui64(191084152064409600, 2), 191084152064409602); + assert_eq!(xor_ui64(3, 191084152064409600), 191084152064409603); + assert_eq!(xor_ui64(191084152064409600, 3), 191084152064409603); + assert_eq!(xor_ui64(4, 191084152064409600), 191084152064409604); + assert_eq!(xor_ui64(191084152064409600, 4), 191084152064409604); + assert_eq!( + xor_ui64(16990600415051759616, 18446744073709551614), + 1456143658657791998 + ); + assert_eq!( + xor_ui64(18446744073709551614, 16990600415051759616), + 1456143658657791998 + ); + assert_eq!( + xor_ui64(16990600415051759616, 18446744073709551615), + 1456143658657791999 + ); + assert_eq!( + xor_ui64(18446744073709551615, 16990600415051759616), + 1456143658657791999 + ); + assert_eq!( + xor_ui64(11015955194427482112, 18446744073709551614), + 7430788879282069502 + ); + assert_eq!( + xor_ui64(18446744073709551614, 11015955194427482112), + 7430788879282069502 + ); + assert_eq!( + xor_ui64(11015955194427482112, 18446744073709551615), + 7430788879282069503 + ); + assert_eq!( + xor_ui64(18446744073709551615, 11015955194427482112), + 7430788879282069503 + ); + assert_eq!( + xor_ui64(11015955194427482112, 16990600415051759616), + 8298504554647642112 + ); + assert_eq!( + xor_ui64(16990600415051759616, 11015955194427482112), + 8298504554647642112 + ); + assert_eq!(xor_ui64(0, 11015955194427482112), 11015955194427482112); + assert_eq!(xor_ui64(11015955194427482112, 0), 11015955194427482112); + assert_eq!(xor_ui64(1, 11015955194427482112), 11015955194427482113); + assert_eq!(xor_ui64(11015955194427482112, 1), 11015955194427482113); + assert_eq!(xor_ui64(2, 11015955194427482112), 11015955194427482114); + assert_eq!(xor_ui64(11015955194427482112, 2), 11015955194427482114); + assert_eq!(xor_ui64(3, 11015955194427482112), 11015955194427482115); + assert_eq!(xor_ui64(11015955194427482112, 3), 11015955194427482115); + assert_eq!(xor_ui64(4, 11015955194427482112), 11015955194427482116); + assert_eq!(xor_ui64(11015955194427482112, 4), 11015955194427482116); + assert_eq!( + xor_ui64(191084152064409600, 11015955194427482112), + 11116668269601857536 + ); + assert_eq!( + xor_ui64(11015955194427482112, 191084152064409600), + 11116668269601857536 + ); + assert_eq!( + xor_ui64(191084152064409600, 16990600415051759616), + 16819927597248036864 + ); + assert_eq!( + xor_ui64(16990600415051759616, 191084152064409600), + 16819927597248036864 + ); + assert_eq!(xor_ui64(0, 16990600415051759616), 16990600415051759616); + assert_eq!(xor_ui64(16990600415051759616, 0), 16990600415051759616); + assert_eq!(xor_ui64(1, 16990600415051759616), 16990600415051759617); + assert_eq!(xor_ui64(16990600415051759616, 1), 16990600415051759617); + assert_eq!(xor_ui64(2, 16990600415051759616), 16990600415051759618); + assert_eq!(xor_ui64(16990600415051759616, 2), 16990600415051759618); + assert_eq!(xor_ui64(3, 16990600415051759616), 16990600415051759619); + assert_eq!(xor_ui64(16990600415051759616, 3), 16990600415051759619); + assert_eq!(xor_ui64(4, 16990600415051759616), 16990600415051759620); + assert_eq!(xor_ui64(16990600415051759616, 4), 16990600415051759620); + assert_eq!( + xor_ui64(191084152064409600, 18446744073709551614), + 18255659921645142014 + ); + assert_eq!( + xor_ui64(18446744073709551614, 191084152064409600), + 18255659921645142014 + ); + assert_eq!( + xor_ui64(191084152064409600, 18446744073709551615), + 18255659921645142015 + ); + assert_eq!( + xor_ui64(18446744073709551615, 191084152064409600), + 18255659921645142015 + ); + assert_eq!(xor_ui64(4, 18446744073709551614), 18446744073709551610); + assert_eq!(xor_ui64(18446744073709551614, 4), 18446744073709551610); + assert_eq!(xor_ui64(4, 18446744073709551615), 18446744073709551611); + assert_eq!(xor_ui64(18446744073709551615, 4), 18446744073709551611); + assert_eq!(xor_ui64(2, 18446744073709551614), 18446744073709551612); + assert_eq!(xor_ui64(3, 18446744073709551615), 18446744073709551612); + assert_eq!(xor_ui64(18446744073709551614, 2), 18446744073709551612); + assert_eq!(xor_ui64(18446744073709551615, 3), 18446744073709551612); + assert_eq!(xor_ui64(2, 18446744073709551615), 18446744073709551613); + assert_eq!(xor_ui64(3, 18446744073709551614), 18446744073709551613); + assert_eq!(xor_ui64(18446744073709551614, 3), 18446744073709551613); + assert_eq!(xor_ui64(18446744073709551615, 2), 18446744073709551613); + assert_eq!(xor_ui64(0, 18446744073709551614), 18446744073709551614); + assert_eq!(xor_ui64(1, 18446744073709551615), 18446744073709551614); + assert_eq!(xor_ui64(18446744073709551614, 0), 18446744073709551614); + assert_eq!(xor_ui64(18446744073709551615, 1), 18446744073709551614); + assert_eq!(xor_ui64(0, 18446744073709551615), 18446744073709551615); + assert_eq!(xor_ui64(1, 18446744073709551614), 18446744073709551615); + assert_eq!(xor_ui64(18446744073709551614, 1), 18446744073709551615); + assert_eq!(xor_ui64(18446744073709551615, 0), 18446744073709551615); + assert_eq!(xor_ui8(0, 0), 0); + assert_eq!(xor_ui8(1, 1), 0); + assert_eq!(xor_ui8(2, 2), 0); + assert_eq!(xor_ui8(3, 3), 0); + assert_eq!(xor_ui8(4, 4), 0); + assert_eq!(xor_ui8(72, 72), 0); + assert_eq!(xor_ui8(100, 100), 0); + assert_eq!(xor_ui8(162, 162), 0); + assert_eq!(xor_ui8(254, 254), 0); + assert_eq!(xor_ui8(255, 255), 0); + assert_eq!(xor_ui8(0, 1), 1); + assert_eq!(xor_ui8(1, 0), 1); + assert_eq!(xor_ui8(2, 3), 1); + assert_eq!(xor_ui8(3, 2), 1); + assert_eq!(xor_ui8(254, 255), 1); + assert_eq!(xor_ui8(255, 254), 1); + assert_eq!(xor_ui8(0, 2), 2); + assert_eq!(xor_ui8(1, 3), 2); + assert_eq!(xor_ui8(2, 0), 2); + assert_eq!(xor_ui8(3, 1), 2); + assert_eq!(xor_ui8(0, 3), 3); + assert_eq!(xor_ui8(1, 2), 3); + assert_eq!(xor_ui8(2, 1), 3); + assert_eq!(xor_ui8(3, 0), 3); + assert_eq!(xor_ui8(0, 4), 4); + assert_eq!(xor_ui8(4, 0), 4); + assert_eq!(xor_ui8(1, 4), 5); + assert_eq!(xor_ui8(4, 1), 5); + assert_eq!(xor_ui8(2, 4), 6); + assert_eq!(xor_ui8(4, 2), 6); + assert_eq!(xor_ui8(3, 4), 7); + assert_eq!(xor_ui8(4, 3), 7); + assert_eq!(xor_ui8(72, 100), 44); + assert_eq!(xor_ui8(100, 72), 44); + assert_eq!(xor_ui8(0, 72), 72); + assert_eq!(xor_ui8(72, 0), 72); + assert_eq!(xor_ui8(1, 72), 73); + assert_eq!(xor_ui8(72, 1), 73); + assert_eq!(xor_ui8(2, 72), 74); + assert_eq!(xor_ui8(72, 2), 74); + assert_eq!(xor_ui8(3, 72), 75); + assert_eq!(xor_ui8(72, 3), 75); + assert_eq!(xor_ui8(4, 72), 76); + assert_eq!(xor_ui8(72, 4), 76); + assert_eq!(xor_ui8(162, 254), 92); + assert_eq!(xor_ui8(254, 162), 92); + assert_eq!(xor_ui8(162, 255), 93); + assert_eq!(xor_ui8(255, 162), 93); + assert_eq!(xor_ui8(4, 100), 96); + assert_eq!(xor_ui8(100, 4), 96); + assert_eq!(xor_ui8(0, 100), 100); + assert_eq!(xor_ui8(100, 0), 100); + assert_eq!(xor_ui8(1, 100), 101); + assert_eq!(xor_ui8(100, 1), 101); + assert_eq!(xor_ui8(2, 100), 102); + assert_eq!(xor_ui8(100, 2), 102); + assert_eq!(xor_ui8(3, 100), 103); + assert_eq!(xor_ui8(100, 3), 103); + assert_eq!(xor_ui8(100, 254), 154); + assert_eq!(xor_ui8(254, 100), 154); + assert_eq!(xor_ui8(100, 255), 155); + assert_eq!(xor_ui8(255, 100), 155); + assert_eq!(xor_ui8(2, 162), 160); + assert_eq!(xor_ui8(162, 2), 160); + assert_eq!(xor_ui8(3, 162), 161); + assert_eq!(xor_ui8(162, 3), 161); + assert_eq!(xor_ui8(0, 162), 162); + assert_eq!(xor_ui8(162, 0), 162); + assert_eq!(xor_ui8(1, 162), 163); + assert_eq!(xor_ui8(162, 1), 163); + assert_eq!(xor_ui8(4, 162), 166); + assert_eq!(xor_ui8(162, 4), 166); + assert_eq!(xor_ui8(72, 254), 182); + assert_eq!(xor_ui8(254, 72), 182); + assert_eq!(xor_ui8(72, 255), 183); + assert_eq!(xor_ui8(255, 72), 183); + assert_eq!(xor_ui8(100, 162), 198); + assert_eq!(xor_ui8(162, 100), 198); + assert_eq!(xor_ui8(72, 162), 234); + assert_eq!(xor_ui8(162, 72), 234); + assert_eq!(xor_ui8(4, 254), 250); + assert_eq!(xor_ui8(254, 4), 250); + assert_eq!(xor_ui8(4, 255), 251); + assert_eq!(xor_ui8(255, 4), 251); + assert_eq!(xor_ui8(2, 254), 252); + assert_eq!(xor_ui8(3, 255), 252); + assert_eq!(xor_ui8(254, 2), 252); + assert_eq!(xor_ui8(255, 3), 252); + assert_eq!(xor_ui8(2, 255), 253); + assert_eq!(xor_ui8(3, 254), 253); + assert_eq!(xor_ui8(254, 3), 253); + assert_eq!(xor_ui8(255, 2), 253); + assert_eq!(xor_ui8(0, 254), 254); + assert_eq!(xor_ui8(1, 255), 254); + assert_eq!(xor_ui8(254, 0), 254); + assert_eq!(xor_ui8(255, 1), 254); + assert_eq!(xor_ui8(0, 255), 255); + assert_eq!(xor_ui8(1, 254), 255); + assert_eq!(xor_ui8(254, 1), 255); + assert_eq!(xor_ui8(255, 0), 255); + } } diff --git a/arc-mlir/src/tests/arc-to-rust/int-tensor-arith.mlir.rust-tests b/arc-mlir/src/tests/arc-to-rust/int-tensor-arith.mlir.rust-tests deleted file mode 100644 index 97fad3675..000000000 --- a/arc-mlir/src/tests/arc-to-rust/int-tensor-arith.mlir.rust-tests +++ /dev/null @@ -1,209 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::arctorustinttensorarith::*; - use ndarray::{Array,Dim,Ix}; - use std::rc::Rc; - - #[rewrite(main)] - #[test] - fn testu8() { - let a:Rc>> = - Rc::new(Array::from_shape_vec((2, 2), - vec![5, 6, 7, 8]).unwrap()); - let b:Rc>> = - Rc::new(Array::from_shape_vec((2, 2), - vec![1, 2, 3, 4]).unwrap()); - assert_eq!(*addi_tensor2x2xui8(Rc::clone(&a), - Rc::clone(&b)), - &*a + &*b); - assert_eq!(*subi_tensor2x2xui8(Rc::clone(&a), - Rc::clone(&b)), - &*a - &*b); - assert_eq!(*muli_tensor2x2xui8(Rc::clone(&a), - Rc::clone(&b)), - &*a * &*b); - assert_eq!(*divi_tensor2x2xui8(Rc::clone(&a), - Rc::clone(&b)), - &*a / &*b); - assert_eq!(*remi_tensor2x2xui8(Rc::clone(&a), - Rc::clone(&b)), - &*a % &*b); - } - #[rewrite(main)] - #[test] - fn tests8() { - let a:Rc>> = - Rc::new(Array::from_shape_vec((2, 2), - vec![5, 6, 7, 8]).unwrap()); - let b:Rc>> = - Rc::new(Array::from_shape_vec((2, 2), - vec![1, 2, 3, 4]).unwrap()); - assert_eq!(*addi_tensor2x2xsi8(Rc::clone(&a), - Rc::clone(&b)), - &*a + &*b); - assert_eq!(*subi_tensor2x2xsi8(Rc::clone(&a), - Rc::clone(&b)), - &*a - &*b); - assert_eq!(*muli_tensor2x2xsi8(Rc::clone(&a), - Rc::clone(&b)), - &*a * &*b); - assert_eq!(*divi_tensor2x2xsi8(Rc::clone(&a), - Rc::clone(&b)), - &*a / &*b); - assert_eq!(*remi_tensor2x2xsi8(Rc::clone(&a), - Rc::clone(&b)), - &*a % &*b); - } - - #[rewrite(main)] - #[test] - fn testu16() { - let a:Rc>> = - Rc::new(Array::from_shape_vec((2, 2), - vec![5, 6, 7, 8]).unwrap()); - let b:Rc>> = - Rc::new(Array::from_shape_vec((2, 2), - vec![1, 2, 3, 4]).unwrap()); - assert_eq!(*addi_tensor2x2xui16(Rc::clone(&a), - Rc::clone(&b)), - &*a + &*b); - assert_eq!(*subi_tensor2x2xui16(Rc::clone(&a), - Rc::clone(&b)), - &*a - &*b); - assert_eq!(*muli_tensor2x2xui16(Rc::clone(&a), - Rc::clone(&b)), - &*a * &*b); - assert_eq!(*divi_tensor2x2xui16(Rc::clone(&a), - Rc::clone(&b)), - &*a / &*b); - assert_eq!(*remi_tensor2x2xui16(Rc::clone(&a), - Rc::clone(&b)), - &*a % &*b); - } - #[rewrite(main)] - #[test] - fn tests16() { - let a:Rc>> = - Rc::new(Array::from_shape_vec((2, 2), - vec![5, 6, 7, 8]).unwrap()); - let b:Rc>> = - Rc::new(Array::from_shape_vec((2, 2), - vec![1, 2, 3, 4]).unwrap()); - assert_eq!(*addi_tensor2x2xsi16(Rc::clone(&a), - Rc::clone(&b)), - &*a + &*b); - assert_eq!(*subi_tensor2x2xsi16(Rc::clone(&a), - Rc::clone(&b)), - &*a - &*b); - assert_eq!(*muli_tensor2x2xsi16(Rc::clone(&a), - Rc::clone(&b)), - &*a * &*b); - assert_eq!(*divi_tensor2x2xsi16(Rc::clone(&a), - Rc::clone(&b)), - &*a / &*b); - assert_eq!(*remi_tensor2x2xsi16(Rc::clone(&a), - Rc::clone(&b)), - &*a % &*b); - } - #[rewrite(main)] - #[test] - fn testu32() { - let a:Rc>> = - Rc::new(Array::from_shape_vec((2, 2), - vec![5, 6, 7, 8]).unwrap()); - let b:Rc>> = - Rc::new(Array::from_shape_vec((2, 2), - vec![1, 2, 3, 4]).unwrap()); - assert_eq!(*addi_tensor2x2xui32(Rc::clone(&a), - Rc::clone(&b)), - &*a + &*b); - assert_eq!(*subi_tensor2x2xui32(Rc::clone(&a), - Rc::clone(&b)), - &*a - &*b); - assert_eq!(*muli_tensor2x2xui32(Rc::clone(&a), - Rc::clone(&b)), - &*a * &*b); - assert_eq!(*divi_tensor2x2xui32(Rc::clone(&a), - Rc::clone(&b)), - &*a / &*b); - assert_eq!(*remi_tensor2x2xui32(Rc::clone(&a), - Rc::clone(&b)), - &*a % &*b); - } - #[rewrite(main)] - #[test] - fn tests32() { - let a:Rc>> = - Rc::new(Array::from_shape_vec((2, 2), - vec![5, 6, 7, 8]).unwrap()); - let b:Rc>> = - Rc::new(Array::from_shape_vec((2, 2), - vec![1, 2, 3, 4]).unwrap()); - assert_eq!(*addi_tensor2x2xsi32(Rc::clone(&a), - Rc::clone(&b)), - &*a + &*b); - assert_eq!(*subi_tensor2x2xsi32(Rc::clone(&a), - Rc::clone(&b)), - &*a - &*b); - assert_eq!(*muli_tensor2x2xsi32(Rc::clone(&a), - Rc::clone(&b)), - &*a * &*b); - assert_eq!(*divi_tensor2x2xsi32(Rc::clone(&a), - Rc::clone(&b)), - &*a / &*b); - assert_eq!(*remi_tensor2x2xsi32(Rc::clone(&a), - Rc::clone(&b)), - &*a % &*b); - } - - #[rewrite(main)] - #[test] - fn testu64() { - let a:Rc>> = - Rc::new(Array::from_shape_vec((2, 2), - vec![5, 6, 7, 8]).unwrap()); - let b:Rc>> = - Rc::new(Array::from_shape_vec((2, 2), - vec![1, 2, 3, 4]).unwrap()); - assert_eq!(*addi_tensor2x2xui64(Rc::clone(&a), - Rc::clone(&b)), - &*a + &*b); - assert_eq!(*subi_tensor2x2xui64(Rc::clone(&a), - Rc::clone(&b)), - &*a - &*b); - assert_eq!(*muli_tensor2x2xui64(Rc::clone(&a), - Rc::clone(&b)), - &*a * &*b); - assert_eq!(*divi_tensor2x2xui64(Rc::clone(&a), - Rc::clone(&b)), - &*a / &*b); - assert_eq!(*remi_tensor2x2xui64(Rc::clone(&a), - Rc::clone(&b)), - &*a % &*b); - } - #[rewrite(main)] - #[test] - fn tests64() { - let a:Rc>> = - Rc::new(Array::from_shape_vec((2, 2), - vec![5, 6, 7, 8]).unwrap()); - let b:Rc>> = - Rc::new(Array::from_shape_vec((2, 2), - vec![1, 2, 3, 4]).unwrap()); - assert_eq!(*addi_tensor2x2xsi64(Rc::clone(&a), - Rc::clone(&b)), - &*a + &*b); - assert_eq!(*subi_tensor2x2xsi64(Rc::clone(&a), - Rc::clone(&b)), - &*a - &*b); - assert_eq!(*muli_tensor2x2xsi64(Rc::clone(&a), - Rc::clone(&b)), - &*a * &*b); - assert_eq!(*divi_tensor2x2xsi64(Rc::clone(&a), - Rc::clone(&b)), - &*a / &*b); - assert_eq!(*remi_tensor2x2xsi64(Rc::clone(&a), - Rc::clone(&b)), - &*a % &*b); - } -} diff --git a/arc-mlir/src/tests/arc-to-rust/loops.mlir b/arc-mlir/src/tests/arc-to-rust/loops.mlir index 619904b1a..e07c2c877 100644 --- a/arc-mlir/src/tests/arc-to-rust/loops.mlir +++ b/arc-mlir/src/tests/arc-to-rust/loops.mlir @@ -4,7 +4,7 @@ module @arctorustloops { - func.func @a_while_loop(%first : ui64, %limit : ui64, %accum : ui64) -> ui64 attributes { rust.declare } { + func.func @a_while_loop(%first : ui64, %limit : ui64, %accum : ui64) -> ui64 { %res_cnt, %res_sum = scf.while (%arg1 = %first, %sum = %accum) : (ui64, ui64) -> (ui64, ui64) { %condition = arc.cmpi "lt", %arg1, %limit : ui64 scf.condition(%condition) %arg1, %sum : ui64, ui64 @@ -18,7 +18,7 @@ module @arctorustloops { return %res_sum : ui64 } - func.func @a_while_loop_with_a_break_in_before(%first : ui64, %limit : ui64, %accum : ui64) -> ui64 attributes { rust.declare } { + func.func @a_while_loop_with_a_break_in_before(%first : ui64, %limit : ui64, %accum : ui64) -> ui64 { %res_cnt, %res_sum = scf.while (%arg1 = %first, %sum = %accum) : (ui64, ui64) -> (ui64, ui64) { %condition = arc.cmpi "lt", %arg1, %limit : ui64 @@ -41,7 +41,7 @@ module @arctorustloops { return %res_sum : ui64 } - func.func @a_while_loop_with_a_break_in_after(%first : ui64, %limit : ui64, %accum : ui64) -> ui64 attributes { rust.declare } { + func.func @a_while_loop_with_a_break_in_after(%first : ui64, %limit : ui64, %accum : ui64) -> ui64 { %res_cnt, %res_sum = scf.while (%arg1 = %first, %sum = %accum) : (ui64, ui64) -> (ui64, ui64) { %condition = arc.cmpi "lt", %arg1, %limit : ui64 scf.condition(%condition) %arg1, %sum : ui64, ui64 @@ -64,7 +64,7 @@ module @arctorustloops { return %res_sum : ui64 } - func.func @a_while_loop_with_a_return_in_before(%first : ui64, %limit : ui64, %accum : ui64) -> ui64 attributes { rust.declare } { + func.func @a_while_loop_with_a_return_in_before(%first : ui64, %limit : ui64, %accum : ui64) -> ui64 { %res_cnt, %res_sum = scf.while (%arg1 = %first, %sum = %accum) : (ui64, ui64) -> (ui64, ui64) { %condition = arc.cmpi "lt", %arg1, %limit : ui64 @@ -87,7 +87,7 @@ module @arctorustloops { return %res_sum : ui64 } - func.func @a_while_loop_with_a_return_in_after(%first : ui64, %limit : ui64, %accum : ui64) -> ui64 attributes { rust.declare } { + func.func @a_while_loop_with_a_return_in_after(%first : ui64, %limit : ui64, %accum : ui64) -> ui64 { %res_cnt, %res_sum = scf.while (%arg1 = %first, %sum = %accum) : (ui64, ui64) -> (ui64, ui64) { %condition = arc.cmpi "lt", %arg1, %limit : ui64 scf.condition(%condition) %arg1, %sum : ui64, ui64 diff --git a/arc-mlir/src/tests/arc-to-rust/loops.mlir.rust-tests b/arc-mlir/src/tests/arc-to-rust/loops.mlir.rust-tests index dd696cd25..f8b19cd99 100644 --- a/arc-mlir/src/tests/arc-to-rust/loops.mlir.rust-tests +++ b/arc-mlir/src/tests/arc-to-rust/loops.mlir.rust-tests @@ -1,15 +1,13 @@ #[cfg(test)] mod tests { - use super::*; - use crate::arctorustloops::*; - use hexf::*; - #[rewrite(main)] - #[test] - fn it_works() { - assert_eq!(call!(a_while_loop(0, 5, 3)), 13); - assert_eq!(call!(a_while_loop_with_a_break_in_before(0, 5, 1)), 2); - assert_eq!(call!(a_while_loop_with_a_break_in_after(0, 10, 3)), 4); - assert_eq!(call!(a_while_loop_with_a_return_in_before(0, 5, 1)), 2); - assert_eq!(call!(a_while_loop_with_a_return_in_after(0, 10, 3)), 4); - } + use super::*; + use crate::arctorustloops::*; + #[test] + fn it_works() { + assert_eq!(a_while_loop(0, 5, 3), 13); + assert_eq!(a_while_loop_with_a_break_in_before(0, 5, 1), 2); + assert_eq!(a_while_loop_with_a_break_in_after(0, 10, 3), 4); + assert_eq!(a_while_loop_with_a_return_in_before(0, 5, 1), 2); + assert_eq!(a_while_loop_with_a_return_in_after(0, 10, 3), 4); + } } diff --git a/arc-mlir/src/tests/arc-to-rust/panic.mlir b/arc-mlir/src/tests/arc-to-rust/panic.mlir index 62b64a5b4..365054b34 100644 --- a/arc-mlir/src/tests/arc-to-rust/panic.mlir +++ b/arc-mlir/src/tests/arc-to-rust/panic.mlir @@ -12,5 +12,4 @@ module @toplevel { arc.panic("foo") return } - } diff --git a/arc-mlir/src/tests/arc-to-rust/select.mlir.rust-tests b/arc-mlir/src/tests/arc-to-rust/select.mlir.rust-tests index 7c0635b02..0b51a9a8d 100644 --- a/arc-mlir/src/tests/arc-to-rust/select.mlir.rust-tests +++ b/arc-mlir/src/tests/arc-to-rust/select.mlir.rust-tests @@ -1,10 +1,9 @@ #[cfg(test)] mod tests { - use crate::arctorustifs::*; - #[rewrite(main)] - #[test] - fn test() { - assert_eq!(call!(test_0(true, 3, 4)), 3); - assert_eq!(call!(test_0(false, 3, 4)), 4); - } + use crate::arctorustifs::*; + #[test] + fn test() { + assert_eq!(test_0(true, 3, 4), 3); + assert_eq!(test_0(false, 3, 4), 4); + } } diff --git a/arc-mlir/src/tests/arc-to-rust/simple.mlir b/arc-mlir/src/tests/arc-to-rust/simple.mlir index 4ef8703c0..999c79704 100644 --- a/arc-mlir/src/tests/arc-to-rust/simple.mlir +++ b/arc-mlir/src/tests/arc-to-rust/simple.mlir @@ -19,42 +19,34 @@ module @arctorustsimple { %b = arith.constant 0 : i1 return %b : i1 } - func.func @return_ui8() -> ui8 { %b = arc.constant 255 : ui8 return %b : ui8 } - func.func @return_ui16() -> ui16 { %b = arc.constant 65535 : ui16 return %b : ui16 } - func.func @return_ui32() -> ui32 { %b = arc.constant 4294967295 : ui32 return %b : ui32 } - func.func @return_ui64() -> ui64 { %b = arc.constant 18446744073709551615 : ui64 return %b : ui64 } - func.func @return_si8() -> si8 { %b = arc.constant -128 : si8 return %b : si8 } - func.func @return_si16() -> si16 { %b = arc.constant -32768 : si16 return %b : si16 } - func.func @return_si32() -> si32 { %b = arc.constant -2147483648 : si32 return %b : si32 } - func.func @return_si64() -> si64 { %b = arc.constant -9223372036854775808 : si64 return %b : si64 diff --git a/arc-mlir/src/tests/arc-to-rust/simple.mlir.rust-tests b/arc-mlir/src/tests/arc-to-rust/simple.mlir.rust-tests index 553db1c4f..d75026900 100644 --- a/arc-mlir/src/tests/arc-to-rust/simple.mlir.rust-tests +++ b/arc-mlir/src/tests/arc-to-rust/simple.mlir.rust-tests @@ -1,23 +1,21 @@ #[cfg(test)] mod tests { - use crate::arctorustsimple::*; - use hexf::*; - #[rewrite(main)] - #[test] - fn it_works() { - assert_eq!(call!(returnf64()), hexf::hexf64!("0x1.91eb851eb851fp1")); - assert_eq!(call!(returnf32()), hexf::hexf32!("0x1.62e48ep-1")); - assert_eq!(call!(return_true()), true); - assert_eq!(call!(return_false()), false); + use crate::arctorustsimple::*; + #[test] + fn it_works() { + assert_eq!(returnf64(), hexf::hexf64!("0x1.91eb851eb851fp1")); + assert_eq!(returnf32(), hexf::hexf32!("0x1.62e48ep-1")); + assert_eq!(return_true(), true); + assert_eq!(return_false(), false); - assert_eq!(call!(return_ui8()), 0xFF); - assert_eq!(call!(return_ui16()), 0xFFFF); - assert_eq!(call!(return_ui32()), 0xFFFFFFFF); - assert_eq!(call!(return_ui64()), 0xFFFFFFFFFFFFFFFF); + assert_eq!(return_ui8(), 0xFF); + assert_eq!(return_ui16(), 0xFFFF); + assert_eq!(return_ui32(), 0xFFFFFFFF); + assert_eq!(return_ui64(), 0xFFFFFFFFFFFFFFFF); - assert_eq!(call!(return_si8()), -128); - assert_eq!(call!(return_si16()), -32768); - assert_eq!(call!(return_si32()), -2147483648); - assert_eq!(call!(return_si64()), -9223372036854775808); - } + assert_eq!(return_si8(), -128); + assert_eq!(return_si16(), -32768); + assert_eq!(return_si32(), -2147483648); + assert_eq!(return_si64(), -9223372036854775808); + } } diff --git a/arc-mlir/src/tests/arc-to-rust/spawn.mlir b/arc-mlir/src/tests/arc-to-rust/spawn.mlir deleted file mode 100644 index ca40a398d..000000000 --- a/arc-mlir/src/tests/arc-to-rust/spawn.mlir +++ /dev/null @@ -1,32 +0,0 @@ -// RUN: arc-mlir %s | arc-mlir -// RUN: arc-mlir -canonicalize %s | arc-mlir -// RUN: arc-mlir -canonicalize -arc-to-rust %s | FileCheck %s -module @arctorustspawn { - - func.func @id(%in : !arc.stream.source, - %out : !arc.stream.sink) -> () - attributes { - arc.is_task, - rust.async, - rust.annotation = "#[rewrite(nonpersistent)]" - } { - scf.while () : () -> () { - %condition = arith.constant 1 : i1 - scf.condition(%condition) - } do { - ^bb0(): - %x = "arc.receive"(%in) : (!arc.stream.source) -> si32 - "arc.send"(%x, %out) : (si32, !arc.stream.sink) -> () - scf.yield - } - return - } - - func.func @main(%in : !arc.stream.source, - %out : !arc.stream.sink) { - arc.spawn @id(%in, %out) : (!arc.stream.source, - !arc.stream.sink) -> () -// CHECK: "rust.spawn"(%arg0, %arg1) {callee = @id} : (!rust<>, !rust<>) -> () - return - } -} diff --git a/arc-mlir/src/tests/arc-to-rust/structs.mlir b/arc-mlir/src/tests/arc-to-rust/structs.mlir index db82e5316..945460924 100644 --- a/arc-mlir/src/tests/arc-to-rust/structs.mlir +++ b/arc-mlir/src/tests/arc-to-rust/structs.mlir @@ -72,7 +72,6 @@ module @arctoruststructs { %s = arc.make_struct(%b : si32) : !arc.struct %r0 = arc.make_struct(%a, %s : si32, !arc.struct) : !arc.struct> %r1 = arc.make_struct(%a, %s : si32, !arc.struct) : !arc.struct> - return %a : si32 } @@ -84,17 +83,4 @@ module @arctoruststructs { %r = arc.make_struct() : !arc.struct<> return %r : !arc.struct<> } - - func.func @ok13() -> !arc.struct<<>> { - %r = arc.make_struct() : !arc.struct<<>> - return %r : !arc.struct<<>> - } - - func.func @ok14() -> !arc.struct<> { - %a = arc.constant 4 : si32 - %r = arc.make_struct(%a : si32) : !arc.struct<> - return %r : !arc.struct<> - } - - } diff --git a/arc-mlir/src/tests/arc-to-rust/structs.mlir.rust-tests b/arc-mlir/src/tests/arc-to-rust/structs.mlir.rust-tests index d43a89feb..f850d0e48 100644 --- a/arc-mlir/src/tests/arc-to-rust/structs.mlir.rust-tests +++ b/arc-mlir/src/tests/arc-to-rust/structs.mlir.rust-tests @@ -1,15 +1,14 @@ // Empty #[cfg(test)] mod tests { - use crate::arctoruststructs::*; - #[rewrite(main)] - #[test] - fn it_works() { - assert_eq!(call!(ok3()).a, 4); - assert_eq!(call!(ok4()).a, 4); - assert_eq!(call!(ok5()).a, 4); - assert_eq!(call!(ok5()).b.a, 3); - assert_eq!(call!(ok6()), 4); - assert_eq!(call!(ok7()), 3); - } + use crate::arctoruststructs::*; + #[test] + fn it_works() { + assert_eq!(ok3().a, 4); + assert_eq!(ok4().a, 4); + assert_eq!(ok5().a, 4); + assert_eq!(ok5().b.a, 3); + assert_eq!(ok6(), 4); + assert_eq!(ok7(), 3); + } } diff --git a/arc-mlir/src/tests/arc-to-rust/tensors.mlir.rust-tests b/arc-mlir/src/tests/arc-to-rust/tensors.mlir.rust-tests deleted file mode 100644 index 3f408ec65..000000000 --- a/arc-mlir/src/tests/arc-to-rust/tensors.mlir.rust-tests +++ /dev/null @@ -1,46 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::arctorusttensors::*; - #[rewrite(main)] - #[test] - fn test() { - let tmp0 = call!(make_0()); - let tmp1 = call!(make_1()); - let tmp2 = call!(make_2()); - let tmp3 = call!(make_3()); - - assert_eq!(tmp0[[0]], 0.0); - - assert_eq!(tmp1[[0]], 0.0); - assert_eq!(tmp1[[1]], 1.0); - - assert_eq!(tmp2[[0]], 0.0); - assert_eq!(tmp2[[1]], 1.0); - assert_eq!(tmp2[[2]], 2.0); - - assert_eq!(tmp3[[0,0,0]], 0.0); - assert_eq!(tmp3[[0,0,1]], 1.0); - assert_eq!(tmp3[[0,0,2]], 2.0); - assert_eq!(tmp3[[0,0,3]], 3.0); - assert_eq!(tmp3[[0,1,0]], 4.0); - assert_eq!(tmp3[[0,1,1]], 5.0); - assert_eq!(tmp3[[0,1,2]], 6.0); - assert_eq!(tmp3[[0,1,3]], 7.0); - assert_eq!(tmp3[[0,2,0]], 8.0); - assert_eq!(tmp3[[0,2,1]], 9.0); - assert_eq!(tmp3[[0,2,2]], 10.0); - assert_eq!(tmp3[[0,2,3]], 11.0); - assert_eq!(tmp3[[1,0,0]], 12.0); - assert_eq!(tmp3[[1,0,1]], 13.0); - assert_eq!(tmp3[[1,0,2]], 14.0); - assert_eq!(tmp3[[1,0,3]], 15.0); - assert_eq!(tmp3[[1,1,0]], 16.0); - assert_eq!(tmp3[[1,1,1]], 17.0); - assert_eq!(tmp3[[1,1,2]], 18.0); - assert_eq!(tmp3[[1,1,3]], 19.0); - assert_eq!(tmp3[[1,2,0]], 20.0); - assert_eq!(tmp3[[1,2,1]], 21.0); - assert_eq!(tmp3[[1,2,2]], 22.0); - assert_eq!(tmp3[[1,2,3]], 23.0); - } -} diff --git a/arc-mlir/src/tests/arc-to-rust/unary-ops.mlir b/arc-mlir/src/tests/arc-to-rust/unary-ops.mlir index 38e85bcd3..c8d4938a1 100644 --- a/arc-mlir/src/tests/arc-to-rust/unary-ops.mlir +++ b/arc-mlir/src/tests/arc-to-rust/unary-ops.mlir @@ -2,124 +2,123 @@ // RUN: arc-mlir-rust-test %t-roundtrip-scf %s -rustinclude %s.rust-tests -canonicalize -remove-scf -canonicalize -to-scf -canonicalize module @arctorustunaryops { -func.func @acos_f32(%a : f32) -> f32 { - %r = arc.acos %a : f32 - return %r : f32 -} - -func.func @asin_f32(%a : f32) -> f32 { - %r = arc.asin %a : f32 - return %r : f32 -} - -func.func @atan_f32(%a : f32) -> f32 { - %r = math.atan %a : f32 - return %r : f32 -} - -func.func @cos_f32(%a : f32) -> f32 { - %r = math.cos %a : f32 - return %r : f32 -} - -func.func @cosh_f32(%a : f32) -> f32 { - %r = arc.cosh %a : f32 - return %r : f32 -} - -func.func @exp_f32(%a : f32) -> f32 { - %r = math.exp %a : f32 - return %r : f32 -} - -func.func @log_f32(%a : f32) -> f32 { - %r = math.log %a : f32 - return %r : f32 -} - -func.func @sin_f32(%a : f32) -> f32 { - %r = math.sin %a : f32 - return %r : f32 -} - -func.func @sinh_f32(%a : f32) -> f32 { - %r = arc.sinh %a : f32 - return %r : f32 -} - -func.func @sqrt_f32(%a : f32) -> f32 { - %r = math.sqrt %a : f32 - return %r : f32 -} - -func.func @tan_f32(%a : f32) -> f32 { - %r = arc.tan %a : f32 - return %r : f32 -} - -func.func @tanh_f32(%a : f32) -> f32 { - %r = math.tanh %a : f32 - return %r : f32 -} - -func.func @acos_f64(%a : f64) -> f64 { - %r = arc.acos %a : f64 - return %r : f64 -} - -func.func @asin_f64(%a : f64) -> f64 { - %r = arc.asin %a : f64 - return %r : f64 -} - -func.func @atan_f64(%a : f64) -> f64 { - %r = math.atan %a : f64 - return %r : f64 -} - -func.func @cos_f64(%a : f64) -> f64 { - %r = math.cos %a : f64 - return %r : f64 -} - -func.func @cosh_f64(%a : f64) -> f64 { - %r = arc.cosh %a : f64 - return %r : f64 -} - -func.func @exp_f64(%a : f64) -> f64 { - %r = math.exp %a : f64 - return %r : f64 -} - -func.func @log_f64(%a : f64) -> f64 { - %r = math.log %a : f64 - return %r : f64 -} - -func.func @sin_f64(%a : f64) -> f64 { - %r = math.sin %a : f64 - return %r : f64 -} - -func.func @sinh_f64(%a : f64) -> f64 { - %r = arc.sinh %a : f64 - return %r : f64 -} - -func.func @sqrt_f64(%a : f64) -> f64 { - %r = math.sqrt %a : f64 - return %r : f64 -} - -func.func @tan_f64(%a : f64) -> f64 { - %r = arc.tan %a : f64 - return %r : f64 -} - -func.func @tanh_f64(%a : f64) -> f64 { - %r = math.tanh %a : f64 - return %r : f64 -} - + func.func @acos_f32(%a : f32) -> f32 { + %r = arc.acos %a : f32 + return %r : f32 + } + + func.func @asin_f32(%a : f32) -> f32 { + %r = arc.asin %a : f32 + return %r : f32 + } + + func.func @atan_f32(%a : f32) -> f32 { + %r = math.atan %a : f32 + return %r : f32 + } + + func.func @cos_f32(%a : f32) -> f32 { + %r = math.cos %a : f32 + return %r : f32 + } + + func.func @cosh_f32(%a : f32) -> f32 { + %r = arc.cosh %a : f32 + return %r : f32 + } + + func.func @exp_f32(%a : f32) -> f32 { + %r = math.exp %a : f32 + return %r : f32 + } + + func.func @log_f32(%a : f32) -> f32 { + %r = math.log %a : f32 + return %r : f32 + } + + func.func @sin_f32(%a : f32) -> f32 { + %r = math.sin %a : f32 + return %r : f32 + } + + func.func @sinh_f32(%a : f32) -> f32 { + %r = arc.sinh %a : f32 + return %r : f32 + } + + func.func @sqrt_f32(%a : f32) -> f32 { + %r = math.sqrt %a : f32 + return %r : f32 + } + + func.func @tan_f32(%a : f32) -> f32 { + %r = arc.tan %a : f32 + return %r : f32 + } + + func.func @tanh_f32(%a : f32) -> f32 { + %r = math.tanh %a : f32 + return %r : f32 + } + + func.func @acos_f64(%a : f64) -> f64 { + %r = arc.acos %a : f64 + return %r : f64 + } + + func.func @asin_f64(%a : f64) -> f64 { + %r = arc.asin %a : f64 + return %r : f64 + } + + func.func @atan_f64(%a : f64) -> f64 { + %r = math.atan %a : f64 + return %r : f64 + } + + func.func @cos_f64(%a : f64) -> f64 { + %r = math.cos %a : f64 + return %r : f64 + } + + func.func @cosh_f64(%a : f64) -> f64 { + %r = arc.cosh %a : f64 + return %r : f64 + } + + func.func @exp_f64(%a : f64) -> f64 { + %r = math.exp %a : f64 + return %r : f64 + } + + func.func @log_f64(%a : f64) -> f64 { + %r = math.log %a : f64 + return %r : f64 + } + + func.func @sin_f64(%a : f64) -> f64 { + %r = math.sin %a : f64 + return %r : f64 + } + + func.func @sinh_f64(%a : f64) -> f64 { + %r = arc.sinh %a : f64 + return %r : f64 + } + + func.func @sqrt_f64(%a : f64) -> f64 { + %r = math.sqrt %a : f64 + return %r : f64 + } + + func.func @tan_f64(%a : f64) -> f64 { + %r = arc.tan %a : f64 + return %r : f64 + } + + func.func @tanh_f64(%a : f64) -> f64 { + %r = math.tanh %a : f64 + return %r : f64 + } } diff --git a/arc-mlir/src/tests/arc-to-rust/unary-ops.mlir.rust-tests b/arc-mlir/src/tests/arc-to-rust/unary-ops.mlir.rust-tests index a922714e2..81ef232ad 100644 --- a/arc-mlir/src/tests/arc-to-rust/unary-ops.mlir.rust-tests +++ b/arc-mlir/src/tests/arc-to-rust/unary-ops.mlir.rust-tests @@ -1,194 +1,180 @@ #[cfg(test)] mod tests { -use crate::arctorustunaryops::*; -#[rewrite(main)] -#[test] - fn test_0() { - assert!((call!(acos_f32(1.00000000000000000000e+00)) - 0.00000000000000000000e+00).abs() < 1e-6); - assert!((call!(acos_f32(5.00000000000000000000e-01)) - 1.04719755119659785336e+00).abs() < 1e-6); - assert!((call!(acos_f32(1.00000000000000005551e-01)) - 1.47062890563333681371e+00).abs() < 1e-6); - assert!((call!(acos_f32(0.00000000000000000000e+00)) - 1.57079632679489655800e+00).abs() < 1e-6); - assert!((call!(acos_f32(-5.00000000000000000000e-01)) - 2.09439510239319570672e+00).abs() < 1e-6); - assert!((call!(acos_f32(-1.00000000000000000000e+00)) - 3.14159265358979311600e+00).abs() < 1e-6); - assert!((call!(acos_f64(1.00000000000000000000e+00)) - 0.00000000000000000000e+00).abs() < 1e-6); - assert!((call!(acos_f64(5.00000000000000000000e-01)) - 1.04719755119659785336e+00).abs() < 1e-6); - assert!((call!(acos_f64(1.00000000000000005551e-01)) - 1.47062890563333681371e+00).abs() < 1e-6); - assert!((call!(acos_f64(0.00000000000000000000e+00)) - 1.57079632679489655800e+00).abs() < 1e-6); - } - #[rewrite(main)] - #[test] - fn test_1() { - assert!((call!(acos_f64(-5.00000000000000000000e-01)) - 2.09439510239319570672e+00).abs() < 1e-6); - assert!((call!(acos_f64(-1.00000000000000000000e+00)) - 3.14159265358979311600e+00).abs() < 1e-6); - assert!((call!(asin_f32(-1.00000000000000000000e+00)) - -1.57079632679489655800e+00).abs() < 1e-6); - assert!((call!(asin_f32(-5.00000000000000000000e-01)) - -5.23598775598298926681e-01).abs() < 1e-6); - assert!((call!(asin_f32(0.00000000000000000000e+00)) - 0.00000000000000000000e+00).abs() < 1e-6); - assert!((call!(asin_f32(1.00000000000000005551e-01)) - 1.00167421161559799803e-01).abs() < 1e-6); - assert!((call!(asin_f32(5.00000000000000000000e-01)) - 5.23598775598298926681e-01).abs() < 1e-6); - assert!((call!(asin_f32(1.00000000000000000000e+00)) - 1.57079632679489655800e+00).abs() < 1e-6); - assert!((call!(asin_f64(-1.00000000000000000000e+00)) - -1.57079632679489655800e+00).abs() < 1e-6); - assert!((call!(asin_f64(-5.00000000000000000000e-01)) - -5.23598775598298926681e-01).abs() < 1e-6); - } - #[rewrite(main)] - #[test] - fn test_2() { - assert!((call!(asin_f64(0.00000000000000000000e+00)) - 0.00000000000000000000e+00).abs() < 1e-6); - assert!((call!(asin_f64(1.00000000000000005551e-01)) - 1.00167421161559799803e-01).abs() < 1e-6); - assert!((call!(asin_f64(5.00000000000000000000e-01)) - 5.23598775598298926681e-01).abs() < 1e-6); - assert!((call!(asin_f64(1.00000000000000000000e+00)) - 1.57079632679489655800e+00).abs() < 1e-6); - assert!((call!(atan_f32(-1.00000000000000000000e+00)) - -7.85398163397448278999e-01).abs() < 1e-6); - assert!((call!(atan_f32(-5.00000000000000000000e-01)) - -4.63647609000806093515e-01).abs() < 1e-6); - assert!((call!(atan_f32(0.00000000000000000000e+00)) - 0.00000000000000000000e+00).abs() < 1e-6); - assert!((call!(atan_f32(1.00000000000000005551e-01)) - 9.96686524911620380651e-02).abs() < 1e-6); - assert!((call!(atan_f32(5.00000000000000000000e-01)) - 4.63647609000806093515e-01).abs() < 1e-6); - assert!((call!(atan_f32(1.00000000000000000000e+00)) - 7.85398163397448278999e-01).abs() < 1e-6); - } - #[rewrite(main)] - #[test] - fn test_3() { - assert!((call!(atan_f64(-1.00000000000000000000e+00)) - -7.85398163397448278999e-01).abs() < 1e-6); - assert!((call!(atan_f64(-5.00000000000000000000e-01)) - -4.63647609000806093515e-01).abs() < 1e-6); - assert!((call!(atan_f64(0.00000000000000000000e+00)) - 0.00000000000000000000e+00).abs() < 1e-6); - assert!((call!(atan_f64(1.00000000000000005551e-01)) - 9.96686524911620380651e-02).abs() < 1e-6); - assert!((call!(atan_f64(5.00000000000000000000e-01)) - 4.63647609000806093515e-01).abs() < 1e-6); - assert!((call!(atan_f64(1.00000000000000000000e+00)) - 7.85398163397448278999e-01).abs() < 1e-6); - assert!((call!(cos_f32(-1.00000000000000000000e+00)) - 5.40302305868139765010e-01).abs() < 1e-6); - assert!((call!(cos_f32(1.00000000000000000000e+00)) - 5.40302305868139765010e-01).abs() < 1e-6); - assert!((call!(cos_f32(-5.00000000000000000000e-01)) - 8.77582561890372758739e-01).abs() < 1e-6); - assert!((call!(cos_f32(5.00000000000000000000e-01)) - 8.77582561890372758739e-01).abs() < 1e-6); - } - #[rewrite(main)] - #[test] - fn test_4() { - assert!((call!(cos_f32(1.00000000000000005551e-01)) - 9.95004165278025820562e-01).abs() < 1e-6); - assert!((call!(cos_f32(0.00000000000000000000e+00)) - 1.00000000000000000000e+00).abs() < 1e-6); - assert!((call!(cos_f64(-1.00000000000000000000e+00)) - 5.40302305868139765010e-01).abs() < 1e-6); - assert!((call!(cos_f64(1.00000000000000000000e+00)) - 5.40302305868139765010e-01).abs() < 1e-6); - assert!((call!(cos_f64(-5.00000000000000000000e-01)) - 8.77582561890372758739e-01).abs() < 1e-6); - assert!((call!(cos_f64(5.00000000000000000000e-01)) - 8.77582561890372758739e-01).abs() < 1e-6); - assert!((call!(cos_f64(1.00000000000000005551e-01)) - 9.95004165278025820562e-01).abs() < 1e-6); - assert!((call!(cos_f64(0.00000000000000000000e+00)) - 1.00000000000000000000e+00).abs() < 1e-6); - assert!((call!(cosh_f32(0.00000000000000000000e+00)) - 1.00000000000000000000e+00).abs() < 1e-6); - assert!((call!(cosh_f32(1.00000000000000005551e-01)) - 1.00500416805580350399e+00).abs() < 1e-6); - } - #[rewrite(main)] - #[test] - fn test_5() { - assert!((call!(cosh_f32(-5.00000000000000000000e-01)) - 1.12762596520638069819e+00).abs() < 1e-6); - assert!((call!(cosh_f32(5.00000000000000000000e-01)) - 1.12762596520638069819e+00).abs() < 1e-6); - assert!((call!(cosh_f32(-1.00000000000000000000e+00)) - 1.54308063481524371241e+00).abs() < 1e-6); - assert!((call!(cosh_f32(1.00000000000000000000e+00)) - 1.54308063481524371241e+00).abs() < 1e-6); - assert!((call!(cosh_f64(0.00000000000000000000e+00)) - 1.00000000000000000000e+00).abs() < 1e-6); - assert!((call!(cosh_f64(1.00000000000000005551e-01)) - 1.00500416805580350399e+00).abs() < 1e-6); - assert!((call!(cosh_f64(-5.00000000000000000000e-01)) - 1.12762596520638069819e+00).abs() < 1e-6); - assert!((call!(cosh_f64(5.00000000000000000000e-01)) - 1.12762596520638069819e+00).abs() < 1e-6); - assert!((call!(cosh_f64(-1.00000000000000000000e+00)) - 1.54308063481524371241e+00).abs() < 1e-6); - assert!((call!(cosh_f64(1.00000000000000000000e+00)) - 1.54308063481524371241e+00).abs() < 1e-6); - } - #[rewrite(main)] - #[test] - fn test_6() { - assert!((call!(exp_f32(-1.00000000000000000000e+00)) - 3.67879441171442334024e-01).abs() < 1e-6); - assert!((call!(exp_f32(-5.00000000000000000000e-01)) - 6.06530659712633424263e-01).abs() < 1e-6); - assert!((call!(exp_f32(0.00000000000000000000e+00)) - 1.00000000000000000000e+00).abs() < 1e-6); - assert!((call!(exp_f32(1.00000000000000005551e-01)) - 1.10517091807564771244e+00).abs() < 1e-6); - assert!((call!(exp_f32(5.00000000000000000000e-01)) - 1.64872127070012819416e+00).abs() < 1e-6); - assert!((call!(exp_f32(1.00000000000000000000e+00)) - 2.71828182845904509080e+00).abs() < 1e-6); - assert!((call!(exp_f64(-1.00000000000000000000e+00)) - 3.67879441171442334024e-01).abs() < 1e-6); - assert!((call!(exp_f64(-5.00000000000000000000e-01)) - 6.06530659712633424263e-01).abs() < 1e-6); - assert!((call!(exp_f64(0.00000000000000000000e+00)) - 1.00000000000000000000e+00).abs() < 1e-6); - assert!((call!(exp_f64(1.00000000000000005551e-01)) - 1.10517091807564771244e+00).abs() < 1e-6); - } - #[rewrite(main)] - #[test] - fn test_7() { - assert!((call!(exp_f64(5.00000000000000000000e-01)) - 1.64872127070012819416e+00).abs() < 1e-6); - assert!((call!(exp_f64(1.00000000000000000000e+00)) - 2.71828182845904509080e+00).abs() < 1e-6); - assert!((call!(log_f32(1.00000000000000005551e-01)) - -2.30258509299404545700e+00).abs() < 1e-6); - assert!((call!(log_f32(5.00000000000000000000e-01)) - -6.93147180559945286227e-01).abs() < 1e-6); - assert!((call!(log_f32(1.00000000000000000000e+00)) - 0.00000000000000000000e+00).abs() < 1e-6); - assert!((call!(log_f64(1.00000000000000005551e-01)) - -2.30258509299404545700e+00).abs() < 1e-6); - assert!((call!(log_f64(5.00000000000000000000e-01)) - -6.93147180559945286227e-01).abs() < 1e-6); - assert!((call!(log_f64(1.00000000000000000000e+00)) - 0.00000000000000000000e+00).abs() < 1e-6); - assert!((call!(sin_f32(-1.00000000000000000000e+00)) - -8.41470984807896504876e-01).abs() < 1e-6); - assert!((call!(sin_f32(-5.00000000000000000000e-01)) - -4.79425538604203005377e-01).abs() < 1e-6); - } - #[rewrite(main)] - #[test] - fn test_8() { - assert!((call!(sin_f32(0.00000000000000000000e+00)) - 0.00000000000000000000e+00).abs() < 1e-6); - assert!((call!(sin_f32(1.00000000000000005551e-01)) - 9.98334166468281547502e-02).abs() < 1e-6); - assert!((call!(sin_f32(5.00000000000000000000e-01)) - 4.79425538604203005377e-01).abs() < 1e-6); - assert!((call!(sin_f32(1.00000000000000000000e+00)) - 8.41470984807896504876e-01).abs() < 1e-6); - assert!((call!(sin_f64(-1.00000000000000000000e+00)) - -8.41470984807896504876e-01).abs() < 1e-6); - assert!((call!(sin_f64(-5.00000000000000000000e-01)) - -4.79425538604203005377e-01).abs() < 1e-6); - assert!((call!(sin_f64(0.00000000000000000000e+00)) - 0.00000000000000000000e+00).abs() < 1e-6); - assert!((call!(sin_f64(1.00000000000000005551e-01)) - 9.98334166468281547502e-02).abs() < 1e-6); - assert!((call!(sin_f64(5.00000000000000000000e-01)) - 4.79425538604203005377e-01).abs() < 1e-6); - assert!((call!(sin_f64(1.00000000000000000000e+00)) - 8.41470984807896504876e-01).abs() < 1e-6); - } - #[rewrite(main)] - #[test] - fn test_9() { - assert!((call!(sinh_f32(-1.00000000000000000000e+00)) - -1.17520119364380137839e+00).abs() < 1e-6); - assert!((call!(sinh_f32(-5.00000000000000000000e-01)) - -5.21095305493747384951e-01).abs() < 1e-6); - assert!((call!(sinh_f32(0.00000000000000000000e+00)) - 0.00000000000000000000e+00).abs() < 1e-6); - assert!((call!(sinh_f32(1.00000000000000005551e-01)) - 1.00166750019844028041e-01).abs() < 1e-6); - assert!((call!(sinh_f32(5.00000000000000000000e-01)) - 5.21095305493747384951e-01).abs() < 1e-6); - assert!((call!(sinh_f32(1.00000000000000000000e+00)) - 1.17520119364380137839e+00).abs() < 1e-6); - assert!((call!(sinh_f64(-1.00000000000000000000e+00)) - -1.17520119364380137839e+00).abs() < 1e-6); - assert!((call!(sinh_f64(-5.00000000000000000000e-01)) - -5.21095305493747384951e-01).abs() < 1e-6); - assert!((call!(sinh_f64(0.00000000000000000000e+00)) - 0.00000000000000000000e+00).abs() < 1e-6); - assert!((call!(sinh_f64(1.00000000000000005551e-01)) - 1.00166750019844028041e-01).abs() < 1e-6); - } - #[rewrite(main)] - #[test] - fn test_10() { - assert!((call!(sinh_f64(5.00000000000000000000e-01)) - 5.21095305493747384951e-01).abs() < 1e-6); - assert!((call!(sinh_f64(1.00000000000000000000e+00)) - 1.17520119364380137839e+00).abs() < 1e-6); - assert!((call!(sqrt_f32(0.00000000000000000000e+00)) - 0.00000000000000000000e+00).abs() < 1e-6); - assert!((call!(sqrt_f32(1.00000000000000005551e-01)) - 3.16227766016837941176e-01).abs() < 1e-6); - assert!((call!(sqrt_f32(5.00000000000000000000e-01)) - 7.07106781186547572737e-01).abs() < 1e-6); - assert!((call!(sqrt_f32(1.00000000000000000000e+00)) - 1.00000000000000000000e+00).abs() < 1e-6); - assert!((call!(sqrt_f64(0.00000000000000000000e+00)) - 0.00000000000000000000e+00).abs() < 1e-6); - assert!((call!(sqrt_f64(1.00000000000000005551e-01)) - 3.16227766016837941176e-01).abs() < 1e-6); - assert!((call!(sqrt_f64(5.00000000000000000000e-01)) - 7.07106781186547572737e-01).abs() < 1e-6); - assert!((call!(sqrt_f64(1.00000000000000000000e+00)) - 1.00000000000000000000e+00).abs() < 1e-6); - } - #[rewrite(main)] - #[test] - fn test_11() { - assert!((call!(tan_f32(-1.00000000000000000000e+00)) - -1.55740772465490229237e+00).abs() < 1e-6); - assert!((call!(tan_f32(-5.00000000000000000000e-01)) - -5.46302489843790484159e-01).abs() < 1e-6); - assert!((call!(tan_f32(0.00000000000000000000e+00)) - 0.00000000000000000000e+00).abs() < 1e-6); - assert!((call!(tan_f32(1.00000000000000005551e-01)) - 1.00334672085450549162e-01).abs() < 1e-6); - assert!((call!(tan_f32(5.00000000000000000000e-01)) - 5.46302489843790484159e-01).abs() < 1e-6); - assert!((call!(tan_f32(1.00000000000000000000e+00)) - 1.55740772465490229237e+00).abs() < 1e-6); - assert!((call!(tan_f64(-1.00000000000000000000e+00)) - -1.55740772465490229237e+00).abs() < 1e-6); - assert!((call!(tan_f64(-5.00000000000000000000e-01)) - -5.46302489843790484159e-01).abs() < 1e-6); - assert!((call!(tan_f64(0.00000000000000000000e+00)) - 0.00000000000000000000e+00).abs() < 1e-6); - assert!((call!(tan_f64(1.00000000000000005551e-01)) - 1.00334672085450549162e-01).abs() < 1e-6); - } - #[rewrite(main)] - #[test] - fn test_12() { - assert!((call!(tan_f64(5.00000000000000000000e-01)) - 5.46302489843790484159e-01).abs() < 1e-6); - assert!((call!(tan_f64(1.00000000000000000000e+00)) - 1.55740772465490229237e+00).abs() < 1e-6); - assert!((call!(tanh_f32(-1.00000000000000000000e+00)) - -7.61594155955764851029e-01).abs() < 1e-6); - assert!((call!(tanh_f32(-5.00000000000000000000e-01)) - -4.62117157260009736586e-01).abs() < 1e-6); - assert!((call!(tanh_f32(0.00000000000000000000e+00)) - 0.00000000000000000000e+00).abs() < 1e-6); - assert!((call!(tanh_f32(1.00000000000000005551e-01)) - 9.96679946249558190718e-02).abs() < 1e-6); - assert!((call!(tanh_f32(5.00000000000000000000e-01)) - 4.62117157260009736586e-01).abs() < 1e-6); - assert!((call!(tanh_f32(1.00000000000000000000e+00)) - 7.61594155955764851029e-01).abs() < 1e-6); - assert!((call!(tanh_f64(-1.00000000000000000000e+00)) - -7.61594155955764851029e-01).abs() < 1e-6); - assert!((call!(tanh_f64(-5.00000000000000000000e-01)) - -4.62117157260009736586e-01).abs() < 1e-6); - } - #[rewrite(main)] - #[test] - fn test_13() { - assert!((call!(tanh_f64(0.00000000000000000000e+00)) - 0.00000000000000000000e+00).abs() < 1e-6); - assert!((call!(tanh_f64(1.00000000000000005551e-01)) - 9.96679946249558190718e-02).abs() < 1e-6); - assert!((call!(tanh_f64(5.00000000000000000000e-01)) - 4.62117157260009736586e-01).abs() < 1e-6); - assert!((call!(tanh_f64(1.00000000000000000000e+00)) - 7.61594155955764851029e-01).abs() < 1e-6); - } + use crate::arctorustunaryops::*; + #[test] + fn test_0() { + assert!((acos_f32(1.00000000000000000000e+00) - 0.00000000000000000000e+00).abs() < 1e-6); + assert!((acos_f32(5.00000000000000000000e-01) - 1.04719755119659785336e+00).abs() < 1e-6); + assert!((acos_f32(1.00000000000000005551e-01) - 1.47062890563333681371e+00).abs() < 1e-6); + assert!((acos_f32(0.00000000000000000000e+00) - 1.57079632679489655800e+00).abs() < 1e-6); + assert!((acos_f32(-5.00000000000000000000e-01) - 2.09439510239319570672e+00).abs() < 1e-6); + assert!((acos_f32(-1.00000000000000000000e+00) - 3.14159265358979311600e+00).abs() < 1e-6); + assert!((acos_f64(1.00000000000000000000e+00) - 0.00000000000000000000e+00).abs() < 1e-6); + assert!((acos_f64(5.00000000000000000000e-01) - 1.04719755119659785336e+00).abs() < 1e-6); + assert!((acos_f64(1.00000000000000005551e-01) - 1.47062890563333681371e+00).abs() < 1e-6); + assert!((acos_f64(0.00000000000000000000e+00) - 1.57079632679489655800e+00).abs() < 1e-6); + } + #[test] + fn test_1() { + assert!((acos_f64(-5.00000000000000000000e-01) - 2.09439510239319570672e+00).abs() < 1e-6); + assert!((acos_f64(-1.00000000000000000000e+00) - 3.14159265358979311600e+00).abs() < 1e-6); + assert!((asin_f32(-1.00000000000000000000e+00) - -1.57079632679489655800e+00).abs() < 1e-6); + assert!((asin_f32(-5.00000000000000000000e-01) - -5.23598775598298926681e-01).abs() < 1e-6); + assert!((asin_f32(0.00000000000000000000e+00) - 0.00000000000000000000e+00).abs() < 1e-6); + assert!((asin_f32(1.00000000000000005551e-01) - 1.00167421161559799803e-01).abs() < 1e-6); + assert!((asin_f32(5.00000000000000000000e-01) - 5.23598775598298926681e-01).abs() < 1e-6); + assert!((asin_f32(1.00000000000000000000e+00) - 1.57079632679489655800e+00).abs() < 1e-6); + assert!((asin_f64(-1.00000000000000000000e+00) - -1.57079632679489655800e+00).abs() < 1e-6); + assert!((asin_f64(-5.00000000000000000000e-01) - -5.23598775598298926681e-01).abs() < 1e-6); + } + #[test] + fn test_2() { + assert!((asin_f64(0.00000000000000000000e+00) - 0.00000000000000000000e+00).abs() < 1e-6); + assert!((asin_f64(1.00000000000000005551e-01) - 1.00167421161559799803e-01).abs() < 1e-6); + assert!((asin_f64(5.00000000000000000000e-01) - 5.23598775598298926681e-01).abs() < 1e-6); + assert!((asin_f64(1.00000000000000000000e+00) - 1.57079632679489655800e+00).abs() < 1e-6); + assert!((atan_f32(-1.00000000000000000000e+00) - -7.85398163397448278999e-01).abs() < 1e-6); + assert!((atan_f32(-5.00000000000000000000e-01) - -4.63647609000806093515e-01).abs() < 1e-6); + assert!((atan_f32(0.00000000000000000000e+00) - 0.00000000000000000000e+00).abs() < 1e-6); + assert!((atan_f32(1.00000000000000005551e-01) - 9.96686524911620380651e-02).abs() < 1e-6); + assert!((atan_f32(5.00000000000000000000e-01) - 4.63647609000806093515e-01).abs() < 1e-6); + assert!((atan_f32(1.00000000000000000000e+00) - 7.85398163397448278999e-01).abs() < 1e-6); + } + #[test] + fn test_3() { + assert!((atan_f64(-1.00000000000000000000e+00) - -7.85398163397448278999e-01).abs() < 1e-6); + assert!((atan_f64(-5.00000000000000000000e-01) - -4.63647609000806093515e-01).abs() < 1e-6); + assert!((atan_f64(0.00000000000000000000e+00) - 0.00000000000000000000e+00).abs() < 1e-6); + assert!((atan_f64(1.00000000000000005551e-01) - 9.96686524911620380651e-02).abs() < 1e-6); + assert!((atan_f64(5.00000000000000000000e-01) - 4.63647609000806093515e-01).abs() < 1e-6); + assert!((atan_f64(1.00000000000000000000e+00) - 7.85398163397448278999e-01).abs() < 1e-6); + assert!((cos_f32(-1.00000000000000000000e+00) - 5.40302305868139765010e-01).abs() < 1e-6); + assert!((cos_f32(1.00000000000000000000e+00) - 5.40302305868139765010e-01).abs() < 1e-6); + assert!((cos_f32(-5.00000000000000000000e-01) - 8.77582561890372758739e-01).abs() < 1e-6); + assert!((cos_f32(5.00000000000000000000e-01) - 8.77582561890372758739e-01).abs() < 1e-6); + } + #[test] + fn test_4() { + assert!((cos_f32(1.00000000000000005551e-01) - 9.95004165278025820562e-01).abs() < 1e-6); + assert!((cos_f32(0.00000000000000000000e+00) - 1.00000000000000000000e+00).abs() < 1e-6); + assert!((cos_f64(-1.00000000000000000000e+00) - 5.40302305868139765010e-01).abs() < 1e-6); + assert!((cos_f64(1.00000000000000000000e+00) - 5.40302305868139765010e-01).abs() < 1e-6); + assert!((cos_f64(-5.00000000000000000000e-01) - 8.77582561890372758739e-01).abs() < 1e-6); + assert!((cos_f64(5.00000000000000000000e-01) - 8.77582561890372758739e-01).abs() < 1e-6); + assert!((cos_f64(1.00000000000000005551e-01) - 9.95004165278025820562e-01).abs() < 1e-6); + assert!((cos_f64(0.00000000000000000000e+00) - 1.00000000000000000000e+00).abs() < 1e-6); + assert!((cosh_f32(0.00000000000000000000e+00) - 1.00000000000000000000e+00).abs() < 1e-6); + assert!((cosh_f32(1.00000000000000005551e-01) - 1.00500416805580350399e+00).abs() < 1e-6); + } + #[test] + fn test_5() { + assert!((cosh_f32(-5.00000000000000000000e-01) - 1.12762596520638069819e+00).abs() < 1e-6); + assert!((cosh_f32(5.00000000000000000000e-01) - 1.12762596520638069819e+00).abs() < 1e-6); + assert!((cosh_f32(-1.00000000000000000000e+00) - 1.54308063481524371241e+00).abs() < 1e-6); + assert!((cosh_f32(1.00000000000000000000e+00) - 1.54308063481524371241e+00).abs() < 1e-6); + assert!((cosh_f64(0.00000000000000000000e+00) - 1.00000000000000000000e+00).abs() < 1e-6); + assert!((cosh_f64(1.00000000000000005551e-01) - 1.00500416805580350399e+00).abs() < 1e-6); + assert!((cosh_f64(-5.00000000000000000000e-01) - 1.12762596520638069819e+00).abs() < 1e-6); + assert!((cosh_f64(5.00000000000000000000e-01) - 1.12762596520638069819e+00).abs() < 1e-6); + assert!((cosh_f64(-1.00000000000000000000e+00) - 1.54308063481524371241e+00).abs() < 1e-6); + assert!((cosh_f64(1.00000000000000000000e+00) - 1.54308063481524371241e+00).abs() < 1e-6); + } + #[test] + fn test_6() { + assert!((exp_f32(-1.00000000000000000000e+00) - 3.67879441171442334024e-01).abs() < 1e-6); + assert!((exp_f32(-5.00000000000000000000e-01) - 6.06530659712633424263e-01).abs() < 1e-6); + assert!((exp_f32(0.00000000000000000000e+00) - 1.00000000000000000000e+00).abs() < 1e-6); + assert!((exp_f32(1.00000000000000005551e-01) - 1.10517091807564771244e+00).abs() < 1e-6); + assert!((exp_f32(5.00000000000000000000e-01) - 1.64872127070012819416e+00).abs() < 1e-6); + assert!((exp_f32(1.00000000000000000000e+00) - 2.71828182845904509080e+00).abs() < 1e-6); + assert!((exp_f64(-1.00000000000000000000e+00) - 3.67879441171442334024e-01).abs() < 1e-6); + assert!((exp_f64(-5.00000000000000000000e-01) - 6.06530659712633424263e-01).abs() < 1e-6); + assert!((exp_f64(0.00000000000000000000e+00) - 1.00000000000000000000e+00).abs() < 1e-6); + assert!((exp_f64(1.00000000000000005551e-01) - 1.10517091807564771244e+00).abs() < 1e-6); + } + #[test] + fn test_7() { + assert!((exp_f64(5.00000000000000000000e-01) - 1.64872127070012819416e+00).abs() < 1e-6); + assert!((exp_f64(1.00000000000000000000e+00) - 2.71828182845904509080e+00).abs() < 1e-6); + assert!((log_f32(1.00000000000000005551e-01) - -2.30258509299404545700e+00).abs() < 1e-6); + assert!((log_f32(5.00000000000000000000e-01) - -6.93147180559945286227e-01).abs() < 1e-6); + assert!((log_f32(1.00000000000000000000e+00) - 0.00000000000000000000e+00).abs() < 1e-6); + assert!((log_f64(1.00000000000000005551e-01) - -2.30258509299404545700e+00).abs() < 1e-6); + assert!((log_f64(5.00000000000000000000e-01) - -6.93147180559945286227e-01).abs() < 1e-6); + assert!((log_f64(1.00000000000000000000e+00) - 0.00000000000000000000e+00).abs() < 1e-6); + assert!((sin_f32(-1.00000000000000000000e+00) - -8.41470984807896504876e-01).abs() < 1e-6); + assert!((sin_f32(-5.00000000000000000000e-01) - -4.79425538604203005377e-01).abs() < 1e-6); + } + #[test] + fn test_8() { + assert!((sin_f32(0.00000000000000000000e+00) - 0.00000000000000000000e+00).abs() < 1e-6); + assert!((sin_f32(1.00000000000000005551e-01) - 9.98334166468281547502e-02).abs() < 1e-6); + assert!((sin_f32(5.00000000000000000000e-01) - 4.79425538604203005377e-01).abs() < 1e-6); + assert!((sin_f32(1.00000000000000000000e+00) - 8.41470984807896504876e-01).abs() < 1e-6); + assert!((sin_f64(-1.00000000000000000000e+00) - -8.41470984807896504876e-01).abs() < 1e-6); + assert!((sin_f64(-5.00000000000000000000e-01) - -4.79425538604203005377e-01).abs() < 1e-6); + assert!((sin_f64(0.00000000000000000000e+00) - 0.00000000000000000000e+00).abs() < 1e-6); + assert!((sin_f64(1.00000000000000005551e-01) - 9.98334166468281547502e-02).abs() < 1e-6); + assert!((sin_f64(5.00000000000000000000e-01) - 4.79425538604203005377e-01).abs() < 1e-6); + assert!((sin_f64(1.00000000000000000000e+00) - 8.41470984807896504876e-01).abs() < 1e-6); + } + #[test] + fn test_9() { + assert!((sinh_f32(-1.00000000000000000000e+00) - -1.17520119364380137839e+00).abs() < 1e-6); + assert!((sinh_f32(-5.00000000000000000000e-01) - -5.21095305493747384951e-01).abs() < 1e-6); + assert!((sinh_f32(0.00000000000000000000e+00) - 0.00000000000000000000e+00).abs() < 1e-6); + assert!((sinh_f32(1.00000000000000005551e-01) - 1.00166750019844028041e-01).abs() < 1e-6); + assert!((sinh_f32(5.00000000000000000000e-01) - 5.21095305493747384951e-01).abs() < 1e-6); + assert!((sinh_f32(1.00000000000000000000e+00) - 1.17520119364380137839e+00).abs() < 1e-6); + assert!((sinh_f64(-1.00000000000000000000e+00) - -1.17520119364380137839e+00).abs() < 1e-6); + assert!((sinh_f64(-5.00000000000000000000e-01) - -5.21095305493747384951e-01).abs() < 1e-6); + assert!((sinh_f64(0.00000000000000000000e+00) - 0.00000000000000000000e+00).abs() < 1e-6); + assert!((sinh_f64(1.00000000000000005551e-01) - 1.00166750019844028041e-01).abs() < 1e-6); + } + #[test] + fn test_10() { + assert!((sinh_f64(5.00000000000000000000e-01) - 5.21095305493747384951e-01).abs() < 1e-6); + assert!((sinh_f64(1.00000000000000000000e+00) - 1.17520119364380137839e+00).abs() < 1e-6); + assert!((sqrt_f32(0.00000000000000000000e+00) - 0.00000000000000000000e+00).abs() < 1e-6); + assert!((sqrt_f32(1.00000000000000005551e-01) - 3.16227766016837941176e-01).abs() < 1e-6); + assert!((sqrt_f32(5.00000000000000000000e-01) - 7.07106781186547572737e-01).abs() < 1e-6); + assert!((sqrt_f32(1.00000000000000000000e+00) - 1.00000000000000000000e+00).abs() < 1e-6); + assert!((sqrt_f64(0.00000000000000000000e+00) - 0.00000000000000000000e+00).abs() < 1e-6); + assert!((sqrt_f64(1.00000000000000005551e-01) - 3.16227766016837941176e-01).abs() < 1e-6); + assert!((sqrt_f64(5.00000000000000000000e-01) - 7.07106781186547572737e-01).abs() < 1e-6); + assert!((sqrt_f64(1.00000000000000000000e+00) - 1.00000000000000000000e+00).abs() < 1e-6); + } + #[test] + fn test_11() { + assert!((tan_f32(-1.00000000000000000000e+00) - -1.55740772465490229237e+00).abs() < 1e-6); + assert!((tan_f32(-5.00000000000000000000e-01) - -5.46302489843790484159e-01).abs() < 1e-6); + assert!((tan_f32(0.00000000000000000000e+00) - 0.00000000000000000000e+00).abs() < 1e-6); + assert!((tan_f32(1.00000000000000005551e-01) - 1.00334672085450549162e-01).abs() < 1e-6); + assert!((tan_f32(5.00000000000000000000e-01) - 5.46302489843790484159e-01).abs() < 1e-6); + assert!((tan_f32(1.00000000000000000000e+00) - 1.55740772465490229237e+00).abs() < 1e-6); + assert!((tan_f64(-1.00000000000000000000e+00) - -1.55740772465490229237e+00).abs() < 1e-6); + assert!((tan_f64(-5.00000000000000000000e-01) - -5.46302489843790484159e-01).abs() < 1e-6); + assert!((tan_f64(0.00000000000000000000e+00) - 0.00000000000000000000e+00).abs() < 1e-6); + assert!((tan_f64(1.00000000000000005551e-01) - 1.00334672085450549162e-01).abs() < 1e-6); + } + #[test] + fn test_12() { + assert!((tan_f64(5.00000000000000000000e-01) - 5.46302489843790484159e-01).abs() < 1e-6); + assert!((tan_f64(1.00000000000000000000e+00) - 1.55740772465490229237e+00).abs() < 1e-6); + assert!((tanh_f32(-1.00000000000000000000e+00) - -7.61594155955764851029e-01).abs() < 1e-6); + assert!((tanh_f32(-5.00000000000000000000e-01) - -4.62117157260009736586e-01).abs() < 1e-6); + assert!((tanh_f32(0.00000000000000000000e+00) - 0.00000000000000000000e+00).abs() < 1e-6); + assert!((tanh_f32(1.00000000000000005551e-01) - 9.96679946249558190718e-02).abs() < 1e-6); + assert!((tanh_f32(5.00000000000000000000e-01) - 4.62117157260009736586e-01).abs() < 1e-6); + assert!((tanh_f32(1.00000000000000000000e+00) - 7.61594155955764851029e-01).abs() < 1e-6); + assert!((tanh_f64(-1.00000000000000000000e+00) - -7.61594155955764851029e-01).abs() < 1e-6); + assert!((tanh_f64(-5.00000000000000000000e-01) - -4.62117157260009736586e-01).abs() < 1e-6); + } + #[test] + fn test_13() { + assert!((tanh_f64(0.00000000000000000000e+00) - 0.00000000000000000000e+00).abs() < 1e-6); + assert!((tanh_f64(1.00000000000000005551e-01) - 9.96679946249558190718e-02).abs() < 1e-6); + assert!((tanh_f64(5.00000000000000000000e-01) - 4.62117157260009736586e-01).abs() < 1e-6); + assert!((tanh_f64(1.00000000000000000000e+00) - 7.61594155955764851029e-01).abs() < 1e-6); + } } diff --git a/arc-mlir/src/tests/lit.cfg.py b/arc-mlir/src/tests/lit.cfg.py index f139608ba..c22b95097 100644 --- a/arc-mlir/src/tests/lit.cfg.py +++ b/arc-mlir/src/tests/lit.cfg.py @@ -57,7 +57,7 @@ llvm_config.with_environment('ARC_CARGO', 'arc-cargo') tool_dirs = [config.mlir_tools_dir, config.llvm_tools_dir, - config.arcscript_tools_dir] + config.arclang_tools_dir] tools = [ 'mlir-opt', 'mlir-tblgen', diff --git a/arc-mlir/src/tests/lit.site.cfg.py.in b/arc-mlir/src/tests/lit.site.cfg.py.in index 73329d9db..7a7c1cfaa 100644 --- a/arc-mlir/src/tests/lit.site.cfg.py.in +++ b/arc-mlir/src/tests/lit.site.cfg.py.in @@ -32,7 +32,7 @@ config.mlir_src_root = "@MLIR_SOURCE_DIR@" config.mlir_obj_root = "@MLIR_BINARY_DIR@" config.mlir_tools_dir = "@MLIR_TOOLS_DIR@" config.linalg_test_lib_dir = "@MLIR_DIALECT_LINALG_INTEGRATION_TEST_LIB_DIR@" -config.arcscript_tools_dir = "@ARC_SCRIPT_TOOLS_DIR@" +config.arclang_tools_dir = "@ARC_LANG_TOOLS_DIR@" # Support substitution of the tools_dir with user parameters. This is # used when we can't determine the tool dir at configuration time. @@ -48,4 +48,4 @@ import lit.llvm lit.llvm.initialize(lit_config, config) # Let the main config do the real work. -lit_config.load_config(config, "@ARC_MLIR_SOURCE_DIR@/tests/lit.cfg.py") +lit_config.load_config(config, "@ARC_MLIR_SRC_DIR@/tests/lit.cfg.py") diff --git a/arc-mlir/src/tests/types/bad-structs.mlir b/arc-mlir/src/tests/types/bad-structs.mlir index 800d96a51..1e7fdaea1 100644 --- a/arc-mlir/src/tests/types/bad-structs.mlir +++ b/arc-mlir/src/tests/types/bad-structs.mlir @@ -36,14 +36,3 @@ module @toplevel { return %in : !arc.struct } } - -// ----- - -module @toplevel { - func.func @bad13() -> !arc.struct<> { -// expected-note@+1 {{prior use here}} - %r = arc.make_struct() : !arc.struct<<>> -// expected-error@+1 {{use of value '%r' expects different type than prior uses: '!arc.struct<>' vs '!arc.struct<<>>'}} - return %r : !arc.struct<> - } -} diff --git a/arc-mlir/src/tests/types/structs.mlir b/arc-mlir/src/tests/types/structs.mlir index 055b9899b..2f7f8f7ad 100644 --- a/arc-mlir/src/tests/types/structs.mlir +++ b/arc-mlir/src/tests/types/structs.mlir @@ -14,13 +14,4 @@ module @toplevel { func.func @ok2(%in : !arc.struct) -> !arc.struct { return %in : !arc.struct } - - func.func @ok3(%in : !arc.struct>) -> () { - return - } - - func.func @ok4(%in : !arc.struct<>) -> () { - return - } - } diff --git a/arc-mlir/src/tools/CMakeLists.txt b/arc-mlir/src/tools/CMakeLists.txt index 8cffc346c..faac9e8a7 100644 --- a/arc-mlir/src/tools/CMakeLists.txt +++ b/arc-mlir/src/tools/CMakeLists.txt @@ -1,10 +1,10 @@ add_subdirectory(arc-mlir) -set(CARGO_TOML_TEMPLATE_FILE "${ARC_LANG_SRC_DIR}/etc/Cargo.toml.template") -file(READ ${CARGO_TOML_TEMPLATE_FILE} CARGO_TOML_TEMPLATE) -set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS - ${CARGO_TOML_TEMPLATE_FILE}) - +# Generate script files from a templates (e.g., arc-cargo from arc-cargo.in) by +# replacing variables like @VAR@ with their CMake values. The resulting file +# will be placed in the LLVM_TOOLS_BINARY_DIR directory. @ONLY indicates that +# only variables of the form @VAR@ will be replaced, not cmake built-in +# substitutions. configure_file(arc-cargo.in ${LLVM_TOOLS_BINARY_DIR}/arc-cargo @ONLY) configure_file(arc-mlir-rust-test.in ${LLVM_TOOLS_BINARY_DIR}/arc-mlir-rust-test @ONLY) configure_file(arc.in ${LLVM_TOOLS_BINARY_DIR}/arc @ONLY) diff --git a/arc-mlir/src/tools/arc-mlir-rust-test.in b/arc-mlir/src/tools/arc-mlir-rust-test.in index e7e79f046..da9709c8f 100755 --- a/arc-mlir/src/tools/arc-mlir-rust-test.in +++ b/arc-mlir/src/tools/arc-mlir-rust-test.in @@ -3,10 +3,9 @@ set -e export PATH="@ARC_TOOLS_BIN_DIR@:$PATH" -export ARC_LANG_SOURCE_DIR="@ARC_LANG_SRC_DIR@" -export ARC_MLIR_SOURCE_DIR="@ARC_MLIR_SRC_DIR@" -export ARC_CODEGEN_SOURCE_DIR="@ARC_CODEGEN_SRC_DIR@" -export ARC_RUNTIME_SOURCE_DIR="@ARC_RUNTIME_SRC_DIR@" +export ARC_LANG_DIR="@ARC_LANG_DIR@" +export ARC_MLIR_DIR="@ARC_MLIR_DIR@" +export ARC_RUNTIME_DIR="@ARC_RUNTIME_DIR@" WORK_DIR="$1" TARGET_DIR="${WORK_DIR}.target" @@ -17,12 +16,12 @@ MAIN="${WORK_DIR}/src/main.rs" TEST_NAME=$(basename ${WORK_DIR}) TEST_NAME=${TEST_NAME//.mlir.tmp/} TEST_NAME=${TEST_NAME//.arc.tmp/} -export CRATE_NAME=${TEST_NAME//-/_} +export TEST_NAME CARGO_DEP_FRAGMENT="${MLIR_FILE%.mlir}.cargo-dep" echo "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" rustc --version -echo "Arc-lang sources are in: ${ARC_LANG_SOURCE_DIR}" +echo "Arc-lang sources are in: ${ARC_LANG_DIR}" echo "Test name: ${TEST_NAME}" echo "MLIR input: ${MLIR_FILE}" echo "Crate will be written to: ${WORK_DIR}" @@ -37,7 +36,13 @@ mkdir -p ${WORK_DIR}/src # Create the Cargo.toml envsubst > ${WORK_DIR}/Cargo.toml <<'EOF' -@CARGO_TOML_TEMPLATE@ +[package] +name = "${TEST_NAME}" +version = "0.0.0" +edition = "2021" + +[dependencies] +runtime = { path = "${ARC_RUNTIME_DIR}" } EOF # Allow a test to include extra dependencies in the Cargo.toml @@ -47,8 +52,7 @@ fi # Create dummy wrapper .rs-file which includes the generated test-case -echo '#![feature(unboxed_closures)]' > ${MAIN} -arc-mlir ${MLIR_FILE} "$@" -arc-to-rust -inline-rust >> ${MAIN} +arc-mlir ${MLIR_FILE} "$@" -arc-to-rust -inline-rust > ${MAIN} cat >> ${MAIN} < "$CRATE_TOML_FILE" <<'EOF' -@CARGO_TOML_TEMPLATE@ +envsubst > ${WORK_DIR}/Cargo.toml <<'EOF' +[package] +name = "{TEST_NAME}" +version = "0.0.0" +edition = "2021" + +[dependencies] +runtime = { path = "{RUNTIME_DIR}" } EOF [ "$ARC_DEBUG" ] && echo "$CRATE_TOML_FILE: " && cat "$CRATE_TOML_FILE" envsubst > "$CRATE_MAIN_FILE" <<'EOF' // Generated source for $INPUT_FILE -#![feature(unboxed_closures)] -#![feature(imported_main)] EOF case $INPUT_FILE in diff --git a/arc-python/README.md b/arc-python/README.md deleted file mode 100644 index e69de29bb..000000000 diff --git a/arc-python/arclib/__init__.py b/arc-python/arclib/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/arc-python/arclib/codegen.py b/arc-python/arclib/codegen.py deleted file mode 100644 index 8b8ffd1d1..000000000 --- a/arc-python/arclib/codegen.py +++ /dev/null @@ -1,94 +0,0 @@ -from arclib.utils import * -import cloudpickle - - -def write_args(operator, arc, rs): - extern_funs = [] - args = [] - for (id, arg) in enumerate(operator.args): - name = "{}_arg{}".format(operator.instance(), id) - path = "target/pickles/{}".format(name) - - # Pickle argument and write it to a file - with open(path, 'wb') as file: - cloudpickle.dump(arg.value, file) - - if arg.type.is_function(): - args.append('{}'.format(name)) - - inputs = [t.generate_arc() for t in arg.type.inputs] - output = arg.type.output.generate_arc() - - vars = ["x{}".format(i) for (i, _) in enumerate(inputs)] - params = ", ".join(["{}: {}".format(v, t) - for (v, t) in zip(vars, inputs)]) - - extern_funs.append(''' - | extern fun {name}({params}): {output}; - '''.format(name=name, params=params, output=output)) - - inputs = [t.generate_rs() for t in arg.type.inputs] - output = arg.type.output.generate_rs() - - vars = ["x{}".format(i) for (i, _) in enumerate(inputs)] - params = ", ".join(["{}: {}".format(v, t) - for (v, t) in zip(vars, inputs)]) - tuple = "({})".format("".join(["{},".format(var) for var in vars])) - - rs.write_trim(''' - | fn {name}({params}) -> {output} {{ - | Python::with_gil(|py| py.unpickle("{path}")?.call1({tuple})?.extract()).unwrap() - | }} - '''.format(name=name, path=path, params=params, output=output, tuple=tuple)) - - else: - # Non-function values are lifted into functions - # and then evaluated - args.append('{}()'.format(name)) - - output = arg.type.generate_arc() - - extern_funs.append(''' - | extern fun {name}(): {output}; - '''.format(name=name, output=output)) - - output = arg.type.generate_rs() - - rs.write_trim(''' - | fn {name}() -> {output} {{ - | Python::with_gil(|py| py.unpickle("{path}").extract()).unwrap() - | }} - '''.format(name=name, output=output, path=path)) - arc.write_sep(args) - return extern_funs - - -# Serialize all arguments of an operator -def generate(operators): - with Writer('target/main.arc') as arc, Writer('target/main.rs') as rs: - arc_extern_funs = [] - # Write implementations - for operator in sorted(operators, key=lambda x: x.name): - arc.write(operator.implementation()) - - # Write instances - operators = sorted(operators, key=lambda x: x.id) - arc.writeln() - arc.write('fun main()') - with Brace(arc): - for operator in operators: - arc.write(' val ') - if len(operator.ostreams) == 1: - arc.write('{}'.format(operator.ostreams[0])) - else: - with Paren(arc): - arc.write_sep(operator.ostreams) - arc.write(' = {}'.format(operator.name)) - with Paren(arc): - arc_extern_funs.extend(write_args(operator, arc, rs)) - with Paren(arc): - arc.write_sep(operator.istreams) - arc.writeln(';') - arc.writeln() - for arc_extern_fun in arc_extern_funs: - arc.write_trim(arc_extern_fun) diff --git a/arc-python/arclib/context.py b/arc-python/arclib/context.py deleted file mode 100644 index 87e28809e..000000000 --- a/arc-python/arclib/context.py +++ /dev/null @@ -1,10 +0,0 @@ -from arclib.codegen import generate - -class Context: - def __init__(self): - self.operators = [] - self.streams = [] - - def execute(self): - generate(self.operators) - diff --git a/arc-python/arclib/operator.py b/arc-python/arclib/operator.py deleted file mode 100644 index 44d3f4248..000000000 --- a/arc-python/arclib/operator.py +++ /dev/null @@ -1,192 +0,0 @@ -from arclib.stream import * -from arclib.types import * -from arclib.utils import * - - -class Operator: - - def instance(self): - return "{}{}".format(self.name, self.id) - - def register(self): - self.id = len(self.ctx.operators) - self.ctx.operators.append(self) - - def __call__(self, istream): - self.ctx = istream.ctx - self.register() - istream.consumers.append(self) - ostream = Stream(self) - self.istreams = [istream] - self.ostreams = [ostream] - return ostream - - def execute(self): - self.ctx.execute() - - def implementation(self): - return trim(self._implementation()) - - -class Map(Operator): - def __init__(self, f): - self.name = "Map" - self.args = [Arg(f, Fun([Any], Any))] - - def _implementation(self): - return """ - | task Map[A, B](f: fun(A):B): ~A -> ~B { - | loop { - | on event => emit f(event) - | } - | } - """ - - -class Filter(Operator): - def __init__(self, f): - self.name = "Filter" - self.args = [Arg(f, Fun([Any], Bool))] - - def _implementation(self): - return """ - | task Filter[A](f: fun(A):bool): ~A -> ~A { - | loop { - | on event => if f(event) { - | emit event - | } - | } - | } - """ - - -class FlatMap(Operator): - def __init__(self, f): - self.name = "FlatMap" - self.args = [Arg(f, Fun([Any], Vec(Any)))] - - def _implementation(self): - return """ - | task FlatMap[A,B](f: fun(A):[B]): ~A -> ~B { - | loop { - | on event => for event in f(event) { - | emit event - | } - | } - | } - """ - - -class Split(Operator): - def __init__(self, f): - self.name = "Split" - self.args = [Arg(f, Fun([Any], Bool))] - - def __call__(self, istream): - self.ctx = istream.ctx - self.register() - istream.consumers.append(self) - ostream0 = Stream(self) - ostream1 = Stream(self) - self.istreams = [istream] - self.ostreams = [ostream0, ostream1] - return ostream0, ostream1 - - def _implementation(self): - return """ - | task Split[T](f: fun(T):bool): ~T -> (A(~T), B(~T)) { - | loop { - | on event => if f(event) { - | emit A(event) - | } else { - | emit B(event) - | } - | } - | } - """ - - -class Union(Operator): - def __init__(self): - self.name = "Union" - self.args = [] - - def __call__(self, istream0, istream1): - self.ctx = istream0.ctx - self.register() - istream0.consumers.append(self) - istream1.consumers.append(self) - ostream = Stream(self) - self.istreams = [istream0, istream1] - self.ostreams = [ostream] - return ostream - - def _implementation(self): - return """ - | task Union[T](): (A(~T), B(~T)) -> ~T { - | loop { - | on A(event) => emit event, - | on B(event) => emit event, - | } - | } - """ - - -class Fold(Operator): - def __init__(self, f, init): - self.name = "KeyBy" - self.args = [Arg(f, Fun([Any], Any)), Arg(init, Any)] - - def _implementation(self): - return """ - | task Fold[A,T](f: fun(A,T):A, id: T): ~A -> ~T { - | var agg = id; - | loop { - | on event => { - | agg = f(agg, event); - | emit agg - | } - | } - | } - """ - - -class KeyBy(Operator): - def __init__(self, f): - self.name = "KeyBy" - self.args = [Arg(f, Fun([Any], Any))] - - def _implementation(self): - return """ - | task KeyBy[T,K](f: fun(T):K): ~{v:T} -> ~{k:K,v:T} { - | loop { - | on event => emit f(event), - | } - | } - """ - - -class IteratorSource(Operator): - def __init__(self, iter): - self.name = "IteratorSource" - self.args = [Arg(iter, Iter(Any))] - - def __call__(self, ctx): - self.ctx = ctx - self.register() - ostream = Stream(self) - self.istreams = [] - self.ostreams = [ostream] - return ostream - - def _implementation(self): - return """ - | task IteratorSource[T](iter: Iterator[T]): () -> ~{k:T,v:T} { - | loop { - | match iter.next() { - | Some(event) => emit event, - | None => break - | } - | } - | } - """ diff --git a/arc-python/arclib/pipeline.py b/arc-python/arclib/pipeline.py deleted file mode 100644 index 781f2717e..000000000 --- a/arc-python/arclib/pipeline.py +++ /dev/null @@ -1,13 +0,0 @@ -from arclib.operator import * -from arclib.stream import * -from arclib.context import * - -class Pipeline: - def __init__(self): - self.ctx = Context() - - def iterator_source(self, iter): - return IteratorSource(iter)(self.ctx) - - def execute(self): - self.ctx.execute() diff --git a/arc-python/arclib/stream.py b/arc-python/arclib/stream.py deleted file mode 100644 index 4ad32f313..000000000 --- a/arc-python/arclib/stream.py +++ /dev/null @@ -1,41 +0,0 @@ -class Stream: - - def __init__(self, producer): - self.ctx = producer.ctx - self.producer = producer - self.consumers = [] - self.register() - - def register(self): - self.ctx.streams.append(self) - self.id = len(self.ctx.streams) - - def __str__(self): - return "s{}".format(self.id) - - def map(self, f): - from arclib.operator import Map - return Map(f)(self) - - def filter(self, f): - from arclib.operator import Filter - return Filter(f)(self) - - def flat_map(self, f): - from arclib.operator import FlatMap - return FlatMap(f)(self) - - def split(self, f): - from arclib.operator import Split - return Split(f)(self) - - def merge(self, other): - from arclib.operator import Union - return Union()(self, other) - - def key_by(self, f): - from arclib.operator import KeyBy - return KeyBy(f)(self) - - def execute(self): - self.ctx.execute() diff --git a/arc-python/arclib/types.py b/arc-python/arclib/types.py deleted file mode 100644 index 9fb01382e..000000000 --- a/arc-python/arclib/types.py +++ /dev/null @@ -1,88 +0,0 @@ -from arclib.codegen import * - - -# Arguments of an operator -class Arg(): - def __init__(self, value, type): - self.value = value - self.type = type - - -class Type(): - def is_function(self): return False - - def generate_arc(self): - sb = StringBuilder() - self.write_arc(sb) - return str(sb) - - def generate_rs(self): - sb = StringBuilder() - self.write_rs(sb) - return str(sb) - - -class Nominal(Type): - def __init__(self, name): - self.name = name - - def write_arc(self, w): - w.write(self.name) - - def write_rs(self, w): - w.write(self.name) - - -class Fun(Type): - def __init__(self, inputs, output): - self.inputs = inputs - self.output = output - - def is_function(self): return True - - def write_arc(self, w): - w.write("fun") - with Paren(w): - if len(self.inputs) > 0: - for elem in self.inputs[0:-1]: - elem.write_arc(w) - self.write(', ') - self.inputs[-1].write_arc(w) - w.write(":") - self.output.write_arc(w) - - def write_rs(self, w): - pass - - -class Vec(Type): - def __init__(self, elem_type): - self.elem_type = elem_type - - def write_arc(self, w): - with Brack(w): - self.elem_type.write_arc(w) - - def write_rs(self, w): - w.write("Vec") - with Angle(w): - self.elem_type.write_rs(w) - - -class Iter(Type): - def __init__(self, elem_type): - self.elem_type = elem_type - - def write_arc(self, w): - w.write("Iter") - with Brack(w): - self.elem_type.write_arc(w) - - def write_rs(self, w): - w.write("Iterator") - with Angle(w): - self.elem_type.write_rs(w) - - -Any = Nominal("Any") -Bool = Nominal("bool") diff --git a/arc-python/arclib/utils.py b/arc-python/arclib/utils.py deleted file mode 100644 index 482cd6dfd..000000000 --- a/arc-python/arclib/utils.py +++ /dev/null @@ -1,80 +0,0 @@ -import re - - -def trim(s): - return re.sub(r' +\| ', '', s) - - -class Writer(): - def __init__(self, path): - self.file = open(path, 'w') - - def __enter__(self): - return self - - def __exit__(self, type, value, traceback): - self.file.close() - - def write(self, s='\n'): - self.file.write(s) - - def write_trim(self, s): - self.write(trim(s)) - - def writeln(self, s=''): - self.write(s) - self.write('\n') - - def write_sep(self, list): - if len(list) > 0: - for elem in list[0:-1]: - self.write(str(elem)) - self.write(', ') - self.write(str(list[-1])) - - -class StringBuilder(Writer): - def __init__(self): - self.parts = [] - - def __str__(self): - return ''.join(self.parts) - - def write(self, s='\n'): - self.parts.append(s) - - -class Delim(): - def __enter__(self): - self.writer.write(self.l) - - def __exit__(self, type, value, traceback): - self.writer.write(self.r) - - -class Brace(Delim): - def __init__(self, writer): - self.l = ' {\n' - self.r = '}' - self.writer = writer - - -class Paren(Delim): - def __init__(self, writer): - self.l = '(' - self.r = ')' - self.writer = writer - - -class Angle(Delim): - def __init__(self, writer): - self.l = '<' - self.r = '>' - self.writer = writer - - -class Brack(Delim): - def __init__(self, writer): - self.l = '[' - self.r = ']' - self.writer = writer diff --git a/arc-python/setup.py b/arc-python/setup.py deleted file mode 100644 index 800b6ce79..000000000 --- a/arc-python/setup.py +++ /dev/null @@ -1,14 +0,0 @@ -from setuptools import find_packages, setup - -setup( - name='arclib', - packages=find_packages(include=['arclib', 'cloudpickle']), - version='0.1.0', - description='Library for data streaming', - author='Klas Segeljakt, Frej Drejhammar', - license='MIT', - install_requires=['cloudpickle'], - setup_requires=['pytest-runner'], - tests_require=['pytest==4.4.1'], - test_suite='tests', -) diff --git a/arc-python/tests/__init__.py b/arc-python/tests/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/arc-python/tests/test_stream.py b/arc-python/tests/test_stream.py deleted file mode 100644 index d5d14b50f..000000000 --- a/arc-python/tests/test_stream.py +++ /dev/null @@ -1,20 +0,0 @@ -from arclib.stream import * -from arclib.operator import * -from arclib.pipeline import * - - -def test_pipeline1(): - data = [1, 2, 3, 4] - p = Pipeline() \ - .iterator_source(data) \ - .map(lambda x: x + 1) \ - .filter(lambda x: x % 2 == 0) \ - .execute() - - -def test_pipeline2(): - data = [1, 2, 3, 4] - s0 = Pipeline().iterator_source(data) - s1 = Map(lambda x: x + 1)(s0) - s2 = Filter(lambda x: x % 2 == 0)(s1) - s2.execute() diff --git a/arc-report/.gitignore b/arc-report/.gitignore deleted file mode 100644 index 2f7896d1d..000000000 --- a/arc-report/.gitignore +++ /dev/null @@ -1 +0,0 @@ -target/ diff --git a/arc-report/Makefile b/arc-report/Makefile deleted file mode 100644 index bfaadcc4e..000000000 --- a/arc-report/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -all: - latexmk main.tex -xelatex -outdir=target -silent -bibtex -pdf > /dev/null diff --git a/arc-report/bibliography/references.bib b/arc-report/bibliography/references.bib deleted file mode 100644 index 9ce4d5f7c..000000000 --- a/arc-report/bibliography/references.bib +++ /dev/null @@ -1,29 +0,0 @@ -@misc{CDA-Midterm, - title={Continuous Deep Analytics - Midterm report}, - url={https://cda-group.github.io/papers/CDA-Midterm-Final.pdf}, - author={Haridi, Seif}, - year={2020} -} - -@misc{Keras, - title={Keras: the Python deep learning API}, - url={https://keras.io/}, - journal={Keras.io}, - author={Team, Keras}, - year={2021} -} - -@misc{Beam, - title={Apache Beam: An advanced unified programming model}, - author={Beam, Apache}, - year={2017} -} - -@inproceedings{Cypher, - title={Cypher: An evolving query language for property graphs}, - author={Francis, Nadime and Green, Alastair and Guagliardo, Paolo and Libkin, Leonid and Lindaaker, Tobias and Marsault, Victor and Plantikow, Stefan and Rydberg, Mats and Selmer, Petra and Taylor, Andr{\'e}s}, - booktitle={Proceedings of the 2018 International Conference on Management of Data}, - pages={1433--1445}, - year={2018} -} - diff --git a/arc-report/main.tex b/arc-report/main.tex deleted file mode 100644 index cacebf791..000000000 --- a/arc-report/main.tex +++ /dev/null @@ -1,100 +0,0 @@ -\documentclass{article} - -% Document -\usepackage{subfiles} % Allow splitting project into files - -% Text -\usepackage{inputenc} % Accept different input encodings -\usepackage[english]{babel} % Use english language - -% Figures -\usepackage{graphicx} % Include figures with \includegraphics -\usepackage{caption} % Captions for figures -\usepackage{framed} % Frames for figures - -% Tables -\usepackage{csvsimple} % Convert CSV files into LaTeX tables -\usepackage{longtable} % Tables that span multiple pages -\usepackage{booktabs} % Prettier tables -\usepackage{supertabular} % Tables that span multiple pages -\usepackage{multirow} % Nested rows in table - -% Notes -\usepackage{todonotes} % Add todo notes to text -\usepackage{marginnote} % Add todo notes to margin - -% References -\usepackage{natbib} % Flexible bibliography support - -% Spacing -\usepackage{titlesec} % Select alternative section titles - -% Lists -\usepackage{enumitem} % Enumerated lists - -% Fonts -\usepackage[T1]{fontenc} % Font encodings - -% Code -\usepackage{listings} % Code listings -\lstset{ - rangebeginprefix=\#\ ANCHOR:\ , - rangeendprefix=\#\ ANCHOR_END:\ , - includerangemarker=false -} - -\parskip 0pt % No vertical space between paragraphs -\setlist[itemize]{noitemsep, topsep=10pt} % No vertical space between list items - -% Comments -\newcounter{KlasNOC} -\newcounter{FrejNOC} -\newcounter{ParisNOC} - -\stepcounter{KlasNOC} -\stepcounter{FrejNOC} -\stepcounter{ParisNOC} - -\newcommand{\klas}[1]{\textcolor{aquamarine}{\small\bf[Klas\#\arabic{KlasNOC}\stepcounter{KlasNOC}:#1]}} -\newcommand{\frej}[1]{\textcolor{salmon}{\small\bf[Frej\#\arabic{FrejNOC}\stepcounter{FrejNOC}:#1]}} -\newcommand{\paris}[1]{\textcolor{dandelion}{\small\bf[Paris\#\arabic{ParisNOC}\stepcounter{ParisNOC}:#1]}} - -% Title -\title{Arc-Lang: Research Report} - -% Authors -\author{ - Klas Segeljakt\\\texttt{klasseg@kth.se} - \and - Frej Drejhammar\\\texttt{frej.drejhammar@ri.se} - \and - Paris Carbone\\\texttt{parisc@kth.se} - \and - Seif Haridi\\\texttt{haridi@kth.se} -} - -% Body -\begin{document} - -\maketitle - -\subfile{sections/abstract} - -\tableofcontents - -\subfile{sections/introduction} - -\subfile{sections/arc-lang} - -\subfile{sections/arc-mlir} - -\subfile{sections/arc-runtime} - -\subfile{sections/related-work} - -\subfile{sections/conclusion} - -\bibliographystyle{plain} -\bibliography{bibliography/references} - -\end{document} diff --git a/arc-report/sections/abstract.tex b/arc-report/sections/abstract.tex deleted file mode 100644 index 3335d6c41..000000000 --- a/arc-report/sections/abstract.tex +++ /dev/null @@ -1,14 +0,0 @@ -\begin{abstract} - -% What to include in the abstract: -% * The problem description of the paper -% - Data analysis is becoming more complicated from a programming standpoint. -% - Existing systems are not flexible enough to support new requirements. -% * The main idea and contributions of the paper -% - The main idea is to use a programming language to solve the problem. -% * The main results of the paper -% * The main conclusions of the paper - -Data analytics pipelines are becoming increasingly more complicated due to the growing number of requirements imposed by data science. Not only must data be processed and analyzed scalably with respect to its volume and velocity, but also intricately by involving many different data types. Arc-Lang is a programming language for data analytics that supports data parallel operations over multiple data types including data streams and data frames. In this paper we give a formal definition of Arc-Lang along with examples of its applications. We describe how Arc-Lang programs are translated into Rust using the MLIR compilation framework and then deployed on a distributed system. We compare Arc-Lang to different high-level DSLs for data intensive computing based on their problem domains, programming models, and implementations. Finally, we discuss future trends and open research questions in the area of DSLs for data intensive computing. - -\end{abstract} diff --git a/arc-report/sections/arc-lang.tex b/arc-report/sections/arc-lang.tex deleted file mode 100644 index 9fbc04191..000000000 --- a/arc-report/sections/arc-lang.tex +++ /dev/null @@ -1,36 +0,0 @@ -\section{Arc-Lang} - -% Introduction to what Arc-Lang is -Arc-Lang is a language for data analytics. - -\subsection{Tour of Arc-Lang} - -% Highlight each of Arc-Lang's novel features -% * Streams -% * Frames -% * Tensors -% * Tasks -This section highlights the main features of the Arc-Lang. - -% \lstinputlisting[linerange=example-example]{../arc-lang/examples/assign.arc} - -\subsection{Features} - -% * Functional Features (exposed to the user) -% - Values, types, and constructors and destructors -% - Statically vs Dynamically sized types -% - Type constraints -% - Pass by value -% - Difference between "Big Data" and "Small Data" -% - Controlflow -% - Dataflow -% - Declarative programming -% - Imperative programming -% - Concurrency -% - Workflow -% - Polymorphism -% * Non-Functional Features (not exposed to the user) -% - Parallelism -% * Go into the details of each feature. -% * Write about possible alternative designs. -% * Give examples for each feature diff --git a/arc-report/sections/arc-mlir.tex b/arc-report/sections/arc-mlir.tex deleted file mode 100644 index 2a44f7881..000000000 --- a/arc-report/sections/arc-mlir.tex +++ /dev/null @@ -1,82 +0,0 @@ -\section{Arc-MLIR} - -MLIR is used in the Arc-Lang compiler back-end. It is used for both standard compiler optimizations and transforms but also as convenient framework in which to express Arc-Lang-specific transforms. The MLIR/LLVM infrastructure for testing is also used to run Arc-Lang regression and unit tests. - -The purpose of the Arc-Lang compiler back-end is to do domain specific transforms and optimizations which improves the efficiency of the program when running on Arcon. Doing transforms such as operator fusion and operator reordering requires a number of standard compiler techniques such as liveness analysis, constant propagation and common sub-expression elimination. By using the MLIR infrastructure, which implements many of these standard algorithms, we can concentrate on what is specific to Arc-Lang. By using MLIR we also have a robust and extensible intermediary representation with tools for parsing, printing and verifying structure invariants of the processed program representation. - -TODO: MLIR blurb and flesh out the bullets. - -\begin{itemize} - \item [MLIR](https://mlir.llvm.org/) is a Multi-Level Intermediate Representation - \item Extensibility - \item Dialects - \item Types - \item Standard transforms and optimizations on custom dialects - \item Tooling infrastructure: command line parsing, debug flags, pass ordering, error reporting. - \item Testing support: Powerful DAG-matching tool to verify structure and syntax of output; Error report verification integration with the error reporting in the tooling infrastructure -\end{itemize} - -\subsection{Structure} - -The Arc-Lang front-end processes the Arc-Lang source code and produces a representation of the program in the arc-Lang MLIR dialect for further processing. The parts of the Arc-Lang compiler pipeline which uses MLIR is implemented in a tool called `arc-mlir`. The tool is implemented using the MLIR tooling framework and allows the user to, on the command line, select which optimizations and transforms to run. Input to the `arc-mlir` tool is MLIR-IR in the Arc-Lang dialect and output is in either: the Arc-Lang IR dialect, the Rust dialect or textual Rust source code. - -\subsection{The Arc MLIR Dialect} - -The Arc MLIR dialect is an MLIR dialect in which it is possible to represent all Arc-Lang language constructs in a way that allows the generation of a syntactically and semantically valid Rust program. The dialect consists of operations from the `standard`, `scf`, and `arith` dialects provided by upstream MLIR, but also a number of custom operations and types specific to Arc-Lang. - -\subsubsection{Arc Dialect Types} - -The \texttt{arc} dialect includes a number of types which are not provided by one of the upstream dialects, these include: -\begin{itemize} - \item \texttt{arc.adt} An opaque type which wraps a Rust type. It is preserved by all IR transformations. When Rust source code is output, values of this type will be declared as type \texttt{string}. - \item \texttt{arc.enum} A Rust-style enum. A discriminated union where each named variant maps to a type. Structural equality applies to enum types. - \item \texttt{arc.struct} An aggregate type which aggregates a set of named and typed fields. Structural equality applies to struct types. - \item \texttt{arc.stream} A type which corresponds to event streams in Arc-Lang. The stream is instantiated with the type of the event it carries. -\end{itemize} - -\subsubsection{Custom Arc Dialect Operations} - -In the \texttt{arith} dialect, MLIR provides arithmetic operations on integer and floating point values. MLIR provides three integer types: one type which only specifies the number of bits \texttt{i}, an explicitly signed integer type \texttt{si}, and an explicitly unsigned integer type. The arithmetic operations on integers in \texttt{arith} are only specified for the \texttt{i} integer type. In that, \texttt{arith} follows the model chosen by LLVM in that the signed/unsigned semantics for an operation is selected by the operation, for example \texttt{divi}/\texttt{divui} for signed/unsigned integer division. As both our input and output languages (Arc-Lang and Rust respectively) derive the signed/unsigned semantics from the type, we have chosen to use the explicitly signed/unsigned integer types. The alternative would require the component responsible for Rust output to derive the type of integer variables from the operations applied to them, something that is not always possible if no operations with different semantics are applied to them. Therefore the \texttt{arc} dialect defines its own polymorphic arithmetic operations operating on signed/unsigned integers. - -TODO: operations - -TODO: event handler - -TODO: Structure of the Arc-Lang program: Each block produces a result, SSA-ish. No branches between blocks. - -TODO: structured control flow - -\subsubsection{Rust MLIR Dialect} - -TODO: Operations which capture the structure of Rust. - -TODO: Types are the rust type as a string. - -TODO: Name mangling to produce Rust type names for the aggregate types. - -TODO: Not intended to be the subject of any transforms or optimizations, that is done by rustc. - -\subsection{Standard Transforms and Optimizations} - -TODO: canonicalization; CSE; constant propagation and folding; constant lifting. - -\subsection{Custom Transforms} - -TODO: From SCF to BBs: In order to use additional optimizations and -transforms. - -TODO: From BBs to SCF, needed for Rust (no goto). - -TODO: FSM-transform, for selective and nested receive in event handlers. - -\subsection{Rust Output} - -TODO: Abstracting away reference counting, borrows etc. Handled by macros in the runtime system libraries. - -TODO: No formatting, rustfmt handles that. - -\subsection{Testing} - -TODO: Use Lit for unit and regression tests - -TODO: Use built-in support in tooling to check that errors occur where we expect them. diff --git a/arc-report/sections/arc-runtime.tex b/arc-report/sections/arc-runtime.tex deleted file mode 100644 index acd711239..000000000 --- a/arc-report/sections/arc-runtime.tex +++ /dev/null @@ -1 +0,0 @@ -\section{Arc-Runtime} diff --git a/arc-report/sections/conclusion.tex b/arc-report/sections/conclusion.tex deleted file mode 100644 index 5e874985b..000000000 --- a/arc-report/sections/conclusion.tex +++ /dev/null @@ -1 +0,0 @@ -\section{Conclusion} diff --git a/arc-report/sections/introduction.tex b/arc-report/sections/introduction.tex deleted file mode 100644 index 8e95fc2fc..000000000 --- a/arc-report/sections/introduction.tex +++ /dev/null @@ -1,87 +0,0 @@ -\section{Introduction} - -% What is the problem? -% 1) Data is being generated at an accelerating rate: -% - It is not feasible to store all data in a database. -% 2) Data is becoming more accessible to the public domain. -% - This has caused an emergence of applications and new requirements. -% - We are seeing applications that use different types of data. -% - Current languages are too constrained to alone support these requirements. -% 3) Data is being generated by more devices, some of which are at the edge. -% - It is not feasible to run all data processing in a cloud environment. -% -% Requirements based on the problems -% - Systems must be able to ... -% 1) Scale against the velocity with which data is generated -% - Process data in a streaming mode "as it is being generated" -% 2) Scale against increasing data volumes -% - Process data in a batch mode "after all data has been generated" -% 3) Scale against the complexity of new requirements in the application -% - Process data of different types in a concise way -% 4) Scale against the heterogeneity of the execution environments -% - Process data from different types of devices -% - Process data at different types of devices -% - Programs must be able to run on any type of device -% - Programs should be .. -% 1) Easy to write (few lines of code) -% 2) Easy to run (deployment) -% 3) Easy to scale - -The amount of data generated by the world is increasing at an alarming rate. Data is also becoming more accessible to the public domain. This has caused an emergence of applications in data science that must run in different environments that include consumer-grade hardware, large scale cloud centers, and resource-constrained edge devices. Streaming sensor data, graph social networks, relational tables of product information, and tensors of climate science image data are few examples of datasets that can scale to the point where they can no longer be managed by a single machine. As a result, distributed shared-nothing data-parallel systems have become the norm for data intensive computing. These systems are able to scale against increasing problem sizes by partitioning data and parallelising computation across machines. Distributed systems programming, in its barest form, is however known to be notoriously difficult. - -Without proper abstraction, application developers must manage problems such as fault tolerance and coordination while considering tradeoffs in security and efficiency. To this end, distributed systems leverage high-level DSLs in the form of query languages, frameworks, and libraries, which are more friendly towards end-users. DSLs allow developers to focus on domain-specific problems, such as the development of algorithms, and to disregard engineering-related issues. Not only do DSLs lend themselves to improved ease of use, but also optimisation potential. DSLs in the form of intermediate languages have been adopted by multiple systems both as a solution to enable reuse by breaking the dependence between the program specification and its execution, and to enable target-independent optimisation. - -Not only is data becoming more widespread, but also more complex. DSLs must be able to express algorithms over many different types of data. Examples of such DSLs include Keras\cite{Keras} for machine learning and serving, SQL for data management, Apache Beam\cite{Beam} for stream processing, and Cypher\cite{Cypher} for graph analytics. While these DSLs are highly optimised towards specific applications, users are met with problems when trying to combine fragments of different DSLs to solve more advanced problems. First, users must pay the price of serialisation and data movement costs between systems due to the lack of a common data format, and hardware resource contention due to the lack of a common scheduler. Second, users must manage the impedance mismatch in guarantees between each system such as consistency, availability, and security. Third, users must learn how to program with tools of different systems, which may have widely different syntax and semantics. - -We believe there is a need for a common DSL, IR, and execution environment for respectively expressing, optimising, and executing computations over different high-level data types. The functional requirements that this DSL must support are as follows: - -\begin{itemize} - \item \textbf{Big Data Abstractions}: The DSL should be able to express algorithms over massive and rapidly growing collections of data. In particular, streams, tensors, frames, and graphs. - \item \textbf{User-Defined Behavior}: The DSL should be able to express user-defined behavior. For example, user-defined functions and datatypes. -\end{itemize} - -The non-functional requirements that the runtime system must satisfy are as follows: - -\begin{itemize} - \item \textbf{Fault Tolerance}: The system should be able to sustain machine failure with efficiency. That is, without restarting the whole computation. -\end{itemize} - -% The need for real-time analytics to uncover the deeper meaning of live data has become more prominent in recent years. In both academia and industry, large scale machine learning systems are a prime focus of research. Such systems have been optimised to train opaque machine learning models of many parameters against large amounts of input data. As an example, GPT-3 by OpenAI is the hallmark of general pre-trained models for language prediction. GPT-3 holds a capacity of 175 billion parameters and was trained on a dataset which effectively amounts to the entire Internet. - -% While the models and the supporting technologies behind them have been fine-tuned for accuracy and performance, less effort has been dedicated to their integration with \textit{real-time analytics}. For this reason, the leap from prototyping a machine learning model to deploying it as an online service for mission-critical decision making requires both major engineering effort and domain expertise. Examples of such services include anomaly detection, adaptive recommender systems, time series forecasting, and real-time monitoring. More generally, the requirements these services specifically pose are that they must operate continuously with tolerance to failure, adaptively with respect to concept drift and resource changes, and flexibly by incorporating business logic. - -% To this end, data analysts resort to system-frameworks for data intensive computing which provide a means for writing applications oriented around specific abstract data types and operations. By being abstract, analysts are able to ask questions about data to a system without needing to know the how the system arrives at its conclusions. Modern representative examples of such frameworks include: - -% \begin{itemize} -% \item \textbf{TensorFlow} \cite{TensorFlow}, a framework for portable machine learning oriented around tensors and linear algebra. -% \item \textbf{Apache Flink} \cite{Flink}, a framework for low-latency stream processing oriented around data streams and stateful event-based logic. -% \item \textbf{Apache Spark} \cite{Spark}, a framework for high-throughput batch processing oriented around data frames and relational algebra. -% \item \textbf{Apache Giraph} \cite{Giraph}, a framework for large scale graph processing oriented around vertex-centric computation. -% \item \textbf{Ray RLib} \cite{Ray}, a framework for distributed reinforcement learning oriented around agents, environments, and policies. -% \end{itemize} -% -% A typical end-to-end deep analytics pipeline combines traditional data processing stages with machine learning and therefore requires a system and framework that supports relational algebra, graph processing, and linear algebra components. There is no doubt a combination of the aforementioned frameworks could be used for such analytics. However, as of yet there exists no framework and system that bridges each of the programming models and workloads while also supporting the real-time aspect of live data. This problem forces developers to deal with two types of complexity. First, they have to learn how to use and integrate multiple frameworks which in the worst case are written in different programming languages. Second, they have to consider low-level details that concern how systems interact, such as state management and data transfer, to achieve good performance. -% -% In the CDA group, we are addressing this problem by engineering a whole new infrastructure for Continuous Deep Analytics. This infrastructure includes 1) a middleware for building distributed systems\footnote{Website: https://github.com/kompics/kompact}, 2) a distributed system built on top of the middleware for scalable stream and batch processing \citeP{Arcon} \footnote{Website: https://github.com/cda-group/arcon}, and 3) a domain-specific language for data science integrated to the system for programming with multiple abstract data types \citeP{Arc} \footnote{Website: https://github.com/cda-group/arc}. CDA is an interdisciplinary project funded by SSF, driven by a world-leading team of researchers at RISE and KTH, and destined to finish in the summer of 2023. The project in addition includes research on the development of novel online machine learning algorithms to be deployed on the CDA infrastructure. Project goals and preliminary results can be read more about in our midterm report \cite{CDA-Midterm}. - -% * What is the problem? -% * What is the vision? (ideal solution) -% * What is our approach? (The CDA system: Applications, Arc-Lang, Arc-MLIR, Arcon, Kompact) -% * What are the challenges (requirements)? - -% * Research Questions and Hypotheses -% * Background + Related Work (Existing solutions) -% * Problem and Motivation (Why Arc-Lang?) -% * Applications (What can Arc-Lang do / not do?) -% * Design principles - -% * Unique features (What makes Arc-Lang special?) -% * Common features (What does Arc-Lang borrow from other solutions?) -% * Example programs (How can you use the features to solve problems?) - -% Describe the language: Syntax and semantics - -% Describe the runtime -% * Channels -% * Tasks -% * Data structures diff --git a/arc-report/sections/related-work.tex b/arc-report/sections/related-work.tex deleted file mode 100644 index eb1d03d01..000000000 --- a/arc-report/sections/related-work.tex +++ /dev/null @@ -1 +0,0 @@ -\section{Related Work} diff --git a/arc-runtime/.gitignore b/arc-runtime/.gitignore deleted file mode 100644 index eb5a316cb..000000000 --- a/arc-runtime/.gitignore +++ /dev/null @@ -1 +0,0 @@ -target diff --git a/arc-runtime/Cargo.lock b/arc-runtime/Cargo.lock deleted file mode 100644 index b28d924c5..000000000 --- a/arc-runtime/Cargo.lock +++ /dev/null @@ -1,3370 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "addr2line" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "ahash" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" -dependencies = [ - "getrandom 0.2.8", - "once_cell", - "version_check 0.9.4", -] - -[[package]] -name = "aho-corasick" -version = "0.7.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" -dependencies = [ - "memchr", -] - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "anyhow" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800" - -[[package]] -name = "arc-runtime" -version = "0.0.0" -dependencies = [ - "arrow2 0.9.2", - "comet-extra", - "derive_more", - "dyn-clone", - "futures", - "hexf", - "kompact", - "macros", - "omnipaxos", - "polars", - "rand 0.8.5", - "replace_with", - "serde", - "serde_derive", - "slog", - "time 0.3.17", - "tokio", - "uuid 0.8.2", -] - -[[package]] -name = "arc-swap" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dabe5a181f83789739c194cbe5a897dde195078fac08568d09221fd6137a7ba8" - -[[package]] -name = "arr_macro" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a105bfda48707cf19220129e78fca01e9639433ffaef4163546ed8fb04120a5" -dependencies = [ - "arr_macro_impl", - "proc-macro-hack", -] - -[[package]] -name = "arr_macro_impl" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0609c78bd572f4edc74310dfb63a01f5609d53fa8b4dd7c4d98aef3b3e8d72d1" -dependencies = [ - "proc-macro-hack", - "quote", - "syn", -] - -[[package]] -name = "arrayref" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" - -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - -[[package]] -name = "arrow2" -version = "0.9.1" -source = "git+https://github.com/jorgecarleitao/arrow2?rev=2c4dbb21daa4f258fd707a3f3c2cbe5abb374f6b#2c4dbb21daa4f258fd707a3f3c2cbe5abb374f6b" -dependencies = [ - "bytemuck", - "chrono", - "csv", - "either", - "hash_hasher", - "lexical-core", - "multiversion", - "num-traits", - "simdutf8", - "streaming-iterator", - "strength_reduce", -] - -[[package]] -name = "arrow2" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "185b18ba35287d4e6989e451ab3d184f4699befaa05cf95b0da74152b0c5c24a" -dependencies = [ - "bytemuck", - "chrono", - "hash_hasher", - "num-traits", - "simdutf8", -] - -[[package]] -name = "as_num" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62eaa19b325e1b3dc2f7b9b6de544dd536619e3dcf986fc391b2c643f10d68c0" - -[[package]] -name = "async-channel" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833" -dependencies = [ - "concurrent-queue", - "event-listener", - "futures-core", -] - -[[package]] -name = "async-executor" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17adb73da160dfb475c183343c8cccd80721ea5a605d3eb57125f0a7b7a92d0b" -dependencies = [ - "async-lock", - "async-task", - "concurrent-queue", - "fastrand", - "futures-lite", - "slab", -] - -[[package]] -name = "async-global-executor" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776" -dependencies = [ - "async-channel", - "async-executor", - "async-io", - "async-lock", - "blocking", - "futures-lite", - "once_cell", -] - -[[package]] -name = "async-io" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c374dda1ed3e7d8f0d9ba58715f924862c63eae6849c92d3a18e7fbde9e2794" -dependencies = [ - "async-lock", - "autocfg", - "concurrent-queue", - "futures-lite", - "libc", - "log", - "parking", - "polling", - "slab", - "socket2", - "waker-fn", - "windows-sys 0.42.0", -] - -[[package]] -name = "async-lock" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8101efe8695a6c17e02911402145357e718ac92d3ff88ae8419e84b1707b685" -dependencies = [ - "event-listener", - "futures-lite", -] - -[[package]] -name = "async-std" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" -dependencies = [ - "async-channel", - "async-global-executor", - "async-io", - "async-lock", - "crossbeam-utils 0.8.14", - "futures-channel", - "futures-core", - "futures-io", - "futures-lite", - "gloo-timers", - "kv-log-macro", - "log", - "memchr", - "once_cell", - "pin-project-lite", - "pin-utils", - "slab", - "wasm-bindgen-futures", -] - -[[package]] -name = "async-task" -version = "4.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" - -[[package]] -name = "atomic" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b88d82667eca772c4aa12f0f1348b3ae643424c8876448f3f7bd5787032e234c" -dependencies = [ - "autocfg", -] - -[[package]] -name = "atomic-waker" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "debc29dde2e69f9e47506b525f639ed42300fc014a3e007832592448fa8e4599" - -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "backtrace" -version = "0.3.67" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" -dependencies = [ - "addr2line", - "cc", - "cfg-if 1.0.0", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", -] - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "base64" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" - -[[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - -[[package]] -name = "bitfields" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35a0dd3fdef66457be053e25548d0f9b75f389547c897739daa13d39db01bf0a" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitmaps" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" -dependencies = [ - "typenum", -] - -[[package]] -name = "blake2b_simd" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" -dependencies = [ - "arrayref", - "arrayvec", - "constant_time_eq", -] - -[[package]] -name = "blocking" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c67b173a56acffd6d2326fb7ab938ba0b00a71480e14902b2591c87bc5741e8" -dependencies = [ - "async-channel", - "async-lock", - "async-task", - "atomic-waker", - "fastrand", - "futures-lite", -] - -[[package]] -name = "bstr" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" -dependencies = [ - "lazy_static", - "memchr", - "regex-automata", - "serde", -] - -[[package]] -name = "bumpalo" -version = "3.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" - -[[package]] -name = "bytemuck" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c041d3eab048880cb0b86b256447da3f18859a163c3b8d8893f4e6368abe6393" -dependencies = [ - "bytemuck_derive", -] - -[[package]] -name = "bytemuck_derive" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aca418a974d83d40a0c1f0c5cba6ff4bc28d8df099109ca459a2118d40b6322" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "byteorder" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" - -[[package]] -name = "bytes" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" -dependencies = [ - "serde", -] - -[[package]] -name = "cc" -version = "1.0.79" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" - -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chrono" -version = "0.4.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" -dependencies = [ - "iana-time-zone", - "js-sys", - "num-integer", - "num-traits", - "time 0.1.45", - "wasm-bindgen", - "winapi", -] - -[[package]] -name = "codespan-reporting" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" -dependencies = [ - "termcolor", - "unicode-width", -] - -[[package]] -name = "comet" -version = "0.1.0" -source = "git+https://github.com/Starlight-JS/comet?rev=c2f96f8#c2f96f899cd43a2507b8298f2408a5039b65559f" -dependencies = [ - "ahash", - "atomic", - "bit-vec", - "crossbeam", - "flume", - "hashbrown 0.11.2", - "im", - "libc", - "memx", - "mopa", - "parking_lot 0.11.2", - "rand 0.8.5", - "rosalloc", - "scoped_threadpool", - "threadfin", - "winapi", -] - -[[package]] -name = "comet-extra" -version = "0.1.0" -source = "git+https://github.com/Starlight-JS/comet?rev=c2f96f8#c2f96f899cd43a2507b8298f2408a5039b65559f" -dependencies = [ - "ahash", - "cfg-if 1.0.0", - "comet", -] - -[[package]] -name = "concurrent-queue" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c278839b831783b70278b14df4d45e1beb1aad306c07bb796637de9a0e323e8e" -dependencies = [ - "crossbeam-utils 0.8.14", -] - -[[package]] -name = "constant_time_eq" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" - -[[package]] -name = "core-foundation" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" - -[[package]] -name = "cpufeatures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" -dependencies = [ - "libc", -] - -[[package]] -name = "crossbeam" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c" -dependencies = [ - "cfg-if 1.0.0", - "crossbeam-channel 0.5.6", - "crossbeam-deque 0.8.2", - "crossbeam-epoch 0.9.13", - "crossbeam-queue 0.3.8", - "crossbeam-utils 0.8.14", -] - -[[package]] -name = "crossbeam-channel" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87" -dependencies = [ - "crossbeam-utils 0.7.2", - "maybe-uninit", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" -dependencies = [ - "cfg-if 1.0.0", - "crossbeam-utils 0.8.14", -] - -[[package]] -name = "crossbeam-deque" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20ff29ded3204c5106278a81a38f4b482636ed4fa1e6cfbeef193291beb29ed" -dependencies = [ - "crossbeam-epoch 0.8.2", - "crossbeam-utils 0.7.2", - "maybe-uninit", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" -dependencies = [ - "cfg-if 1.0.0", - "crossbeam-epoch 0.9.13", - "crossbeam-utils 0.8.14", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" -dependencies = [ - "autocfg", - "cfg-if 0.1.10", - "crossbeam-utils 0.7.2", - "lazy_static", - "maybe-uninit", - "memoffset 0.5.6", - "scopeguard", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" -dependencies = [ - "autocfg", - "cfg-if 1.0.0", - "crossbeam-utils 0.8.14", - "memoffset 0.7.1", - "scopeguard", -] - -[[package]] -name = "crossbeam-queue" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570" -dependencies = [ - "cfg-if 0.1.10", - "crossbeam-utils 0.7.2", - "maybe-uninit", -] - -[[package]] -name = "crossbeam-queue" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" -dependencies = [ - "cfg-if 1.0.0", - "crossbeam-utils 0.8.14", -] - -[[package]] -name = "crossbeam-utils" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" -dependencies = [ - "autocfg", - "cfg-if 0.1.10", - "lazy_static", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "csv" -version = "1.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1" -dependencies = [ - "bstr", - "csv-core", - "itoa 0.4.8", - "ryu", - "serde", -] - -[[package]] -name = "csv-core" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90" -dependencies = [ - "memchr", -] - -[[package]] -name = "ctor" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" -dependencies = [ - "quote", - "syn", -] - -[[package]] -name = "cxx" -version = "1.0.90" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90d59d9acd2a682b4e40605a242f6670eaa58c5957471cbf85e8aa6a0b97a5e8" -dependencies = [ - "cc", - "cxxbridge-flags", - "cxxbridge-macro", - "link-cplusplus", -] - -[[package]] -name = "cxx-build" -version = "1.0.90" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebfa40bda659dd5c864e65f4c9a2b0aff19bea56b017b9b77c73d3766a453a38" -dependencies = [ - "cc", - "codespan-reporting", - "once_cell", - "proc-macro2", - "quote", - "scratch", - "syn", -] - -[[package]] -name = "cxxbridge-flags" -version = "1.0.90" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "457ce6757c5c70dc6ecdbda6925b958aae7f959bda7d8fb9bde889e34a09dc03" - -[[package]] -name = "cxxbridge-macro" -version = "1.0.90" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebf883b7aacd7b2aeb2a7b338648ee19f57c140d4ee8e52c68979c6b2f7f2263" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "derive_more" -version = "0.99.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "dirs" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901" -dependencies = [ - "libc", - "redox_users 0.3.5", - "winapi", -] - -[[package]] -name = "dirs" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" -dependencies = [ - "dirs-sys", -] - -[[package]] -name = "dirs-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" -dependencies = [ - "cfg-if 1.0.0", - "dirs-sys-next", -] - -[[package]] -name = "dirs-sys" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" -dependencies = [ - "libc", - "redox_users 0.4.3", - "winapi", -] - -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users 0.4.3", - "winapi", -] - -[[package]] -name = "dyn-clone" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9b0705efd4599c15a38151f4721f7bc388306f61084d3bfd50bd07fbca5cb60" - -[[package]] -name = "either" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" - -[[package]] -name = "encode_unicode" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" - -[[package]] -name = "encoding" -version = "0.2.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec" -dependencies = [ - "encoding-index-japanese", - "encoding-index-korean", - "encoding-index-simpchinese", - "encoding-index-singlebyte", - "encoding-index-tradchinese", -] - -[[package]] -name = "encoding-index-japanese" -version = "1.20141219.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91" -dependencies = [ - "encoding_index_tests", -] - -[[package]] -name = "encoding-index-korean" -version = "1.20141219.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81" -dependencies = [ - "encoding_index_tests", -] - -[[package]] -name = "encoding-index-simpchinese" -version = "1.20141219.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7" -dependencies = [ - "encoding_index_tests", -] - -[[package]] -name = "encoding-index-singlebyte" -version = "1.20141219.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a" -dependencies = [ - "encoding_index_tests", -] - -[[package]] -name = "encoding-index-tradchinese" -version = "1.20141219.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18" -dependencies = [ - "encoding_index_tests", -] - -[[package]] -name = "encoding_index_tests" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569" - -[[package]] -name = "encoding_rs" -version = "0.8.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "executors" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f99e7b1533b6caa2e16120bfc652aeb087c9197b1bf419edfc8587e6022f2fc9" -dependencies = [ - "arr_macro", - "async-task", - "crossbeam-channel 0.4.4", - "crossbeam-deque 0.7.4", - "crossbeam-utils 0.7.2", - "log", - "num_cpus", - "rand 0.7.3", - "synchronoise", - "threadpool", -] - -[[package]] -name = "failure" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" -dependencies = [ - "backtrace", - "failure_derive", -] - -[[package]] -name = "failure_derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "fastrand" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" -dependencies = [ - "instant", -] - -[[package]] -name = "flume" -version = "0.10.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577" -dependencies = [ - "futures-core", - "futures-sink", - "nanorand", - "pin-project", - "spin", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13e2792b0ff0340399d58445b88fd9770e3489eff258a4cbc1523418f12abf84" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e5317663a9089767a1ec00a487df42e0ca174b61b4483213ac24448e4664df5" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec90ff4d0fe1f57d600049061dc6bb68ed03c7d2fbd697274c41805dcb3f8608" - -[[package]] -name = "futures-executor" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8de0a35a6ab97ec8869e32a2473f4b1324459e14c29275d14b10cb1fd19b50e" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfb8371b6fb2aeb2d280374607aeabfc99d95c72edfe51692e42d3d7f0d08531" - -[[package]] -name = "futures-lite" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" -dependencies = [ - "fastrand", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - -[[package]] -name = "futures-macro" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a73af87da33b5acf53acfebdc339fe592ecf5357ac7c0a7734ab9d8c876a70" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "futures-sink" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f310820bb3e8cfd46c80db4d7fb8353e15dfff853a127158425f31e0be6c8364" - -[[package]] -name = "futures-task" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf79a1bf610b10f42aea489289c5a2c478a786509693b80cd39c44ccd936366" - -[[package]] -name = "futures-util" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c1d6de3acfef38d2be4b1f543f553131788603495be83da675e180c8d6b7bd1" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", -] - -[[package]] -name = "getrandom" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" -dependencies = [ - "cfg-if 1.0.0", - "js-sys", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "wasm-bindgen", -] - -[[package]] -name = "gimli" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "221996f774192f0f718773def8201c4ae31f02616a54ccfc2d358bb0e5cefdec" - -[[package]] -name = "glob" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" - -[[package]] -name = "gloo-timers" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "h2" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hash_hasher" -version = "2.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74721d007512d0cb3338cd20f0654ac913920061a4c4d0d8708edb3f2a698c0c" - -[[package]] -name = "hashbrown" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" -dependencies = [ - "ahash", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -dependencies = [ - "ahash", - "rayon", -] - -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" -dependencies = [ - "libc", -] - -[[package]] -name = "hexf" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6618f4550dcd7d9ddb5126ab18d48dfa31aa952159cb832390bda464d3bc827e" -dependencies = [ - "hexf-parse", - "syn", -] - -[[package]] -name = "hexf-parse" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" - -[[package]] -name = "hierarchical_hash_wheel_timer" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d98bf257dbe2c3df82648395943dfbcb113100235e4f7dea079fdf012e6a7ff3" -dependencies = [ - "crossbeam-channel 0.5.6", - "rustc-hash", - "uuid 1.3.0", -] - -[[package]] -name = "hocon" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8249bcd360b81ac97a9c42fe46e08c520f0c9942a16cae6670979e6ea1759b4" -dependencies = [ - "failure", - "java-properties", - "memchr", - "nom", - "serde_path_to_error", - "uuid 0.8.2", -] - -[[package]] -name = "hocon" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b343112b7ebf5f59651daf37533fc623b88b4363111a883ed9448fdc38e0b73" -dependencies = [ - "java-properties", - "memchr", - "nom", - "reqwest", - "serde", - "serde_path_to_error", - "thiserror", - "uuid 0.8.2", -] - -[[package]] -name = "http" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" -dependencies = [ - "bytes", - "fnv", - "itoa 1.0.5", -] - -[[package]] -name = "http-body" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" - -[[package]] -name = "httpdate" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" - -[[package]] -name = "hyper" -version = "0.14.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e011372fa0b68db8350aa7a248930ecc7839bf46d8485577d69f117a75f164c" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa 1.0.5", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.53" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "winapi", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" -dependencies = [ - "cxx", - "cxx-build", -] - -[[package]] -name = "idna" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "im" -version = "15.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0acd33ff0285af998aaf9b57342af478078f53492322fafc47450e09397e0e9" -dependencies = [ - "bitmaps", - "rand_core 0.6.4", - "rand_xoshiro", - "sized-chunks", - "typenum", - "version_check 0.9.4", -] - -[[package]] -name = "indexmap" -version = "1.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "iovec" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" -dependencies = [ - "libc", -] - -[[package]] -name = "ipnet" -version = "2.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146" - -[[package]] -name = "iprange" -version = "0.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37209be0ad225457e63814401415e748e2453a5297f9b637338f5fb8afa4ec00" -dependencies = [ - "ipnet", -] - -[[package]] -name = "itoa" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" - -[[package]] -name = "itoa" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" - -[[package]] -name = "java-properties" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1904d8654a1ef51034d02d5a9411b50bf91bea15b0ab644ae179d1325976263" -dependencies = [ - "encoding", - "lazy_static", - "regex", -] - -[[package]] -name = "js-sys" -version = "0.3.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "kompact" -version = "0.11.0" -source = "git+https://github.com/kompics/kompact?rev=e9deae8#e9deae85085a26e3c647dd8eaa21c47594bc7c0d" -dependencies = [ - "arc-swap", - "as_num", - "async-std", - "bitfields", - "bytes", - "crossbeam-channel 0.4.4", - "crossbeam-queue 0.2.3", - "crossbeam-utils 0.7.2", - "executors", - "futures", - "hierarchical_hash_wheel_timer", - "hocon 0.3.7", - "iovec", - "ipnet", - "iprange", - "kompact-actor-derive", - "kompact-component-derive", - "log", - "lru", - "mio 0.7.14", - "num_cpus", - "oncemutex", - "owning_ref", - "rustc-hash", - "rustc_version 0.2.3", - "serde", - "slog", - "slog-async", - "slog-term", - "synchronoise", - "uuid 0.8.2", -] - -[[package]] -name = "kompact-actor-derive" -version = "0.11.0" -source = "git+https://github.com/kompics/kompact?rev=e9deae8#e9deae85085a26e3c647dd8eaa21c47594bc7c0d" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "kompact-component-derive" -version = "0.11.0" -source = "git+https://github.com/kompics/kompact?rev=e9deae8#e9deae85085a26e3c647dd8eaa21c47594bc7c0d" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "kv-log-macro" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" -dependencies = [ - "log", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "lexical" -version = "6.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7aefb36fd43fef7003334742cbf77b243fcd36418a1d1bdd480d613a67968f6" -dependencies = [ - "lexical-core", -] - -[[package]] -name = "lexical-core" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46" -dependencies = [ - "lexical-parse-float", - "lexical-parse-integer", - "lexical-util", - "lexical-write-float", - "lexical-write-integer", -] - -[[package]] -name = "lexical-parse-float" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f" -dependencies = [ - "lexical-parse-integer", - "lexical-util", - "static_assertions", -] - -[[package]] -name = "lexical-parse-integer" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9" -dependencies = [ - "lexical-util", - "static_assertions", -] - -[[package]] -name = "lexical-util" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc" -dependencies = [ - "static_assertions", -] - -[[package]] -name = "lexical-write-float" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862" -dependencies = [ - "lexical-util", - "lexical-write-integer", - "static_assertions", -] - -[[package]] -name = "lexical-write-integer" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446" -dependencies = [ - "lexical-util", - "static_assertions", -] - -[[package]] -name = "libc" -version = "0.2.139" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" - -[[package]] -name = "link-cplusplus" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" -dependencies = [ - "cc", -] - -[[package]] -name = "lock_api" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if 1.0.0", - "value-bag", -] - -[[package]] -name = "lru" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ea2d928b485416e8908cff2d97d621db22b27f7b3b6729e438bcf42c671ba91" -dependencies = [ - "hashbrown 0.11.2", -] - -[[package]] -name = "macros" -version = "0.0.0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "maybe-uninit" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" - -[[package]] -name = "memchr" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" - -[[package]] -name = "memmap2" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b182332558b18d807c4ce1ca8ca983b34c3ee32765e47b3f0f69b90355cc1dc" -dependencies = [ - "libc", -] - -[[package]] -name = "memoffset" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa" -dependencies = [ - "autocfg", -] - -[[package]] -name = "memoffset" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] - -[[package]] -name = "memx" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841cdfecbf7320309a66aa9f3aaf074018f7584b4d05d6a0e1fdf31f6e3aaa51" -dependencies = [ - "cpufeatures", - "rustc_version 0.4.0", -] - -[[package]] -name = "mime" -version = "0.3.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" - -[[package]] -name = "miniz_oxide" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" -dependencies = [ - "adler", -] - -[[package]] -name = "mio" -version = "0.7.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc" -dependencies = [ - "libc", - "log", - "miow", - "ntapi", - "winapi", -] - -[[package]] -name = "mio" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" -dependencies = [ - "libc", - "log", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.42.0", -] - -[[package]] -name = "miow" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" -dependencies = [ - "winapi", -] - -[[package]] -name = "mopa" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a785740271256c230f57462d3b83e52f998433a7062fc18f96d5999474a9f915" - -[[package]] -name = "multiversion" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "025c962a3dd3cc5e0e520aa9c612201d127dcdf28616974961a649dca64f5373" -dependencies = [ - "multiversion-macros", -] - -[[package]] -name = "multiversion-macros" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8a3e2bde382ebf960c1f3e79689fa5941625fe9bf694a1cb64af3e85faff3af" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "nanorand" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" -dependencies = [ - "getrandom 0.2.8", -] - -[[package]] -name = "native-tls" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" -dependencies = [ - "lazy_static", - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "nom" -version = "4.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6" -dependencies = [ - "memchr", - "version_check 0.1.5", -] - -[[package]] -name = "ntapi" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f" -dependencies = [ - "winapi", -] - -[[package]] -name = "num" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606" -dependencies = [ - "num-bigint", - "num-complex", - "num-integer", - "num-iter", - "num-rational", - "num-traits", -] - -[[package]] -name = "num-bigint" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-complex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" -dependencies = [ - "autocfg", - "num-bigint", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" -dependencies = [ - "hermit-abi 0.2.6", - "libc", -] - -[[package]] -name = "num_threads" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" -dependencies = [ - "libc", -] - -[[package]] -name = "object" -version = "0.30.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" -dependencies = [ - "memchr", -] - -[[package]] -name = "omnipaxos" -version = "0.1.0" -source = "git+https://github.com/haraldng/omnipaxos?rev=36dd86d#36dd86dfadaf91f442a3ad35c6cc01fd129d0f4a" -dependencies = [ - "hocon 0.5.2", - "slog", - "slog-async", - "slog-term", -] - -[[package]] -name = "once_cell" -version = "1.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f7254b99e31cad77da24b08ebf628882739a608578bb1bcdfc1f9c21260d7c0" - -[[package]] -name = "oncemutex" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d11de466f4a3006fe8a5e7ec84e93b79c70cb992ae0aa0eb631ad2df8abfe2" - -[[package]] -name = "openssl" -version = "0.10.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b102428fd03bc5edf97f62620f7298614c45cedf287c271e7ed450bbaf83f2e1" -dependencies = [ - "bitflags", - "cfg-if 1.0.0", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.80" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23bbbf7854cd45b83958ebe919f0e8e516793727652e27fda10a8384cfc790b7" -dependencies = [ - "autocfg", - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "owning_ref" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ff55baddef9e4ad00f88b6c743a2a8062d4c6ade126c2a528644b8e444d52ce" -dependencies = [ - "stable_deref_trait", -] - -[[package]] -name = "parking" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" - -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.6", -] - -[[package]] -name = "parking_lot" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" -dependencies = [ - "lock_api", - "parking_lot_core 0.9.7", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" -dependencies = [ - "cfg-if 1.0.0", - "instant", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "winapi", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "windows-sys 0.45.0", -] - -[[package]] -name = "percent-encoding" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" - -[[package]] -name = "pin-project" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" - -[[package]] -name = "polars" -version = "0.19.1" -source = "git+https://github.com/pola-rs/polars?rev=a04786c#a04786c9d626e2f4fc5362213a660e8897559b38" -dependencies = [ - "polars-core", - "polars-io", - "polars-lazy", - "polars-time", -] - -[[package]] -name = "polars-arrow" -version = "0.19.1" -source = "git+https://github.com/pola-rs/polars?rev=a04786c#a04786c9d626e2f4fc5362213a660e8897559b38" -dependencies = [ - "arrow2 0.9.1", - "hashbrown 0.12.3", - "num", - "thiserror", -] - -[[package]] -name = "polars-core" -version = "0.19.1" -source = "git+https://github.com/pola-rs/polars?rev=a04786c#a04786c9d626e2f4fc5362213a660e8897559b38" -dependencies = [ - "ahash", - "anyhow", - "arrow2 0.9.1", - "chrono", - "hashbrown 0.12.3", - "lazy_static", - "num", - "num_cpus", - "polars-arrow", - "prettytable-rs", - "rayon", - "regex", - "thiserror", - "unsafe_unwrap", -] - -[[package]] -name = "polars-io" -version = "0.19.1" -source = "git+https://github.com/pola-rs/polars?rev=a04786c#a04786c9d626e2f4fc5362213a660e8897559b38" -dependencies = [ - "ahash", - "anyhow", - "arrow2 0.9.1", - "csv-core", - "dirs 4.0.0", - "lazy_static", - "lexical", - "memchr", - "memmap2", - "num", - "num_cpus", - "polars-arrow", - "polars-core", - "rayon", - "regex", - "simdutf8", -] - -[[package]] -name = "polars-lazy" -version = "0.19.1" -source = "git+https://github.com/pola-rs/polars?rev=a04786c#a04786c9d626e2f4fc5362213a660e8897559b38" -dependencies = [ - "ahash", - "glob", - "polars-arrow", - "polars-core", - "polars-io", - "polars-time", - "polars-utils", - "rayon", -] - -[[package]] -name = "polars-time" -version = "0.1.1" -source = "git+https://github.com/pola-rs/polars?rev=a04786c#a04786c9d626e2f4fc5362213a660e8897559b38" -dependencies = [ - "chrono", - "polars-arrow", - "polars-core", -] - -[[package]] -name = "polars-utils" -version = "0.1.0" -source = "git+https://github.com/pola-rs/polars?rev=a04786c#a04786c9d626e2f4fc5362213a660e8897559b38" -dependencies = [ - "parking_lot 0.11.2", -] - -[[package]] -name = "polling" -version = "2.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22122d5ec4f9fe1b3916419b76be1e80bcb93f618d071d2edf841b137b2a2bd6" -dependencies = [ - "autocfg", - "cfg-if 1.0.0", - "libc", - "log", - "wepoll-ffi", - "windows-sys 0.42.0", -] - -[[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[package]] -name = "prettytable-rs" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fd04b170004fa2daccf418a7f8253aaf033c27760b5f225889024cf66d7ac2e" -dependencies = [ - "atty", - "csv", - "encode_unicode", - "lazy_static", - "term 0.5.2", - "unicode-width", -] - -[[package]] -name = "proc-macro-hack" -version = "0.5.20+deprecated" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" - -[[package]] -name = "proc-macro2" -version = "1.0.51" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.8", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "rand_xoshiro" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" -dependencies = [ - "rand_core 0.6.4", -] - -[[package]] -name = "rayon" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "356a0625f1954f730c0201cdab48611198dc6ce21f4acff55089b5a78e6e835b" -dependencies = [ - "crossbeam-channel 0.5.6", - "crossbeam-deque 0.8.2", - "crossbeam-utils 0.8.14", - "num_cpus", -] - -[[package]] -name = "redox_syscall" -version = "0.1.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags", -] - -[[package]] -name = "redox_users" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d" -dependencies = [ - "getrandom 0.1.16", - "redox_syscall 0.1.57", - "rust-argon2", -] - -[[package]] -name = "redox_users" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" -dependencies = [ - "getrandom 0.2.8", - "redox_syscall 0.2.16", - "thiserror", -] - -[[package]] -name = "regex" -version = "1.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" - -[[package]] -name = "regex-syntax" -version = "0.6.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" - -[[package]] -name = "remove_dir_all" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi", -] - -[[package]] -name = "replace_with" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3a8614ee435691de62bcffcf4a66d91b3594bf1428a5722e79103249a095690" - -[[package]] -name = "reqwest" -version = "0.11.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21eed90ec8570952d53b772ecf8f206aa1ec9a3d76b2521c56c42973f2d91ee9" -dependencies = [ - "base64 0.21.0", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", -] - -[[package]] -name = "rosalloc" -version = "0.1.0" -source = "git+https://github.com/playxe/rosalloc#3b108802930e835aba3f6ffe6041cff8c3bbf3d7" -dependencies = [ - "cfg-if 1.0.0", - "indexmap", - "libc", - "log", - "memx", - "parking_lot 0.12.1", - "thread_local", -] - -[[package]] -name = "rust-argon2" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb" -dependencies = [ - "base64 0.13.1", - "blake2b_simd", - "constant_time_eq", - "crossbeam-utils 0.8.14", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" - -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustc_version" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -dependencies = [ - "semver 0.9.0", -] - -[[package]] -name = "rustc_version" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver 1.0.16", -] - -[[package]] -name = "rustversion" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70" - -[[package]] -name = "ryu" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" - -[[package]] -name = "schannel" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" -dependencies = [ - "windows-sys 0.42.0", -] - -[[package]] -name = "scoped_threadpool" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8" - -[[package]] -name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - -[[package]] -name = "scratch" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2" - -[[package]] -name = "security-framework" -version = "2.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "semver" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver" -version = "1.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a" - -[[package]] -name = "semver-parser" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" - -[[package]] -name = "serde" -version = "1.0.152" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" - -[[package]] -name = "serde_derive" -version = "1.0.152" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cad406b69c91885b5107daf2c29572f6c8cdb3c66826821e286c533490c0bc76" -dependencies = [ - "itoa 1.0.5", - "ryu", - "serde", -] - -[[package]] -name = "serde_path_to_error" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b04f22b563c91331a10074bda3dd5492e3cc39d56bd557e91c0af42b6c7341" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa 1.0.5", - "ryu", - "serde", -] - -[[package]] -name = "simdutf8" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" - -[[package]] -name = "sized-chunks" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" -dependencies = [ - "bitmaps", - "typenum", -] - -[[package]] -name = "slab" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" -dependencies = [ - "autocfg", -] - -[[package]] -name = "slog" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8347046d4ebd943127157b94d63abb990fcf729dc4e9978927fdf4ac3c998d06" - -[[package]] -name = "slog-async" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "766c59b252e62a34651412870ff55d8c4e6d04df19b43eecb2703e417b097ffe" -dependencies = [ - "crossbeam-channel 0.5.6", - "slog", - "take_mut", - "thread_local", -] - -[[package]] -name = "slog-term" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87d29185c55b7b258b4f120eab00f48557d4d9bc814f41713f449d35b0f8977c" -dependencies = [ - "atty", - "slog", - "term 0.7.0", - "thread_local", - "time 0.3.17", -] - -[[package]] -name = "smallvec" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" - -[[package]] -name = "socket2" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "spin" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dccf47db1b41fa1573ed27ccf5e08e3ca771cb994f776668c5ebda893b248fc" -dependencies = [ - "lock_api", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "streaming-iterator" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b2231b7c3057d5e4ad0156fb3dc807d900806020c5ffa3ee6ff2c8c76fb8520" - -[[package]] -name = "strength_reduce" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe895eb47f22e2ddd4dabc02bce419d2e643c8e3b585c78158b349195bc24d82" - -[[package]] -name = "syn" -version = "1.0.107" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synchronoise" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dbc01390fc626ce8d1cffe3376ded2b72a11bb70e1c75f404a210e4daa4def2" -dependencies = [ - "crossbeam-queue 0.3.8", -] - -[[package]] -name = "synstructure" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "unicode-xid", -] - -[[package]] -name = "take_mut" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" - -[[package]] -name = "tempfile" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" -dependencies = [ - "cfg-if 1.0.0", - "fastrand", - "libc", - "redox_syscall 0.2.16", - "remove_dir_all", - "winapi", -] - -[[package]] -name = "term" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edd106a334b7657c10b7c540a0106114feadeb4dc314513e97df481d5d966f42" -dependencies = [ - "byteorder", - "dirs 1.0.5", - "winapi", -] - -[[package]] -name = "term" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" -dependencies = [ - "dirs-next", - "rustversion", - "winapi", -] - -[[package]] -name = "termcolor" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "thiserror" -version = "1.0.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "thread_local" -version = "1.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" -dependencies = [ - "cfg-if 1.0.0", - "once_cell", -] - -[[package]] -name = "threadfin" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b43bcb2a0564c222b9d68957c0aba6f6112ebaef133cd90303e82b6ec8136558" -dependencies = [ - "crossbeam-channel 0.5.6", - "num_cpus", - "once_cell", - "waker-fn", -] - -[[package]] -name = "threadpool" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" -dependencies = [ - "num_cpus", -] - -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", -] - -[[package]] -name = "time" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376" -dependencies = [ - "itoa 1.0.5", - "libc", - "num_threads", - "rand 0.8.5", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" - -[[package]] -name = "time-macros" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2" -dependencies = [ - "time-core", -] - -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e00990ebabbe4c14c08aca901caed183ecd5c09562a12c824bb53d3c3fd3af" -dependencies = [ - "autocfg", - "bytes", - "libc", - "memchr", - "mio 0.8.5", - "num_cpus", - "pin-project-lite", - "socket2", - "windows-sys 0.42.0", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5427d89453009325de0d8f342c9490009f76e999cb7672d77e46267448f7e6b2" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", - "tracing", -] - -[[package]] -name = "tower-service" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" - -[[package]] -name = "tracing" -version = "0.1.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" -dependencies = [ - "cfg-if 1.0.0", - "pin-project-lite", - "tracing-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" - -[[package]] -name = "typenum" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" - -[[package]] -name = "unicode-bidi" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54675592c1dbefd78cbd98db9bacd89886e1ca50692a0692baefffdeb92dd58" - -[[package]] -name = "unicode-ident" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" - -[[package]] -name = "unicode-normalization" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-width" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" - -[[package]] -name = "unicode-xid" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" - -[[package]] -name = "unsafe_unwrap" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1230ec65f13e0f9b28d789da20d2d419511893ea9dac2c1f4ef67b8b14e5da80" - -[[package]] -name = "url" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "uuid" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" -dependencies = [ - "getrandom 0.2.8", -] - -[[package]] -name = "uuid" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79" -dependencies = [ - "getrandom 0.2.8", -] - -[[package]] -name = "value-bag" -version = "1.0.0-alpha.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2209b78d1249f7e6f3293657c9779fe31ced465df091bbd433a1cf88e916ec55" -dependencies = [ - "ctor", - "version_check 0.9.4", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version_check" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "waker-fn" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" - -[[package]] -name = "want" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" -dependencies = [ - "log", - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" -dependencies = [ - "cfg-if 1.0.0", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454" -dependencies = [ - "cfg-if 1.0.0", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" - -[[package]] -name = "web-sys" -version = "0.3.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "wepoll-ffi" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb" -dependencies = [ - "cc", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -dependencies = [ - "winapi", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows-sys" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-targets" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" - -[[package]] -name = "winreg" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" -dependencies = [ - "winapi", -] diff --git a/arc-runtime/Cargo.toml b/arc-runtime/Cargo.toml deleted file mode 100644 index cea917987..000000000 --- a/arc-runtime/Cargo.toml +++ /dev/null @@ -1,44 +0,0 @@ -[package] -name = "arc-runtime" -version = "0.0.0" -authors = ["Klas Segeljakt "] -edition = "2021" -description = "A runtime for arc-lang" - -[lib] -name = "arc_runtime" -path = "src/lib.rs" - -[features] -dataframes = ["polars"] - -[dependencies] -macros = { path = "./macros" } -kompact = { git = "https://github.com/kompics/kompact", rev = "e9deae8", features = ["silent_logging"]} -slog = { version = "2.7.0" } -time = { version = "0.3.5", features = ["rand", "macros"] } -uuid = { version = "0.8.2" } -rand = { version = "0.8.3" } -dyn-clone = { version = "1.0.4" } -comet = { git = "https://github.com/Starlight-JS/comet", package = "comet-extra", rev = "c2f96f8" } -tokio = { version = "1.15.0", features = ["sync"] } -derive_more = { version = "0.99.17", default-features = false, features = ["from", "into", "deref", "deref_mut", "constructor", "as_ref"] } -futures = { version = "0.3.19" } -replace_with = { version = "0.1.7" } -hexf = { version = "0.2.1" } -serde_derive = { version = "1.0.136" } -serde = { version = "1.0.136" } -# serde_traitobject = { version = "0.2.7" } -polars = { git = "https://github.com/pola-rs/polars", rev = "a04786c", optional = true } - -# crossfire = { version = "0.1.7" } -# paste = { version = "1.0.5" } -# coz = { version = "0.1.3" } -# arrayvec = { version = "0.7.0" } -# lazy_static = { version = "1.4.0" } -# async-recursion = { version = "0.3.2" } -# erased-serde = { version = "0.3.17" } - -[dev-dependencies] -arrow2 = { version = "0.9.1" } -omnipaxos = { git = "https://github.com/haraldng/omnipaxos", rev = "36dd86d" } diff --git a/arc-runtime/examples/consensus/Cargo.toml b/arc-runtime/examples/consensus/Cargo.toml deleted file mode 100644 index 36d0ed1d2..000000000 --- a/arc-runtime/examples/consensus/Cargo.toml +++ /dev/null @@ -1,13 +0,0 @@ -[package] -name = "consensus" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -omnipaxos = { git = "https://github.com/haraldng/omnipaxos", rev = "36dd86d" } -hocon = { version = "0.5.2" } -kompact = { git = "https://github.com/kompics/kompact", rev = "e9deae8" } -arc-runtime = { path = "../../" } -rand = { version = "0.8.4" } diff --git a/arc-runtime/examples/consensus/omnipaxos.conf b/arc-runtime/examples/consensus/omnipaxos.conf deleted file mode 100644 index 60c648726..000000000 --- a/arc-runtime/examples/consensus/omnipaxos.conf +++ /dev/null @@ -1,6 +0,0 @@ -wait_timeout: 10 s -num_threads: 8 -num_nodes: 20 -ble_hb_delay: 5 -increment_delay: 2 -num_proposals: 20 diff --git a/arc-runtime/examples/consensus/src/ble.rs b/arc-runtime/examples/consensus/src/ble.rs deleted file mode 100644 index 75e87a7bf..000000000 --- a/arc-runtime/examples/consensus/src/ble.rs +++ /dev/null @@ -1,132 +0,0 @@ -use kompact::prelude::*; - -use kompact::config_keys::system::LABEL; -use kompact::config_keys::system::THREADS; -use kompact::executors::crossbeam_workstealing_pool; - -use omnipaxos::leader_election::ballot_leader_election::messages::BLEMessage; -use omnipaxos::leader_election::ballot_leader_election::messages::HeartbeatMsg; -use omnipaxos::leader_election::ballot_leader_election::messages::HeartbeatReply; -use omnipaxos::leader_election::ballot_leader_election::messages::HeartbeatRequest; -use omnipaxos::leader_election::ballot_leader_election::Ballot; -use omnipaxos::leader_election::ballot_leader_election::BallotLeaderElection; -use omnipaxos::messages::AcceptDecide; -use omnipaxos::messages::AcceptSync; -use omnipaxos::messages::Accepted; -use omnipaxos::messages::Decide; -use omnipaxos::messages::FirstAccept; -use omnipaxos::messages::Message; -use omnipaxos::messages::PaxosMsg; -use omnipaxos::messages::Prepare; -use omnipaxos::messages::Promise; -use omnipaxos::paxos::ProposeErr; -use omnipaxos::storage::memory_storage::MemorySequence; -use omnipaxos::storage::memory_storage::MemoryState; -use omnipaxos::utils::hocon_kv::CONFIG_ID; -use omnipaxos::utils::hocon_kv::HB_DELAY; -use omnipaxos::utils::hocon_kv::INITIAL_DELAY_FACTOR; -use omnipaxos::utils::hocon_kv::LOG_FILE_PATH; -use omnipaxos::utils::hocon_kv::PID; -use omnipaxos::utils::hocon_kv::PRIORITY; -use omnipaxos::utils::logger::create_logger; -type OmniPaxos = omnipaxos::paxos::OmniPaxos, MemoryState>; - -use arc_runtime::prelude::*; - -use std::collections::HashMap; -use std::collections::VecDeque; -use std::time::Duration; - -use crate::port::BallotPort; - -const START_TIMEOUT: Duration = Duration::from_millis(1000); -const REGISTRATION_TIMEOUT: Duration = Duration::from_millis(1000); -const STOP_COMPONENT_TIMEOUT: Duration = Duration::from_millis(1000); -const BLE_TIMER_TIMEOUT: Duration = Duration::from_millis(100); - -#[derive(ComponentDefinition, Deref, DerefMut)] -pub struct BallotLeaderElectionComp { - ctx: ComponentContext, - ble_port: ProvidedPort, - pub(crate) peers: HashMap>, - pub leader: Option, - timer: Option, - pub(crate) asks: VecDeque>, - #[deref] - #[deref_mut] - ble: BallotLeaderElection, -} - -impl BallotLeaderElectionComp { - pub fn new(ble: BallotLeaderElection) -> Self { - Self { - ctx: ComponentContext::uninitialised(), - ble_port: ProvidedPort::uninitialised(), - peers: HashMap::new(), - leader: None, - timer: None, - ble, - asks: VecDeque::new(), - } - } - - fn send_outgoing_msgs(&mut self) { - for msg in self.ble.get_outgoing_msgs() { - self.peers.get(&msg.to).unwrap().tell(msg) - } - } - - fn answer_future(&mut self, b: Ballot) { - if let Some(ask) = self.asks.pop_front() { - ask.reply(b).unwrap(); - } - } -} - -impl Actor for BallotLeaderElectionComp { - type Message = BLEMessage; - - fn receive_local(&mut self, msg: Self::Message) -> Handled { - self.ble.handle(msg); - Handled::Ok - } - - fn receive_network(&mut self, msg: NetMessage) -> Handled { - todo!() - } -} - -impl ComponentLifecycle for BallotLeaderElectionComp { - fn on_start(&mut self) -> Handled { - self.ble.new_hb_round(); - self.timer = self - .schedule_periodic(BLE_TIMER_TIMEOUT, BLE_TIMER_TIMEOUT, move |c, _| { - if let Some(l) = c.ble.tick() { - c.answer_future(l); - c.ble_port.trigger(l); - } - c.send_outgoing_msgs(); - Handled::Ok - }) - .into(); - Handled::Ok - } - - fn on_stop(&mut self) -> Handled { - if let Some(timer) = self.timer.take() { - self.cancel_timer(timer); - } - Handled::Ok - } - - fn on_kill(&mut self) -> Handled { - Handled::Ok - } -} - -impl Provide for BallotLeaderElectionComp { - fn handle(&mut self, _: Never) -> Handled { - // ignore - Handled::Ok - } -} diff --git a/arc-runtime/examples/consensus/src/config.rs b/arc-runtime/examples/consensus/src/config.rs deleted file mode 100644 index 5d7feca45..000000000 --- a/arc-runtime/examples/consensus/src/config.rs +++ /dev/null @@ -1,33 +0,0 @@ -use hocon::Error; -use hocon::Hocon; -use hocon::HoconLoader; - -use std::time::Duration; - -pub struct Config { - pub wait_timeout: Duration, - pub num_threads: usize, - pub num_nodes: usize, - pub ble_hb_delay: u64, - pub ble_initial_delay_factor: Option, - pub num_proposals: u64, - pub num_elections: u64, - pub gc_idx: u64, -} - -impl Config { - pub fn load(path: &str) -> Result { - let cfg = HoconLoader::new().load_file(path)?.hocon()?; - - Ok(Config { - wait_timeout: cfg["wait_timeout"].as_duration().unwrap_or_default(), - num_threads: cfg["num_threads"].as_i64().unwrap_or_default() as usize, - num_nodes: cfg["num_nodes"].as_i64().unwrap_or_default() as usize, - ble_hb_delay: cfg["ble_hb_delay"].as_i64().unwrap_or_default() as u64, - num_proposals: cfg["num_proposals"].as_i64().unwrap_or_default() as u64, - num_elections: cfg["num_elections"].as_i64().unwrap_or_default() as u64, - gc_idx: cfg["gc_idx"].as_i64().unwrap_or_default() as u64, - ble_initial_delay_factor: cfg["ble_initial_delay_factor"].as_i64().map(|x| x as u64), - }) - } -} diff --git a/arc-runtime/examples/consensus/src/main.rs b/arc-runtime/examples/consensus/src/main.rs deleted file mode 100644 index a0bbc77f1..000000000 --- a/arc-runtime/examples/consensus/src/main.rs +++ /dev/null @@ -1,64 +0,0 @@ -#![allow(unused)] - -mod ble; -mod config; -mod omni; -mod port; -mod state; -mod system; - -use crate::config::Config; -use crate::state::State; -use crate::system::System; - -use kompact::prelude::*; -use omnipaxos::leader_election::ballot_leader_election::Ballot; -use omnipaxos::storage::Entry; -use rand::Rng; - -use arc_runtime::prelude::*; - -fn main() { - let config = Config::load("omnipaxos.conf").unwrap(); - let ble_initial_leader = None; - - let system = System::new( - config.num_nodes, - config.num_threads, - config.ble_hb_delay, - config.ble_initial_delay_factor, - ble_initial_leader, - ); - - let node = system.nodes.get(&1).unwrap(); - - let (ble_promise, ble_future) = promise(); - node.ble - .on_definition(|c| c.asks.push_back(Ask::new(ble_promise, ()))); - - system.start_all_nodes(); - - let elected_leader = ble_future.wait_timeout(config.wait_timeout).unwrap(); - - let mut proposal_node: u64; - - loop { - proposal_node = rand::thread_rng().gen_range(1..=config.num_nodes as u64); - - if proposal_node != elected_leader.pid { - break; - } - } - - let node = system.nodes.get(&proposal_node).unwrap(); - - let (omni_promise, omni_future) = promise(); - node.omni.on_definition(|c| { - c.asks.push_back(Ask::new(omni_promise, ())); - c.propose_normal(State::new("abc".to_owned(), 123)).unwrap(); - }); - - omni_future.wait_timeout(config.wait_timeout).unwrap(); - - system.kompact.shutdown(); -} diff --git a/arc-runtime/examples/consensus/src/omni.rs b/arc-runtime/examples/consensus/src/omni.rs deleted file mode 100644 index 3e52b6d62..000000000 --- a/arc-runtime/examples/consensus/src/omni.rs +++ /dev/null @@ -1,129 +0,0 @@ -use kompact::prelude::*; - -use kompact::config_keys::system::LABEL; -use kompact::config_keys::system::THREADS; -use kompact::executors::crossbeam_workstealing_pool; - -use omnipaxos::leader_election::ballot_leader_election::messages::BLEMessage; -use omnipaxos::leader_election::ballot_leader_election::messages::HeartbeatMsg; -use omnipaxos::leader_election::ballot_leader_election::messages::HeartbeatReply; -use omnipaxos::leader_election::ballot_leader_election::messages::HeartbeatRequest; -use omnipaxos::leader_election::ballot_leader_election::Ballot; -use omnipaxos::leader_election::ballot_leader_election::BallotLeaderElection; -use omnipaxos::messages::AcceptDecide; -use omnipaxos::messages::AcceptSync; -use omnipaxos::messages::Accepted; -use omnipaxos::messages::Decide; -use omnipaxos::messages::FirstAccept; -use omnipaxos::messages::Message; -use omnipaxos::messages::PaxosMsg; -use omnipaxos::messages::Prepare; -use omnipaxos::messages::Promise; -use omnipaxos::paxos::ProposeErr; -use omnipaxos::storage::memory_storage::MemorySequence; -use omnipaxos::storage::memory_storage::MemoryState; -use omnipaxos::storage::Entry; -use omnipaxos::storage::PaxosState; -use omnipaxos::storage::Sequence; -use omnipaxos::storage::StopSign; -use omnipaxos::utils::hocon_kv::CONFIG_ID; -use omnipaxos::utils::hocon_kv::HB_DELAY; -use omnipaxos::utils::hocon_kv::INITIAL_DELAY_FACTOR; -use omnipaxos::utils::hocon_kv::LOG_FILE_PATH; -use omnipaxos::utils::hocon_kv::PID; -use omnipaxos::utils::hocon_kv::PRIORITY; -use omnipaxos::utils::logger::create_logger; -type OmniPaxos = omnipaxos::paxos::OmniPaxos, MemoryState>; - -use arc_runtime::prelude::*; - -use crate::port::BallotPort; - -use std::collections::HashMap; -use std::collections::VecDeque; - -use std::time::Duration; - -use std::ops::Deref; -use std::ops::DerefMut; - -const OMNI_TIMER_TIMEOUT: Duration = Duration::from_millis(1); - -#[derive(ComponentDefinition, Deref, DerefMut)] -pub struct OmniPaxosComp { - ctx: ComponentContext, - ble_port: RequiredPort, - pub(crate) peers: HashMap>>, - timer: Option, - pub(crate) asks: VecDeque>>, - #[deref] - #[deref_mut] - paxos: OmniPaxos, -} - -impl OmniPaxosComp { - pub fn new(paxos: OmniPaxos) -> Self { - Self { - ctx: ComponentContext::uninitialised(), - ble_port: RequiredPort::uninitialised(), - peers: HashMap::new(), - timer: None, - paxos, - asks: VecDeque::new(), - } - } - - pub fn send_outgoing_msgs(&mut self) { - for msg in self.paxos.get_outgoing_msgs() { - self.peers.get(&msg.to).unwrap().tell(msg); - } - } - - fn answer_future(&mut self) { - if !self.asks.is_empty() { - for entry in self.paxos.get_latest_decided_entries() { - self.asks.pop_front().unwrap().reply(entry.clone()); - } - } - } -} - -impl Actor for OmniPaxosComp { - type Message = Message; - - fn receive_local(&mut self, msg: Self::Message) -> Handled { - self.paxos.handle(msg); - Handled::Ok - } - - fn receive_network(&mut self, msg: NetMessage) -> Handled { - todo!() - } -} - -impl ComponentLifecycle for OmniPaxosComp { - fn on_start(&mut self) -> Handled { - self.timer = self - .schedule_periodic(OMNI_TIMER_TIMEOUT, OMNI_TIMER_TIMEOUT, move |c, _| { - c.send_outgoing_msgs(); - c.answer_future(); - Handled::Ok - }) - .into(); - Handled::Ok - } - - fn on_kill(&mut self) -> Handled { - if let Some(timer) = self.timer.take() { - self.cancel_timer(timer); - } - Handled::Ok - } -} - -impl Require for OmniPaxosComp { - fn handle(&mut self, msg: Ballot) -> Handled { - self.paxos.handle_leader(msg); - Handled::Ok - } -} diff --git a/arc-runtime/examples/consensus/src/port.rs b/arc-runtime/examples/consensus/src/port.rs deleted file mode 100644 index 91d1c200d..000000000 --- a/arc-runtime/examples/consensus/src/port.rs +++ /dev/null @@ -1,39 +0,0 @@ -use kompact::prelude::*; - -use kompact::config_keys::system::LABEL; -use kompact::config_keys::system::THREADS; -use kompact::executors::crossbeam_workstealing_pool; - -use omnipaxos::leader_election::ballot_leader_election::messages::BLEMessage; -use omnipaxos::leader_election::ballot_leader_election::messages::HeartbeatMsg; -use omnipaxos::leader_election::ballot_leader_election::messages::HeartbeatReply; -use omnipaxos::leader_election::ballot_leader_election::messages::HeartbeatRequest; -use omnipaxos::leader_election::ballot_leader_election::Ballot; -use omnipaxos::leader_election::ballot_leader_election::BallotLeaderElection; -use omnipaxos::messages::AcceptDecide; -use omnipaxos::messages::AcceptSync; -use omnipaxos::messages::Accepted; -use omnipaxos::messages::Decide; -use omnipaxos::messages::FirstAccept; -use omnipaxos::messages::Message; -use omnipaxos::messages::PaxosMsg; -use omnipaxos::messages::Prepare; -use omnipaxos::messages::Promise; -use omnipaxos::paxos::ProposeErr; -use omnipaxos::storage::memory_storage::MemorySequence; -use omnipaxos::storage::memory_storage::MemoryState; -use omnipaxos::utils::hocon_kv::CONFIG_ID; -use omnipaxos::utils::hocon_kv::HB_DELAY; -use omnipaxos::utils::hocon_kv::INITIAL_DELAY_FACTOR; -use omnipaxos::utils::hocon_kv::LOG_FILE_PATH; -use omnipaxos::utils::hocon_kv::PID; -use omnipaxos::utils::hocon_kv::PRIORITY; -use omnipaxos::utils::logger::create_logger; -type OmniPaxos = omnipaxos::paxos::OmniPaxos, MemoryState>; - -pub struct BallotPort; - -impl Port for BallotPort { - type Indication = Ballot; - type Request = Never; -} diff --git a/arc-runtime/examples/consensus/src/state.rs b/arc-runtime/examples/consensus/src/state.rs deleted file mode 100644 index 852d58269..000000000 --- a/arc-runtime/examples/consensus/src/state.rs +++ /dev/null @@ -1,14 +0,0 @@ -use arc_runtime::prelude::*; - -#[derive(Clone, Debug, New)] -pub struct State { - pub key: String, - pub value: u64, -} - -impl IntoSendable for State { - type T = State; - fn into_sendable(self) -> Self::T { - todo!() - } -} diff --git a/arc-runtime/examples/consensus/src/system.rs b/arc-runtime/examples/consensus/src/system.rs deleted file mode 100644 index 9f9197fbf..000000000 --- a/arc-runtime/examples/consensus/src/system.rs +++ /dev/null @@ -1,173 +0,0 @@ -use kompact::prelude::*; - -use kompact::config_keys::system::LABEL; -use kompact::config_keys::system::THREADS; -use kompact::executors::crossbeam_workstealing_pool; - -use omnipaxos::leader_election::ballot_leader_election::messages::BLEMessage; -use omnipaxos::leader_election::ballot_leader_election::messages::HeartbeatMsg; -use omnipaxos::leader_election::ballot_leader_election::messages::HeartbeatReply; -use omnipaxos::leader_election::ballot_leader_election::messages::HeartbeatRequest; -use omnipaxos::leader_election::ballot_leader_election::Ballot; -use omnipaxos::leader_election::ballot_leader_election::BallotLeaderElection; -use omnipaxos::messages::AcceptDecide; -use omnipaxos::messages::AcceptSync; -use omnipaxos::messages::Accepted; -use omnipaxos::messages::Decide; -use omnipaxos::messages::FirstAccept; -use omnipaxos::messages::Message; -use omnipaxos::messages::PaxosMsg; -use omnipaxos::messages::Prepare; -use omnipaxos::messages::Promise; -use omnipaxos::paxos::ProposeErr; -use omnipaxos::storage::memory_storage::MemorySequence; -use omnipaxos::storage::memory_storage::MemoryState; -use omnipaxos::utils::hocon_kv::CONFIG_ID; -use omnipaxos::utils::hocon_kv::HB_DELAY; -use omnipaxos::utils::hocon_kv::INITIAL_DELAY_FACTOR; -use omnipaxos::utils::hocon_kv::LOG_FILE_PATH; -use omnipaxos::utils::hocon_kv::PID; -use omnipaxos::utils::hocon_kv::PRIORITY; -use omnipaxos::utils::logger::create_logger; -type OmniPaxos = omnipaxos::paxos::OmniPaxos, MemoryState>; -use std::pin::Pin - -use arc_runtime::prelude::*; - -use std::collections::HashMap; -use std::time::Duration; - -use crate::ble::BallotLeaderElectionComp; -use crate::omni::OmniPaxosComp; - -const START_TIMEOUT: Duration = Duration::from_millis(1000); -const REGISTRATION_TIMEOUT: Duration = Duration::from_millis(1000); -const STOP_COMPONENT_TIMEOUT: Duration = Duration::from_millis(1000); -const BLE_TIMER_TIMEOUT: Duration = Duration::from_millis(100); - -pub struct System { - pub(crate) kompact: KompactSystem, - pub(crate) nodes: HashMap>, -} - -#[derive(New)] -pub struct Node { - pub ble: Arc>, - pub omni: Arc>>, -} - -fn build_kompact_system(num_threads: usize) -> KompactSystem { - let mut conf = KompactConfig::default(); - conf.set_config_value(&THREADS, num_threads); - - match num_threads { - _ if num_threads <= 32 => conf.executor(|t| crossbeam_workstealing_pool::small_pool(t)), - _ if num_threads <= 64 => conf.executor(|t| crossbeam_workstealing_pool::large_pool(t)), - _ => conf.executor(|t| crossbeam_workstealing_pool::dyn_pool(t)), - }; - - let mut net = NetworkConfig::default(); - net.set_tcp_nodelay(true); - - conf.system_components(DeadletterBox::new, net.build()); - conf.build().unwrap() -} - -impl System { - pub fn new( - num_nodes: usize, - num_threads: usize, - ble_hb_delay: u64, - ble_initial_delay_factor: Option, - ble_initial_leader: Option, - ) -> Self { - let kompact = build_kompact_system(num_threads); - - let mut nodes = HashMap::new(); - let mut pids = (1..=num_nodes as u64).collect::>(); - let mut ble_refs = HashMap::new(); - let mut omni_refs = HashMap::new(); - - for pid in 1..=num_nodes as u64 { - let mut peer_pids = pids.clone(); - peer_pids.retain(|peer| peer != &pid); - - let priority = None; - let logger = None; - let log_file_path = None; - - let (ble_comp, ble_path) = kompact.create_and_register(|| { - BallotLeaderElectionComp::new(BallotLeaderElection::with( - pid, - peer_pids.clone(), - priority, - ble_hb_delay, - ble_initial_leader, - ble_initial_delay_factor, - logger, - log_file_path, - )) - }); - - let config_id = 1; - let skip_prepare_use_leader = None; - let logger = None; - let log_file_path = None; - - let (omni_comp, omni_path) = kompact.create_and_register(|| { - OmniPaxosComp::new(OmniPaxos::with( - config_id, - pid, - peer_pids.clone(), - skip_prepare_use_leader, - logger, - log_file_path, - )) - }); - - biconnect_components(&ble_comp, &omni_comp); - - ble_path.wait_timeout(REGISTRATION_TIMEOUT).unwrap(); - omni_path.wait_timeout(REGISTRATION_TIMEOUT).unwrap(); - - ble_refs.insert(pid, ble_comp.actor_ref()); - omni_refs.insert(pid, omni_comp.actor_ref()); - - nodes.insert(pid, Node::new(ble_comp, omni_comp)); - } - - for node in nodes.values() { - node.ble.on_definition(|c| c.peers = ble_refs.clone()); - node.omni.on_definition(|c| c.peers = omni_refs.clone()); - } - - Self { kompact, nodes } - } - - pub fn start_all_nodes(&self) { - for node in self.nodes.values() { - self.kompact - .stop_notify(&node.ble) - .wait_timeout(STOP_COMPONENT_TIMEOUT) - .unwrap(); - - self.kompact - .start_notify(&node.omni) - .wait_timeout(START_TIMEOUT) - .unwrap(); - } - } - - pub fn kill_node(&mut self, id: u64) { - let node = self.nodes.remove(&id).unwrap(); - self.kompact - .kill_notify(node.ble) - .wait_timeout(STOP_COMPONENT_TIMEOUT) - .unwrap(); - - self.kompact - .kill_notify(node.omni) - .wait_timeout(STOP_COMPONENT_TIMEOUT) - .unwrap(); - } -} diff --git a/arc-runtime/examples/remote/application.conf b/arc-runtime/examples/remote/application.conf deleted file mode 100644 index e4b81492a..000000000 --- a/arc-runtime/examples/remote/application.conf +++ /dev/null @@ -1,9 +0,0 @@ -buncher { - batch-size = 100 - timeout = 100 ms -} - -omega { - initial-period = 10 ms - delta = 1 ms -} diff --git a/arc-runtime/examples/remote/src/main.rs b/arc-runtime/examples/remote/src/main.rs deleted file mode 100644 index 9204d6922..000000000 --- a/arc-runtime/examples/remote/src/main.rs +++ /dev/null @@ -1,128 +0,0 @@ -#![feature(arbitrary_self_types)] -#![allow(unused_mut)] -#![allow(unreachable_code)] - -use arc_runtime::channels::local::concurrent::channel; -use arc_runtime::channels::local::concurrent::Pullable; -use arc_runtime::channels::local::concurrent::Pushable; -use arc_runtime::prelude::*; - -lazy_static::lazy_static! { - static ref EXECUTOR: Executor = Executor::new(); -} - -#[derive(Actor, ComponentDefinition)] -struct Source + Data, T: Data> -where - ::IntoIter: Data, -{ - ctx: ComponentContext, - iter: I, - pushable: Pushable, -} -impl + Data, T: Data> Source -where - ::IntoIter: Data, -{ - fn new(iter: I, pushable: Pushable) -> Self { - Self { - ctx: ComponentContext::uninitialised(), - iter, - pushable, - } - } - - async fn run(mut self: ComponentDefinitionAccess) -> Control<()> { - let i = self.iter.clone(); - for x in i { - self.pushable.push(x).await?; - } - Control::Finished - } -} - -#[derive(Actor, ComponentDefinition)] -struct Log { - ctx: ComponentContext, - pullable: Pullable, -} - -impl Log { - fn new(pullable: Pullable) -> Self { - Self { - ctx: ComponentContext::uninitialised(), - pullable, - } - } - - async fn run(mut self: ComponentDefinitionAccess) -> Control<()> { - loop { - let data = self.pullable.pull().await?; -// info!(self.log(), "{:?}", data); - } - } -} - -impl + Data, T: Data> ComponentLifecycle for Source -where - ::IntoIter: Data, -{ - fn on_start(&mut self) -> Handled { - self.spawn_local(move |async_self| async move { - async_self.run().await; - Handled::DieNow - }); - Handled::Ok - } -} - -impl ComponentLifecycle for Log { - fn on_start(&mut self) -> Handled { - self.spawn_local(move |async_self| async move { - async_self.run().await; - Handled::DieNow - }); - Handled::Ok - } -} -fn source(i: I) -> Pullable -where - I: IntoIterator, - ::IntoIter: Data, -{ - let (a0, a1) = channel(&EXECUTOR); - EXECUTOR.create_task(move || Source::new(i, a0)); - a1 -} - -fn log(a: Pullable) { - EXECUTOR.create_task(move || Log::new(a)); -} - -fn read_stream() -> Pullable { - todo!() -} - -fn master() { - log(source(0..100)); -} - -fn worker() { - todo!() -} - -fn main() { - EXECUTOR.init({ - let mut cfg = KompactConfig::default(); - cfg.load_config_file("./application.conf"); - cfg.system_components(DeadletterBox::new, NetworkConfig::default().build()); - cfg.build().expect("KompactSystem") - }); - - match std::env::args().nth(1).as_ref().map(|x| x.as_str()) { - Some("--master") => master(), - Some("--worker") => worker(), - _ => panic!("Expected --master or --worker"), - } - EXECUTOR.await_termination(); -} diff --git a/arc-runtime/macros/Cargo.toml b/arc-runtime/macros/Cargo.toml deleted file mode 100644 index 88a2fb5cb..000000000 --- a/arc-runtime/macros/Cargo.toml +++ /dev/null @@ -1,13 +0,0 @@ -[package] -name = "macros" -version = "0.0.0" -authors = ["Klas Segeljakt "] -edition = "2018" - -[lib] -proc-macro = true - -[dependencies] -quote = { version = "1.0.8" } -syn = { version = "1.0.58", features = ["full", "visit-mut"] } -proc-macro2 = { version = "1.0.24" } diff --git a/arc-runtime/macros/src/lib.rs b/arc-runtime/macros/src/lib.rs deleted file mode 100644 index ad6fe1875..000000000 --- a/arc-runtime/macros/src/lib.rs +++ /dev/null @@ -1,317 +0,0 @@ -#![feature(proc_macro_span)] - -use proc_macro::TokenStream; -use proc_macro2 as pm2; - -mod proc_macro_derives; -mod proc_macro_attrs { - pub mod rewrite { - pub mod driver; - pub mod enums; - pub mod externs; - pub mod functions; - pub mod impls; - pub mod nonpersistent_tasks; - pub mod persistent_tasks; - pub mod structs; - } -} -mod proc_macros; - -#[proc_macro_derive(Abstract)] -pub fn derive_abstract(input: TokenStream) -> TokenStream { - proc_macro_derives::derive_abstract(syn::parse_macro_input!(input as syn::DeriveInput)) -} - -#[proc_macro_derive(Collectable)] -pub fn derive_collectable(input: TokenStream) -> TokenStream { - proc_macro_derives::derive_collectable(syn::parse_macro_input!(input as syn::DeriveInput)) -} - -#[proc_macro_derive(Finalize)] -pub fn derive_finalize(input: TokenStream) -> TokenStream { - proc_macro_derives::derive_finalize(syn::parse_macro_input!(input as syn::DeriveInput)) -} - -#[proc_macro_derive(NoTrace)] -pub fn derive_notrace(input: TokenStream) -> TokenStream { - proc_macro_derives::derive_notrace(syn::parse_macro_input!(input as syn::DeriveInput)) -} - -#[proc_macro_derive(Trace)] -pub fn derive_trace(input: TokenStream) -> TokenStream { - proc_macro_derives::derive_trace(syn::parse_macro_input!(input as syn::DeriveInput)) -} - -#[proc_macro_derive(Garbage)] -pub fn derive_garbage(input: TokenStream) -> TokenStream { - proc_macro_derives::derive_garbage(syn::parse_macro_input!(input as syn::DeriveInput)) -} - -#[proc_macro_derive(Alloc)] -pub fn derive_alloc(input: TokenStream) -> TokenStream { - proc_macro_derives::derive_alloc(syn::parse_macro_input!(input as syn::DeriveInput)) -} - -#[proc_macro_derive(Send)] -pub fn derive_send(input: TokenStream) -> TokenStream { - proc_macro_derives::derive_send(syn::parse_macro_input!(input as syn::DeriveInput)) -} - -#[proc_macro_derive(Sync)] -pub fn derive_sync(input: TokenStream) -> TokenStream { - proc_macro_derives::derive_sync(syn::parse_macro_input!(input as syn::DeriveInput)) -} - -#[proc_macro_derive(Unpin)] -pub fn derive_unpin(input: TokenStream) -> TokenStream { - proc_macro_derives::derive_unpin(syn::parse_macro_input!(input as syn::DeriveInput)) -} - -#[proc_macro_derive(NoSerde)] -pub fn derive_noserde(input: TokenStream) -> TokenStream { - proc_macro_derives::derive_noserde(syn::parse_macro_input!(input as syn::DeriveInput)) -} - -#[proc_macro_derive(NoDebug)] -pub fn derive_nodebug(input: TokenStream) -> TokenStream { - proc_macro_derives::derive_nodebug(syn::parse_macro_input!(input as syn::DeriveInput)) -} - -#[proc_macro] -pub fn call(input: TokenStream) -> TokenStream { - proc_macros::call(syn::parse_macro_input!(input as syn::Expr)) -} - -#[proc_macro] -pub fn call_async(input: TokenStream) -> TokenStream { - proc_macros::call_async(syn::parse_macro_input!(input as syn::Expr)) -} - -#[proc_macro] -pub fn call_indirect(input: TokenStream) -> TokenStream { - proc_macros::call_indirect(syn::parse_macro_input!(input as syn::Expr)) -} - -/// Enwraps a value into an enum-variant. -/// -/// ``` -/// use arc_runtime::prelude::*; -/// mod foo { -/// use arc_runtime::prelude::*; -/// #[rewrite] -/// pub enum Bar { -/// Baz(i32), -/// Qux(i32) -/// } -/// } -/// let x = enwrap!(foo::Bar::Baz, 5); -/// ``` -#[proc_macro] -pub fn enwrap(input: TokenStream) -> TokenStream { - proc_macros::enwrap(input) -} - -/// Returns `true` if enum is a certain variant, else `false`. -/// -/// ``` -/// use arc_runtime::prelude::*; -/// mod foo { -/// use arc_runtime::prelude::*; -/// #[rewrite] -/// pub enum Bar { -/// Baz(i32), -/// Qux(i32) -/// } -/// } -/// -/// let x = enwrap!(foo::Bar::Baz, 5); -/// assert!(is!(foo::Bar::Baz, x)); -/// ``` -#[proc_macro] -pub fn is(input: TokenStream) -> TokenStream { - proc_macros::is(input) -} - -/// Unwraps a value out of an enum-variant. -/// -/// ``` -/// use arc_runtime::prelude::*; -/// mod foo { -/// use arc_runtime::prelude::*; -/// #[rewrite] -/// pub enum Bar { -/// Baz(i32), -/// Qux(i32) -/// } -/// } -/// -/// let x = enwrap!(foo::Bar::Baz, 5); -/// let y = unwrap!(foo::Bar::Baz, x); -/// ``` -#[proc_macro] -pub fn unwrap(input: TokenStream) -> TokenStream { - proc_macros::unwrap(input) -} - -/// Constructs a struct. -/// -/// ``` -/// use arc_runtime::prelude::*; -/// mod foo { -/// use arc_runtime::prelude::*; -/// #[rewrite] -/// pub struct Bar { -/// x: i32, -/// y: i32 -/// } -/// } -/// let x = new!(foo::Bar { x: i32, y: i32 }); -/// ``` -#[proc_macro] -pub fn new(input: TokenStream) -> TokenStream { - proc_macros::new(input) -} - -#[proc_macro] -pub fn vector(input: TokenStream) -> TokenStream { - proc_macros::vector(input) -} - -#[proc_macro] -pub fn erase(input: TokenStream) -> TokenStream { - proc_macros::erase(input) -} - -#[proc_macro] -pub fn unerase(input: TokenStream) -> TokenStream { - proc_macros::unerase(input) -} - -#[proc_macro] -pub fn push(input: TokenStream) -> TokenStream { - proc_macros::push(input) -} - -#[proc_macro] -pub fn pull(input: TokenStream) -> TokenStream { - proc_macros::pull(input) -} - -#[proc_macro] -pub fn pull_transition(input: TokenStream) -> TokenStream { - proc_macros::pull_transition(input) -} - -#[proc_macro] -pub fn push_transition(input: TokenStream) -> TokenStream { - proc_macros::push_transition(input) -} - -#[proc_macro] -pub fn transition(input: TokenStream) -> TokenStream { - proc_macros::transition(input) -} - -#[proc_macro] -pub fn terminate(input: TokenStream) -> TokenStream { - proc_macros::terminate(input) -} - -#[proc_macro] -pub fn wait(input: TokenStream) -> TokenStream { - proc_macros::wait(input) -} - -#[proc_macro_attribute] -pub fn rewrite(attr: TokenStream, input: TokenStream) -> TokenStream { - let attr = syn::parse_macro_input!(attr as syn::AttributeArgs); - let item = syn::parse_macro_input!(input as syn::Item); - match item { - syn::Item::Enum(item) => proc_macro_attrs::rewrite::enums::rewrite(attr, item), - syn::Item::Struct(item) => proc_macro_attrs::rewrite::structs::rewrite(attr, item), - syn::Item::Fn(item) if has_meta_name_val("unmangled", &get_metas(&attr)) => { - proc_macro_attrs::rewrite::externs::rewrite(attr, item) - } - syn::Item::Fn(item) - if item.sig.asyncness.is_some() && has_meta_key("nonpersistent", &get_metas(&attr)) => - { - proc_macro_attrs::rewrite::nonpersistent_tasks::rewrite(attr, item) - } - syn::Item::Mod(item) if has_meta_key("persistent", &get_metas(&attr)) => { - proc_macro_attrs::rewrite::persistent_tasks::rewrite(attr, item) - } - syn::Item::Fn(item) if has_meta_key("main", &get_metas(&attr)) => { - proc_macro_attrs::rewrite::driver::rewrite(attr, item) - } - syn::Item::Fn(item) => proc_macro_attrs::rewrite::functions::rewrite(attr, item), - syn::Item::Impl(item) => proc_macro_attrs::rewrite::impls::rewrite(attr, item), - _ => panic!("#[rewrite] expects an enum, struct, function, impl, or module as input."), - } -} - -pub(crate) fn new_id(s: impl ToString) -> syn::Ident { - syn::Ident::new(&s.to_string(), pm2::Span::call_site()) -} - -pub(crate) fn get_metas(attr: &[syn::NestedMeta]) -> Vec { - attr.into_iter() - .filter_map(|a| match a { - syn::NestedMeta::Meta(m) => Some(m.clone()), - _ => None, - }) - .collect() -} - -pub(crate) fn has_attr_key(name: &str, attr: &[syn::Attribute]) -> bool { - attr.iter() - .any(|a| matches!(a.parse_meta(), Ok(syn::Meta::Path(x)) if x.is_ident(name))) -} - -pub(crate) fn has_meta_key(name: &str, meta: &[syn::Meta]) -> bool { - meta.iter() - .any(|m| matches!(m, syn::Meta::Path(x) if x.is_ident(name))) -} - -pub(crate) fn has_meta_name_val(name: &str, meta: &[syn::Meta]) -> bool { - meta.iter() - .any(|m| matches!(m, syn::Meta::NameValue(x) if x.path.is_ident(name))) -} - -pub(crate) fn _has_nested_meta_key(name: &str, meta: &[syn::NestedMeta]) -> bool { - meta.iter().any(|m| match m { - syn::NestedMeta::Meta(syn::Meta::Path(x)) if x.is_ident(name) => true, - _ => false, - }) -} - -#[allow(unused)] -pub(crate) fn get_attr_val(name: &str, attr: &[syn::NestedMeta]) -> syn::Ident { - attr.iter() - .find_map(|arg| match arg { - syn::NestedMeta::Meta(meta) => match meta { - syn::Meta::NameValue(nv) if nv.path.is_ident(name) => match &nv.lit { - syn::Lit::Str(x) => { - Some(x.parse().expect("Expected attr value to be an identifier")) - } - _ => None, - }, - _ => None, - }, - syn::NestedMeta::Lit(_) => None, - }) - .unwrap_or_else(|| panic!("`{} = ` missing from identifiers", name)) -} - -pub(crate) fn split_name_type(params: Vec) -> (Vec, Vec) { - params - .into_iter() - .map(|p| match p { - syn::FnArg::Receiver(_) => unreachable!(), - syn::FnArg::Typed(p) => match *p.pat { - syn::Pat::Ident(i) => (i.ident, *p.ty), - _ => unreachable!(), - }, - }) - .unzip() -} diff --git a/arc-runtime/macros/src/proc_macro_attrs/rewrite/driver.rs b/arc-runtime/macros/src/proc_macro_attrs/rewrite/driver.rs deleted file mode 100644 index ebbb6f40a..000000000 --- a/arc-runtime/macros/src/proc_macro_attrs/rewrite/driver.rs +++ /dev/null @@ -1,49 +0,0 @@ -use proc_macro as pm; -use crate::new_id; - -pub(crate) fn rewrite(_attr: syn::AttributeArgs, item: syn::ItemFn) -> pm::TokenStream { - let block = &item.block; - let id = item.sig.ident; - let component_id = new_id(format!("{}Component", id)); - let run_id = new_id(format!("{}_run", id)); - - quote::quote! ( - - #[derive(ComponentDefinition, Actor)] - struct #component_id { - ctx: ComponentContext, - } - - impl #component_id { - fn new() -> Self { - Self { - ctx: ComponentContext::uninitialised() - } - } - } - - #[rewrite] - fn #run_id() { - #block - } - - impl ComponentLifecycle for #component_id { - fn on_start(&mut self) -> Handled { - let component = self.ctx().component(); - let mutator = instantiate_immix(ImmixOptions::default()); - let ctx = Context::new(component, mutator); - call!(#run_id()); - self.ctx().system().shutdown_async(); - Handled::DieNow - } - } - - pub fn #id() { - let system = KompactConfig::default().build().unwrap(); - let component = system.create(move || #component_id::new()); - system.start(&component); - system.await_termination(); - } - ) - .into() -} diff --git a/arc-runtime/macros/src/proc_macro_attrs/rewrite/enums.rs b/arc-runtime/macros/src/proc_macro_attrs/rewrite/enums.rs deleted file mode 100644 index 87227cef0..000000000 --- a/arc-runtime/macros/src/proc_macro_attrs/rewrite/enums.rs +++ /dev/null @@ -1,160 +0,0 @@ -//! Codegen for enums - -use proc_macro as pm; -use quote::quote; - -use crate::new_id; - -#[allow(unused)] -pub(crate) fn rewrite(_: syn::AttributeArgs, mut item: syn::ItemEnum) -> pm::TokenStream { - let (_, type_generics, where_clause) = item.generics.split_for_impl(); - - let mut sharable_impl_generics = item.generics.params.clone(); - let mut sendable_impl_generics = item.generics.params.clone(); - - sharable_impl_generics.iter_mut().for_each(|g| { - if let syn::GenericParam::Type(t) = g { - t.bounds.push(syn::parse_quote!(Sharable)) - } - }); - sendable_impl_generics.iter_mut().for_each(|g| { - if let syn::GenericParam::Type(t) = g { - t.bounds.push(syn::parse_quote!(Sendable)) - } - }); - let sharable_impl_generics = quote::quote!(<#sharable_impl_generics>); - let sendable_impl_generics = quote::quote!(<#sendable_impl_generics>); - - let into_generics: Vec<_> = item - .generics - .params - .iter() - .filter_map(|g| { - if let syn::GenericParam::Type(t) = g { - let id = &t.ident; - Some(quote::quote!(#id::T)) - } else { - None - } - }) - .collect(); - let into_generics = if into_generics.is_empty() { - quote::quote!() - } else { - quote::quote!(<#(#into_generics),*>) - }; - - let abstract_id = item.ident.clone(); - let concrete_id = new_id(format!("Concrete{}", abstract_id)); - let sharable_mod_id = new_id(format!("sharable_{}", abstract_id)); - let sendable_mod_id = new_id(format!("sendable_{}", abstract_id)); - - let mut concrete_sharable_item = item.clone(); - let mut concrete_sendable_item = item.clone(); - - concrete_sharable_item - .generics - .params - .iter_mut() - .for_each(|g| { - if let syn::GenericParam::Type(t) = g { - t.bounds.push(syn::parse_quote!(Sharable)) - } - }); - concrete_sendable_item - .generics - .params - .iter_mut() - .for_each(|g| { - if let syn::GenericParam::Type(t) = g { - t.bounds.push(syn::parse_quote!(Sendable)) - } - }); - - concrete_sharable_item.ident = concrete_id.clone(); - concrete_sendable_item.ident = concrete_id.clone(); - - concrete_sendable_item - .variants - .iter_mut() - .for_each(|f| { - f.fields.iter_mut().for_each(|f| { - let ty = f.ty.clone(); - if let syn::Type::Path(t) = &ty { - if !item.generics.params.iter().any(|x| match x { - syn::GenericParam::Type(x) => t.path.is_ident(&x.ident), - _ => false, - }) { - f.ty = syn::parse_quote!(<#ty as DynSharable>::T); - } - } else { - f.ty = syn::parse_quote!(<#ty as DynSharable>::T); - } - }) - }); - - let variant_id = concrete_sharable_item - .variants - .iter() - .map(|v| &v.ident) - .collect::>(); - - quote!( - - use arc_runtime::prelude::*; - pub mod #sharable_mod_id { - use super::*; - use arc_runtime::prelude::*; - - #[derive(Clone, Debug, Abstract, Send, Sync, Unpin, Alloc, Collectable, Finalize, Trace)] - pub struct #abstract_id #sharable_impl_generics (pub Gc<#concrete_id #type_generics>) #where_clause; - - #[derive(Clone, Debug, Collectable, Finalize, Trace)] - #concrete_sharable_item - } - - pub mod #sendable_mod_id { - use super::*; - use arc_runtime::prelude::*; - - #[derive(Clone, Debug, From, Abstract, Serialize, Deserialize)] - #[serde(bound = "")] - #[from(forward)] - pub struct #abstract_id #sendable_impl_generics(pub Box<#concrete_id #type_generics>) #where_clause; - - #[derive(Clone, Debug, Serialize, Deserialize)] - #[serde(bound = "")] - #concrete_sendable_item - } - - use #sharable_mod_id::#abstract_id; - use #sharable_mod_id::#concrete_id::*; - use #sharable_mod_id::#concrete_id; - - impl #sharable_impl_generics DynSharable for #sharable_mod_id::#abstract_id #type_generics #where_clause { - type T = #sendable_mod_id::#abstract_id #into_generics; - fn into_sendable(&self, ctx: Context) -> Self::T { - match &*self.0 { - #( - #sharable_mod_id::#concrete_id::#variant_id(x) => - #sendable_mod_id::#concrete_id::#variant_id(x.clone().into_sendable(ctx)).into() - ),* - } - } - } - - impl #sendable_impl_generics DynSendable for #sendable_mod_id::#abstract_id #type_generics #where_clause { - type T = #sharable_mod_id::#abstract_id #into_generics; - fn into_sharable(&self, ctx: Context) -> Self::T { - match &*self.0 { - #( - #sendable_mod_id::#concrete_id::#variant_id(x) => - #sharable_mod_id::#concrete_id::#variant_id(x.into_sharable(ctx)).alloc(ctx) - ),* - } - } - } - - ) - .into() -} diff --git a/arc-runtime/macros/src/proc_macro_attrs/rewrite/externs.rs b/arc-runtime/macros/src/proc_macro_attrs/rewrite/externs.rs deleted file mode 100644 index 2a27dd8b4..000000000 --- a/arc-runtime/macros/src/proc_macro_attrs/rewrite/externs.rs +++ /dev/null @@ -1,21 +0,0 @@ -use crate::get_attr_val; -use proc_macro as pm; - -pub(crate) fn rewrite(attr: syn::AttributeArgs, mut item: syn::ItemFn) -> pm::TokenStream { - let unmangled = get_attr_val("unmangled", &attr); - if unmangled != item.sig.ident { - let tys = item.sig.inputs.iter().map(|arg| { - if let syn::FnArg::Typed(p) = arg { - &p.ty - } else { - unreachable!() - } - }); - item.sig.abi = None; - item.sig.inputs = syn::parse_quote!(x: (#(#tys,)*), ctx: Context); - item.block = syn::parse_quote!({ #unmangled(x, ctx) }); - quote::quote!(#item).into() - } else { - quote::quote!().into() - } -} diff --git a/arc-runtime/macros/src/proc_macro_attrs/rewrite/functions.rs b/arc-runtime/macros/src/proc_macro_attrs/rewrite/functions.rs deleted file mode 100644 index b522a852d..000000000 --- a/arc-runtime/macros/src/proc_macro_attrs/rewrite/functions.rs +++ /dev/null @@ -1,208 +0,0 @@ -use crate::has_attr_key; -use proc_macro as pm; -use proc_macro2 as pm2; -// use quote::quote; -use quote::quote; -use std::collections::HashMap; -use syn::visit_mut::VisitMut; - -pub(crate) fn rewrite(_attr: syn::AttributeArgs, mut item: syn::ItemFn) -> pm::TokenStream { - item.sig.generics.params.iter_mut().for_each(|p| { - if let syn::GenericParam::Type(ref mut p) = *p { - p.bounds.push(syn::parse_quote!(Sharable)); - } - }); - use crate::new_id; - Visitor::default().visit_item_fn_mut(&mut item); - let (ids, tys): (Vec<_>, Vec<_>) = item - .sig - .inputs - .iter() - .map(|x| match x { - syn::FnArg::Receiver(_) => unreachable!(), - syn::FnArg::Typed(t) => (&t.pat, &t.ty), - }) - .unzip(); - - let id = new_id(format!("_{}", item.sig.ident)); - let mut wrapper_item = item.clone(); - if wrapper_item.sig.asyncness.is_some() { - wrapper_item.block = syn::parse_quote!({ #id(#(#ids,)* ctx).await }); - } else { - wrapper_item.block = syn::parse_quote!({ #id(#(#ids,)* ctx) }); - } - wrapper_item.sig.inputs = syn::parse_quote!((#(#ids,)*) : (#(#tys,)*), ctx: Context); - item.sig.ident = id; - item.sig.inputs.push(syn::parse_quote!(ctx: Context)); - quote::quote!( - #wrapper_item - #item - ) - .into() -} - -pub(crate) struct Visitor { - scopes: Vec>, -} - -impl Default for Visitor { - fn default() -> Self { - Self { - scopes: vec![HashMap::new()], - } - } -} - -#[derive(Debug, Clone, Copy)] -enum MemKind { - Heap, - Stack, -} - -impl VisitMut for Visitor { - // Every function call must pass an implicit context parameter - fn visit_expr_call_mut(&mut self, i: &mut syn::ExprCall) { - i.args.push(syn::parse_quote!(ctx)); - syn::visit_mut::visit_expr_call_mut(self, i); - } - - fn visit_pat_ident_mut(&mut self, i: &mut syn::PatIdent) { - let kind = MemKind::Heap; - - self.scopes - .last_mut() - .map(|s| s.insert(i.ident.clone(), kind)) - .unwrap(); - } - - fn visit_pat_type_mut(&mut self, i: &mut syn::PatType) { - let kind = if is_primitive(&i.ty) { - MemKind::Stack - } else { - MemKind::Heap - }; - - let last = self.scopes.last_mut().unwrap(); - match i.pat.as_ref() { - syn::Pat::Ident(p) => { - last.insert(p.ident.clone(), kind); - } - syn::Pat::Tuple(p) => { - for p in p.elems.iter() { - match p { - syn::Pat::Ident(p) => { - last.insert(p.ident.clone(), kind); - } - _ => panic!("Expected id- or tuple-id pattern, got {}", quote!(#i)), - } - } - } - _ => panic!("Expected id- or tuple-id pattern, got {}", quote!(#i)), - } - } - - fn visit_block_mut(&mut self, i: &mut syn::Block) { - self.scopes.push(HashMap::new()); - syn::visit_mut::visit_block_mut(self, i); - self.scopes.pop(); - } - - fn visit_expr_assign_mut(&mut self, i: &mut syn::ExprAssign) { - syn::visit_mut::visit_expr_mut(self, &mut i.right); - } - - fn visit_expr_mut(&mut self, i: &mut syn::Expr) { - syn::visit_mut::visit_expr_mut(self, i); - if let syn::Expr::Path(expr) = i { - if let Some(ident) = get_path_ident(&expr.path) { - if let Some(MemKind::Heap) = self.scopes.iter().rev().find_map(|s| s.get(&ident)) { - *i = syn::parse_quote!(#ident.clone()) - } - } - } - } - - fn visit_expr_macro_mut(&mut self, i: &mut syn::ExprMacro) { - syn::visit_mut::visit_expr_macro_mut(self, i); - i.mac.tokens = self.visit_token_stream(i.mac.tokens.clone()); - } - - // Visit expr before pattern - fn visit_local_mut(&mut self, i: &mut syn::Local) { - if let Some(it) = &mut i.init { - self.visit_expr_mut(&mut *(it).1); - } - self.visit_pat_mut(&mut i.pat); - } - - // Every let binding must use the context parameter for allocation - fn visit_stmt_mut(&mut self, i: &mut syn::Stmt) { - syn::visit_mut::visit_stmt_mut(self, i); - if let syn::Stmt::Local(l) = i { - if has_attr_key("alloc", &l.attrs) { - let expr = &l.init.as_ref().unwrap().1; - match &l.pat { - syn::Pat::Ident(pat) => { - *i = syn::parse_quote!(letroot!(#pat = ctx.mutator().shadow_stack(), #expr);); - } - syn::Pat::Type(pat) => { - if !is_primitive(&*pat.ty) { - *i = syn::parse_quote!(letroot!(#pat = ctx.mutator().shadow_stack(), #expr);); - } - } - _ => todo!(), - } - } - } - } -} - -fn is_primitive(t: &syn::Type) -> bool { - match t { - syn::Type::Path(p) => [ - "i8", "i16", "i32", "i64", "u8", "u16", "u32", "u64", "f32", "f64", "unit", - ] - .contains(&p.path.segments.last().unwrap().ident.to_string().as_str()), - syn::Type::Reference(tr) => match &*tr.elem { - syn::Type::Path(p) => { - ["str"].contains(&p.path.segments.last().unwrap().ident.to_string().as_str()) - } - _ => false, - }, - _ => false, - } -} - -fn get_path_ident(p: &syn::Path) -> Option { - if p.segments.len() == 1 { - Some(p.segments[0].ident.clone()) - } else { - None - } -} - -impl Visitor { - fn visit_token_stream(&mut self, tokens: pm2::TokenStream) -> pm2::TokenStream { - let mut result = pm2::TokenStream::new(); - for token in tokens { - let token = match &token { - pm2::TokenTree::Group(g) => { - let stream = self.visit_token_stream(g.stream()); - let delim = g.delimiter(); - pm2::Group::new(delim, stream).into() - } - pm2::TokenTree::Punct(_) => token, - pm2::TokenTree::Ident(i) => { - if let Some(MemKind::Heap) = self.scopes.iter().rev().find_map(|s| s.get(&i)) { - result.extend(quote::quote!((#i.clone()))); - continue; - } - token - } - pm2::TokenTree::Literal(_) => token, - }; - result.extend([token]); - } - result - } -} diff --git a/arc-runtime/macros/src/proc_macro_attrs/rewrite/impls.rs b/arc-runtime/macros/src/proc_macro_attrs/rewrite/impls.rs deleted file mode 100644 index 27753020e..000000000 --- a/arc-runtime/macros/src/proc_macro_attrs/rewrite/impls.rs +++ /dev/null @@ -1,48 +0,0 @@ -use proc_macro as pm; -use quote::quote; - -pub(crate) fn rewrite(_attr: syn::AttributeArgs, item: syn::ItemImpl) -> pm::TokenStream { - use crate::new_id; - let mut functions = Vec::new(); - let ty_name = if let syn::Type::Path(x) = item.self_ty.as_ref() { - &x.path.segments.last().unwrap().ident - } else { - unreachable!("Found non-path type in impl") - }; - let (impl_generics, ty_generics, where_clause) = item.generics.split_for_impl(); - for item in &item.items { - if let syn::ImplItem::Method(item) = item { - let mut inputs = item.sig.inputs.clone().into_iter().collect::>(); - let method_name = &item.sig.ident; - let name = new_id(format!("{}_{}", ty_name, method_name)); - let output = &item.sig.output; - if matches!(inputs[0], syn::FnArg::Receiver(_)) { - inputs[0] = syn::parse_quote!(self_param: #ty_name #ty_generics); - } - let ctx = match inputs.pop().unwrap() { - syn::FnArg::Receiver(_) => unreachable!("Receiver in impl method"), - syn::FnArg::Typed(p) => p, - }; - let ctx_id = ctx.pat; - let ctx_ty = ctx.ty; - let (ids, tys): (Vec<_>, Vec<_>) = inputs - .iter() - .map(|i| match i { - syn::FnArg::Receiver(_) => unreachable!(), - syn::FnArg::Typed(i) => (&i.pat, &i.ty), - }) - .unzip(); - functions.push(quote! { - pub fn #name #impl_generics ((#(#ids,)*):(#(#tys,)*), #ctx_id: #ctx_ty) #output #where_clause { - #ty_name::#method_name(#(#ids,)* #ctx_id) - } - }); - } - } - - quote::quote!( - #item - #(#functions)* - ) - .into() -} diff --git a/arc-runtime/macros/src/proc_macro_attrs/rewrite/nonpersistent_tasks.rs b/arc-runtime/macros/src/proc_macro_attrs/rewrite/nonpersistent_tasks.rs deleted file mode 100644 index db52a423a..000000000 --- a/arc-runtime/macros/src/proc_macro_attrs/rewrite/nonpersistent_tasks.rs +++ /dev/null @@ -1,168 +0,0 @@ -#![allow(unused)] - -use crate::has_attr_key; -use crate::new_id; -use crate::split_name_type; - -use proc_macro as pm; -use proc_macro2 as pm2; -use quote::quote; -use syn::parse::*; -use syn::punctuated::Punctuated; -use syn::token::Comma; - -/// ```no_run -/// task id(a:Pullable[i32], b:Pullable[i32]): (c:Pushable[i32], d:Pushable[i32]) { -/// val x = receive a; -/// val y = receive b; -/// c ! x; -/// d ! y; -/// } -/// ``` -/// -/// Becomes -/// -/// ```no_run -/// #[rewrite(impersistent)] -/// mod my_task { -/// fn task(a:Pullable, #[output] b:Pushable) { -/// let x = pull!(a); -/// push!(b, x); -/// } -/// } -/// ``` - -pub(crate) fn rewrite(attr: syn::AttributeArgs, item: syn::ItemFn) -> pm::TokenStream { - let task_name = item.sig.ident.clone(); - - let mod_name = new_id(format!("mod_{task_name}")); - - let task_body = item.block.clone(); - - let (iparams, oparams): (Vec<_>, Vec<_>) = - item.sig.inputs.clone().into_iter().partition(|p| match p { - syn::FnArg::Receiver(_) => unreachable!(), - syn::FnArg::Typed(p) => !has_attr_key("output", &p.attrs), - }); - - let (iparam_name, iparam_type): (Vec<_>, Vec<_>) = split_name_type(iparams); - let (oparam_name, oparam_type): (Vec<_>, Vec<_>) = split_name_type(oparams); - - let oparam_pull_name = oparam_name - .iter() - .map(|name| new_id(format!("{name}_pull"))) - .collect::>(); - - let oparam_pull_type = oparam_type - .iter() - .map(|ty| quote!(<#ty as Channel>::Pullable)) - .collect::>(); - - quote!( - use #mod_name::#task_name; - #[allow(clippy::all)] - #[allow(non_snake_case)] - #[allow(unreachable_code)] - pub mod #mod_name { - use arc_runtime::prelude::*; - use arc_runtime::data::channels::local::multicast::Pushable; - use arc_runtime::data::channels::local::multicast::Pullable; - use super::*; - - #[derive(Send)] - struct Task { - pub ctx: ComponentContext, - pub event_time: DateTime, - #(pub #iparam_name: #iparam_type,)* - #(pub #oparam_name: #oparam_type,)* - } - - #[allow(unused_parens)] - pub fn #task_name((#(#iparam_name,)*): (#(#iparam_type,)*), ctx: Context) -> (#(#oparam_pull_type),*) { - #(let #iparam_name = #iparam_name.into_sendable(ctx);)* - #(let #iparam_name = #iparam_name.into_sharable(ctx);)* - #(let (#oparam_name, #oparam_pull_name) = <#oparam_type as Channel>::channel(ctx);)* - ctx.launch(move || Task::new(#(#iparam_name,)* #(#oparam_name,)*)); - (#(#oparam_pull_name),*) - } - - impl Task { - #[allow(deprecated)] // NOTE: DateTime::unix_epoch is deprecated - fn new(#(#iparam_name: #iparam_type,)* #(#oparam_name: #oparam_type,)*) -> Self { - Self { - ctx: ComponentContext::uninitialised(), - event_time: DateTime::new(date!(1970-01-01), time!(0:0:0)), - #(#iparam_name,)* - #(#oparam_name,)* - } - } - - async fn run(#(mut #iparam_name: #iparam_type,)* #(#oparam_name: #oparam_type,)* ctx: Context) -> Control<()> { - #task_body - Control::Finished - } - } - - impl ComponentDefinition for Task { - fn setup(&mut self, self_component: Arc>) { - self.ctx.initialise(self_component.clone()); - } - - fn execute(&mut self, _max_events: usize, _skip: usize) -> ExecuteResult { - ExecuteResult::new(false, 0, 0) - } - - fn ctx_mut(&mut self) -> &mut ComponentContext { - &mut self.ctx - } - - fn ctx(&self) -> &ComponentContext { - &self.ctx - } - - fn type_name() -> &'static str { - stringify!(#task_name) - } - } - - impl Actor for Task { - type Message = TaskMessage; - - fn receive_local(&mut self, _: Self::Message) -> Handled { - Handled::Ok - } - - fn receive_network(&mut self, _: NetMessage) -> Handled { - todo!() - } - } - - impl ComponentLifecycle for Task { - fn on_start(&mut self) -> Handled { - self.spawn_local(move |async_self| async move { - let component = async_self.ctx().component(); - let mutator = instantiate_immix(ImmixOptions::default()); - let ctx = Context::new(component, mutator); - #(let #iparam_name = async_self.#iparam_name.clone();)* - #(let #oparam_name = async_self.#oparam_name.clone();)* - Task::run(#(#iparam_name,)* #(#oparam_name,)* ctx).await; - ctx.destroy(); - Handled::DieNow - }); - Handled::Ok - } - } - - impl DynamicPortAccess for Task { - fn get_provided_port_as_any(&mut self, _: TypeId) -> Option<&mut dyn Any> { - unreachable!(); - } - - fn get_required_port_as_any(&mut self, _: TypeId) -> Option<&mut dyn Any> { - unreachable!(); - } - } - } - ) - .into() -} diff --git a/arc-runtime/macros/src/proc_macro_attrs/rewrite/persistent_tasks.rs b/arc-runtime/macros/src/proc_macro_attrs/rewrite/persistent_tasks.rs deleted file mode 100644 index 94144f318..000000000 --- a/arc-runtime/macros/src/proc_macro_attrs/rewrite/persistent_tasks.rs +++ /dev/null @@ -1,232 +0,0 @@ -#![allow(unused)] - -use crate::has_attr_key; -use crate::new_id; -use crate::split_name_type; - -use proc_macro as pm; -use proc_macro2 as pm2; -use quote::quote; -use syn::parse::*; -use syn::punctuated::Punctuated; -use syn::token::Comma; - -/// ```no_run -/// task id(a:Pullable[i32], b:Pullable[i32]): (c:Pushable[i32], d:Pushable[i32]) { -/// val x = receive a; -/// val y = receive b; -/// c ! x; -/// d ! y; -/// } -/// ``` -/// -/// Becomes -/// -/// ```no_run -/// #[rewrite(impersistent)] -/// mod my_task { -/// fn task(a:Pullable, #[output] b:Pushable) { -/// let x = pull!(a); -/// push!(b, x); -/// } -/// } -/// ``` - -pub(crate) fn rewrite(attr: syn::AttributeArgs, item: syn::ItemMod) -> pm::TokenStream { - let task_name = item.ident.clone(); - - let mod_name = new_id(format!("mod_{task_name}")); - - let items = item.content.expect("Expected module to contain items").1; - - let mut state = items - .iter() - .filter_map(|item| match item { - syn::Item::Struct(item) => Some(item), - _ => None, - }) - .collect::>(); - - let state_name = state - .iter() - .map(|item| item.ident.clone()) - .collect::>(); - - let final_state_name = state_name.last().unwrap().clone(); - let first_state_name = state_name.first().unwrap().clone(); - - let transition = items - .iter() - .filter_map(|item| match item { - syn::Item::Fn(item) if item.sig.ident != "task" => Some(item), - _ => None, - }) - .collect::>(); - - let transition_name = transition - .iter() - .map(|item| item.sig.ident.clone()) - .collect::>(); - - let task = items - .iter() - .find_map(|item| match item { - syn::Item::Fn(item) if item.sig.ident == "task" => Some(item), - _ => None, - }) - .expect(r#"Expected a function with name "task" in module"#); - - let (iparams, oparams): (Vec<_>, Vec<_>) = - task.sig.inputs.clone().into_iter().partition(|p| match p { - syn::FnArg::Receiver(_) => unreachable!(), - syn::FnArg::Typed(p) => !has_attr_key("output", &p.attrs), - }); - - let (iparam_name, iparam_type): (Vec<_>, Vec<_>) = split_name_type(iparams); - let (oparam_name, oparam_type): (Vec<_>, Vec<_>) = split_name_type(oparams); - - let oparam_pull_name = oparam_name - .iter() - .map(|name| new_id(format!("{name}_pull"))) - .collect::>(); - - let oparam_pull_type = oparam_type - .iter() - .map(|ty| quote!(<#ty as Channel>::Pullable)) - .collect::>(); - - quote!( - use #mod_name::#task_name; - #[allow(clippy::all)] - #[allow(non_snake_case)] - #[allow(unreachable_code)] - #[allow(unused)] - pub mod #mod_name { - use arc_runtime::prelude::*; - use arc_runtime::data::channels::local::multicast::Pushable; - use arc_runtime::data::channels::local::multicast::Pullable; - use super::*; - - #[derive(Send)] - struct Task { - pub ctx: ComponentContext, - #(pub #iparam_name: #iparam_type,)* - #(pub #oparam_name: #oparam_type,)* - } - - impl Task { - fn new(#(#iparam_name: #iparam_type,)* #(#oparam_name: #oparam_type,)*) -> Self { - Self { - ctx: ComponentContext::uninitialised(), - #(#iparam_name,)* - #(#oparam_name,)* - } - } - } - - pub fn #task_name((#(#iparam_name,)*): (#(#iparam_type,)*), ctx: Context) -> (#(#oparam_pull_type),*) { - #(let #iparam_name = #iparam_name.into_sendable(ctx);)* - #(let #iparam_name = #iparam_name.into_sharable(ctx);)* - #(let (#oparam_name, #oparam_pull_name) = <#oparam_type as Channel>::channel(ctx);)* - ctx.launch(move || Task::new(#(#iparam_name,)* #(#oparam_name,)*)); - (#(#oparam_pull_name),*) - } - - struct Pair(State, Context); - - #[derive(From)] - enum State { - #(#state_name(#state_name),)* - } - - #(#[derive(New)] #state)* - - #(#transition)* - - impl Future for Pair { - type Output = (); - - fn poll(self: Pin<&mut Self>, cx: &mut PollContext) -> Poll { - cx.waker().wake_by_ref(); - let Pair(state, ctx) = self.get_mut(); - replace_with_or_abort_and_return(state, |state| transition(state, cx, *ctx)) - } - } - - fn transition(mut state: State, cx: &mut PollContext, ctx: Context) -> (Poll<()>, State) { - loop { - let (poll, new_state) = match state { - #(State::#state_name(state) => #transition_name(state, cx, ctx),)* - }; - match &poll { - Ready(()) if matches!(&new_state, State::#final_state_name(_)) => return (poll, new_state), - Ready(()) => state = new_state, - Pending => return (poll, new_state), - } - } - } - - impl ComponentDefinition for Task { - fn setup(&mut self, self_component: Arc>) { - self.ctx.initialise(self_component.clone()); - } - - fn execute(&mut self, _max_events: usize, _skip: usize) -> ExecuteResult { - ExecuteResult::new(false, 0, 0) - } - - fn ctx_mut(&mut self) -> &mut ComponentContext { - &mut self.ctx - } - - fn ctx(&self) -> &ComponentContext { - &self.ctx - } - - fn type_name() -> &'static str { - stringify!(#task_name) - } - } - - impl Actor for Task { - type Message = TaskMessage; - - fn receive_local(&mut self, _: Self::Message) -> Handled { - Handled::Ok - } - - fn receive_network(&mut self, _: NetMessage) -> Handled { - todo!() - } - } - - impl ComponentLifecycle for Task { - fn on_start(&mut self) -> Handled { - self.spawn_local(move |mut async_self| async move { - let component = async_self.ctx().component(); - let mutator = instantiate_immix(ImmixOptions::default()); - let ctx = Context::new(component, mutator); - #(let #iparam_name = async_self.#iparam_name.clone();)* - #(let #oparam_name = async_self.#oparam_name.clone();)* - let state = #first_state_name::new(#(#iparam_name,)* #(#oparam_name,)*).into(); - Pair(state, ctx).await; - ctx.destroy(); - Handled::DieNow - }); - Handled::Ok - } - } - - impl DynamicPortAccess for Task { - fn get_provided_port_as_any(&mut self, _: TypeId) -> Option<&mut dyn Any> { - unreachable!(); - } - - fn get_required_port_as_any(&mut self, _: TypeId) -> Option<&mut dyn Any> { - unreachable!(); - } - } - } - ) - .into() -} diff --git a/arc-runtime/macros/src/proc_macro_attrs/rewrite/structs.rs b/arc-runtime/macros/src/proc_macro_attrs/rewrite/structs.rs deleted file mode 100644 index 066ab6205..000000000 --- a/arc-runtime/macros/src/proc_macro_attrs/rewrite/structs.rs +++ /dev/null @@ -1,152 +0,0 @@ -use proc_macro as pm; -use quote::quote; - -use crate::new_id; - -#[allow(unused)] -pub(crate) fn rewrite(args: syn::AttributeArgs, mut item: syn::ItemStruct) -> pm::TokenStream { - item.fields.iter_mut().for_each(|field| { - field.vis = syn::parse_quote!(pub); - }); - let (_, type_generics, where_clause) = item.generics.split_for_impl(); - - let mut sharable_impl_generics = item.generics.params.clone(); - let mut sendable_impl_generics = item.generics.params.clone(); - - sharable_impl_generics.iter_mut().for_each(|g| { - if let syn::GenericParam::Type(t) = g { - t.bounds.push(syn::parse_quote!(Sharable)) - } - }); - sendable_impl_generics.iter_mut().for_each(|g| { - if let syn::GenericParam::Type(t) = g { - t.bounds.push(syn::parse_quote!(Sendable)) - } - }); - let sharable_impl_generics = quote::quote!(<#sharable_impl_generics>); - let sendable_impl_generics = quote::quote!(<#sendable_impl_generics>); - - let into_generics: Vec<_> = item - .generics - .params - .iter() - .filter_map(|g| { - if let syn::GenericParam::Type(t) = g { - let id = &t.ident; - Some(quote::quote!(#id::T)) - } else { - None - } - }) - .collect(); - let into_generics = if into_generics.is_empty() { - quote::quote!() - } else { - quote::quote!(<#(#into_generics),*>) - }; - - let abstract_id = item.ident.clone(); - let concrete_id = new_id(format!("Concrete{}", item.ident)); - let sharable_mod_id = new_id(format!("sharable_{}", item.ident)); - let sendable_mod_id = new_id(format!("sendable_{}", item.ident)); - - let mut concrete_sharable_item = item.clone(); - let mut concrete_sendable_item = item.clone(); - - concrete_sharable_item - .generics - .params - .iter_mut() - .for_each(|g| { - if let syn::GenericParam::Type(t) = g { - t.bounds.push(syn::parse_quote!(Sharable)) - } - }); - concrete_sendable_item - .generics - .params - .iter_mut() - .for_each(|g| { - if let syn::GenericParam::Type(t) = g { - t.bounds.push(syn::parse_quote!(Sendable)) - } - }); - - concrete_sharable_item.ident = concrete_id.clone(); - concrete_sendable_item.ident = concrete_id.clone(); - - // Generate the sendable struct - concrete_sendable_item - .fields - .iter_mut() - .for_each(|f| { - let ty = f.ty.clone(); - if let syn::Type::Path(t) = &ty { - if !item.generics.params.iter().any(|x| match x { - syn::GenericParam::Type(x) => t.path.is_ident(&x.ident), - _ => false, - }) { - f.ty = syn::parse_quote!(<#ty as DynSharable>::T); - } - } else { - f.ty = syn::parse_quote!(<#ty as DynSharable>::T); - } - }); - - let field_id = concrete_sendable_item - .fields - .iter() - .map(|f| &f.ident) - .collect::>(); - - quote!( - - use arc_runtime::prelude::*; - pub mod #sharable_mod_id { - use super::*; - use arc_runtime::prelude::*; - - #[derive(Clone, Debug, Send, Sync, Alloc, Unpin, From, Deref, Abstract, Collectable, Finalize, Trace)] - pub struct #abstract_id #sharable_impl_generics(pub Gc<#concrete_id #type_generics>) #where_clause; - - #[derive(Clone, Debug, Collectable, Finalize, Trace)] - #concrete_sharable_item - } - - mod #sendable_mod_id { - use super::*; - use arc_runtime::prelude::*; - - #[derive(Clone, Debug, Deref, From, Abstract, Deserialize, Serialize)] - #[serde(bound = "")] - #[from(forward)] - pub struct #abstract_id #sendable_impl_generics(pub Box<#concrete_id #type_generics>) #where_clause; - - #[derive(Clone, Debug, Deserialize, Serialize)] - #[serde(bound = "")] - #concrete_sendable_item - } - - use #sharable_mod_id::#abstract_id; - use #sharable_mod_id::#concrete_id; - - impl #sharable_impl_generics DynSharable for #sharable_mod_id::#abstract_id #type_generics #where_clause { - type T = #sendable_mod_id::#abstract_id #into_generics; - fn into_sendable(&self, ctx: Context) -> Self::T { - #sendable_mod_id::#concrete_id { - #(#field_id: (self.0).#field_id.clone().into_sendable(ctx)),* - }.into() - } - } - - impl #sendable_impl_generics DynSendable for #sendable_mod_id::#abstract_id #type_generics #where_clause { - type T = #sharable_mod_id::#abstract_id #into_generics; - fn into_sharable(&self, ctx: Context) -> Self::T { - #sharable_mod_id::#concrete_id { - #(#field_id: (self.0).#field_id.into_sharable(ctx)),* - }.alloc(ctx) - } - } - - ).into() -} diff --git a/arc-runtime/macros/src/proc_macro_derives.rs b/arc-runtime/macros/src/proc_macro_derives.rs deleted file mode 100644 index 6eddb5860..000000000 --- a/arc-runtime/macros/src/proc_macro_derives.rs +++ /dev/null @@ -1,158 +0,0 @@ -use crate::new_id; -use proc_macro::TokenStream; - -pub fn derive_abstract(input: syn::DeriveInput) -> TokenStream { - let (impl_generics, type_generics, where_clause) = input.generics.split_for_impl(); - let abstract_ident = &input.ident; - let concrete_ident = new_id(format!("Concrete{}", abstract_ident)); - quote::quote!( - impl #impl_generics Abstract for #abstract_ident #type_generics #where_clause { - type Concrete = #concrete_ident #type_generics; - } - impl #impl_generics Concrete for #concrete_ident #type_generics #where_clause { - type Abstract = #abstract_ident #type_generics; - } - ) - .into() -} - -pub fn derive_collectable(input: syn::DeriveInput) -> TokenStream { - let (impl_generics, type_generics, where_clause) = input.generics.split_for_impl(); - let name = &input.ident; - quote::quote!(impl #impl_generics Collectable #where_clause for #name #type_generics {}).into() -} - -pub fn derive_finalize(input: syn::DeriveInput) -> TokenStream { - let (impl_generics, type_generics, where_clause) = input.generics.split_for_impl(); - let name = &input.ident; - quote::quote!(unsafe impl #impl_generics Finalize for #name #type_generics #where_clause {}) - .into() -} - -pub fn derive_notrace(input: syn::DeriveInput) -> TokenStream { - let (impl_generics, type_generics, where_clause) = input.generics.split_for_impl(); - let name = &input.ident; - quote::quote!( - unsafe impl #impl_generics Trace for #name #type_generics #where_clause { - fn trace(&mut self, vis: &mut dyn Visitor) { } - } - ) - .into() -} - -pub fn derive_trace(input: syn::DeriveInput) -> TokenStream { - let (impl_generics, type_generics, where_clause) = input.generics.split_for_impl(); - let name = &input.ident; - match &input.data { - syn::Data::Struct(data) => { - let field = data.fields.iter().enumerate().map(|(index, field)| { - field - .ident - .as_ref() - .map(|ident| quote::quote!(#ident)) - .unwrap_or_else(|| { - let index = syn::Index::from(index); - quote::quote!(#index) - }) - }); - quote::quote!( - unsafe impl #impl_generics Trace for #name #type_generics #where_clause { - fn trace(&mut self, vis: &mut dyn Visitor) { - #(self.#field.trace(vis));* - } - } - ) - .into() - } - syn::Data::Enum(data) => { - let variant = data.variants.iter().map(|v| &v.ident); - quote::quote!( - unsafe impl #impl_generics Trace for #name #type_generics #where_clause { - fn trace(&mut self, vis: &mut dyn Visitor) { - match self { - #(Self::#variant(data) => data.trace(vis),)* - } - } - } - ) - .into() - } - syn::Data::Union(_) => unreachable!(), - } -} - -pub fn derive_garbage(input: syn::DeriveInput) -> TokenStream { - let mut collectable = derive_collectable(input.clone()); - let finalize = derive_finalize(input.clone()); - let trace = derive_trace(input.clone()); - collectable.extend(finalize); - collectable.extend(trace); - collectable -} - -pub fn derive_nodebug(input: syn::DeriveInput) -> TokenStream { - let (impl_generics, type_generics, where_clause) = input.generics.split_for_impl(); - let name = &input.ident; - quote::quote!( - impl #impl_generics std::fmt::Debug for #name #type_generics #where_clause { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(f, "{}", stringify!(#name)) - } - } - ) - .into() -} - -pub fn derive_alloc(input: syn::DeriveInput) -> TokenStream { - let (impl_generics, type_generics, where_clause) = input.generics.split_for_impl(); - let abstract_id = &input.ident; - let concrete_id = new_id(format!("Concrete{}", abstract_id)); - quote::quote!( - impl #impl_generics Alloc<#abstract_id #type_generics> for #concrete_id #type_generics #where_clause { - fn alloc(self, ctx: Context) -> #abstract_id #type_generics { - #abstract_id(ctx.mutator().allocate(self, AllocationSpace::New).into()) - } - } - ) - .into() -} - -pub fn derive_send(input: syn::DeriveInput) -> TokenStream { - let (impl_generics, type_generics, where_clause) = input.generics.split_for_impl(); - let name = &input.ident; - quote::quote!(unsafe impl #impl_generics Send for #name #type_generics #where_clause {}).into() -} - -pub fn derive_sync(input: syn::DeriveInput) -> TokenStream { - let (impl_generics, type_generics, where_clause) = input.generics.split_for_impl(); - let name = &input.ident; - quote::quote!(unsafe impl #impl_generics Sync for #name #type_generics #where_clause {}).into() -} - -pub fn derive_unpin(input: syn::DeriveInput) -> TokenStream { - let (impl_generics, type_generics, where_clause) = input.generics.split_for_impl(); - let name = &input.ident; - quote::quote!(impl #impl_generics Unpin for #name #type_generics #where_clause {}).into() -} - -pub fn derive_noserde(input: syn::DeriveInput) -> TokenStream { - let mut deserialize_generics = input.generics.clone(); - deserialize_generics.params.push(syn::parse_quote!('i)); - let (serialize_impl_generics, type_generics, where_clause) = input.generics.split_for_impl(); - let (deserialize_impl_generics, _, _) = deserialize_generics.split_for_impl(); - let name = &input.ident; - quote::quote!( - impl #serialize_impl_generics Serialize for #name #type_generics #where_clause { - fn serialize(&self, _: S) -> Result { - panic!("Attempted to serialize an unserializable type {}", stringify!(#name)) - } - } - - impl #deserialize_impl_generics Deserialize<'i> for #name #type_generics #where_clause { - fn deserialize>(_: D) -> Result { - panic!("Attempted to deserialize an undeserializable type {}", stringify!(#name)) - } - } - ) - .into() -} diff --git a/arc-runtime/macros/src/proc_macros.rs b/arc-runtime/macros/src/proc_macros.rs deleted file mode 100644 index 32e939c1a..000000000 --- a/arc-runtime/macros/src/proc_macros.rs +++ /dev/null @@ -1,285 +0,0 @@ -use crate::new_id; - -use proc_macro as pm; -use proc_macro::TokenStream; -use proc_macro2 as pm2; - -pub fn call(input: syn::Expr) -> TokenStream { - match input { - syn::Expr::Call(e) => { - let func = e.func; - let args = e.args; - if args.len() == 1 && !args.trailing_punct() { - quote::quote!(#func((#args,), ctx)).into() - } else { - quote::quote!(#func((#args), ctx)).into() - } - } - _ => panic!("Expected function call expression"), - } -} - -pub fn call_async(input: syn::Expr) -> TokenStream { - match input { - syn::Expr::Call(e) => { - let func = e.func; - let args = e.args; - if args.len() == 1 && !args.trailing_punct() { - quote::quote!(#func((#args,), ctx).await).into() - } else { - quote::quote!(#func((#args), ctx).await).into() - } - } - _ => panic!("Expected function call expression"), - } -} - -pub fn call_indirect(input: syn::Expr) -> TokenStream { - match input { - syn::Expr::Call(e) => { - let func = e.func; - let args = e.args; - if args.len() == 1 && !args.trailing_punct() { - quote::quote!((#func.ptr)((#args,), ctx)).into() - } else { - quote::quote!((#func.ptr)((#args), ctx)).into() - } - } - _ => panic!("Expected function call expression"), - } -} - -pub fn enwrap(input: TokenStream) -> TokenStream { - let mut iter = input.into_iter(); - let mut path: syn::Path = parse(&mut iter); - concrete_enum_path(&mut path); - let data: syn::Expr = parse(&mut iter); - quote::quote!(#path(#data).alloc(ctx)).into() -} - -pub fn is(input: TokenStream) -> TokenStream { - let mut iter = input.into_iter(); - let mut path: syn::Path = parse(&mut iter); - concrete_enum_path(&mut path); - let data: syn::Expr = parse(&mut iter); - quote::quote!(matches!(*#data.0.clone(), #path(_))).into() -} - -pub fn unwrap(input: TokenStream) -> TokenStream { - let mut iter = input.into_iter(); - let mut path: syn::Path = parse(&mut iter); - concrete_enum_path(&mut path); - let expr: syn::Expr = parse(&mut iter); - quote::quote!(if let #path(v) = &*#expr.0 { v.clone() } else { unreachable!() }).into() -} - -pub fn new(input: TokenStream) -> TokenStream { - let mut iter = input.into_iter(); - let mut data: syn::ExprStruct = parse(&mut iter); - concrete_struct_path(&mut data.path); - quote::quote!((#data).alloc(ctx)).into() -} - -pub fn vector(input: TokenStream) -> TokenStream { - let mut iter = input.into_iter(); - let data: Vec = parse_all(&mut iter); - quote::quote!(_vector!([#(#data),*], ctx)).into() -} - -pub fn erase(input: TokenStream) -> TokenStream { - let mut iter = input.into_iter(); - let expr: syn::Expr = parse(&mut iter); - let ident: syn::Ident = parse(&mut iter); - let (wrapper_impl, wrapper_cons) = generate_wrapper(&ident); - let wrapper = wrapper_cons(expr); - quote::quote!( - { - #wrapper_impl - Erased::erase(#wrapper, ctx) - } - ) - .into() -} - -pub fn unerase(input: TokenStream) -> TokenStream { - let mut iter = input.into_iter(); - let expr: syn::Expr = parse(&mut iter); - let id: syn::Ident = parse(&mut iter); - let (wrapper_impl, _) = generate_wrapper(&id); - quote::quote!( - { - #wrapper_impl - Erased::unerase::<#id>(#expr, ctx) - } - ) - .into() -} - -pub fn push(input: TokenStream) -> TokenStream { - let mut iter = input.into_iter(); - let channel: syn::Expr = parse(&mut iter); - let data: syn::Expr = parse(&mut iter); - quote::quote!(#channel.push(#data, ctx).await?).into() -} - -pub fn pull(input: TokenStream) -> TokenStream { - let mut iter = input.into_iter(); - let channel: syn::Expr = parse(&mut iter); - quote::quote!(#channel.pull(ctx).await?).into() -} - -/// Create a future for pulling data from a channel. -pub fn pull_transition(input: TokenStream) -> TokenStream { - let mut iter = input.into_iter(); - let future: syn::Pat = parse(&mut iter); - let pullable: syn::Expr = parse(&mut iter); - let state: syn::Expr = parse(&mut iter); - quote::quote!( - { - let mut tmp = #pullable.clone(); - let #future = async move { tmp.pull(ctx).await }.boxed(); - transition!(#state); - } - ) - .into() -} - -/// Create a future for pushing data into a channel. -pub fn push_transition(input: TokenStream) -> TokenStream { - let mut iter = input.into_iter(); - let future: syn::Pat = parse(&mut iter); - let pushable: syn::Expr = parse(&mut iter); - let data: syn::Expr = parse(&mut iter); - let state: syn::Expr = parse(&mut iter); - quote::quote!( - { - let mut tmp = #pushable.clone(); - let #future = async move { tmp.push(#data, ctx).await }.boxed(); - transition!(#state); - } - ) - .into() -} - -// /// Transition to a new state. -pub fn transition(input: TokenStream) -> TokenStream { - let mut iter = input.into_iter(); - let state: syn::Expr = parse(&mut iter); - quote::quote!(return (Pending, #state.into())).into() -} - -// /// Terminate the state machine. -pub fn terminate(input: TokenStream) -> TokenStream { - let mut iter = input.into_iter(); - let state: syn::Expr = parse(&mut iter); - quote::quote!(return (Ready(()), #state.into())).into() -} - -// /// Wait until a future completes. -pub fn wait(input: TokenStream) -> TokenStream { - let mut iter = input.into_iter(); - let arg: syn::Expr = parse(&mut iter); - let cx: syn::Expr = parse(&mut iter); - let finished: syn::Expr = parse(&mut iter); - let pending: syn::Expr = parse(&mut iter); - quote::quote!( - match #arg.as_mut().poll(#cx) { - Ready(Finished) => terminate!(#finished), - Ready(Continue(x)) => x, - Pending => transition!(#pending), - } - ) - .into() -} - -fn generate_wrapper(id: &syn::Ident) -> (pm2::TokenStream, impl Fn(syn::Expr) -> pm2::TokenStream) { - let span = id.span().unwrap().start(); - let line = span.line; - let column = span.column; - let abstract_id: syn::Ident = new_id(format!("Wrapper_{}_{}", line, column)); - let concrete_id: syn::Ident = new_id(format!("ConcreteWrapper_{}_{}", line, column)); - let sharable_wrapper_mod_id = new_id(format!("sharable_{}", abstract_id)); - let sendable_wrapper_mod_id = new_id(format!("sendable_{}", abstract_id)); - let wrapper_impl = quote::quote!( - mod #sharable_wrapper_mod_id { - use arc_runtime::prelude::*; - #[derive(Clone, Debug, Send, Sync, Unpin, From, Deref, Abstract, Collectable, Finalize, Trace)] - #[repr(transparent)] - pub struct #abstract_id(pub #concrete_id); - #[derive(Clone, Debug, Collectable, Finalize, Trace)] - #[repr(transparent)] - pub struct #concrete_id(pub super::#id); - } - - mod #sendable_wrapper_mod_id { - use arc_runtime::prelude::*; - #[derive(Clone, Debug, Deref, From, Abstract, Serialize, Deserialize)] - #[repr(transparent)] - pub struct #abstract_id(pub #concrete_id); - #[derive(Clone, Debug, Serialize, Deserialize)] - #[repr(transparent)] - pub struct #concrete_id(pub ::T); - } - - impl DynSharable for #sharable_wrapper_mod_id::#abstract_id { - type T = ::T; - fn into_sendable(&self, ctx: Context) -> Self::T { - Self::T::erase(#sendable_wrapper_mod_id::#abstract_id(#sendable_wrapper_mod_id::#concrete_id(self.0.0.into_sendable(ctx))), ctx) - } - } - - impl DynSendable for #sendable_wrapper_mod_id::#abstract_id { - type T = Erased; - fn into_sharable(&self, ctx: Context) -> Self::T { - Self::T::erase(#sharable_wrapper_mod_id::#abstract_id(#sharable_wrapper_mod_id::#concrete_id(self.0.0.into_sharable(ctx))), ctx) - } - } - ); - let wrapper_cons = move |expr| quote::quote!(#sharable_wrapper_mod_id::#abstract_id(#sharable_wrapper_mod_id::#concrete_id(#expr))); - (wrapper_impl, wrapper_cons) -} - -fn concrete_enum_path(path: &mut syn::Path) { - let mut x = path.segments.iter_mut(); - match (x.next(), x.next(), x.next()) { - (Some(_), Some(i), Some(_)) => i.ident = new_id(format!("Concrete{}", i.ident)), - (Some(i), Some(_), None) => i.ident = new_id(format!("Concrete{}", i.ident)), - (Some(_), None, None) => {} - _ => unreachable!(), - } -} - -fn concrete_struct_path(path: &mut syn::Path) { - let mut x = path.segments.iter_mut(); - match (x.next(), x.next()) { - (Some(_), Some(i)) => i.ident = new_id(format!("Concrete{}", i.ident)), - (Some(i), None) => i.ident = new_id(format!("Concrete{}", i.ident)), - _ => unreachable!(), - } -} - -fn parse(input: &mut impl Iterator) -> T { - let mut stream = pm::TokenStream::new(); - while let Some(token) = input.next() { - match token { - pm::TokenTree::Punct(t) if t.as_char() == ',' => break, - _ => stream.extend([token]), - } - } - syn::parse::(stream).unwrap() -} - -fn parse_all(input: &mut impl Iterator) -> Vec { - let mut nodes = Vec::new(); - let mut stream = pm::TokenStream::new(); - while let Some(token) = input.next() { - match token { - pm::TokenTree::Punct(t) if t.as_char() == ',' => { - nodes.push(syn::parse::(stream).unwrap()); - stream = pm::TokenStream::new(); - } - _ => stream.extend([token]), - } - } - nodes -} diff --git a/arc-runtime/src/context.rs b/arc-runtime/src/context.rs deleted file mode 100644 index 810fcb187..000000000 --- a/arc-runtime/src/context.rs +++ /dev/null @@ -1,59 +0,0 @@ -use comet::immix::Immix; -use comet::immix::ImmixOptions; -use comet::mutator::MutatorRef; -use derive_more::Constructor as New; -use kompact::prelude::*; - -use crate::prelude::Send; -use crate::prelude::Sync; -use crate::prelude::Unpin; -use std::sync::Arc; - -/// The context of a single task. -#[derive(Copy, Clone, Send, Sync, Unpin)] -pub struct Context(*mut Core); - -/// The data stored by the context. -#[derive(New)] -struct Core { - pub component: Arc, - pub mutator: MutatorRef, -} - -impl Context { - #[allow(clippy::mut_from_ref)] - fn as_mut(&self) -> &mut Core { - // SAFETY: This is safe because the context is only ever accessed from a single task. - unsafe { &mut *self.0 } - } -} - -impl Context { - pub fn new(component: Arc, mutator: MutatorRef) -> Self { - Self(Box::leak(Box::new(Core::new(component, mutator))) as *mut Core) - } - pub fn destroy(self) { - // SAFETY: This is safe because the context is managed entirely by the code generator. This - // function is only ever called once. - unsafe { - Box::from_raw(self.0); - } - } - #[allow(clippy::mut_from_ref)] - pub fn mutator(&self) -> &mut MutatorRef { - &mut self.as_mut().mutator - } - #[allow(clippy::mut_from_ref)] - pub fn component(&self) -> &mut Arc { - &mut self.as_mut().component - } - pub fn launch(&self, f: F) - where - F: FnOnce() -> C, - C: ComponentDefinition + 'static, - { - let system = self.as_mut().component.system(); - let c = system.create(f); - system.start(&c); - } -} diff --git a/arc-runtime/src/control.rs b/arc-runtime/src/control.rs deleted file mode 100644 index 51ee9783d..000000000 --- a/arc-runtime/src/control.rs +++ /dev/null @@ -1,29 +0,0 @@ -use std::ops::ControlFlow; -use std::ops::FromResidual; -use std::ops::Try; - -#[derive(Debug)] -pub enum Control { - Continue(T), - Finished, -} - -impl FromResidual<()> for Control { - fn from_residual(residual: ()) -> Self { - Control::Finished - } -} - -impl Try for Control { - type Output = T; - type Residual = (); - fn from_output(output: T) -> Self { - Control::Continue(output) - } - fn branch(self) -> ControlFlow<(), T> { - match self { - Control::Continue(output) => ControlFlow::Continue(output), - Control::Finished => ControlFlow::Break(()), - } - } -} diff --git a/arc-runtime/src/data/cells.rs b/arc-runtime/src/data/cells.rs deleted file mode 100644 index 996c28063..000000000 --- a/arc-runtime/src/data/cells.rs +++ /dev/null @@ -1,43 +0,0 @@ -use crate::prelude::*; - -pub mod sharable { - use crate::prelude::*; - #[derive(Clone, From, Finalize, Collectable, Trace, Debug, Send, Sync, Unpin)] - pub struct Cell(pub Gc); -} - -pub mod sendable { - use crate::prelude::*; - #[derive(Clone, From, Send, Serialize, Deserialize)] - #[serde(bound = "")] - pub struct Cell(pub T); -} - -impl DynSharable for sharable::Cell { - type T = sendable::Cell; - fn into_sendable(&self, ctx: Context) -> Self::T { - sendable::Cell(self.0.into_sendable(ctx)) - } -} - -impl DynSendable for sendable::Cell { - type T = sharable::Cell; - fn into_sharable(&self, ctx: Context) -> Self::T { - sharable::Cell::new(self.0.into_sharable(ctx), ctx) - } -} - -pub use sharable::Cell; - -#[rewrite] -impl Cell { - pub fn new(v: T, ctx: Context) -> Cell { - Cell(ctx.mutator().allocate(v, AllocationSpace::New).into()) - } - pub fn get(self, ctx: Context) -> T { - self.0.inner() - } - pub fn set(mut self, v: T, ctx: Context) { - self.0 = ctx.mutator().allocate(v, AllocationSpace::New).into(); - } -} diff --git a/arc-runtime/src/data/channels/datagen.rs b/arc-runtime/src/data/channels/datagen.rs deleted file mode 100644 index 2d2e1e2b4..000000000 --- a/arc-runtime/src/data/channels/datagen.rs +++ /dev/null @@ -1,47 +0,0 @@ -#![allow(deprecated)] -#![allow(dead_code)] - -use crate::data::Data; -use crate::prelude::DateTime; - -use rand::distributions::Distribution; -use rand::distributions::Standard; -use rand::Rng; - -use std::marker::PhantomData; - -pub struct DataGen { - offset: i64, - count: usize, - rng: rand::prelude::ThreadRng, - marker: PhantomData, -} - -impl DataGen { - fn new(count: usize) -> Self { - Self { - offset: 0, - count, - rng: rand::prelude::thread_rng(), - marker: PhantomData, - } - } -} - -impl Iterator for DataGen -where - Standard: Distribution, -{ - type Item = (DateTime, T); - - fn next(&mut self) -> Option { - self.offset += 1; - self.count -= 1; - if self.count > 0 { - todo!() - // Some((DateTime::from_unix_timestamp(self.offset), self.rng.gen())) - } else { - None - } - } -} diff --git a/arc-runtime/src/data/channels/local/multicast.rs b/arc-runtime/src/data/channels/local/multicast.rs deleted file mode 100644 index 0e407a024..000000000 --- a/arc-runtime/src/data/channels/local/multicast.rs +++ /dev/null @@ -1,60 +0,0 @@ -use kompact::prelude::*; -use std::marker::PhantomData; -use tokio::sync::broadcast::Receiver; -use tokio::sync::broadcast::Sender; - -use crate::control::Control; -use crate::data::Sharable; - -use crate::prelude::*; - -#[derive(Collectable, Finalize, NoTrace, NoSerde, NoDebug)] -pub struct Pushable(Sender); - -impl Clone for Pushable { - fn clone(&self) -> Self { - Pushable(self.0.clone()) - } -} - -#[derive(Collectable, Finalize, NoTrace, NoSerde, NoDebug)] -pub struct Pullable(Sender, Receiver); - -impl Clone for Pullable { - fn clone(&self) -> Self { - Pullable(self.0.clone(), self.0.subscribe()) - } -} - -crate::data::convert_reflexive!({T: Sharable} Pushable); -crate::data::convert_reflexive!({T: Sharable} Pullable); - -crate::data::channels::impl_channel!(); - -/// TODO: Processing will currently only stop if all pullers are dropped. -pub fn channel(_: Context) -> (Pushable, Pullable) -where - T::T: Sendable, -{ - let (l, r) = tokio::sync::broadcast::channel(100); - (Pushable(l.clone()), Pullable(l, r)) -} - -impl Pushable { - pub async fn push(&self, data: T, ctx: Context) -> Control<()> { - self.0 - .send(data.into_sendable(ctx)) - .map(|_| Control::Continue(())) - .unwrap_or(Control::Finished) - } -} - -impl Pullable { - pub async fn pull(&mut self, ctx: Context) -> Control<::T> { - self.1 - .recv() - .await - .map(|v| Control::Continue(v.into_sharable(ctx))) - .unwrap_or(Control::Finished) - } -} diff --git a/arc-runtime/src/data/channels/local/parallel.rs b/arc-runtime/src/data/channels/local/parallel.rs deleted file mode 100644 index 84d4e6a30..000000000 --- a/arc-runtime/src/data/channels/local/parallel.rs +++ /dev/null @@ -1,68 +0,0 @@ -use derive_more::Constructor as New; -use kompact::prelude::*; -use tokio::sync::broadcast::Receiver; -use tokio::sync::broadcast::Sender; - -use std::collections::hash_map::DefaultHasher; -use std::hash::Hash; -use std::hash::Hasher; -use std::marker::PhantomData; - -use crate::prelude::Collectable; -use crate::prelude::Context; -use crate::prelude::Control; -use crate::prelude::Deserialize; -use crate::prelude::Deserializer; -use crate::prelude::DynSendable; -use crate::prelude::DynSharable; -use crate::prelude::Finalize; -use crate::prelude::NoDebug; -use crate::prelude::NoSerde; -use crate::prelude::NoTrace; -use crate::prelude::Sendable; -use crate::prelude::Serialize; -use crate::prelude::Serializer; -use crate::prelude::Sharable; -use crate::prelude::Trace; -use crate::prelude::Visitor; - -use crate::data::channels::local::multicast as mc; - -#[derive(Clone, New, Collectable, Finalize, NoTrace, NoSerde, NoDebug)] -pub struct Pushable { - lanes: Vec>, - parallelism: u64, - extractor: fn(T) -> K, -} - -#[derive(Clone, New, Collectable, Finalize, NoTrace, NoSerde, NoDebug)] -pub struct Pullable { - lanes: Vec>, -} - -crate::data::convert_reflexive!({T: Sharable, K: Sharable + Hash} Pushable); -crate::data::convert_reflexive!({T: Sharable} Pullable); - -pub fn channel( - parallelism: u64, - extractor: fn(T) -> K, - ctx: Context, -) -> (Pushable, Pullable) { - let (l, r) = (0..parallelism).map(|_| mc::channel(ctx)).unzip(); - (Pushable::new(l, parallelism, extractor), Pullable::new(r)) -} - -impl Pushable { - pub async fn push(&self, data: T, ctx: Context) -> Control<()> { - let mut key = DefaultHasher::new(); - (self.extractor)(data.clone()).hash(&mut key); - let lane = key.finish() % self.parallelism; - self.lanes[lane as usize].push(data, ctx).await - } -} - -impl Pullable { - pub async fn pull(&mut self, lane: usize, ctx: Context) -> Control<::T> { - self.lanes[lane].pull(ctx).await - } -} diff --git a/arc-runtime/src/data/channels/local/window.rs b/arc-runtime/src/data/channels/local/window.rs deleted file mode 100644 index 03410518f..000000000 --- a/arc-runtime/src/data/channels/local/window.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub struct Pushable(T); -pub struct Pullable(T); diff --git a/arc-runtime/src/data/channels/mod.rs b/arc-runtime/src/data/channels/mod.rs deleted file mode 100644 index 758ba897d..000000000 --- a/arc-runtime/src/data/channels/mod.rs +++ /dev/null @@ -1,44 +0,0 @@ -use crate::context::Context; -use kompact::prelude::KompactSystem; - -// pub mod remote { -// pub mod multicast; -// pub mod parallel; -// pub mod window; -// } -pub mod local { - pub mod multicast; - pub mod parallel; - // pub mod window; -} - -/// A trait for a channel which is implemented for both endpoints (`Pushable` and `Pullable`). -pub trait Channel { - type Pushable; - type Pullable; - fn channel(ctx: Context) -> (Self::Pushable, Self::Pullable); -} - -macro_rules! impl_channel { - () => { - impl crate::data::channels::Channel for Pushable { - type Pushable = Self; - type Pullable = Pullable; - - fn channel(ctx: Context) -> (Self::Pushable, Self::Pullable) { - channel(ctx) - } - } - - impl crate::data::channels::Channel for Pullable { - type Pushable = Pushable; - type Pullable = Self; - - fn channel(ctx: Context) -> (Self::Pushable, Self::Pullable) { - channel(ctx) - } - } - }; -} - -pub(crate) use impl_channel; diff --git a/arc-runtime/src/data/channels/remote/broadcast.rs b/arc-runtime/src/data/channels/remote/broadcast.rs deleted file mode 100644 index dbb8fcba8..000000000 --- a/arc-runtime/src/data/channels/remote/broadcast.rs +++ /dev/null @@ -1,161 +0,0 @@ -//! A Broadcast channel. -//! Every data item in the channel can be pulled at most once by each consumer. -//! The channel maintains an offset for each consumer, and a minimum offset. -//! This requires that the number of consumers is known in advance. -//! Can be used to implement a "data-parallel" operator. - -use kompact::prelude::*; - -use crate::control::Control; -use crate::data::*; -use crate::prelude::*; - -use std::collections::HashMap; -use std::collections::VecDeque; - -#[derive(ComponentDefinition)] -pub(crate) struct Channel { - ctx: ComponentContext, - push_queue: VecDeque>, - data_queue: VecDeque, - pull_queue: VecDeque>, - min_offset: usize, - offsets: HashMap, - opened: bool, - pushers: usize, - pullers: usize, -} - -impl Channel { - fn new() -> Self { - Self { - ctx: ComponentContext::uninitialised(), - push_queue: VecDeque::with_capacity(100), - data_queue: VecDeque::with_capacity(10), - pull_queue: VecDeque::with_capacity(100), - min_offset: 0, - offsets: vec![(0, 0); 1].into_iter().collect(), - opened: false, - pullers: 1, - pushers: 1, - } - } -} - -pub fn channel(ctx: &mut Context) -> (Pushable, Pullable) { - let chan = ctx.component.system().create(Channel::new); - ctx.component.system().start(&chan); - (Pushable(chan.actor_ref()), Pullable(chan.actor_ref(), 1)) -} - -impl ComponentLifecycle for Channel {} - -#[derive(Debug)] -pub(crate) enum Message { - PushRequest(Ask), - PullRequest(Ask), - Open, - AddPusher, - AddPuller(Ask<(), usize>), - DelPusher, - DelPuller(usize), -} - -impl Actor for Channel { - type Message = Message; - - fn receive_local(&mut self, msg: Self::Message) -> Handled { - match msg { - Message::PushRequest(ask) => self.push_queue.push_back(ask), - Message::PullRequest(ask) => self.pull_queue.push_back(ask), - Message::Open => self.opened = true, - Message::AddPusher => self.pushers += 1, - Message::AddPuller(ask) => { - ask.reply(self.pullers); - self.pullers += 1; - } - Message::DelPusher => self.pushers -= 1, - Message::DelPuller(id) => { - self.pullers -= 1; - self.offsets.remove(&id); - } - } - if self.opened { - while !self.push_queue.is_empty() - && self.data_queue.len() < self.data_queue.capacity() - { - let (promise, data) = self.push_queue.pop_front().unwrap().take(); - promise.fulfil(()).unwrap(); - self.data_queue.push_back(data); - } - while !self.pull_queue.is_empty() && !self.data_queue.is_empty() { - let (promise, id) = self.pull_queue.pop_front().unwrap().take(); - let offset = self.offsets[&id] - self.min_offset; - let data = self.data_queue.pop_front().unwrap(); - promise.fulfil(data).unwrap(); - } - } - if self.pushers == 0 || self.offsets.len() == 0 { - Handled::DieNow - } else { - Handled::Ok - } - } - - fn receive_network(&mut self, msg: NetMessage) -> Handled { - todo!() - } -} - -pub struct Pushable(pub(crate) ActorRef>); - -pub struct Pullable(pub(crate) ActorRef>, pub(crate) usize); - -impl Clone for Pushable { - fn clone(&self) -> Self { - self.0.tell(Message::AddPusher); - Pushable(self.0.clone()) - } -} - -impl Clone for Pullable { - fn clone(&self) -> Self { - let id = self - .0 - .ask_with(|promise| Message::AddPuller(Ask::new(promise, ()))) - .wait(); - Pullable(self.0.clone(), id) - } -} - -impl Drop for Pushable { - fn drop(&mut self) { - self.0.tell(Message::DelPusher); - } -} - -impl Drop for Pullable { - fn drop(&mut self) { - self.0.tell(Message::DelPuller(self.1)); - } -} - -impl Pushable { - pub async fn push(&self, data: T) -> Control<()> { - self.0 - .ask_with(|promise| Message::PushRequest(Ask::new(promise, data))) - .await - .map(Control::Continue) - .unwrap_or(Control::Finished) - } -} - -impl Pullable { - pub async fn pull(&self) -> Control { - self.0 - .ask_with(|promise| Message::PullRequest(Ask::new(promise, self.1))) - .await - .map(Control::Continue) - .unwrap_or(Control::Finished) - } -} diff --git a/arc-runtime/src/data/channels/remote/data_parallel.rs b/arc-runtime/src/data/channels/remote/data_parallel.rs deleted file mode 100644 index e69de29bb..000000000 diff --git a/arc-runtime/src/data/channels/remote/task_parallel.rs b/arc-runtime/src/data/channels/remote/task_parallel.rs deleted file mode 100644 index 3050ccacd..000000000 --- a/arc-runtime/src/data/channels/remote/task_parallel.rs +++ /dev/null @@ -1,139 +0,0 @@ -use kompact::component::AbstractComponent; -use kompact::prelude::*; -use time::*; - -use crate::control::Control; -use crate::data::*; -use crate::prelude::*; - -use std::collections::HashMap; -use std::collections::VecDeque; -use std::ops::ControlFlow; -use std::ops::FromResidual; -use std::ops::Try; -use std::sync::Arc; -use std::time::Duration; - -#[derive(ComponentDefinition)] -pub(crate) struct Channel { - ctx: ComponentContext, - push_queue: VecDeque>, - data_queue: VecDeque, - pull_queue: VecDeque>, - pushers: usize, - pullers: usize, -} - -impl Channel { - pub fn new() -> Self { - Channel { - ctx: ComponentContext::uninitialised(), - push_queue: VecDeque::with_capacity(100), - data_queue: VecDeque::with_capacity(10), - pull_queue: VecDeque::with_capacity(100), - pullers: 1, - pushers: 1, - } - } -} - -pub fn channel(ctx: &mut Context) -> (Pushable, Pullable) { - let chan = ctx.component.system().create(Channel::new); - ctx.component.system().start(&chan); - (Pushable(chan.actor_ref()), Pullable(chan.actor_ref())) -} - -impl ComponentLifecycle for Channel {} - -#[derive(Debug)] -pub(crate) enum Message { - PushRequest(Ask), - PullRequest(Ask<(), T>), - AddPusher, - AddPuller, - DelPusher, - DelPuller, -} - -impl Actor for Channel { - type Message = Message; - - fn receive_local(&mut self, msg: Self::Message) -> Handled { - match msg { - Message::PushRequest(ask) => self.push_queue.push_back(ask), - Message::PullRequest(ask) => self.pull_queue.push_back(ask), - Message::AddPusher => self.pushers += 1, - Message::AddPuller => self.pullers += 1, - Message::DelPusher => self.pushers -= 1, - Message::DelPuller => self.pullers -= 1, - } - while !self.push_queue.is_empty() && self.data_queue.len() < self.data_queue.capacity() { - let (promise, data) = self.push_queue.pop_front().unwrap().take(); - promise.fulfil(()).unwrap(); - self.data_queue.push_back(data); - } - while !self.pull_queue.is_empty() && !self.data_queue.is_empty() { - let (promise, id) = self.pull_queue.pop_front().unwrap().take(); - let data = self.data_queue.pop_front().unwrap(); - promise.fulfil(data).unwrap(); - } - if self.pushers == 0 && self.data_queue.is_empty() || self.pullers == 0 { - Handled::DieNow - } else { - Handled::Ok - } - } - - fn receive_network(&mut self, msg: NetMessage) -> Handled { - todo!() - } -} - -pub struct Pushable(pub(crate) ActorRef>); - -pub struct Pullable(pub(crate) ActorRef>); - -impl Clone for Pushable { - fn clone(&self) -> Self { - self.0.tell(Message::AddPusher); - Pushable(self.0.clone()) - } -} - -impl Clone for Pullable { - fn clone(&self) -> Self { - Pullable(self.0.clone()) - } -} - -impl Drop for Pushable { - fn drop(&mut self) { - self.0.tell(Message::DelPusher); - } -} - -impl Drop for Pullable { - fn drop(&mut self) { - self.0.tell(Message::DelPuller); - } -} - -impl Pushable { - pub async fn push(&self, data: T) -> Control<()> { - self.0 - .ask_with(|promise| Message::PushRequest(Ask::new(promise, data))) - .await - .map(Control::Continue) - .unwrap_or(Control::Finished) - } -} - -impl Pullable { - pub async fn pull(&self) -> Control { - self.0 - .ask_with(|promise| Message::PullRequest(Ask::new(promise, ()))) - .await - .map(Control::Continue) - .unwrap_or(Control::Finished) - } -} diff --git a/arc-runtime/src/data/channels/remote/window.rs b/arc-runtime/src/data/channels/remote/window.rs deleted file mode 100644 index e69de29bb..000000000 diff --git a/arc-runtime/src/data/dataframe.rs b/arc-runtime/src/data/dataframe.rs deleted file mode 100644 index c1c52060a..000000000 --- a/arc-runtime/src/data/dataframe.rs +++ /dev/null @@ -1,48 +0,0 @@ -use crate::prelude::*; - -pub mod sharable { - use crate::prelude::*; - - #[derive( - Clone, From, Deref, DerefMut, Debug, Collectable, Finalize, Send, Sync, Unpin, NoTrace, - )] - #[from(forward)] - pub struct DataFrame(pub Gc); - - #[derive(Debug, Collectable, NoTrace, Finalize, Send, Sync, Unpin)] - pub struct ConcreteDataFrame(pub polars::frame::DataFrame); - - impl Alloc for ConcreteDataFrame { - fn alloc(self, ctx: Context) -> DataFrame { - DataFrame(ctx.mutator().allocate(self, AllocationSpace::New).into()) - } - } -} - -mod sendable { - use crate::prelude::*; - - #[derive(Clone, From, Send, Serialize, Deserialize)] - #[from(forward)] - pub struct String(pub ConcreteString); - - pub type ConcreteString = Box; -} - -impl DynSharable for sharable::DataFrame { - type T = (); - fn into_sendable(&self, ctx: Context) -> Self::T { - panic!("DataFrame is not sendable") - } -} - -pub use sharable::DataFrame; - -impl DataFrame { - pub fn new(ctx: Context) -> Self { - sharable::ConcreteDataFrame( - polars::frame::DataFrame::new::(vec![]).unwrap(), - ) - .alloc(ctx) - } -} diff --git a/arc-runtime/src/data/functions.rs b/arc-runtime/src/data/functions.rs deleted file mode 100644 index d9088c126..000000000 --- a/arc-runtime/src/data/functions.rs +++ /dev/null @@ -1,100 +0,0 @@ -use crate::context::Context; -use crate::data::DynSharable; -use comet::api::Collectable; -use comet::api::Finalize; -use comet::api::Trace; -use std::fmt::Debug; -use std::ptr::NonNull; - -#[macro_export] -macro_rules! declare_functions { - ($($id:ident),* $(,)?) => { - #[derive(Send, Sync, Unpin, Collectable, Finalize, NoTrace)] - pub struct Function { - pub ptr: fn(I, Context) -> O, - pub tag: FunctionTag, - } - #[derive(Debug, Copy, Send, Sync, Unpin, Serialize, Deserialize)] - pub struct FunctionTag(pub Tag, pub std::marker::PhantomData<(I, O)>); - #[derive(Debug, Clone, Copy, Send, Serialize, Deserialize)] - #[allow(non_camel_case_types)] - pub enum Tag { - $($id,)* - } - impl Clone for Function { - fn clone(&self) -> Self { - Self { ptr: self.ptr.clone(), tag: self.tag.clone() } - } - } - impl std::fmt::Debug for Function { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - Ok(()) - } - } - impl Clone for FunctionTag { - fn clone(&self) -> Self { - Self(self.0, std::marker::PhantomData) - } - } - impl DynSharable for Function { - type T = FunctionTag; - fn into_sendable(&self, ctx: Context) -> Self::T { - self.tag.clone() - } - } - impl DynSendable for FunctionTag { - type T = Function; - fn into_sharable(&self, ctx: Context) -> Self::T { - unsafe { - match self.0 { - $(Tag::$id => Function { - ptr: std::mem::transmute($id as usize), - tag: self.clone() - }),* - } - } - } - } - impl Serialize for Function { - fn serialize(&self, serializer: S) -> Result { - self.tag.0.serialize(serializer) - } - } - impl<'i, I, O> Deserialize<'i> for Function { - fn deserialize>(deserializer: D) -> Result { - unsafe { - match Tag::deserialize(deserializer)? { - $(Tag::$id => Ok(Function { - ptr: std::mem::transmute($id as usize), - tag: FunctionTag(Tag::$id, std::marker::PhantomData) - }),)* - } - } - } - } - }; -} - -#[macro_export] -macro_rules! declare { - (functions:[$($id:ident),* $(,)?], tasks:[]) => { - declare_functions! { - $($id),* - } - }; -} - -#[macro_export] -macro_rules! function { - // Create a function value - ($fun:ident) => { - Function { - ptr: $fun, - tag: FunctionTag(Tag::$fun, std::marker::PhantomData), - } - }; - // Create a function type - (($($input:ty),* $(,)?) -> $output:ty) => { - Function<($($input,)*), $output> - }; -} diff --git a/arc-runtime/src/data/garbage.rs b/arc-runtime/src/data/garbage.rs deleted file mode 100644 index 47ab59772..000000000 --- a/arc-runtime/src/data/garbage.rs +++ /dev/null @@ -1,52 +0,0 @@ -use comet::api::Collectable; -use comet::api::Finalize; -use comet::api::Trace; -use comet::immix::Immix; - -use derive_more::AsRef; - -use crate::prelude::*; - -pub trait Garbage: Collectable + Trace + Finalize {} -impl Garbage for T where T: Collectable + Trace + Finalize {} - -#[derive(AsRef, Deref, DerefMut, From, Debug)] -#[deref(forward)] -#[deref_mut(forward)] -#[as_ref(forward)] -pub struct Gc(comet::api::Gc); - -impl PartialEq for Gc { - fn eq(&self, other: &Self) -> bool { - self.0 == other.0 - } -} - -impl Clone for Gc { - fn clone(&self) -> Self { - self.0.into() - } -} - -impl Gc { - pub fn inner(self) -> T { - (*self.0).clone() - } -} - -pub trait Alloc { - fn alloc(self, ctx: Context) -> T; -} - -macro_rules! alloc_identity { - { $ty:ty } => { - impl Alloc<$ty> for $ty { - #[inline(always)] - fn alloc(self, ctx: Context) -> $ty { - self - } - } - } -} - -pub(crate) use alloc_identity; diff --git a/arc-runtime/src/data/mod.rs b/arc-runtime/src/data/mod.rs deleted file mode 100644 index de48624d9..000000000 --- a/arc-runtime/src/data/mod.rs +++ /dev/null @@ -1,68 +0,0 @@ -pub mod functions; -pub mod garbage; -pub mod primitives; -pub mod strings; -pub mod vectors; -#[cfg(feature = "dataframes")] -pub mod dataframe; -pub mod series; -pub mod channels; -pub mod cells; - -use crate::data::garbage::Garbage; - -use comet::gc_base::GcBase; -use dyn_clone::DynClone; - -use std::fmt::Debug; -use std::hash::Hash; - -use crate::prelude::*; - -pub trait Concrete { - type Abstract; -} - -pub trait Abstract { - type Concrete; -} - -pub trait DynSendable: AsyncSafe + DynClone { - type T: Sharable; - fn into_sharable(&self, ctx: Context) -> Self::T; -} - -pub trait DynSharable: AsyncSafe + DynClone + Garbage + Debug { - type T: Sendable; - fn into_sendable(&self, ctx: Context) -> Self::T; -} - -pub trait AsyncSafe: Send + Sync + Unpin {} -impl AsyncSafe for T where T: Send + Sync + Unpin {} - -pub trait Sendable: Sized + DynSendable + Clone + Serialize + DeserializeOwned {} -pub trait Sharable: Sized + DynSharable + Clone {} -pub trait DataItem: Sized + Copy + Debug + AsyncSafe {} - -impl Sharable for T where T: Sized + DynSharable + Clone {} -impl Sendable for T where T: Sized + DynSendable + Clone + Serialize + DeserializeOwned {} -impl DataItem for T where T: Sized + Copy + Debug + AsyncSafe {} - -dyn_clone::clone_trait_object!( DynSharable); -dyn_clone::clone_trait_object!( DynSendable); - -#[macro_export] -macro_rules! convert_reflexive { - {$({$($impl_generics:tt)+})* $ty:ty $({$($where_clause:tt)+})*} => { - impl $(<$($impl_generics)+>)* DynSharable for $ty $($($where_clause)+)* { - type T = Self; - fn into_sendable(&self, _: Context) -> Self { self.clone() } - } - impl $(<$($impl_generics)+>)* DynSendable for $ty $($($where_clause)+)* { - type T = Self; - fn into_sharable(&self, _: Context) -> Self { self.clone() } - } - } -} - -pub use convert_reflexive; diff --git a/arc-runtime/src/data/primitives.rs b/arc-runtime/src/data/primitives.rs deleted file mode 100644 index 1e026823b..000000000 --- a/arc-runtime/src/data/primitives.rs +++ /dev/null @@ -1,78 +0,0 @@ -use crate::context::Context; -use crate::data::convert_reflexive; -use crate::data::garbage::alloc_identity; -use crate::data::strings::String; -use crate::data::Alloc; -use crate::data::DynSendable; -use crate::data::DynSharable; -use macros::rewrite; - -pub use bool; -pub use char; -pub use f32; -pub use f64; -pub use i128; -pub use i16; -pub use i32; -pub use i64; -pub use i8; -pub use u128; -pub use u16; -pub use u32; -pub use u64; -pub use u8; -#[allow(non_camel_case_types)] -pub type unit = (); -pub type Unit = (); -pub use std::ops::Range; - -convert_reflexive!(i8); -convert_reflexive!(i16); -convert_reflexive!(i32); -convert_reflexive!(i64); -convert_reflexive!(i128); -convert_reflexive!(u8); -convert_reflexive!(u16); -convert_reflexive!(u32); -convert_reflexive!(u64); -convert_reflexive!(u128); -convert_reflexive!(f32); -convert_reflexive!(f64); -convert_reflexive!(bool); -// convert_reflexive!(char); -convert_reflexive!(unit); - -alloc_identity!(i8); -alloc_identity!(i16); -alloc_identity!(i32); -alloc_identity!(i64); -alloc_identity!(i128); -alloc_identity!(u8); -alloc_identity!(u16); -alloc_identity!(u32); -alloc_identity!(u64); -alloc_identity!(f32); -alloc_identity!(f64); -alloc_identity!(bool); -alloc_identity!(char); -alloc_identity!(unit); - -#[allow(non_upper_case_globals)] -pub const unit: unit = (); -#[allow(non_upper_case_globals)] -pub const Unit: unit = (); - -#[rewrite] -pub fn assert(b: bool) { - assert!(b); -} - -#[rewrite] -pub fn panic(s: String) { - panic!("{}", s.as_str()) -} - -#[rewrite] -pub fn print(s: String) { - println!("{}", s.as_str()) -} diff --git a/arc-runtime/src/data/series.rs b/arc-runtime/src/data/series.rs deleted file mode 100644 index e69de29bb..000000000 diff --git a/arc-runtime/src/data/strings.rs b/arc-runtime/src/data/strings.rs deleted file mode 100644 index 1d2c8a77d..000000000 --- a/arc-runtime/src/data/strings.rs +++ /dev/null @@ -1,115 +0,0 @@ -use crate::prelude::*; - -pub mod sharable { - use crate::prelude::*; - - #[derive(Clone, From, Deref, DerefMut, Debug, Collectable, Finalize, Send, Sync, Unpin)] - #[from(forward)] - pub struct String(pub Gc); - - pub type ConcreteString = comet::alloc::string::String; - - impl Alloc for ConcreteString { - fn alloc(self, ctx: Context) -> String { - String(ctx.mutator().allocate(self, AllocationSpace::New).into()) - } - } - - unsafe impl Trace for String { - fn trace(&mut self, vis: &mut dyn Visitor) { - self.0.trace(vis) - } - } -} - -mod sendable { - use crate::prelude::*; - - #[derive(Clone, From, Send, Serialize, Deserialize)] - #[from(forward)] - pub struct String(pub ConcreteString); - - pub type ConcreteString = Box; -} - -impl DynSharable for sharable::String { - type T = sendable::String; - fn into_sendable(&self, ctx: Context) -> Self::T { - self.0.to_string().into() - } -} - -impl DynSendable for sendable::String { - type T = sharable::String; - fn into_sharable(&self, ctx: Context) -> Self::T { - String::from_str(self.0.as_ref(), ctx) - } -} - -pub use sharable::String; - -#[rewrite] -impl String { - pub fn new(ctx: Context) -> String { - sharable::ConcreteString::new(ctx.mutator()).alloc(ctx) - } - - pub fn with_capacity(capacity: usize, ctx: Context) -> String { - sharable::ConcreteString::with_capacity(ctx.mutator(), capacity).alloc(ctx) - } - - pub fn push_char(mut self, ch: char, ctx: Context) { - self.0.push(ctx.mutator(), ch) - } - - pub fn push_str(mut self, s: &str, ctx: Context) { - self.0.push_str(ctx.mutator(), s) - } - - pub fn from_str(s: &str, ctx: Context) -> String { - let mut new = sharable::ConcreteString::with_capacity(ctx.mutator(), s.len()); - new.push_str(ctx.mutator(), s); - new.alloc(ctx) - } - - pub fn remove(mut self, idx: u32, _ctx: Context) -> char { - self.0.remove(idx as usize) - } - - pub fn insert_char(mut self, idx: u32, ch: char, ctx: Context) { - self.0.insert(ctx.mutator(), idx as usize, ch) - } - - pub fn is_empty(mut self, _ctx: Context) -> bool { - self.0.is_empty() - } - - pub fn split_off(mut self, at: u32, ctx: Context) -> String { - self.0.split_off(ctx.mutator(), at as usize).alloc(ctx) - } - - pub fn clear(mut self, _ctx: Context) { - self.0.clear() - } - - pub fn len(self, _ctx: Context) -> u32 { - self.0.len() as u32 - } - - pub fn from_i32(i: i32, ctx: Context) -> String { - let mut new = String::new(ctx); - new.0.push_str(ctx.mutator(), &i.to_string()); - new - } - - pub fn eq(self, other: String, ctx: Context) -> bool { - self.0.eq(&other.0) - } - - pub fn concat(self, other: String, ctx: Context) -> String { - let mut new = String::new(ctx); - new.0.push_str(ctx.mutator(), &self.0); - new.0.push_str(ctx.mutator(), &other.0); - new - } -} diff --git a/arc-runtime/src/data/vectors.rs b/arc-runtime/src/data/vectors.rs deleted file mode 100644 index b112c1a94..000000000 --- a/arc-runtime/src/data/vectors.rs +++ /dev/null @@ -1,145 +0,0 @@ -use crate::prelude::*; - -pub mod sharable { - use crate::prelude::*; - - #[derive( - Clone, From, Deref, DerefMut, Finalize, Collectable, Debug, Send, Sync, Unpin, Trace, - )] - #[from(forward)] - pub struct Vec(pub Gc>); - - pub type ConcreteVec = comet::alloc::vector::Vector; - - impl Alloc> for ConcreteVec { - fn alloc(self, ctx: Context) -> Vec { - Vec(ctx.mutator().allocate(self, AllocationSpace::New).into()) - } - } -} - -mod sendable { - use crate::prelude::*; - - #[derive(Clone, From, Send, Serialize, Deserialize)] - #[serde(bound = "")] - #[from(forward)] - pub struct Vec(pub ConcreteVec); - - pub type ConcreteVec = std::vec::Vec; -} - -impl DynSharable for sharable::Vec { - type T = sendable::Vec; - fn into_sendable(&self, ctx: Context) -> Self::T { - self.0 - .iter() - .map(|v| v.clone().into_sendable(ctx)) - .collect::>() - .into_boxed_slice() - .into() - } -} - -impl DynSendable for sendable::Vec { - type T = sharable::Vec; - fn into_sharable(&self, ctx: Context) -> Self::T { - let mut s = Vec::::with_capacity(self.0.len(), ctx); - for v in self.0.iter() { - let v = v.into_sharable(ctx); - s.0.push(ctx.mutator(), v); - } - s - } -} - -pub use sharable::Vec; - -impl Vec { - pub fn as_slice(&self, ctx: Context) -> &[T] { - self.0.as_slice() - } - pub fn retain(mut self, f: F, ctx: Context) - where - F: FnMut(&T) -> bool, - { - self.0.retain(f); - } - pub fn as_slice_mut(&mut self, ctx: Context) -> &mut [T] { - self.0.as_slice_mut() - } - - pub fn dedup(mut self, ctx: Context) - where - T: PartialEq, - { - self.0.dedup(); - } - - pub fn write_barrier(mut self, ctx: Context) { - self.0.write_barrier(ctx.mutator()) - } - - pub fn shrink_to(mut self, min_capacity: usize, ctx: Context) { - self.0.shrink_to(ctx.mutator(), min_capacity); - } - - pub fn resize(mut self, new_len: usize, value: T, ctx: Context) { - self.0.resize(ctx.mutator(), new_len, value); - } -} - -#[rewrite] -impl Vec { - pub fn new(ctx: Context) -> Vec { - sharable::ConcreteVec::::new(ctx.mutator()).alloc(ctx) - } - - pub fn with_capacity(capacity: usize, ctx: Context) -> Vec { - sharable::ConcreteVec::::with_capacity(ctx.mutator(), capacity).alloc(ctx) - } - - pub fn capacity(self, ctx: Context) -> usize { - self.0.capacity() - } - - pub fn len(self, ctx: Context) -> usize { - self.0.len() - } - - pub fn clear(mut self, ctx: Context) { - self.0.clear(); - } - - pub fn push(mut self, value: T, ctx: Context) { - self.0.push(ctx.mutator(), value); - } - - pub fn pop(mut self, ctx: Context) -> Option { - self.0.pop() - } - - pub fn remove(mut self, index: usize, ctx: Context) -> T { - self.0.remove(index) - } - - pub fn get(self, index: usize, ctx: Context) -> T { - self.0.at(index).clone() - } - - pub fn insert(mut self, index: usize, value: T, ctx: Context) { - self.0.insert(ctx.mutator(), index, value); - } - - pub fn is_empty(self, ctx: Context) -> bool { - self.0.is_empty() - } -} - -#[allow(non_snake_case)] -pub fn Vec_dedup(self_param: Vec, ctx: Context) -where - T: PartialEq, -{ - Vec::dedup(self_param, ctx) -} diff --git a/arc-runtime/src/lib.rs b/arc-runtime/src/lib.rs deleted file mode 100644 index 0dc050a5a..000000000 --- a/arc-runtime/src/lib.rs +++ /dev/null @@ -1,219 +0,0 @@ -// #![feature(fn_traits)] -// #![feature(unboxed_closures)] -// #![feature(arbitrary_self_types)] -// #![feature(async_closure)] -// #![feature(async_stream)] -// #![feature(stream_from_iter)] -#![feature(try_trait_v2)] -#![feature(type_alias_impl_trait)] -#![feature(once_cell)] -#![feature(never_type)] -#![allow(unused)] -#![allow(clippy::type_complexity)] -#![allow(clippy::needless_doctest_main)] -#![allow(clippy::wrong_self_convention)] -#![allow(clippy::len_without_is_empty)] - -pub mod context; -pub mod control; -pub mod data; -pub mod macros; -pub mod operators; -pub mod runtime; -pub mod task; - -pub mod prelude { - // Data types - pub use crate::context::Context; - pub use crate::control::Control; - pub use crate::control::Control::Continue; - pub use crate::control::Control::Finished; - pub use crate::data::channels; - pub use crate::data::channels::Channel; - pub use crate::data::garbage::Alloc; - pub use crate::data::garbage::Gc; - pub use crate::data::primitives::bool; - pub use crate::data::primitives::char; - pub use crate::data::primitives::f32; - pub use crate::data::primitives::f64; - pub use crate::data::primitives::i128; - pub use crate::data::primitives::i16; - pub use crate::data::primitives::i32; - pub use crate::data::primitives::i64; - pub use crate::data::primitives::i8; - pub use crate::data::primitives::u128; - pub use crate::data::primitives::u16; - pub use crate::data::primitives::u32; - pub use crate::data::primitives::u64; - pub use crate::data::primitives::u8; - pub use crate::data::primitives::unit; - pub use crate::data::primitives::Unit; - pub use crate::data::Abstract; - pub use crate::data::Concrete; - pub use crate::data::DynSendable; - pub use crate::data::DynSharable; - pub use crate::data::Sendable; - pub use crate::data::Sharable; - pub use crate::runtime::Runtime; - pub use crate::task::message::TaskMessage; - - pub use crate::data::primitives::assert; - pub use crate::data::primitives::panic; - pub use crate::data::primitives::print; - - pub use crate::data::strings::String; - pub use crate::data::strings::String_clear; - pub use crate::data::strings::String_from_str; - pub use crate::data::strings::String_insert_char; - pub use crate::data::strings::String_is_empty; - pub use crate::data::strings::String_len; - pub use crate::data::strings::String_new; - pub use crate::data::strings::String_push_char; - pub use crate::data::strings::String_push_str; - pub use crate::data::strings::String_remove; - pub use crate::data::strings::String_split_off; - pub use crate::data::strings::String_with_capacity; - pub use crate::data::strings::String_from_i32; - pub use crate::data::strings::String_eq; - pub use crate::data::strings::String_concat; - - pub use crate::data::vectors::Vec; - pub use crate::data::vectors::Vec_capacity; - pub use crate::data::vectors::Vec_clear; - pub use crate::data::vectors::Vec_dedup; - pub use crate::data::vectors::Vec_get; - pub use crate::data::vectors::Vec_insert; - pub use crate::data::vectors::Vec_is_empty; - pub use crate::data::vectors::Vec_len; - pub use crate::data::vectors::Vec_new; - pub use crate::data::vectors::Vec_pop; - pub use crate::data::vectors::Vec_push; - pub use crate::data::vectors::Vec_remove; - pub use crate::data::vectors::Vec_with_capacity; - - pub use crate::data::cells::Cell; - pub use crate::data::cells::Cell_get; - pub use crate::data::cells::Cell_new; - pub use crate::data::cells::Cell_set; - - // Declarative macros - pub use crate::access; - pub use crate::convert_reflexive; - pub use crate::declare_functions; - pub use crate::declare; - pub use crate::function; - pub use crate::letroot; - pub use crate::val; - - // Hidden macros - pub use crate::_vector; - - // Procedural macros - pub use macros::call; - pub use macros::call_async; - pub use macros::call_indirect; - pub use macros::enwrap; - pub use macros::erase; - pub use macros::is; - pub use macros::new; - pub use macros::pull; - pub use macros::pull_transition; - pub use macros::push; - pub use macros::push_transition; - pub use macros::rewrite; - pub use macros::terminate; - pub use macros::transition; - pub use macros::unerase; - pub use macros::unwrap; - pub use macros::vector; - pub use macros::wait; - pub use macros::Abstract; - pub use macros::Alloc; - pub use macros::Collectable; - pub use macros::Finalize; - pub use macros::NoDebug; - pub use macros::NoSerde; - pub use macros::NoTrace; - pub use macros::Send; - pub use macros::Sync; - pub use macros::Trace; - pub use macros::Unpin; - - // Re-exports - pub use kompact::prelude::info; - pub use kompact::prelude::warn; - pub use kompact::prelude::Actor; - pub use kompact::prelude::ActorRaw; - pub use kompact::prelude::Component; - pub use kompact::prelude::ComponentContext; - pub use kompact::prelude::ComponentDefinition; - pub use kompact::prelude::ComponentDefinitionAccess; - pub use kompact::prelude::ComponentLifecycle; - pub use kompact::prelude::ComponentLogging; - pub use kompact::prelude::DeadletterBox; - pub use kompact::prelude::DynamicPortAccess; - pub use kompact::prelude::ExecuteResult; - pub use kompact::prelude::Handled; - pub use kompact::prelude::KompactConfig; - pub use kompact::prelude::KompactSystem; - pub use kompact::prelude::MsgEnvelope; - pub use kompact::prelude::NetMessage; - pub use kompact::prelude::NetworkConfig; - pub use kompact::prelude::Never; - pub use kompact::prelude::SystemHandle; - - pub use comet::api::Collectable; - pub use comet::api::Finalize; - pub use comet::api::Trace; - pub use comet::api::Visitor; - pub use comet::gc_base::AllocationSpace; - pub use comet::immix::instantiate_immix; - pub use comet::immix::Immix; - pub use comet::immix::ImmixOptions; - pub use comet::mopa::TraitObject; - pub use comet::mutator::MutatorRef; - pub use comet::shadow_stack::Rootable; - pub use comet::shadow_stack::Rooted; - pub use comet::shadow_stack::ShadowStack; - pub use comet::shadow_stack::ShadowStackInternal; - - pub use derive_more::Constructor as New; - pub use derive_more::Deref; - pub use derive_more::DerefMut; - pub use derive_more::From; - - pub use time::macros::date; - pub use time::macros::time; - pub use time::Duration; - pub use time::PrimitiveDateTime as DateTime; - - pub use futures::future::BoxFuture; - pub use futures::future::FutureExt; - pub use futures::executor::block_on; - - pub use replace_with::replace_with_or_abort_and_return; - - pub use hexf::hexf32; - pub use hexf::hexf64; - - pub use serde::de::DeserializeOwned; - pub use serde::Deserialize; - pub use serde::Deserializer; - pub use serde::Serialize; - pub use serde::Serializer; - pub use serde_derive::Deserialize; - pub use serde_derive::Serialize; - - pub use std::any::Any; - pub use std::any::TypeId; - pub use std::cell::UnsafeCell; - pub use std::fmt::Debug; - pub use std::future::Future; - pub use std::hash::Hash; - pub use std::pin::Pin; - pub use std::sync::Arc; - pub use std::task::Context as PollContext; - pub use std::task::Poll; - pub use std::task::Poll::Pending; - pub use std::task::Poll::Ready; -} diff --git a/arc-runtime/src/macros.rs b/arc-runtime/src/macros.rs deleted file mode 100644 index 49f962019..000000000 --- a/arc-runtime/src/macros.rs +++ /dev/null @@ -1,97 +0,0 @@ -/// Get the value of a variable. -/// -/// ``` -/// use arc_runtime::prelude::*; -/// let a = 5; -/// let b = val!(a); -/// ``` -#[macro_export] -macro_rules! val { - ($arg:expr) => { - $arg - }; -} - -macro_rules! inline { - ($($tt:tt)*) => { $($tt)* }; -} - -/// Access a struct's field. -/// -/// ``` -/// use arc_runtime::prelude::*; -/// #[rewrite] -/// pub struct Bar { -/// pub x: i32, -/// pub y: i32 -/// } -/// #[rewrite(main)] -/// fn main() { -/// let a = new!(Bar { x: 0, y: 1 }); -/// let b = access!(a, x); -/// } -/// ``` -#[macro_export] -macro_rules! access { - ($arg:expr, $field:tt) => { - $arg.clone().$field.clone() - }; -} - -#[macro_export] -macro_rules! letroot { - ($var_name:ident : $t:ty = $stack:expr, $value:expr) => { - let stack: &ShadowStack = &$stack; - let value = $value; - #[allow(unused_unsafe)] - let mut $var_name = unsafe { - ShadowStackInternal::<$t>::construct( - stack, - stack.head.get(), - core::mem::transmute::<_, TraitObject>(&value as &dyn Rootable).vtable as usize, - value, - ) - }; - #[allow(unused_unsafe)] - stack - .head - .set(unsafe { core::mem::transmute(&mut $var_name) }); - #[allow(unused_mut)] - let mut $var_name = unsafe { Rooted::construct(&mut $var_name.value) }; - }; - - ($var_name:ident = $stack:expr, $value:expr) => { - let stack: &ShadowStack = &$stack; - let value = $value; - #[allow(unused_unsafe)] - let mut $var_name = unsafe { - ShadowStackInternal::<_>::construct( - stack, - stack.head.get(), - core::mem::transmute::<_, TraitObject>(&value as &dyn Rootable).vtable as usize, - value, - ) - }; - #[allow(unused_unsafe)] - stack - .head - .set(unsafe { core::mem::transmute(&mut $var_name) }); - #[allow(unused_mut)] - #[allow(unused_unsafe)] - let mut $var_name = unsafe { Rooted::construct(&mut $var_name.value) }; - }; -} - -#[macro_export] -macro_rules! _vector { - ([$($x:expr),* $(,)?], $ctx:expr) => {{ - let stack = $ctx.mutator().shadow_stack(); - letroot!(vec = stack, Some(Vec::new($ctx))); - - $( - vec.as_mut().unwrap().0.push($ctx.mutator(), $x); - vec.as_mut().unwrap().0.write_barrier($ctx.mutator()); - )* - vec.take().unwrap() - }} -} diff --git a/arc-runtime/src/operators.rs b/arc-runtime/src/operators.rs deleted file mode 100644 index d1f56bf91..000000000 --- a/arc-runtime/src/operators.rs +++ /dev/null @@ -1,96 +0,0 @@ -//! Builtin streaming operators. Everything required to support the SQL-interface. -#![allow(clippy::type_complexity)] - -use crate::data::Sharable; -use crate::prelude::*; - -use crate::data::channels::local::multicast as clm; -// use crate::channels::local::data_parallel as cld; -// use crate::channels::local::data_parallel as clt; -// use crate::channels::local::window as clw; - -use crate::prelude::DateTime; - -use rand::distributions::Distribution; -use rand::distributions::Standard; -use rand::Rng; - -use std::marker::PhantomData; - -use kompact::prelude::*; - -use std::sync::Arc; - -impl clm::Pullable { - pub fn iterate(self, f: fn(Self) -> (Self, clm::Pullable)) -> clm::Pullable { - todo!() - } - -// pub fn key_by(self, f: fn(I) -> K) -> cld::Pullable { -// todo!() -// } - - pub fn map(self, f: fn(I) -> O) -> clm::Pullable { - todo!() - } - - pub fn filter(self, f: fn(I) -> bool) -> clm::Pullable { - todo!() - } - - pub fn flat_map(self, f: fn(I) -> clm::Pullable) -> clm::Pullable { - todo!() - } - - pub fn reduce(self, f: fn(O, I) -> O) -> clm::Pullable { - todo!() - } - -// pub fn join( -// self, -// other: clw::Pullable, -// f: fn(I, I) -> K, -// ) -> clm::Pullable { -// todo!() -// } -// -// pub fn tumbling_window(self, len: Duration) -> clw::Pullable { -// todo!() -// } -} - -pub struct DataGen { - offset: i64, - count: usize, - rng: rand::prelude::ThreadRng, - marker: PhantomData, -} - -impl DataGen { - fn new(count: usize) -> Self { - Self { - offset: 0, - count, - rng: rand::prelude::thread_rng(), - marker: PhantomData, - } - } -} - -impl Iterator for DataGen -where - Standard: Distribution, -{ - type Item = (DateTime, T); - - fn next(&mut self) -> Option { - self.offset += 1; - self.count -= 1; - if self.count > 0 { - todo!() - // Some((DateTime::from_unix_timestamp(self.offset), self.rng.gen())) - } else { - None - } - } -} diff --git a/arc-runtime/src/runtime.rs b/arc-runtime/src/runtime.rs deleted file mode 100644 index 983526c52..000000000 --- a/arc-runtime/src/runtime.rs +++ /dev/null @@ -1,21 +0,0 @@ -use comet::immix::Immix; -use comet::immix::ImmixOptions; -use comet::mutator::MutatorRef; -use kompact::prelude::*; - -pub struct Runtime { - pub system: KompactSystem, -} - -impl Runtime { - pub fn new() -> Self { - let system = KompactConfig::default().build().unwrap(); - Self { system } - } -} - -impl Default for Runtime { - fn default() -> Self { - Self::new() - } -} diff --git a/arc-runtime/src/task/message.rs b/arc-runtime/src/task/message.rs deleted file mode 100644 index ee57d63ab..000000000 --- a/arc-runtime/src/task/message.rs +++ /dev/null @@ -1,4 +0,0 @@ -#[derive(Debug)] -pub enum TaskMessage { - Kill, -} diff --git a/arc-runtime/src/task/mod.rs b/arc-runtime/src/task/mod.rs deleted file mode 100644 index e216a5018..000000000 --- a/arc-runtime/src/task/mod.rs +++ /dev/null @@ -1 +0,0 @@ -pub mod message; diff --git a/arc-runtime/tests/allocation.rs b/arc-runtime/tests/allocation.rs deleted file mode 100644 index 931c6eb66..000000000 --- a/arc-runtime/tests/allocation.rs +++ /dev/null @@ -1,49 +0,0 @@ -use comet::api::Collectable; -use comet::api::Finalize; -use comet::api::Gc; -use comet::api::Trace; -use comet::api::Visitor; -use comet::gc_base::AllocationSpace; -use comet::immix::instantiate_immix; -use comet::immix::Immix; -use comet::immix::ImmixOptions; - -pub enum List { - Nil, - Cons(T, Gc, Immix>), -} - -unsafe impl Trace for List { - fn trace(&mut self, vis: &mut dyn Visitor) { - if let Self::Cons(data, next) = self { - data.trace(vis); - next.trace(vis); - } - } -} - -unsafe impl Finalize for List {} - -impl Collectable for List {} - -#[test] -fn main() { - let opts = ImmixOptions::default(); - let mut mutator = instantiate_immix(opts); - - let mut l: Gc, Immix> = mutator.allocate(List::Nil, AllocationSpace::New); - - for i in 0..100 { - l = mutator.allocate(List::Cons(i, l), AllocationSpace::New); - } - - for i in 0..100 { - match *l { - List::Nil => break, - List::Cons(data, tail) => { - assert_eq!(data, 99 - i); - l = tail; - } - } - } -} diff --git a/arc-runtime/tests/basic.rs b/arc-runtime/tests/basic.rs deleted file mode 100644 index 500238f23..000000000 --- a/arc-runtime/tests/basic.rs +++ /dev/null @@ -1,75 +0,0 @@ -#![allow(unused_mut)] -#![allow(unreachable_code)] -#![allow(unused_variables)] -#![feature(arbitrary_self_types)] -use arc_runtime::data::channels::local::multicast::*; -use arc_runtime::prelude::*; - -#[derive(ComponentDefinition)] -struct DoThing { - ctx: ComponentContext, - a: Pullable, - b: Pullable, - c: Pushable, -} - -impl Actor for DoThing { - type Message = TaskMessage; - - fn receive_local(&mut self, msg: Self::Message) -> Handled { - Handled::Ok - } - - fn receive_network(&mut self, msg: kompact::prelude::NetMessage) -> Handled { - Handled::Ok - } -} - -impl DoThing { - fn new(a: Pullable, b: Pullable, c: Pushable) -> Self { - Self { - ctx: ComponentContext::uninitialised(), - a, - b, - c, - } - } - - async fn run(mut self: ComponentDefinitionAccess, ctx: Context) -> Control<()> { - loop { - let x = self.a.pull(ctx).await?; - let y = self.b.pull(ctx).await?; - self.c.push(x + y, ctx).await?; - } - Control::Finished - } -} - -fn do_thing(a: Pullable, b: Pullable, ctx: Context) -> Pullable { - let (c0, c1): (Pushable, Pullable) = channel(ctx); - let task = ctx.component().system().create(move || DoThing::new(a, b, c0)); - ctx.component().system().start(&task); - c1 -} - -impl ComponentLifecycle for DoThing { - fn on_start(&mut self) -> Handled { - self.spawn_local(move |mut async_self| async move { - let ctx = todo!(); - async_self.run(ctx).await; - Handled::DieNow - }); - Handled::Ok - } -} - -fn read_stream() -> Pullable { - todo!() -} - -fn main() { - let ctx = todo!(); - let a: Pullable = read_stream(); - let b: Pullable = read_stream(); - let c = do_thing(a, b, ctx); -} diff --git a/arc-runtime/tests/closures.rs b/arc-runtime/tests/closures.rs deleted file mode 100644 index db1340cfc..000000000 --- a/arc-runtime/tests/closures.rs +++ /dev/null @@ -1,26 +0,0 @@ -#![allow(unused)] - -#[allow(non_camel_case_types)] -#[cfg(test)] -mod test_toplevel { - - use arc_runtime::prelude::*; - - declare_functions!(f); - - #[rewrite] - fn f(a: i32) -> i32 { - a + a - } - - #[rewrite(main)] - #[test] - fn test() { - let x: function!((i32) -> i32) = function!(f); - let y: function!((i32,) -> i32) = function!(f); - let y: i32 = call_indirect!(x(1)); - let y: i32 = call_indirect!(x(1,)); - let z: i32 = call!(f(1)); - let z: i32 = call!(f(1,)); - } -} diff --git a/arc-runtime/tests/context.rs b/arc-runtime/tests/context.rs deleted file mode 100644 index d871c47f5..000000000 --- a/arc-runtime/tests/context.rs +++ /dev/null @@ -1,76 +0,0 @@ -#![allow(unused_mut)] -#![allow(unreachable_code)] -#![allow(unused_variables)] -#![feature(arbitrary_self_types)] -use arc_runtime::data::channels::local::multicast::*; -use arc_runtime::prelude::*; - -#[derive(ComponentDefinition)] -struct DoThing { - ctx: ComponentContext, - a: Pullable, - b: Pullable, - c: Pushable, -} - -impl Actor for DoThing { - type Message = TaskMessage; - - fn receive_local(&mut self, msg: Self::Message) -> Handled { - Handled::Ok - } - - fn receive_network(&mut self, msg: kompact::prelude::NetMessage) -> Handled { - Handled::Ok - } -} - -impl DoThing { - fn new(a: Pullable, b: Pullable, c: Pushable) -> Self { - Self { - ctx: ComponentContext::uninitialised(), - a, - b, - c, - } - } - - async fn run(mut self: ComponentDefinitionAccess, ctx: Context) -> Control<()> { - loop { - let x = self.a.pull(ctx).await?; - let y = self.b.pull(ctx).await?; - self.c.push(x + y, ctx).await?; - } - Control::Finished - } -} - -fn do_thing(a: Pullable, b: Pullable, ctx: Context) -> Pullable { - let (c0, c1): (Pushable, Pullable) = channel(ctx); - let task = ctx.component().system().create(move || DoThing::new(a, b, c0)); - ctx.component().system().start(&task); - c1 -} - -impl ComponentLifecycle for DoThing { - fn on_start(&mut self) -> Handled { - self.spawn_local(move |mut async_self| async move { - let ctx = todo!(); - async_self.run(ctx).await; - Handled::DieNow - }); - futures::task::waker_ref(&self.ctx.typed_component()); - Handled::Ok - } -} - -fn read_stream() -> Pullable { - todo!() -} - -fn main() { - let ctx = todo!(); - let a: Pullable = read_stream(); - let b: Pullable = read_stream(); - let c = do_thing(a, b, ctx); -} diff --git a/arc-runtime/tests/externs.rs b/arc-runtime/tests/externs.rs deleted file mode 100644 index b70ffc9ac..000000000 --- a/arc-runtime/tests/externs.rs +++ /dev/null @@ -1,17 +0,0 @@ -#![allow(unused)] - -use arc_runtime::prelude::*; - -#[rewrite(unmangled = "identity")] -fn identity_i32(x: i32) -> i32 {} - -#[rewrite(unmangled = "identity")] -fn identity_i64(x: i64) -> i64 {} - -#[rewrite(unmangled = "identity")] -fn identity_i128(x: i128) -> i128 {} - -#[rewrite] -fn identity(x: T) -> T { - x -} diff --git a/arc-runtime/tests/functions.rs b/arc-runtime/tests/functions.rs deleted file mode 100644 index 13558cf2e..000000000 --- a/arc-runtime/tests/functions.rs +++ /dev/null @@ -1,57 +0,0 @@ -#![allow(dead_code)] - -use arc_runtime::prelude::*; - -#[rewrite] -fn foo(x: i32) { - let a: i32 = x - 1; - if x == 0 { - println!("Hello, world!"); - } else { - foo((a,)) - } -} - -// Expands into: - -// fn _foo(x: i32, ctx: Context) { -// let a: i32 = x - 1; -// if x == 0 { -// println!("Hello, world!"); -// } else { -// _foo(a, ctx) -// } -// } - -#[rewrite(main)] -fn main() { - let x: String = String::from_str("Hello, world!"); - let y: &str = "Hello, world!"; - let _z: unit = String::push_str(x, y); -} - -// Expands into: - -// fn _bar() { -// let system = &KompactConfig::default().build().unwrap(); -// let mutator = &mut instantiate_immix(ImmixOptions::default()); -// let ctx = Context::new(system, mutator); -// -// let stack: &ShadowStack = &ctx.mutator.shadow_stack(); -// let value = String::from_str("Hello, world!", ctx); -// #[allow(unused_unsafe)] -// let mut x = unsafe { -// ShadowStackInternal::::construct( -// stack, -// stack.head.get(), -// core::mem::transmute::<_, TraitObject>(&value as &dyn Rootable).vtable as usize, -// value, -// ) -// }; -// #[allow(unused_unsafe)] -// stack.head.set(unsafe { core::mem::transmute(&mut x) }); -// #[allow(unused_mut)] -// let mut x = unsafe { Rooted::construct(&mut x.value) }; -// let y: &str = "Hello, world!"; -// let _z: unit = String::push_str(x.clone(), y, ctx); -// } diff --git a/arc-runtime/tests/future.rs b/arc-runtime/tests/future.rs deleted file mode 100644 index c744f83cb..000000000 --- a/arc-runtime/tests/future.rs +++ /dev/null @@ -1,130 +0,0 @@ -// #![allow(unused)] -#![feature(never_type)] -#![allow(unused)] - -use arc_runtime::prelude::*; -use std::future::Future; -use std::pin::Pin; -use std::rc::Rc; -use std::task::Context as PollContext; -use std::task::Poll; - -use futures::future::BoxFuture; -use futures::FutureExt; - -use arc_runtime::data::channels::local::multicast::channel; -use arc_runtime::data::channels::local::multicast::Pullable; -use arc_runtime::data::channels::local::multicast::Pushable; - -enum State { - State0 { - a: Pullable, - b: Pushable, - }, - State1 { - a: Pullable, - b: Pushable, - pull: BoxFuture<'static, Control>, - }, - State3 { - a: Pullable, - b: Pushable, - push: BoxFuture<'static, Control<()>>, - }, -} - -impl Future for State { - type Output = (); - - fn poll(self: Pin<&mut Self>, cx: &mut PollContext<'_>) -> Poll { - let ctx = todo!(); - replace_with::replace_with_or_abort_and_return(self.get_mut(), |state| state.transition(cx, ctx)) - } -} - -impl State { - fn transition(self, cx: &mut PollContext<'_>, ctx: Context) -> (Poll<()>, Self) { - match self { - State::State0 { mut a, b } => { - let pull = a.pull(ctx).boxed(); - let pull = unsafe { std::mem::transmute(pull) }; - (Poll::Pending, State::State1 { a, b, pull }) - } - State::State1 { a, b, mut pull } => { - if let Poll::Ready(Control::Continue(x)) = pull.as_mut().poll(cx) { - let push = b.push(x, ctx).boxed(); - let push = unsafe { std::mem::transmute(push) }; - (Poll::Pending, State::State3 { a, b, push }) - } else { - (Poll::Pending, State::State1 { a, b, pull }) - } - } - State::State3 { a, b, mut push } => { - if let Poll::Ready(Control::Continue(())) = push.as_mut().poll(cx) { - (Poll::Pending, State::State0 { a, b }) - } else { - (Poll::Pending, State::State3 { a, b, push }) - } - } - } - } -} - -#[derive(ComponentDefinition)] -struct DoThing { - ctx: ComponentContext, - a: Pullable, - b: Pushable, -} - -impl Actor for DoThing { - type Message = TaskMessage; - - fn receive_local(&mut self, msg: Self::Message) -> Handled { - Handled::Ok - } - - fn receive_network(&mut self, msg: kompact::prelude::NetMessage) -> Handled { - Handled::Ok - } -} - -impl ComponentLifecycle for DoThing { - fn on_start(&mut self) -> Handled { - self.spawn_local(move |async_self| async move { - State::State0 { - a: async_self.a.clone(), - b: async_self.b.clone(), - } - .await; - Handled::DieNow - }); - Handled::Ok - } -} - -impl DoThing { - fn new(a: Pullable, b: Pushable) -> Self { - Self { - ctx: ComponentContext::uninitialised(), - a, - b, - } - } -} - -fn do_thing(a: Pullable, ctx: Context) -> Pullable { - let (b0, b1): (Pushable, Pullable) = channel(ctx); - ctx.launch(move || DoThing::new(a, b0)); - b1 -} - -fn read_stream() -> Pullable { - todo!() -} - -fn main() { - let ctx = todo!(); - let a: Pullable = read_stream(); - let b: Pullable = do_thing(a, ctx); -} diff --git a/arc-runtime/tests/generic_enum_rewrite.rs b/arc-runtime/tests/generic_enum_rewrite.rs deleted file mode 100644 index 5d5c19a04..000000000 --- a/arc-runtime/tests/generic_enum_rewrite.rs +++ /dev/null @@ -1,16 +0,0 @@ -#![allow(unused)] - -use arc_runtime::prelude::*; - -#[rewrite] -pub enum Foo { - X(A), -} - -#[rewrite] -pub enum Bar { - X(A), - Y(B), -} - -type Baz = Bar, Bar>; diff --git a/arc-runtime/tests/generic_struct_rewrite.rs b/arc-runtime/tests/generic_struct_rewrite.rs deleted file mode 100644 index ce331a168..000000000 --- a/arc-runtime/tests/generic_struct_rewrite.rs +++ /dev/null @@ -1,16 +0,0 @@ -#![allow(unused)] - -use arc_runtime::prelude::*; - -#[rewrite] -pub struct Foo { - pub a: A, -} - -#[rewrite] -pub struct Bar { - pub a: A, - pub b: B, -} - -type Baz = Bar, Bar>; diff --git a/arc-runtime/tests/nonpersistent_task.rs b/arc-runtime/tests/nonpersistent_task.rs deleted file mode 100644 index d3ff1de10..000000000 --- a/arc-runtime/tests/nonpersistent_task.rs +++ /dev/null @@ -1,43 +0,0 @@ -use arc_runtime::prelude::*; - -declare_functions!(f); - -#[rewrite] -fn f(x: i32) -> i32 { - x + 1 -} - -#[rewrite(nonpersistent)] -async fn source(mut i: Vec, #[output] mut o: Pushable) { - for x in i.into_iter().cloned() { - push!(o, x); - } -} - -#[rewrite(nonpersistent)] -async fn map(mut i: Pullable, mut f: function!((i32) -> i32), #[output] mut o: Pushable) { - loop { - let x = pull!(i); - let y = call_indirect!(f(x)); - push!(o, y); - } -} - -#[rewrite(nonpersistent)] -async fn log(mut i: Pullable) { - loop { - println!("Logging {}", pull!(i)); - } -} - -use arc_runtime::data::channels::local::multicast::Pullable; - -#[rewrite(main)] -#[test] -fn rewrite_impersistent_task() { - let v: Vec = vector![1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; - let s: Pullable = call!(source(v)); - let f: function!((i32) -> i32) = function!(f); - let s: Pullable = call!(map(s, f)); - call!(log(s)); -} diff --git a/arc-runtime/tests/persistent_task.rs b/arc-runtime/tests/persistent_task.rs deleted file mode 100644 index c3125de44..000000000 --- a/arc-runtime/tests/persistent_task.rs +++ /dev/null @@ -1,114 +0,0 @@ -use arc_runtime::prelude::*; - -declare_functions!(x); - -// #[rewrite(nonpersistent)] -// mod source { -// fn task(i: Vec, #[output] o: Pushable) { -// for x in i.into_iter().cloned() { -// push!(o, x); -// } -// } -// } - -#[rewrite(persistent)] -mod map { - fn task(a: Pullable, f: function!((i32) -> i32), #[output] b: Pushable) {} - - struct State0 { - a: Pullable, - f: function!((i32) -> i32), - b: Pushable, - } - - struct State1 { - a: Pullable, - f: function!((i32) -> i32), - b: Pushable, - pull: BoxFuture<'static, Control>, - } - - struct State2 { - a: Pullable, - f: function!((i32) -> i32), - b: Pushable, - push: BoxFuture<'static, Control<()>>, - } - - struct State3 {} - - enum State { - State0(State0), - State1(State1), - State2(State2), - State3(State3), - } - - fn transition0( - State0 { - mut a, - mut b, - mut f, - }: State0, - _cx: &mut PollContext, - ctx: Context, - ) -> (Poll<()>, State) { - pull_transition!(pull, a, State1 { a, b, f, pull }); - } - - fn transition1( - State1 { - mut a, - mut b, - mut f, - mut pull, - }: State1, - cx: &mut PollContext, - ctx: Context, - ) -> (Poll<()>, State) { - let x = wait!(pull, cx, State1 { a, b, f, pull }, State3 {}); - let y = call_indirect!(f(x)); - push_transition!(push, b, y, State2 { a, b, f, push }); - } - - fn transition2( - State2 { - mut a, - mut b, - mut f, - mut push, - }: State2, - cx: &mut PollContext, - ctx: Context, - ) -> (Poll<()>, State) { - wait!(push, cx, State2 { a, b, f, push }, State0 { a, b, f }); - transition!(State0 { a, b, f }); - } - - fn transition3(State3 {}: State3, _cx: &mut PollContext, ctx: Context) -> (Poll<()>, State) { - unreachable!() - } -} - -// #[rewrite(nonpersistent)] -// mod log { -// fn task(i: Pullable) { -// loop { -// println!("Logging {}", pull!(i)); -// } -// } -// } - -#[rewrite] -fn x(x: i32) -> i32 { - x + 1 -} - -// #[rewrite(main)] -// #[test] -// fn rewrite_impersistent_task() { -// let v = vector!(1i32, 2, 3); -// let s = direct_call!(source(*v)); -// let s = direct_call!(map(*s, function!(x))); -// let s = direct_call!(log(*s)); -// } diff --git a/arc-runtime/tests/prost.rs b/arc-runtime/tests/prost.rs deleted file mode 100644 index 9cd66f7ad..000000000 --- a/arc-runtime/tests/prost.rs +++ /dev/null @@ -1,169 +0,0 @@ -#[cfg(all(test, feature = "backend_arcon"))] -mod prost_test1 { - use prost::Message; - use prost::Oneof; - - #[derive(Message, Clone, Eq, PartialEq)] - struct Foo { - #[prost(int32)] - a: i32, - #[prost(message)] - b: Option, - } - - #[derive(Message, Clone, Eq, PartialEq)] - struct Baz { - #[prost(message)] - c0: Option, - #[prost(message)] - c1: Option, - } - - #[derive(Message, Clone, Eq, PartialEq)] - struct Qux { - #[prost(oneof = "QuxEnum", tags = "1, 2, 3")] - inner: Option, - } - - #[derive(Oneof, Clone, Eq, PartialEq)] - enum QuxEnum { - #[prost(message, tag = "1")] - Zot(Box), - } - - #[derive(Message, Clone, Eq, PartialEq)] - struct Zot { - #[prost(message)] - d: Option, - } - - #[test] - fn test() { - let foo = Foo { - a: 0, - b: Baz { - c0: Qux { - inner: QuxEnum::Zot( - Zot { - d: Foo { a: 3, b: None }.into(), - } - .into(), - ) - .into(), - } - .into(), - c1: Qux { - inner: QuxEnum::Zot( - Zot { - d: Foo { a: 3, b: None }.into(), - } - .into(), - ) - .into(), - } - .into(), - } - .into(), - }; - - let mut buf = Vec::new(); - - let expected = foo.clone(); - - foo.encode(&mut buf).unwrap(); - let found = Foo::decode(&buf[..]).unwrap(); - - assert_eq!(expected, found); - } -} - -#[cfg(all(test, feature = "backend_arcon"))] -mod prost_test2 { - use prost::Message; - use prost::Oneof; - - // NOTE: Tags must start from 1 or else prost panics - - #[derive(Message, Clone, Eq, PartialEq)] - struct List { - #[prost(oneof = "ListEnum", tags = "1, 2")] - this: Option, - } - - impl ListEnum { - fn wrap(self) -> List { - List { this: Some(self) } - } - } - - #[derive(Oneof, Clone, Eq, PartialEq)] - enum ListEnum { - #[prost(message, tag = "1")] - Cons(Box), - #[prost(message, tag = "2")] - Nil(Nil), - } - - #[derive(Message, Clone, Eq, PartialEq)] - struct Cons { - #[prost(int32)] - val: i32, - #[prost(message)] - tail: Option, - } - - #[derive(Message, Clone, Eq, PartialEq)] - struct Nil {} - - #[test] - fn test() { - let list: List = ListEnum::Cons( - Cons { - val: 0, - tail: ListEnum::Cons( - Cons { - val: 0, - tail: ListEnum::Nil(Nil {}).into(), - } - .into(), - ) - .into(), - } - .into(), - ); - - let mut buf = Vec::new(); - - let expected = list.clone(); - - list.encode(&mut buf).unwrap(); - let found = List::decode(&buf[..]).unwrap(); - - assert_eq!(expected, found); - } -} - -#[cfg(all(test, feature = "backend_arcon"))] -mod prost_test3 { - use prost::Message; - - #[derive(Message, Clone, Eq, PartialEq)] - struct Zib { - #[prost(message, required)] - e: (), - } - - #[test] - fn test() { - let z = Zib { e: () }; - - let mut buf = Vec::new(); - - let expected = z.clone(); - - z.encode(&mut buf).unwrap(); - let found = Zib::decode(&buf[..]).unwrap(); - - assert_eq!(expected, found); - } -} diff --git a/arc-runtime/tests/source_map_log.rs b/arc-runtime/tests/source_map_log.rs deleted file mode 100644 index 873d63676..000000000 --- a/arc-runtime/tests/source_map_log.rs +++ /dev/null @@ -1,235 +0,0 @@ -#![allow(unused)] -#![feature(arbitrary_self_types)] -#![allow(unused_mut)] - -macro_rules! compile_test { - {$($mod:tt)::+} => { - use arc_runtime::prelude::*; - - // NOTE: The `where` clause is not necessary when we have monomorphised the code. - #[derive(ComponentDefinition)] - struct Source where T::T: Sendable { - ctx: ComponentContext, - vec: Vec, - pushable: $($mod)::+::Pushable, - } - - #[derive(ComponentDefinition)] - struct Map where A::T: Sendable, B::T: Sendable { - ctx: ComponentContext, - pullable: $($mod)::+::Pullable, - fun: fn(A) -> B, - pushable: $($mod)::+::Pushable, - } - - #[derive(ComponentDefinition)] - struct Log where T::T: Sendable { - ctx: ComponentContext, - pullable: $($mod)::+::Pullable, - } - - impl Source where T::T: Sendable { - fn new(vec: Vec, pushable: $($mod)::+::Pushable) -> Self { - Self { - ctx: ComponentContext::uninitialised(), - vec, - pushable, - } - } - - async fn run(mut self: ComponentDefinitionAccess, ctx: Context) -> Control<()> { - let i = self.vec.clone(); - for x in 0..i.clone().len(ctx) { - let j = i.clone(); - let v = j.get(x, ctx); - self.pushable.push(v.clone(), ctx).await?; - } - Control::Finished - } - } - - impl Map where A::T: Sendable, B::T: Sendable { - fn new(pullable: $($mod)::+::Pullable, f: fn(A) -> B, pushable: $($mod)::+::Pushable) -> Self { - Self { - ctx: ComponentContext::uninitialised(), - pullable, - fun: f, - pushable, - } - } - - async fn run(mut self: ComponentDefinitionAccess, ctx: Context) -> Control<()> { - let f = self.fun; - loop { - let data = self.pullable.pull(ctx).await?; - self.pushable.push(f(data), ctx).await?; - } - } - } - - impl Log where T::T: Sendable { - fn new(pullable: $($mod)::+::Pullable) -> Self { - Self { - ctx: ComponentContext::uninitialised(), - pullable, - } - } - - async fn run(mut self: ComponentDefinitionAccess, ctx: Context) -> Control<()> { - loop { - let data = self.pullable.pull(ctx).await?; - info!(self.log(), "Logging {:?}", data); - } - } - } - - impl ComponentLifecycle for Source where T::T: Sendable { - fn on_start(&mut self) -> Handled { - self.spawn_local(move |async_self| async move { - let component = async_self.ctx().component(); - let mutator = instantiate_immix(ImmixOptions::default()); - let ctx = Context::new(component, mutator); - async_self.run(ctx).await; - Handled::DieNow - }); - Handled::Ok - } - } - - impl ComponentLifecycle for Map where A::T: Sendable, B::T: Sendable { - fn on_start(&mut self) -> Handled { - self.spawn_local(move |async_self| async move { - let component = async_self.ctx().component(); - let mutator = instantiate_immix(ImmixOptions::default()); - let ctx = Context::new(component, mutator); - async_self.run(ctx).await; - Handled::DieNow - }); - Handled::Ok - } - } - - impl ComponentLifecycle for Log where T::T: Sendable { - fn on_start(&mut self) -> Handled { - self.spawn_local(move |async_self| async move { - let component = async_self.ctx().component(); - let mutator = instantiate_immix(ImmixOptions::default()); - let ctx = Context::new(component, mutator); - async_self.run(ctx).await; - Handled::DieNow - }); - Handled::Ok - } - } - - impl Actor for Source where T::T: Sendable { - type Message = TaskMessage; - - fn receive_local(&mut self, _msg: Self::Message) -> Handled { - Handled::Ok - } - - fn receive_network(&mut self, _msg: NetMessage) -> Handled { - unreachable!() - } - } - - impl Actor for Map where A::T: Sendable, B::T: Sendable { - type Message = TaskMessage; - - fn receive_local(&mut self, _msg: Self::Message) -> Handled { - Handled::Ok - } - - fn receive_network(&mut self, _msg: NetMessage) -> Handled { - unreachable!() - } - } - - impl Actor for Log where T::T: Sendable { - type Message = TaskMessage; - - fn receive_local(&mut self, _msg: Self::Message) -> Handled { - Handled::Ok - } - - fn receive_network(&mut self, _msg: NetMessage) -> Handled { - unreachable!() - } - } - - fn source(vec: Vec, ctx: Context) -> $($mod)::+::Pullable where T::T: Sendable { - let (o0, o1) = $($mod)::+::channel(ctx); - ctx.launch(move || Source::new(vec, o0)); - o1 - } - - fn map(a: $($mod)::+::Pullable, f: fn(A) -> B, ctx: Context) -> $($mod)::+::Pullable where A::T: Sendable, B::T: Sendable { - let (b0, b1) = $($mod)::+::channel(ctx); - ctx.launch(move || Map::new(a, f, b0)); - b1 - } - - fn log(a: $($mod)::+::Pullable, ctx: Context) where T::T: Sendable { - ctx.launch(move || Log::new(a)); - } - - fn plus_one(x: i32) -> i32 { - x + 1 - } - - #[derive(ComponentDefinition, Actor)] - struct Main { - ctx: ComponentContext, - } - - impl Main { - fn new() -> Self { - Self { - ctx: ComponentContext::uninitialised() - } - } - } - - fn run_main(ctx: Context) { - let v = vector![1i32, 2, 3]; - let v = source(v, ctx); - let v = map(v, plus_one, ctx); - let _ = log(v, ctx); - } - - impl ComponentLifecycle for Main { - fn on_start(&mut self) -> Handled { - let component = self.ctx().component(); - let mutator = instantiate_immix(ImmixOptions::default()); - let ctx = Context::new(component, mutator); - run_main(ctx); - self.ctx().system().shutdown_async(); - Handled::DieNow - } - } - - fn main() { - let system = KompactConfig::default().build().unwrap(); - let main = system.create(move || Main::new()); - system.start(&main); - system.await_termination(); - } - } -} - -// mod source_map_log_remote_concurrent { -// compile_test!(arc_runtime::data::channels::remote::concurrent); -// } - -// mod source_map_log_remote_broadcast { -// compile_test!(arc_runtime::data::channels::remote::broadcast); -// } - -// mod source_map_log_local_concurrent { -// compile_test!(arc_runtime::data::channels::local::task_parallel); -// } - -mod source_map_log_local_broadcast { - compile_test!(arc_runtime::data::channels::local::multicast); -} diff --git a/arc-runtime/tests/types.rs b/arc-runtime/tests/types.rs deleted file mode 100644 index 83299fa3b..000000000 --- a/arc-runtime/tests/types.rs +++ /dev/null @@ -1,106 +0,0 @@ -mod basic1 { - use arc_runtime::prelude::*; - #[rewrite] - pub struct Point { - pub x: i32, - pub y: i32, - } - - #[rewrite] - pub enum Foo { - FooBar(i32), - FooBaz(f32), - } -} - -mod basic2 { - use arc_runtime::prelude::*; - #[rewrite] - pub struct A { - pub b: B, - } - - #[rewrite] - pub struct B { - pub c: i32, - } -} - -mod basic3 { - use arc_runtime::prelude::*; - #[rewrite] - pub enum A { - AB(B), - AC(C), - } - - #[rewrite] - pub struct B { - pub v: i32, - } - - #[rewrite] - pub struct C {} -} - -mod list { - use arc_runtime::prelude::*; - - #[rewrite] - pub enum List { - ListCons(Cons), - ListNil(unit), - } - - #[rewrite] - pub struct Cons { - pub v: i32, - pub t: List, - } - - #[rewrite(main)] - #[test] - fn test() { - let l: List = enwrap!(ListNil, unit); - let _x: bool = is!(ListCons, l); - let h: Cons = new!(Cons { v: 5, t: l }); - let l: List = enwrap!(ListCons, h); - let h: Cons = unwrap!(ListCons, l); - assert_eq!(h.v, 5); - } -} - -mod structs { - use arc_runtime::prelude::*; - - #[rewrite] - pub struct Foo { - pub a: i32, - pub b: Bar, - } - - #[rewrite] - pub struct Bar {} - - #[rewrite(main)] - #[test] - fn test() { - let x0: Bar = new!(Bar {}); - let _f: Foo = new!(Foo { a: 0, b: x0 }); - } -} - -mod unit { - use arc_runtime::prelude::*; - - #[rewrite] - pub enum Foo { - FooBar(unit), - } - - #[rewrite(main)] - #[test] - fn test() { - let _x: Foo = enwrap!(FooBar, unit); - } -} diff --git a/arc-website/Makefile b/arc-website/Makefile deleted file mode 100644 index f590e72db..000000000 --- a/arc-website/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -all: - rm -r static/* - make -C ../arc-docs build-with-deps; mv -f ../arc-docs/target/html static/docs - make -C ../arc-report; mv -f ../arc-report/target/main.pdf static/Arc-Report.pdf - zola build - -build: - zola build diff --git a/arc-website/config.toml b/arc-website/config.toml deleted file mode 100644 index 5631822d2..000000000 --- a/arc-website/config.toml +++ /dev/null @@ -1,34 +0,0 @@ -# The URL the site will be built for -base_url = "https://cda-group.github.io/arc" -title = "Arc-Lang" - -# Whether to automatically compile all Sass files in the sass directory -compile_sass = true - -# Whether to build a search index to be used later on by a JavaScript library -build_search_index = false - -output_dir = "target" - -theme = "adidoks" - -[markdown] -# Whether to do syntax highlighting -# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola -highlight_code = false - -[extra] -author = "Klas Segeljakt" -github = "https://github.com/segeljakt" -twitter = "https://twitter.com/KlasSegeljakt" -email = "klasseg@kth.se" - -[[extra.menu.social]] -name = "GitHub" -pre = '' -url = "https://github.com/cda-group/arc" -post = "v0.1.0" -weight = 20 - -[extra.footer] -info = 'Powered by Netlify, Zola, and AdiDoks' diff --git a/arc-website/content/_index.md b/arc-website/content/_index.md deleted file mode 100644 index d900e17fe..000000000 --- a/arc-website/content/_index.md +++ /dev/null @@ -1,54 +0,0 @@ -+++ -title = "Arc-Lang" - -[extra] -lead = 'A programming language for continuous deep analytics.' -url = "/docs//" -url_button = "Get started" -repo_version = "" -repo_license = "" -repo_url = "https://github.com/cda-group/arc" - -[[extra.menu.main]] -name = "Docs" -section = "docs" -url = "/docs/" -weight = 20 - -[[extra.menu.main]] -name = "Blog" -section = "blog" -url = "/blog/" -weight = 20 - -[[extra.menu.main]] -name = "Research Report" -section = "report" -url = "Arc-Report.pdf?" -weight = 20 - -[[extra.list]] -title = "Stream Analytics" -content = 'Data Streams are supported for managing large quantities of live generated data.' - -[[extra.list]] -title = "Batch Analytics" -content = 'Data Frames are supported for crunching numbers and manipulating data.' - -[[extra.list]] -title = "Extensible" -content = 'Libraries can be developed in Rust and imported into Arc-Lang if low-level control is required.' - -[[extra.list]] -title = "Python API" -content = 'Applications can be created either directly in Arc-Lang or in our lazily evaluated Python API.' - -[[extra.list]] -title = "SQL-like syntax" -content = 'Arc-Lang has a familiar syntax to those who are used to working with SQL.' - -[[extra.list]] -title = "Heterogeneous" -content = 'Data can be gathered by, processed on, and served at a variety of devices. Arc-Lang programs can both execute natively and through WebAssembly.' - -+++ diff --git a/arc-website/content/authors/_index.md b/arc-website/content/authors/_index.md deleted file mode 100644 index 5c5c0fdbc..000000000 --- a/arc-website/content/authors/_index.md +++ /dev/null @@ -1,12 +0,0 @@ -+++ -title = "Authors" -description = "The authors of the blog articles." -date = 2022-02-23T08:00:00+00:00 -updated = 2022-02-23T08:00:00+00:00 -draft = false - -[extra.author_pages] -"segeljakt" = "authors/segeljakt.md" -+++ - -The authors of the blog articles. diff --git a/arc-website/content/authors/segeljakt.md b/arc-website/content/authors/segeljakt.md deleted file mode 100644 index e7fcba516..000000000 --- a/arc-website/content/authors/segeljakt.md +++ /dev/null @@ -1,11 +0,0 @@ -+++ -title = "Aaran Xu" -description = "Creator of AdiDoks." -date = 2021-04-01T08:50:45+00:00 -updated = 2021-04-01T08:50:45+00:00 -draft = false -+++ - -Creator of **AdiDoks**. - -[@segeljakt](https://github.com/segeljakt) diff --git a/arc-website/content/blog/1-introduction.md b/arc-website/content/blog/1-introduction.md deleted file mode 100644 index 7265570b1..000000000 --- a/arc-website/content/blog/1-introduction.md +++ /dev/null @@ -1,62 +0,0 @@ -+++ -title = "Introduction" -description = "Introducing Arc-Lang, a programming language for building data science applications." -date = 2022-03-17 -updated = 2022-03-17 -draft = false -template = "blog/page.html" - -[extra] -lead = "" -+++ - -# Arc-Lang - -This blog post gives an introduction to **Arc-Lang** - a programming language for big-data analytics - and sheds light on its vision and implementation. The Arc-Lang research project is funded by [SSF](https://strategiska.se/en/) and has gone through many revisions prior to this blog post. This history will be discussed in a later post. - -## Introduction - -Data analytics pipelines are becoming increasingly more complicated due to the growing number of requirements imposed by data science. Not only must data be processed and analyzed scalably with respect to its volume and velocity, but also intricately by involving many different types of data. Arc-Lang is a programming language for data analytics that supports parallel operations over multiple data types including datastreams and dataframes. As an example, a basic word-count application can be implemented as follows in Arc-Lang: - -``` -val lines = read_stdin(); - -val word_counts = - from line in lines, - word in line.split(" ") - yield #{word, count:1} - group word - window 10min - reduce (+) of count - identity 0; - -write_stdout(word_counts); -``` - -The goal of Arc-Lang is to make big-data analytics easy. Arc-Lang targets streaming analytics (i.e., processing data continuously as it is being generated) and batch analytics (i.e., processing data in large chunks all-at-once). From the streaming-perspective, Arc-Lang must be able to manage data at a fine granularity that is generated by many types of sensors, arriving at varying rates, in different formats, sizes, qualities, and possibly out-of-order. Datastreams can in addition be massive in numbers, ranging into the billions, due to the plethora of data sources that have emerged in the recent IoT boom. From the batch-perspective, Arc-Lang must be able to handle different kinds of collection-based data types whose sizes can scale to massive sizes, e.g., tensors and dataframes. - -To cope with the requirements of batch and stream data management, a runtime system is needed which can exploit distributed programming to enable scalability through partitioning and parallelism. Distributed programming is however difficult without abstraction. Application developers must manage problems such as fault tolerance, exactly-once-processing, and coordination while considering tradeoffs in security and efficiency. To this end, distributed systems leverage high-level DSLs which are more friendly towards end-users. DSLs in the form of query languages, frameworks, and libraries allow application developers to focus on domain-specific problems, such as the development of algorithms, and to disregard engineering-related issues. In addition, DSLs that are intermediate languages have been adopted by multiple systems both as a solution to enable reuse by breaking the dependence between the user and runtime, and to enable target-independent optimisation. There is always a tradeoff that must be faced in DSL design. DSLs make some problems easier to solve at the expense of making other problems harder to solve. How a DSL is implemented can also have an impact on its ability to solve problems. - - - -Different categories of DSLs are highlighted in the figure above. - -### Approach - -In relation to other DSLs, Arc-Lang is a standalone compiled DSL implemented in OCaml. The idea of Arc-Lang's is to combine general purpose imperative and functional programming over *small data* with declarative programming over *big data*. As an example, it should be possible to perform both fine-grained processing over individual data items of a datastream, while also being able to compose pipelines of relational operations through SQL-style queries. Arc-Lang is statically typed for the purpose of performance and safety, but at the same time also inferred and polymorphic to enable ease of use and reuse. - -The approach of implementing the language as a standalone DSL allows for more creative freedom in the language design. At the same time, this approach requires everything, including optimisations and libraries, to be implemented from scratch. - -To address the issue of optimisation, we are using the [MLIR](https://mlir.llvm.org/) compiler framework to implement Arc-MLIR - an intermediate language - which Arc-Lang programs translate into for optimisations. MLIR defines a universal intermediate language which can be extended with custom dialects. A dialect includes a set of operations, types, type rules, analyses, rewrite rules (to the same dialect), and lowerings (to other dialects). All dialects adhere to the same meta-syntax and meta-semantics which allows them to be interweaved in the same program code. The MLIR framework handles parsing, type checking, line information tracking among other things. Additionally, MLIR provides tooling for testing, parallel compilation, documentation, CLI usage, etc. The plan is to extend Arc-MLIR with custom domain-specific optimisations for the declarative part of Arc-Lang and to capitalize on MLIR's ability to derive general-purpose optimisations such as constant propagation for Arc-Lang's functional and imperative side. - -To address the shortcoming of libraries, Arc-Lang allows both types and functions to be defined externally (inside Rust) and imported into the language. Most of the external functionality is encapsulated inside a runtime library named Arc-Runtime. Arc-Runtime builds on the [kompact](https://github.com/kompics/kompact) Component-Actor framework to provide distributed abstractions. - -## Summary - -In summary, Arc-Lang as a whole consists of three parts: - -* **Arc-Lang**: A high-level programming language for big data analytics. -* **Arc-MLIR**: An intermediate language for optimising Arc-Lang. -* **Arc-Runtime**: A distributed runtime for executing Arc-Lang. - - diff --git a/arc-website/content/blog/_index.md b/arc-website/content/blog/_index.md deleted file mode 100644 index 95ecd8e1c..000000000 --- a/arc-website/content/blog/_index.md +++ /dev/null @@ -1,7 +0,0 @@ -+++ -title = "Blog" -description = "Blog" -sort_by = "date" -paginate_by = 2 -template = "blog/section.html" -+++ diff --git a/arc-website/content/privacy-policy/_index.md b/arc-website/content/privacy-policy/_index.md deleted file mode 100644 index d8050da75..000000000 --- a/arc-website/content/privacy-policy/_index.md +++ /dev/null @@ -1,27 +0,0 @@ -+++ -title = "Privacy Policy" -description = "We do not use cookies and we do not collect any personal data." -date = 2021-05-01T08:00:00+00:00 -updated = 2020-05-01T08:00:00+00:00 -draft = false - -[extra] -class = "page single" -+++ - -__TLDR__: We do not use cookies and we do not collect any personal data. - -## Website visitors - -- No personal information is collected. -- No information is stored in the browser. -- No information is shared with, sent to or sold to third-parties. -- No information is shared with advertising companies. -- No information is mined and harvested for personal and behavioral trends. -- No information is monetized. - -## Contact us - -[Contact us](https://github.com/aaranxu/adidoks) if you have any questions. - -Effective Date: _1st May 2021_ diff --git a/arc-website/themes/adidoks b/arc-website/themes/adidoks deleted file mode 160000 index 906865945..000000000 --- a/arc-website/themes/adidoks +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 906865945f81a9c23b2a69ceb3ddd88e156a48d5

      - -
      - {{> header}} - - - - {{#if search_enabled}} - - {{/if}} - - - - -
      -
      - {{{ content }}} -
      - - -
      -
      - - - -

    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

  • %Nhr5 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%0DyS9b~E8+=eOX)&ZqIVhEl#fkAU z7|>fKJ?)aEAyoioJ=Mn>wc2%2ZfaU|*A_>qggBF_X)8P<7nBmNQRe$}mEOlSuDUTw z*d?i7GX$_B5ZbHjY57n}T%THBSJdq=19S#;c=6>(s)1p;U10R3+Tb#{MwGD=ZbbDo zLFgf_fn8>XX9;wc$=TE>OZPJ{Y2-gF%Nz8ECCEn=^#IZ6*7(D8zn+2YJurERzm7&O8-3?%Lxia*-r;qNCw5i#jFVP+gF zEafebLX*Luu1YlQ#2*?=44XCh#tTBQgWCqI#3a$rE)D3JQ(r6MZrMB`XNQNie_#N) zQKeh`$ZQGY&U#>6r>p-QKmk0Gk%yMW(-=_Zg#MEDW9u!GWhB!~cybF90W_9`r^j#& zz+ZolrAdnA%e@-BLAEY<=f>;_hA1T}#kAE2o*uzWS>K*f!wn1fuz}u*Um9IaX6~og z{SVkQHWblnUDno+VBW4#q!i&`)+*E=W|nxNrY`GtR)12JxyB15)(Vk3nOTYMPkJ2^RuX8=qTVOv;z9q{TDZ)bPIjvc8@G zvC{^40_P-)9{ARV4ZiNay%mQbX0@w_4$E$-Q{JZsmFa@lscDi)xyFDfz*xX!lLfsy ze2BfJs31sfTuW~SSOqIABThTOAy#%0bCH&{#2-`8FUDg6E}ck-B#57}em~GXMmVW~lTAK#}7e1ef493C36T zC+75c5GKOFDXt=^MJh64*gNiDr-YjZ*O-PjU?1Ac)RQX3Y!dVuF^D-Ga4p4bHb26X ztkK(yVO7fHZY&!#CXlsm2;WJ~34YsZzJ$F@*`N=|_eEC_W`D=eWQ-(oc@Nd>lKePr z4fxhZlD6|_2plikS}<)~Q;%M?Tm>9Bu9uRr-n1eE@+D#yX15hf&x8qpB7t&UFOpv4 z9)~7-PGR*Fi9snHK5f4_1irtrz8T9O5`ULj_Ek&K^nDp{ZH>B$XSxQC;x6ijv&3&= z0BHxe9;m7c-v%>y}-{>sg zHBme$N$XQgw&a7dyaS))#{`CH<~#d!t_)GtFvr(iYV~nX|2D+~geA!398v)4K$Es+ z;{yF#Z9d3*#jeR1T$T>2RZUqOKtu4D!*Okfe+@VLZ*ad3Juq1Gv|^FW?@-kug}V}; zZdsT$#DGVwI%lZlR)Mfvz8=u=x6%Irp#ZAelf1*3C)VNnkvWHN=&9vF1VqK7^E z#$4Wcyza#dT2ouudm<5Xs6?epQ8OiTsd<~fkjYHaWP-9JC8r^_fWqk2t>KJ$UJ9v< z*ty|St7!(i5!|SagUuw`Ohhf!u!=MY$-p05ubPzq9Ex9>z!b>NUr4&M^ofwMY`OlZ zM%OGM>_(iV|8iK7FR}b(ywxye&Tm0T%k_q3kV56e=t`>{!{^bWY{kBHC*!Ph&g8ql zeV;euJMJlrBCzXw^VMX!6okQ$4=cz*FN>+`b!Cl8tp#P*vaP7P3hG2)5BShkWS(gk zq%UY`?Dcvv)pFhW9=rJB+|*8y>=;e^;3>-;lT?V+*I%s-OGD5ZlPNmPXPoKhQe~Pr zrRd60z1L9Bqiu z-^#r$hwO1UQD4Aeu~aCc3`$OF!OG+ zj$;}G$kbQybK~Y!Ra;!a2-7EZ348epeyKNG6mM3Rq)~D5At#`OQzVkuo++gT7zr=t z4fBG$Lp{*JH07k|HN`3P$e~aN=WgEDn7-^C4@`k>v4YqEh5=N!Y<9IHUb@X< z!04?u_L5)87?i+R!J9j&B*R3LqGnNjc}iD_v?3g%70|UnNv%<`p}HuDGFtF^8J;pS zL(LuD$7&j=VOoOYA2B0E z%(M`md0^9g)+@rccV5w{U52ZhcGK`MA%v5;i**py8d~3$zsDPEm(79U3x9yrK6Q5g5bNDM->5P8WH%WVg$^<5srcJE!fjz6(JA z)fxS;zLmPzJjFFQ?`Aeked^eCx`+!iwbxOvc%WtRhS+Ye;>qy5&6Z1eg;w0&q!Ga{ zpJK(wo}5soHFY-KUdgj(ofNatzBL*#r*qM<%KdphnXBAN|#T{*bt7 z#kk6jaPgK0aG7uLrfdCELhL=dO{@&Am3X=99z=kh?k;e-#^Oa)KEOG%k1wqG$mZHs z^N^qJ2*|;}D#8VyfLRd`masc&8`9-@UK5_8PpQ$8%cH zx=u;{ZG~$BR~nRWl`E`B)lAy1SvnLDf|q}WLf7dk zZC5etM!;naRDIfSwV^$R0G+35uycmY%ZyZZMT)3jRI+8$V-s!Ww8zWj-Mx>o4C3<6 zu-V~C?DcA~M4{kYInR}r+B&qdWpOJP1LY0_MzG~s1K9I{cP9Bsm>XE68&9al9jb}< zWSxN_W&uObWmYh{IH6I!Y#&YkkQ&xBQAYtM%9sC{yXrN@25TB`94X6&A=;b}hCd4H z$qzk7h6sEZ0lVfUC8w=tw+TX7Suplbt28&R24S$3Va(cTUJ#D9N`|fpbGR#XW+e;z zBi(jptd!9A3#>yZT}ydG&>3ceY?t8)Rz$u|`X?$qOrD4KOyWi)V$-gGYL*jIk2Zw*!|=e1<)?<2x__0tzZiP9bMRXEcEc`L(aG50zpG(bNvg|jbMo06lXp4#lS?IX*e?W9s?$V z5e3rh3Ha6_)m^d0tF`$Uw$gk&?$KUC(quguUi#TDNHVqp&q^`d9arZU)M1{!<0xUj zoQFBs0{1?Ez>X67!2_@X3?D(m1)Zy0H=nW~El;gnFBWqg=B%^?4Gyf%-0l*%B{lLx zpLyV#J@3o&y>Ri>%y{(|hU2Pv0HtMHLKsY=;khJKT|j}cf%!vP@bphwH$1a2Ors zwHuPY8`kAaNZh951iqe}r;6b--O8!s{91j_*jF0y73(b9-%yUEfCuEs_GP8u*uTYF zZCLmZuv>tV819@qy zPKxovNM_CPqwLHp>YccmIzJ>uBB)&nB;v(1>Ahi?^im&un1_PWrQF*N^{@*WS%Y zqG@tCji3o-!597LD!k}hcIl{dj|{HD?SWTWAAPK1xuOh8{ijN@8T5Yez>s7VJP&E} zC7$14NKwxGCMo-ll2AGO_Qj#Hg?Q@(Hh)4@HS=H_Th(oNjh);Qth5`q8CviX)4O1j zGs0#u@518`836!E=!Uqvc%Z)ghFXgKi`h5H6AMm@rw$_pNInf7Q~#T@9~~H6l}!x@ zs&(zwMgc7}^NqPq=?uP+fBC%Q9MHjMC^!!`!3E^}`EL*YSjL6V+xeP+nD1bw(^wUK zZ2-5jZM*zuD+-6$0RAwf?&=Rk<3Imf{};Bdz3O)pPYGK_R0YhOrgTav-x0UTFS94j zvDuP`)W2o5sd*9zpflPx^St#$0-Qn5fV&v6Z--Hk)f5lN-$S@CFj5fMYhveL`54Wt zJ)Jpi!}!n>{y_&G6~Zcgfn55mncR zEGH7j&B!uw(R7wQonbl71D&RpU)yjKL zY`n-W>8O|%PxbY6vNT8t=QK0FA|e+zDxMsj+M+h z^I9GbIJGERNS6}qTcd)8PJhdREf6*swX_1at@Kal`L<Und!F?Pw)jI!tZ?5u&&SuXKe$;b%c)= z43_Xy1awmO>0-7bqIl1A5uS31NINZD@INs`#uT1alHNxM!nVGs+Xdi!Al4#nM*m%R zwc#f1#H`$fW7Bl#_`0dVVxE8Y4{P^M#bTZ>NI$`q#+tMm_3}mlV}YrdS|7>=F)QLP zX$fC`EJDKt>{7YB;5|6YIqw0Qu3$1U`(@kcm>BYAjcMr{v(c($F88k13% zB{R--!{;Qp>%19wI6r8f%E9*+3}|Bb>D8CBR3+~vm<;MGsMGBEVpaa7Q=)e1S)J<@ zX@ZiLel1nvoX(Nk^mPD+;g%xRE7K^;pL5YpQ-m8oTAs%OIdZS3iA1q}o9J`95>1kp zpUu64~hjN*RQIVL+Cc@3d6kwE~u=yXZ^!^ zOJo^qACYRi6@~#z@f@Ix4RHL2)SdtkSJc)L{0yEH;iRCo4sHG}wzWSj$$t=7y#!Y7 z32J5W_A$G{_yy#ueyU?sV zZ8v7!(OzpcY zjK8sQPbxaTLP7&PXj%Li=i+;ktXFUa6eUTy(vM)C3VInJaMI9RhdGTj1ndHHH@inC~kR28z5>0+O;~Iso`j4y;z4SEH?Q~-z5*d(Jj|0ndqqRQWJR++ zHJ`5^6W*pRE;U~`I06IU;I3-&JrmK*Qy>v&N92YR)D6o5f08kI8yZ~GO(I5}T~ZJ2@)B3mRui~=SA!ZBWHE|rKQP9(ZzJEK}@heHxq@-TCpka-m-czs-Zp0uV@ zy3ZKdCTg_8Miz31K`nF`S*g0kdJ?f{UayEI_Eiq6elP$E*duH7-TJ)omMTC>u^RZB zrDw&p+K$Wn_@|^J@)-KPpD%_G0y$$Qsq8bB(bpsDsS@Q{$OQvuFW3U_wIXRj$apaat5O65b z&2YDglPJ`X<0BAP4Lhj~8$NG0Tr(naa}qTCMwEN9`FsyBpl^7cl(OZtcH0%9Td`ZW zP^byFq+FW#;h|rcr4KiFyw)^aB)L9+xPf?zrOn~_d3fl@sF3HUENIAT&5;|02%D{o zgBeqfsQUGQK+|r?i3s#EZ>&G1E3BJmUgH;uqjk>p{tz9Y(S?_+I~(O;pQnk0*y+Sm z7OKhn=m;_Fwc$*Tt#=o)Niv^br!ZJoAW@(NgM7wDa4#~hrr4f`UYeN|sE};zna_|5 zv4I)0LlKxwwctDjP@CWqO_7&wZVj!cySckXsRtUJnEu+epphI>R{))IL`QiBa?Ttph^%p zq1CR9>H%Jr_{&LAhZHwCO`XlxY@UEJxKXLD^84&}|FZ-T`6uPJd-INpSing&7Xtgp zspd|!0~IsBgxS`mPYz_ZRf>nJF~CW+oStMc%Dzr zOu4w8PDxh*QZ(cFdv0-x`Yj=a)U?iUWjsoJ$Z~)lmR}Kly}(&*B)4PI&VBaW&ruHz zp%36HsG%fXZF-21%8)r<1`aK>KGKKjK7)(g^*NwDg5=|pNYXc%?%;5kIrZ@D<(b80 zgMbF&`F4=&z;6nzMw`h{K#@YnMaXNIZaB!VF1M=N|CB;$&oP~hv#R1*16>J|mqP=H zP3fP@Hu;O=g;rJECA#f(@_uOb%|D@M^=@54><>qyxe0L%PPhWbT8!GE`Di*^Gy3yu zRR4?#oH(6rX*{1p(xF_M@!VnfZb$O+sg8-8W5*!~jqdZ0I=R=mK8o1@w#?7m2U`nb z(?w2?DByEIg^_X9N*_h-zSL`Bn-vBQwxG&8aE*MmBCgx`IfH~FpDDbtq#tZ)6ZsmN z(VtnP_RQR}J#Cb#ljI~OTn9J6ilb8Zi>bhD;G?53G%}H2zUH^oPILxnBX#`)FogIR zeN#cuWa5`%KPeFPjx#^C4xr&;=|~Z-=IUHP+a1IU3CdAD0{h9B@THlClIY^?mfF%l z#n#HzQK(_TSN`$KRkJVNl-$0PE?vcBiNi%H0CDLn9ElC*IH7b98c8jQxNN>-K4tlf zYWt~`#D$DSpKjFAb@)CtB?QlkppN4Go6V<+LTVKgs7rY7`GGnSuw-(%;~ z{qungxaLDw!g-DBD>se4rv-z_Rl&h}%gM<-AyMcGHmM1bQ64ed>jMB9t7=MH$@M*{ zX{fQf>A+}a)J;<(2&MPvuR3ZiY_aTbT6w4~#KW0>N^PTKHL6As%oY8$D|_*odFAkP;^`h_ovHH~6c?2l32s`SGb2PtcOEGXDeeh|yGm+OjN5rY zal~+KV`mxcQa&z6V-A@w)(gLoha(_98+WtZY(0q*1&2xTi&Qm9rZBBqW{gJ8;}P|o z!2Jbh*03Car>=znN* zLrWR}t%ZKle2hs_NS!N{T3NE2iO;K1*fp&Ww()FH2b`q|D=Gotr-CkNbf4Lt6L5kY zP0sq7V@)s)=L`uM-02XwOYp9WmCMf2p_#tV@UY3~j&$l$VC1WYASJN52}LPYDsf=I zxW7$2k*}oMl2^GCyn;~E^GZxB&%zsqwbCXC;l~a9$1d?K-W*qoOs>j;8mD@@fEq=` zb6pTIXIPCkkRJ42^PD1g5+*m7b%X z+AhujXQ8(S!xxa_f9`}uoPG4Sv=~&f(Ans5&|n}jsKo<4fgJ{oPr$5$%h6P)np5;%30~_*wGj$L_=L<+)tXmsQ2+1?Z)m? zw^A6dm&L7e7+Yxr_KR$o4*&^!dS#f|2qImp-0~~r4|15o~P0`tr=@O zb+kIY!^t;dys4GXpHV_lRT1p0@(MOO_>_o@cT$okMP$3;^4g-v!fYE1dDYQ$(iia0 zl#fjK+69SA){k+ImIaZNBSk2?XfJ1|jkq(6Yr925>R3ROle9ybE&@#(WUuCh?@eYH zL4J^Xq!&_mdPLJkw#Zhh^1~Rt7?i-J` zD6f+;I@`4!SyDC_PX2%(vFBmh0uP+uK&bl2FjLc)x*@xO5#4#7QM>39OUh1$A~8ua zUF%MiaEr5peQHg&5NIhLR>5j3vP%HYY_U*_qbRRNH$iB-d2ApePpMV}8TaY)Bf}%3 zhgNbB=9g`lgETDyby+n6MrmOOap#i;no!RX<$YD+ozaQ{{RC z{CN`kfF0Eew`s3f(9eMkoJC-P-s`Te3QJ$7QlBLu24(>v02XL9DtK0_b&VnS8%x|- z-|0R@v3U^&6CX7FgMtRw;XplP(W8!h(+OAu+jvH|yQIKDXrP3>og43I=Qx+IFBO%{ zok4dNr{fnH+VD5{8LV3w;o#tvU7m^t{7Hv%cP`MlDY&Q{wpA^70hV zIDGVDk}YAmCzr}9&lNq;?Xr`E=pzhfW07*Hqk$XZJqb6D8=oSl8_;!7*B=}Io3uel zcvfN7BrjeGFUdhRJH18=I4k;+q~Rjs#m*%cZf;1aD7egC3?K{wZz_+y63-;3OpfdK zB<>aj*k*TBm&vDUhT|g|ST)5j)s;mT{ndF&iVrrXa)t^p=NwMS#eOEk+-b+|3nxCf zv6)}&VUPh7Qaxq&1w(gMC!rd3DA8ZKwy3N2>sW^!F4^*TxWCX#x1Q}JaQ6++JMG(b z8MJaaAN!H%SYh4ERf(xvjC~A6b4z5js!+JwvAaMe&e3!0Amei}Nl=eY{XOl6VRZ6L zc5Zflg#ZOjelZH&?)UVGUw%>f9fkb`gJ7tXe0*`N6~KfQx#d85$uPnp7u-iXpJeG2 z2|Pw)jp`rY4pFbMC;ubjCjN1X+MI8v%b+#JmcUD-;5^DllAstvQ6pPKr!N@j$8&eB zRb!@qMcN@o%ypolK4mm^N60KXK%&OHSsdopKI6pp@L+=yuyg)!j~BAr%wDsAzFVf2 zQx$R7#ZwUlcaYbJP+owo$B%Qj;q^|P-k?v$0?oe>nWvmQyoxzh(S$+(M_>}LD5w9j zV!&?!6zGjeFC*#Mihfz#yMW}>6YI8av|GKy@YOVeH+?Tw#sQsDq2sfqC#z8PyqCnnJqe7Sq zoYD57>ax=<&6LV=(Sl?0IqB23)!AbF%4;`V8C%b9hZ;m@Q2l$&PwFL{&w6o4NT2QvdPx6C7j|i5q z(`?s)Z(;^XdE$jSp|^u;Wm)PsjF>!WE~LuY8#=zXFlp`%h=ckh+UR!@(OVM{(J`&9 zP-o+2WUBfqWsm}WpkZoJt=3@<4<0MJP3p*yfM&u-#M!Ob2hF!OP1sN# zI#tp`(=1Pjhs_QTY^HT1skif59BJU5fcg+Cw#m*)@vNaj(vJB7^~~jrD|fPNira2f_bc_Ux3+Yb4pkaR=>=-9dtRg|>mBS~B8?HrAF!*-)aT5lhXT{N|lZ5Z%_afZk}U_e#+ z6f3+p+IG)8Jgu&=h3Y;{xs-TB+5_9I66)S{mNEN>Ia?)u4OSza%{qiqy*TX1y_EHs zSKDHq6+C{vk{!|oK4Vyd+>JqXli+fBw=pP7Kj>)K<}b`>g1dya%2c?mzk2{mm3C8> z(V$oL?1^B0C?&mF9YKn`wpwg`Fm)t+yBWujCYH^y<~E~PN1qT~$x`Poht7C;64~A| z(L$P$3PQbAT+fj(ql+`+8`9w-0XVG%rO~A%{^+U34>84Z({e?3DMd5Jg(mq5X_EjM z(o8W7OWAYaDBIy$9ar6iStU*!0{wWDAQw$%RtEP*G24^mF=lT_T>$`z0DgoE@*>h3 zzj$BxFG$VG3gUot%EISQv!&zG^a*C)BLa|oxFIIADuBurm6xDQ9s2RqP`~=6AWlLHIYQNKffyZ-k>8eCgiED z*kz%NY9^Wzw;B+2VwyB1e7cp{u_!TbmNS1pj@w!nlW!u^)14t{yc(InNf6 z;K$xw`7V1wR)WvKrSSk{N~#%0cnLw%N@~^3Dxoute=zg7u@%7VT>j#AZsfU3H3l{x zwz?*A^s9b_tZ$34_`^&6%PO0 zR4T=Vfu6c`s+2cM1y*^24ALs1G}?`d63%GH-h2#ot0oJ70f84*?+%!V4czdGrJ`$9 z>*_y$^2ccA&^sjsF1{t4q@)bvd*~f&EZ}xJbVh06;##0%LO-AiAumN8f)*_GiIX<{ zvNq7C+8iJvVvSl)%4*@5X={@JK0v|0R&xU>3+OjGV{wj#8wmQ9xLK%9G@hxqzoO$6azGdyH97*I|LaRoxZkZ>k#&hr-230XGd z5}X+vw<2*(VG#XO43M`1D`+xg$$6nv3X34uD4n+&yEfZ{N{VlKr%*)h6S;US%oulJ zZT8UjfaK(%80KAa!Dgzue?q3ILh7YKQf1*>2ilo!?S51T4wCE_8mbAWIwceLkCSz8 zo-1z&y`vPlN%gb2Vo2&ui8Uv~{f;0oFh0wCk~3wA;kWJLqRQ~3Yn5I&2Z07;}j2&nl6y-I67-eSbUV&x9tX0t6 z&kVt*n1((WZk}F&CGWG@C`w>cWIuUVk%iM1T()dy|H*^rBF(HRxV&rbpvBSnapCyw*ngGQ0?&bE*M% z;_JNioS~6SaRnNK47DBOn_8=!@ z>i=V7OlE$&J#dB)9pa5Sv~qaNv2YXM<0iM8VNSpl##_L~U78L~sp_sW?YRpwA+%tm z%BYCV(zK)~c|Ko|o|zKo${%}gX5YJgLbt2~uey?f@tl`n1!4=uNz$|6Tvg-LjaU2T zdk!gRoUii{?Xt{D!FYt>K{;{}+qxxGO3c_q!nhg91We8N8k%V7pJ~Qo`)P&WU`kPhFC8{L3 z(mn={ZwJ`H^8`ZBXN5Dpb|>Vb(Q18;dq%K^jMh>8^B^pG){nmdg%$~8lu{9oYMa*@rH`ntKcBIRO@ayh1yys4`$*XD~wm>{iiEIh0r za6CR2;0Y@^kjM#|#?wq=JE+n^XW<12K%#l>tn+8=*RewCT-oBf=cbdGYgxmu;MFRH zG1zNua|VXl5N~TVVqitn7wtYolZ7V9@^g(2uKi&M<(kD#ya?E-Y-(JjU0@fr8gF)h zV;K3V7J|5YLK@b&%IucW&m&qY8q0D!t&oD*2v$8;OrR6-s=WVsJ*6-w)%Rxk@#$m;Vemg`#HOs)!F=kzh|g z>ag5ub$bOCkK^V%;nq2HG-ewd+>U;QAaLL*~#SPLAb4syHM$P35 zs95Bi{8AfUW?`OU_@pB6yuH!rY`U&QiYJ@jZP8&(+v(UFJ$YZZYZp?0Gt>2g;-&2^ z{nPhaX*@kseQN1+%?h>%-)94-Uzei}^#wh;>{=*GkF;~#MK+bUaHGq#kEJL%B$#{%`uS#RN zN=*?wX$aCdZ^CUv2?u&9UXXn{_qpy*7i(Yr3;_<&{FP1Dy)hG3tdn*`M-RnQ+b(U; zVFE+2F?u_6D8U3eyVjQP*=9o?SDV2oJzQGbcSTzVBVv!A=GTRK9P4W%;-fZuwF)xK zs|)bgwFg2GuBm0Iwh7lE%f-iU?-7286wR*YXQBx9ZYj)r+8~y?<0c0M&pPw(GNJ%( zWnuuw!AYWO84dUeAS2tjq4>gjo!6uB8el6?#v1$j;MG{P8lvDn@FR~jXI%D+Vy6Q%fCCTScS!u!~CeJBn%;4^- z=4ac*&Jc=A)f+6!9Ab~EHd;|+tR+*qHJ~Uot#f7zDdV#&se!Thf!Zl+lVK=~P8Vhx zNyYAq2$vx7AQ`^F*}%L-s$POdt=Xrgaor$5?ai}p(nwgHlKN7(uYUR@B?wVhYg!)B z_Lik0^KheyUCfo9E-|U6O(yQsCrLgzebd^9+Yy-X&xA5@jZ+=Wt#4rB%fjXpB5g9K z=588->ZvtqT|C(*WBS6}n44N$LLPcqTEhO=ppxP=49zE&D;b#)vtIyqP4O*ZT?g{O zZfjZ(!KnsuorMi_H#vFfD7|SHXnGmuEZ?>;v~h;s`F|;B#PSGu7L|o0w#A^H-^$WQ zG3--#FfMLKj?PhkRV)d@(V~&G@&q$ThXug90WWJBh{X4fd&BsZB|HF;seO^1l60dXrJhon`!$H~UZ12* z*@nXEZb3GKRVd##;nsbY*s^rFkrX*dZ!}ateb%+MW0m9rJl7RY9?C(Ih(^V}?^J>kj z<55G<-J_RM+L!dS#)8zdSm|XHH6DQ4`fAw~a?mM&berLXWD&jk$0v?X?Va2@Xc$FC z!NUj*GaO8}Nq*XPQtCtGR)R$|qtK5Cn2Z^2D`T=Oz#SSwlB)MP7i;kVH?;lWlpr7YLnYwhI~SK=PmVl1wk@$2`ke z_hd!vP*j(38UaLjEez618>>iBpRQLbwRfU9S_0w7j?x2|MuHT9WS8a>1xc#(${%4u zGkgm(+EZQqXW-;oVSC$2W33CE6tBxiW<2br{n11&w?>AfQ0u^KN7uAcbby#(@*Win zT)q|~aa@Z6DBOUXO+!lIru9jCF6pk6(UMS_?Zl#-x(Q)()&4Js= z*^Gc1f(=!qB3LZ<;=hlA0YWuYMm@@n2$4=>e!3=an1)0u5d1D(-@_eW?aS4~A`58E znqHHaj9+82ghgl%Z5Jq#X?y5o8ETxCg_$&OiuJly<7x8r5odvnl9vmsYMjC^*7MzQ zx&pjhU^ynrgkWdn~T>hts`noAVVvku_A*6R8P%n*@MPaB}veVSmi*h zfIqe_n0sfmT6*|m9lP9@1lWyk@jzIG|8PbTh)!kH`v;rtH`yN7Ez*J8Y+H7usEgjm z|2S8`%s8=&&rBw|5f9!52YhC*Rgtx0c9)l;EIT6H<8fBixOkUTn?tX0q9Oi}xZHz5 zbgkRxjRClyxy6@{N%3KJv%8a~Tid<8?0XYkW&@;>`EH;psb(f2?Aw{d^Xv zVy&ZYry=)8L zeJRKruHu3HLJ%8`EVgRp#F3d7$BedS_M~Ub%w8oTHX4poo_t!Xs1rok@! zx8pe#g8K&9F27HtQSIa5CUQrJV)4QnzNao-s;Dq1SE&EigJZl5x{TDd94k zF|k&%W?;@Q96awUtKJ>%7tIwTc!GYKJstDb1QK!lRtoLk4+AHGCDVwpW2{j8ds(ea z9GLs|*37~F2Em5zX9&f~;YA-w@s^l8XDrQ5@;7V)MXen)7{)dL$a$v-v6*Du|0EtY zuw`ha-mnq|c0hXZ!zs!;7@{tW`&eT9Sk{yYB)VZ+>Qz2YfR=shOeGz3u%@xv9<{W+ zQ+=Xnzg*5EKDV-L@Y15(8{k*R;#0ChtY3MLktg4?Mwi3EpZ8u6$VG$|(_*;{Lz0); zZNgz*>P9QYBr|9{#8WhC6ApwY4r=i+CiE%YW-(dXUaDF^Sgd61c7}G4)_0B@mWD=* zKC?5KQ_PV+7Op42Xt&-)0Wen^PFmi(zNGJ$9?yIP8Q1O97<2%#1Ngw!z`k+(BCMFY zW*A%ey7>Wvn{$DSuSRH}HRZ4=n|f2YdKKtr&x^wkEU!nkr6Hso#+CdjbYvzPwI>6h zn3+pjpOuCNkYmr+Tv~WjdB;qaf?*N$*iHzW@kE_TFHzvJ-`CZz?HTTqobPeRk&9|B zDv2Dg`R^II7GjyRB`qM!*?miqeQO!#IWFLu1M%N+&rZoemrvD_Z^cHdG!BJY$)F}pXjBEDz`Of-3G#I!NC z35=Oc4MZvd=QP|r>)RN})MnJ*UaW&G-}6cSt!WeXqOi9IkzyW&-3V%cZ*#Lx2GE?+ zb5~PRD^?c*T19=ac0jJU;|7O9VKMd5!=~4;yXM2zDmZBR;H=CbxGE z?mla&=^3VSRQiY+P8B!HC=}N#%nnEjR)s^~ggFADqlT=gKp@xKzhQohf6z65;=zaN zP4nD^cwRVDJILKZ_W@4=PyXB$D>4I?cWX#T%*G6IVs$B>9SoznO6)oX9v9;-oerev zy=S4RsncC^kRY4ht@_3h;}MEOtdUiX?{= zJ?PG7rQ1ZWAGcNlG{M~S2V{?|HqIwzbE-yx0u3{>b}-Ehv3_%on$xP_*R)uS#1O|y zgvpA&w*h`YgWn%pw%KU3WZ(v(@$N1^Z@nds1zVZBg;gq8ZB44#>65fkxP0j%_O97a%yU=CMwwz)KoG_8ncz%dSgJ~^9*iF7Yn%tgDf zVU;qIYx?1-;9Zub69}m*5L5M1!gbp^kwJRp9wMa~X+d{x*Ttz25<<5d{jEL^kMzEO zt+J6I9EtWa%8ucEanIX^_a?+6I{G5nA+B4h?U~?-A+O)Q#0n5VyhhRdsW7MUkdvA6 zVJix1hfxR;&Ha-^_MBY%w`-ra@73~$>Pd7WomS6q3=0ngpaPTN78sSm6V)|ltdA4D z1Z`F9cPMhM`vIP#`5kW5kb+LWKQzPb*q`Bv4M?CR(!2f@(>J$u{J0= zdsmQI%9Xony(hR8Oqwq`nbWo_djoqD8oYsXWSw-3GQy}GZlGWeTL>A3@pr-)=wc&j zoqyx{PSdOJMh)G!%(mQNA(vo+$2SNOl-P>CyR78B3IN2N7LR(mwt4>Q$gx)QxH$TM zT0X5&ml=0EbXSS>@S!J9dE&uq3?}GDF5cs=tw4MmkC^k_=Zn2xn029yp z?s7=VNZ;?-mPD|drqAVkn)r5%liUH@s*=F_~UhnB2}9lG~+7 zzEO8K3WK3ARqbSi^UGzpB9~()D1=0GsL8=)NJfWi1k!3qsR4*7vuRT>S&HP|L_#V8 z)@BS!7E{|1raFWg-Jz*yDm*8!BYZi^`Ij3EoHfVS9oF|Zd| zds<5XC3<*S3kI$x9+(yf4?jwHcK=bo?>4O~o_uVO*oQ7{&%#`N^fvlR;Nh&H3!~wd z%XkMLpLR#Dh8Q9`L~$ut*$&*q*6oPxq8-~dZ~KF{CI%11kc&jdyU_QySxvO|+Ilks zpoz{chvDY*#V5v|+o{Z?U{9AtA}^BMnSDidP00!`PCW{oRVY|nt7ZpeH?TuKkTV{1 z(M8<7QnccC@!RTK+$FiMd{|M>{LtCSUe=zzkWVG7t%z3R0)A7C-8m2BaM)!lej4q~ z4OJZI!<4pXVWmEJeXbnryHc;kxA)g@tXC)#?(W)ZwunlR%=!MbW-{Aax6^7%grQ|^ za5D6?`cnBa(~W&0m#f|1x=S<6-j0jaYg{9StC~(-8BgQ%d@iH<$#|6nGxG6>HM$-r zqAH|f>mgvK->(p4jKl6|-kg14G4RIGGVHj?j&WWxZxczW^!=KV9zn}JLOgvb>@hoj z`5UKC0i7V(i;a#ogge#1ZeMr_m>`cU*kzt?YLvbTl+)y>her4<2=cuKp7pb-yc+L6Cj zM~=$now!Jkr4;_O#-~K*(*6 zDAX4>u0xm*o`p7N`AiFeUiD8V_1;I+9!CRf83!qd$nr)!W@1(urp! zO<}0j{2fF(@I$-uMD)yF3*MODR?4+Xp~l6OxBuBal+5ACt_PV-@q754Msp+K2YX5N z@yd#~4B};IF+f${!I@&Ql=Ss6)aEs$7m=&CF0RUwUQ@^S?@2{dg!bGY^~HMKb?mlt z&AKVP)jp(UKjw@w;oDb6xWG##?G$kh?7O>$Y#(&=*)abJr%A&_&SvxGd{l+P(XqH> zOfOuuA7Xoop-s^bgNdUBgf@Mj8L+ma(j7Fdyi z!d|k#N*cSav!!){-QbzuFcAl1#zM#Tga8?Pqome_<3>I?&icR)FIj@&2^1a1tq+f~ zZCfK)HI7}h1Dz86A@JV!dkyZzo- zI-zns)sz?JI-}1;oHY#YpmP~ZFu20@Jc8fdtNt4bhB-=`{PdA8YY{k=3=QUen)Zl% z)t9_MU!7Y<@NK6n>^j$T-N45v|I4`lxyV0U5Q{i*`F9^?LlsNDzo}@{pw60aU`{{P zQ1n+#U{fB|b%n3D^3(;TnHjUmN}@1~ugd#WSl!6s=uo_;y-L`XJ7@Q9ERvlE5@_KI zH#S)&xyD-GFt#ZkEK($1ef>VwR!4`IDJnJ6h-I-X^mYw+@3P_-hkfWuB=Ar;!|E{J`|B)&^snj))p}YPc)|PwH@$$uD9j z^XyKRl1h4T5tsE%JLNEsYBAND`JFAQv25J0v22mIH>+7D!DLmNofk=!C8#s3Z^gL6 zBmC1mn0#?4<-Ux0!AeB#F^uQ`n!rX>eJf3yc;an7kk}4lcF<=C|6Nlst#CKI6TdM} z=<@L@oCZCCE=VcyLL9w4cZtegI1ZJya5IT%JrzBuTWv6r7nhvgS)kfnhe`p~c@1@gEwsnHkPXeo&<)2{iOln5OR=04p^Y9Jd+c!_;_WigHzQVo z+}t~Dn>7R`gV}_xO(I|wa4XgnaF)Ur#6+}=gNrSF3Xghy<}|z_#2D(oMi3xJk7z+W7|v9!WV|pT)D>}!b?LA`(<&}ThPnXliE=940jBsp*KrIw%~iVTO3*r(MWxz}Ne9&O!P$7ki5xAY)3S| ztC=)dOJAn9*QHgWwM@TvPiLpEUdjslY}@tKdESWE8+ssERt`FobiYFqI&~x`S<6*u z9``^?O4>n)LG8h3T2%Gg{l<+YM%kThZ>Ke$kfHTGCLA+1rSjN~d=kANiaVLNvpvQ` z17U~90rf3q)N4e%av8sLN;TzJopfo9*4f_T&Sv*g-Dcg4X?a&9@=l)P=EOrq!$s&? zuZaC-Dw;4E(jsm@s!LKQd^l1sad>FZ<#VxmDiy-ixVKq-XZN$DWM3jsmb+7E*^qeq z&<6{-WVpFk7R~EoTNtC^<_ao(UT1x1HWh0!Zq94qJlOQP6RSXF`Db_PPQxDzdTNC< z|A^&|vf{|8U9IOT0wwt=Iza{OA|Jfn=93@JXcAE`1X%HWRDCU7c5QP9JM3ns^7iTR z{yHS?R%`|w*pX-(*&8C;5KaWPH*Wg12+OXFOEF8UjdjB9prm`x-7iC1TnMO&6hI$A z4LIL0sei%m54^fy2u#OGTWJBV(@dCM3SE1q%@oFTas^$vpE(+0btbm4tea&(?>B{R z`z_gbQ~b*U#VZ$XGVWJB)_l6uO$R^2H24ttG2SXx(~JYxjCT50osXqQq_^W6Z%ukr zIXue`R54@EBj!P_?Yx~AhwEZp={oMRH0-Vt^)|bVJC9PSoCTQ>f@Pgr2NT2Z9*w~( zq#1lD0s5OGTp6l-DtfgL<%S-U@n8E|aZ$BKH0k`aIbU6XOIu+p7MuP*_`FuDkNtO3 zQ}2HbnKJkt{Ak~czHH6P*ro_~Y>z3nol`9h2dxI4E3K)TRx}G~iX!n4w`%B=YbETC znxp*f2szdL$ivW!&4>ulEUNH?&}yI`$J=AUC*{5wO_?YQD~G2zdKGZS?B-093;{pefII(Z@1h@_U^$ zUBpq{s`gxSRL1;iaX-I7K@Q5dY)iEN1WxA+J%S)$oB!0Qzeru0JJ+#2r2vb$Fvs+x*@2#Y_ll%@i^9$6$c+CL z@XCzd-`rN7LWOjneg?J~j7BbRmDy8_y-NqX`nu#L?$!t zV0^^zK}OKU6Y)Md9@Aeecwrj>4LJ~vY9~UC4kd@;a4i<35V1)ky^B_BB-~hdlRux? zslM0PrVQUk?ZAJSCV5p-GAt4b%!y49E6=v+3bx9|R#YLYWoW@6@-#sxN#|XHDGGMb zVluIl#*#fUBAakDexBL6N*7HbDN8W~x*02vI3dXFYgYI)Er#?MyX?W17P|v6Cx6nW zsvq9@qOdl06ucTeWsRM?orUtCeOZ>16hf#7C%ahr$vedhV>z9xJ8?Sz%hMraNs_QW zZkzW{xpACd4j}{TBDyIiE+0&c9ck)8YE*t?M^P+5w0JtLEJ13k*??q;rlz4WmVE8UTg*I_42+qga7x`# z>ldAo!xi`|j9uyi|0i}Ds{_(1@w=!iS19*r%=}8jm6?0c1jZk<=cbNXC={vZ=VR8j z$=SXQWI*y;cP{<%ZP0a@tkS*HBq?c-tt!9pR9jzQJ295Ve8KinbW=K&;*Q`?Sjwg)KLwtQcat$o`Dg^^zrQ(xfh`-|Cd|7n5rI!b$FS zm|ZExkd}xhXLBr}r3v-QzVo4*Bj%4f&;*Pi(K_#r`-YvxQpmQf&|>P@jc+1$9FEG} zpDf_0*H`ad-L_Nm_5EyW7de;MMbCf#0f#sM5q`Y@t9v-YICD#wk?cJY5lVC6bN!yq z<@86}TX*3{GCS#NHSH5^11>?wB;2TMC0s14xRr5f$9Xuh2D@FHG1@`o@q4Zlnnz82 zv@ZO++@dL|e=G9UaFInJ3V3o|r68W>tVp0d{2D$r35lsz4>yljOE1kAtXMoEbMH9s zyZHlkK7^*{O3ZO8TO&=_ZViFir!yagmbgatcnis9QhRqFjCfB6v61w(EtTzG#C<0U z?R+Gou=@>%!}e9u7SHb8u^+ys0cuSO0;G9C=|TPK@1|F37vIR|$Ws zv+oCI-q}f1y%g_75>dSHN&opBuXITT{W|zl9D1P`+i;t$kTUtFAKn8mchZS%NSA!e z2V9u|L{Vh97v5&kNjDC&bvfu+MwR!;o+`^>tV`?im0Op+yJ`iy4gIK9pjxdgR_~Z=BYf8jopdbA0>OI$`8JGE>Wt zPtcHC)!WaXBqP1h+fdIkKFO|2p6%!13)q8l-S>=V^jAIXn!a%gA>xfP6;@fh zp4wWHb4kv~-6uxN{(5X9nUlfY-k22!I(?9rIv_JSJkX)+O*`H3(}0V5mv@5J6?^s} zZ3TjECGgYOS%8amdFAF)BsMD87K)i{(509SF8GlHrbS-0pGo5!G^vpp6E=V#ZYbIYV2+*;>cTnhS15KnlLRXgrm<|cP=1Xwq`buH< zk@7DyP;^>m0z2UAez7IOHyCP}ix22-@0ya+hXDN*0@z%9}^xNGr zsIo~L1H{9MG&O;L7XLF)g7*98K&C@!!(^rmO`rXeFo%yu_O5=hb-cRvZ!wi~Z=iZH ze-M`>D2~6={nxkKY;)IO_K&;|_MDwOQ~uqqfGYJ1R&pt3R^%bc+CZ4REDwtmmfSW5 zv*O6!Ba~>Y*=O`sWEgdl&h7a*O}CGMu=tO;#ETDlYgK7)n}=PMBz(5dDI$47@+q18 zei97x==K{Z=>I8xR(K_8PPy7P0f}#?ysjrl0%88IRQ4fKZ6dA;OH;+Y4*gxp=#_iq zEk2`&rzWqFe*XN_)a*z&L+V8d5&M}Je%cN&|F>~y{Ypp8J6-{yuTKL1yr`Nu{#~T$ z_MV&R`(;0LK6e>Oi(apV=dLuG(!P+-K0Cm749?F?_buO4_sF82p20b*^NpP^Vn+$)}& zY;xP4@)l{PhTd;$t(`>x+}{FxXkgkxI09fR1c`s0)v}F{rKnv}2IB>V-sXE!9Tz{Q%wY< zXbt7$SYOWB=3mDp~WWkh%&lZk62j8(`Pc|w79<@YZK*|G$>}!5=d*&t{;;a8k zFa9!mF||^gQ(>twXX6(YQpo z?X!#uTvWU7pp{B%mst;x`7gV98%u)cftv2z+$0ia%+Eigc5^nDW}dDM%X>1Ztu5Pa zj54cr8UwwCy_dkTA>porv?02+DVvr_c!nN1LWO|zEk!7elY~fDui?X}qd)x8rgJj2 zMmeA|aUf)9VLR-M>Oz7*F-MC?LIsW=iX_sT<0A-w&gY+nZ;%Urkz!|~D2uZf>x&V< zBu(3pw#-9KOMaXHg-u+4HLzW)%RfU1$S;ms)CPGzaX5py3Wdx}4^fZx97WuQhDOfS#D|4G7h~Gtq zWhtSPMF5PfX*%=~ogxQ0QL`_>YJT*ySE);t4NmcCBGtfGo}gkzaw<^WbXW7m4tL?Z z9DiYUc9L$bxTD1wlujJr`xrb1keDHowk(Zd14V`dV7VAtxj=%vHY+*gL^g>7pLzg_ z9@f3dpCV_dR2d$p0+sOB68&%BLvJjch4fYH{t28(YdG`*8r0b5^0f7KAGY;B;!iC- z9Ry@@m?%P!15lrx_nQX<6v6^=0LXBfFtc$NKx`x4xef`)h61kJlvG~QmzHD*A!ugc zlrTa(Kp5vFqzuuBFvY>dSNFz1&&J5#n)>h~E?G$4!VYH=L{v{L52bNH_2TdrOI>`$e_5RO@nGQM(tM_TTKMOJx@4Y`x zJeLfi<+UIwNkVxu3c7mD3U6*l!6;97JjP5(!zHF{VaPlYH&Rqlf_}96Y62^Gm1Su}y6(yGd;@W5-R)$H zl3Yy{OLjc%i&8Z$wWvxn)1+8*8s{w@C>Xp>;n;RXeu-gns$wiF=}jJ!&O2cIf;JF% z8s`AVU)7ErZ&=NkJrs(cu_5Q54a>((=a#yN1Vg&0r>g*h9?=df<_-BHJ#K0Ddb^3B-#W&a|@}wR`?9sR$Q8}E&LvFJgDZ4MjeTblixa$d?XDa5d4FY)Z zWH+fv$jk&Ad<}4{1WuLGZIW z33p|j==LgGdD-Tb8D>$O@`PCDiTTwz^|O%`O26w6Uv=uYB44+jeACi=$pH6p z3488$g%+?~yVU6m2}kA#dfY~T98#Gpx!$IGt*&-kY^)CUI>v`51b7;8cl=AuGRhc>%|!PN@#BJ{r}uEA@8a9XJ7 zQJzr|daPJ9k@qp)&R(H*dgH(omI0rp!;PB&vT>!56f$@cvmyYT%(=-q$ysLVU0YX9n?UpQzk zPyi$*AhMyQ?Re$FCk3Zy92y_$JvaeFfB`CdX?oMw+@E-2<2f)5ZfrSOmr0f{%v1TmRjKnnrZ_J@33a1ah|)k*aMJK`pc$t+PecT$Ef*$7;p0 zws)$ggFC|rLrM5TrJ4qX$}%02{6B}%J07_e>FYU*uXFEK?#5}95F!fUIBN^bz0 z&!Nv)EHHBRS0h;`eEac%&p7e~F>?MpZkmVtzsL4nhUc4|Llz9S)hfgd8EmN?uy=by zr*P4ajCK>+HXsk~CA=L}^Y_(}mt2ZS4a@hUX<1`-nMexZDCyT5Qne3RX&&ZzWH(u9 z&F~L2q<FyuwcOmjzGG9le%FkJmZ7IKt!+HWrFo+V!Z|9iy?p5XgJL(-FXG=_uScSrq z(H~-If6ZXPzvvn~VBd`CG@t_Y_J)+6x9_Nopbbq}p$Kwv*WCwpWU#!g7%#C2J#0_l zAxKjPR!B&4E||fTO!Q=(ldy_UE_=j1E5mU4d5jBfH?c4XXu`K!r?Xk4ra1(}1@!zX zXw1wsZR@->Snl^Y4Y%St(IO|zLc*C6E388}cSoB?-xNkIe_@OXRldr~)4^CR{_8*4 z;=AjHS!`Z0b2fZ#lew$fd8F7sxw;E0fh9eHM;Z4=;crJu*+FfFK?ZMIN+rw+mJ443 z$3G-aeu;k`%j9N}?+?Ek#q)4(Ne)>Ll7;0NEysYI2=hA~zs<`bg~0{ZddGx&t9>Q; z_|96QCJgLA$m6EbUIN{3nra+ZA{7Hv_Y=ZWp7sZrG?wLWj{cyqK0aq|SW9VEUOAJ+ z0YC~XIJoa9EwWi>6aZ+Z2=ED`{uqWn20Qqx6mD()a!?76rbKP1BCJB~@L*lXgtJma z1bmno3+6G&u0~jQ)RS*YTe86La{}dGM<8o|mj{ojdsToZ-He-LTQ8?~7S8tMcAgK<|s`nHjLbL`@^Z=D;4|?RmE4Fxk1)2@x z#}>d(flY>1(JB6uLJ4HN+0_1ZTAQOlpukXDMm#AQBs>P0x2tX@Q72^qt6m*F{%uqv zr+(xzqx*6IbahGqW@;Us3fVoqN+>Y5A*vp5Q#qd!ybn=^9KF>4#NFq ziEbD$ls&$K+NH|`V9wp{d%BBuzS7$hcExb?X$7UW_O55d!4BUr$x$V9^k2C&^TO5} zi*N5c{Fh`+S$wSF>T4=Y5aOI>hmAt*Am9E}U;CYQroFHBFsd_U#^`Hd!D|IP@8|xr z<8Hf6I-s(3*ax?odsg2CAY9Nzq%)p=+|44LIJqK!(O^RFsALcM^{J9Ix3hP6Dhk+JanJci2oSd|(aYg_ zE~7=aG%~be7T+$=^-49&>vlBi^Jse_)`oc=AVC(HmY&I3*Eixvo0KQ5EvBmtIN00v zbhX^Xaejl6sG56(j@P_y;n4f+*=uQciZrt878rcxS4MC9xk|w~F9YLj7pE;<4~%wn zA!X3f-YxVgGX%P>lggyyCOndit>+}r=)LQ$%;6i%Jbch7-9GWg&bd{NPsCRPP&YHH zhaYCrGqTzAdE)$>FTrQseREeUo{^roK@Ar!JtmH(G!eDL(N~t}gcrdPK4<^T@*ncP z^DpYk{O|8Nq=)0%+o|oQe@7HOIl#i`_t*LRzTOf(CE+^)`-9KSEAudmoU*t@6^fiSFbZYo2TCsbbDBi z&)t6C@+ESMXr`8WhPDnY;qzJc8x!DcIRLqB9Ho2!<>zO92?`zya9FxYJIk!cvr)iQ zESHvvH`&t*mXaEr{pAN-MZth;9W z%ZUP14vPjuRvXgxYJ`v)V5$N&DfgpDHGsXgLLdwThsy0D=A4MRupqCiSF}*%@Hme`l_hwCe}&e>SXbC zO*4=H5UO%HNxUqlq3|fSBXL^3j*iJrlEXM4wx%dWB)GhMoqx*RIIoAv4OvxnZJLZh zyE3tT145I2=&jpv;;I%4Qlo13Bs`%8Z92orIN>o9ogewx>f-)IL*h1#}Z+iQL812 zOxczuLzg=Ynk^`qB^0ziVIc4Z?PYAz6wEtVOzr|qUbj-r#4fkPxL|=hB75vLA<%-+ z+p2|_mv#hVz=>Km@WIs>2+KF$l1pJ%j)lM(-#vm{$u3-)CNGiuU7~h40%m$xDeDlj ze^mHOvr246mpR4H&WeJZ=Sat^M@0~r3q1hq9=SEOKQgWl?`H3__HhD9g>uUSa|1F|(-r}ghu@3c@l zU#-Je-?Ltt$_ea0vfMi+tdUDPHh|wrk`r8)k2KJxn##-aBt6U~vcT&k;pghaQNaL7 zm`4qqgRRv1`rICt`{7KRW>KM#zm^kk$>2M1icigHtL2n{C$GRVl$C^etKVYXh-X2; z*kH%-wztFmUv7MVB}*?hg3>-C2GO8fV!?=Qmd|b3hZt<4#;3>(v71)0-=DqQW(|&N z+*UQ%ZWGj*+I8Y1)PdX3`dnvi%89%QH1!8HBmavu-!YcYW4Fwm-y>PRWJ9AO??7%O z@lkHjyjZ+Z?0UNo4-n6jfKPEB?xpmArMJ_JSf>~!bhekfJXpU87F+WfW3R*r%OCCX z@$_gIvp&Sc(6|fQ4?}z8AB8ZQgof3Xf>aJ#p-RCd*D3bIrO{7)KW{OXSeJek|LbT% zZ{n)X@uRZUQU0su`Zbyssr399B(X~b+UMmd!VVYOT!a( z*w-wsjGM#o64GGKjLAeN{EZ2?x^YZN42a9GbKey1zyGVXs_ zu1~v2aJ1geekGc)=wEJHkG#QbK#2PoS7&)838F$9#JDhSc1LVnmkEh2cE^Nw`nzBE zJP#fFijh3Hs{NxV1a@FD%+bop1K-BgA$j+4-5jlXRb038k&?=QolwtDe^zwd zZk!PBVvyJ{4m4`8bdEDE4Uf-e!Td;fz(cSEmQexG!L-rUS`dXkmQf0kqPno<9Wf#U zB21{VW!r3f0h?*3DVvR2JMa%YbO#a}(qx*WpanXNF$JY2BGFysHi$n0?^Qfk$)OY6=g6Hs^Mx_eOQ?&w`3ezE)MpH z1N+Jm!+wXT{2h4E0B3|XE}d;a^1`EP*9)G&Vo<-<^&OCO$Mk@$>c;C5_`gi4`F%T@>_we0Y+Z-7EpI82M5b?|-P@aXbHdI)!G2cSC6GR_uan6zf zUf0+({yf~b1}%)p(j_m&dXv9Esh3D!>I(^-e{MpgLcx4i9^fkOU~de~N8Ba9V1mt= zZxbJ{VQUJ1+pD7;D->9e%N{Ir@3FuSm>kl4GWf6#zpU$S&@W`fI&UZmcZF`g~Mru zvtOY9qHYDSf-bz2(Rv&j&l2zmIcwJVodUH*28#C+IxRW9T}6K4-=*^m zri~CRz4hR|EXMWl&D$*Bs99z=CC=TN=vYDS&X$D8n-DJcOWz&uyna_p75N{`uYoxdQDQb&}go*ssh!M2o8G4T~3BE;~r0nCdB(r&R`@rb1(KMOd1)cd2rzB&)pj z&Qb=yavTrF`qG0-zRzZV`DEa)NA|fcjdWZI9lEV!;AbFZz(zfD>|D`({oz5n()i8) zy->3DAO81DR=BW73S}sC(uMKiRfGLs8lTWz8dR)uX4eEH{xP|w59MX+7xw5&e|`XA3?5e-spvkXYG;0kr7`HUFQQut&*2L(?lW2PbCZst~7@@Lls zF#0s{O#)|Z+UJddo!a_hU{+V{y~=B01&HsY8KGZJel(sbccz38kl;P6FY}ZwZw%6M za#t~q|9d7Bg0>jQk*dtn;;3C%bi?WM^**9CJ>tQvYIjlh607=dthwrNImakb%HD)hdtful=81xDme7iXv^QKm!zs3?8>)ocDC9i!Qu30A1tm-aOaqIpp$(ZFW}N# z1^8ZR@OWa>?Aydoti*fqChoRz{W$7@c^(uGMQL6%G$8mno?no9!V#BnkA8rr3!*bH zs`zCwU^(DilA+9`A|_`?+Q-016iTX5 zIgkimx3dUC6OZBpv4 zX?B=p*IdAn65g#A#Emk>J&^WDT^@$seR)LmGM0yV+-QfGY~5hW1{!zOYtb=C5Ppy8 zh2{qnlhK|7&pY-Bk?OOqx6p!wX>gF*<`;Z}`E~zb;1nQ$IiE^BH4lmDq$c>J}>nA9GoCa8W-m+AnMAVI@J^zX9 zAmyKQ`L>nk-DpH0!W%O7@Dc4jM804%!=vx_ z4#UgWZo?HbF~bx+PjKW)n^$W*ZMB$P=6UVc0+Xe_vU2@y%1b+^)_vFD^17moH8Qcc z)&vKkFv(UKmb4aG_JKIQSR0f#m{HuzEXMD5?Z4Rvo;!Xn4Ew%!2p?}NZ zR1IYQmbPJ;TXcWs8}fKHAIfy;Wu9NB+Rakz7kRy$DV&pCj&E9Tf_M)F_$3PG6=(9C z1K?;B-m^JXEaU)($|J{^H6J^Q1Ki4xQH#;26Z?)D3ffy+eIY{T804ZA2ibBzXQr*W z$yaG3b1dEP=~2gP@))zt6kxy+!eK2S90v!U zqY`VRHRDL&uuR7P4IvQ!w848%k81>!i8W5}VW1uRJ$)-hVc_hEGCVa?FDx8%vS?{r z3OcC;<^=nPZpGQ$mbPXafLbuXLXHz_d5p$MV9<@s zjo_`6oq#iO89E=Y!!aX*R4L}oEVBiUCEr5=*l?_@WBzc3_cdpTB`3(h7 z{P|e|C*1aYd{%_E${I=nhGu-j^h{Y`S_76Oe1q2E;ML??75TXBKA)Nm^vIz3KNLUo z;I6E;rIUfHOC#b^nJgiZ5xO9WlR%~`WEiQ3)=%Jck|jrvA6klfl4PR{?Rdg9)EgR( zl)xkOCY;Er^{^S;PV;JPU02k*c=~F)w|y_o*t>4MUw(a;4s_v;cKqamMFGKs`jAP& z9OU%6wWCbx4rLXRRAx9?93{J=qp92hpV}`2Jw2Z162-Za{(c}$qaRr_O5us(TtD^K zBQt<+zRb_anR%0q=YNrWxXONZlE1vq?7naNrFJuG`9hKEu|W7588^4uZFiJ#>YcZ8 zIC7qX&zl&uv7s9(0Y#W^=e5iz__Mvt?^P17FF;$~BgOLe@Gsv-4?SyNiBIsMLs0^S zI+zgAQ?`7JCg@vF5il258Aye^8p4|{E_4ec+E+Fw8Amt zGH_7-0m1=t6!?QMKm{YWgh#jrkTvb7p7n z^H=57!`a*d*TF_%9<+ePD|2zC9M8ME&$~zycqU*Y*b7 zZ_?I&ss=%;7{li#B$&dyMFPvYyX^()fb(gw>!Ql*t=XJ5dbd5lkjAdqty+2>7Cf!L zzF+0jLx({>ys{S+XX!RZ#y_mLJ();~G@FG7iu*f*I)BuA>^t_6KbIbFma#ximdC7> z4IkY)xEf?V3ZhJhNZftr!!1XIw@EjfFymfvq?nB92S8c*WkHMUimRb&`i?+P^=~RydZ13jIF?9{(>|} z5`m7oiyRB(fL#}@(p!N;P3CkX56n@tCmB3lTzziH=lume0nZm!&%fQ>U@i)Ji@!3$ zuFXcZNLrq)&c{yF*s6=B9~{+CU*Rr+*jIPzn~zF0Vo&CF4NTW#G02nX*ZBQO^F1QJ z!BVJPiUOLPav)gAVZ&BnlpjDGc|uHgdbZ82BS=jVP3QZrsK&d*)fTI z_S;}RAQkF?9E^yEvvVLdH-8rA)G>FBh4!jiLg#+;bw8h7b)+zzCKJCwUO|0GV8P&x zyW8t)c@ytqJRiyGOp~dHuC+#CB;h1zXO-(d\xiX({Bd&;4_an$WB;RCDXE_|K1 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 M(Q${RkDdVl0C@V|g8%>k diff --git a/arc-docs/fonts/computer-modern/cmunbl.woff2 b/arc-docs/fonts/computer-modern/cmunbl.woff2 deleted file mode 100644 index 9602dae48ca2600ff74f5824e42a58b3ffebf9c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 93468 zcmV)9K*hgzPew8T0RR910c{)r6951J1K=D00c@=R0RR9100000000000000000000 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 HavX7BI5w5Z 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